From: Ragner Magalhaes Date: Tue, 2 Dec 2008 20:15:48 +0000 (+0000) Subject: BFP, fixes structures definitions, categorizes each c-function into a .pxd file. X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=commitdiff_plain;h=7f9bbfa5e0f087ba5a5c1367ab1bea72f53573d0 BFP, fixes structures definitions, categorizes each c-function into a .pxd file. FIXES: - Fixes some structures definitions. - Ordered correctly 'import' calls inside purple.pyx. - Moved c-functions defintions inside .pxd files. - Renamed class files into .pyx ones. Signed-off-by: Bruno Abinader git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1287 596f6dd7-e928-0410-a184-9e12fd12cf7e --- diff --git a/account.pyx b/account.pyx new file mode 100644 index 0000000..cafdf07 --- /dev/null +++ b/account.pyx @@ -0,0 +1,68 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +class ProxyType: + def __init__(self): + self.PROXY_USE_GLOBAL = -1 + self.PROXY_NONE = 0 + self.PROXY_HTTP = 1 + self.PROXY_SOCKS4 = 2 + self.PROXY_SOCKS5 = 3 + self.PROXY_USE_ENVVAR = 4 + + +class StatusPrimitive: + def __init__(self): + self.STAUTS_UNSET = 0 + self.STATUS_OFFLINE = 1 + self.STATUS_AVAILABLE = 2 + self.STATUS_UNAVAILABLE = 3 + self.STATUS_INVISIBLE = 4 + self.STATUS_AWAY = 5 + self.STATUS_EXTENDED_AWAY = 6 + self.STATUS_MOBILE = 7 + self.STATUS_TUNE = 8 + self.STATUS_NUN_PRIMITIVE = 9 + +cdef class Account: + """ Account class """ + cdef PurpleAccount *__account + cdef PurpleSavedStatus *__sstatus + + def __cinit__(self, const_char_ptr username, const_char_ptr protocol_id): + self.__account = c_purple_account_new(username, protocol_id) + + def set_password(self, password): + c_purple_account_set_password(self.__account, password) + + def set_enabled(self, ui, value): + c_purple_account_set_enabled(self.__account, ui, value) + + def get_acc_username(self): + if self.__account: + return c_purple_account_get_username(self.__account) + + def get_password(self): + if self.__account: + return c_purple_account_get_password(self.__account) + + def set_status(self): + self.__sstatus = c_purple_savedstatus_new(NULL, StatusPrimitive().STATUS_AVAILABLE) + c_purple_savedstatus_activate(self.__sstatus) + diff --git a/buddy.pyx b/buddy.pyx new file mode 100644 index 0000000..fa3be79 --- /dev/null +++ b/buddy.pyx @@ -0,0 +1,34 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef class Buddy: + """ Buddy class """ + cdef PurpleBuddy *__buddy + + def __cinit__(self): + self.__buddy = NULL + + def new_buddy(self, acc, const_char_ptr scr, const_char_ptr alias): + self.__buddy = c_purple_buddy_new(acc.__account, scr, alias) + + def get_alias(self): + return c_purple_buddy_get_alias_only(self.__buddy) + + def get_name(self): + return c_purple_buddy_get_name(self.__buddy) diff --git a/connection.pyx b/connection.pyx new file mode 100644 index 0000000..1531059 --- /dev/null +++ b/connection.pyx @@ -0,0 +1,25 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef class Connection: + """ Connection class """ + cdef PurpleConnection *__conn + + def connect(self): + connect_to_signals_for_demonstration_purposes_only() diff --git a/conversation.pyx b/conversation.pyx new file mode 100644 index 0000000..ecb00bc --- /dev/null +++ b/conversation.pyx @@ -0,0 +1,62 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef class Conversation: + """ Conversation class """ + cdef PurpleConversation *__conv + + def __cinit__(self): + purple_conversations_init() + + def conversation_new(self, type, acc, const_char_ptr name): + self.__conv = purple_conversation_new(type, acc.__account, name) + + def conversation_set_ui_ops(self): + cdef PurpleConversationUiOps c_conv_ui_ops + c_conv_ui_ops.create_conversation = NULL + c_conv_ui_ops.destroy_conversation = NULL + c_conv_ui_ops.write_chat = NULL + c_conv_ui_ops.write_im = NULL + c_conv_ui_ops.write_conv = NULL + c_conv_ui_ops.chat_add_users = NULL + c_conv_ui_ops.chat_rename_user = NULL + c_conv_ui_ops.chat_remove_users = NULL + c_conv_ui_ops.chat_update_user = NULL + c_conv_ui_ops.present = NULL + c_conv_ui_ops.has_focus = NULL + c_conv_ui_ops.custom_smiley_add = NULL + c_conv_ui_ops.custom_smiley_write = NULL + c_conv_ui_ops.custom_smiley_close = NULL + c_conv_ui_ops.send_confirm = NULL + + purple_conversation_set_ui_ops(self.__conv, &c_conv_ui_ops) + + def conversation_write(self, const_char_ptr message): + purple_conv_im_send(purple_conversation_get_im_data(self.__conv), message) + + def conversation_destroy(self): + purple_conversation_destroy(self.__conv) + + def conversation_get_handle(self): + purple_conversations_get_handle() + + def send_message(self, buddy, const_char_ptr message): + self.conversation_new(1, buddy.account, buddy.name) + self.conversation_set_ui_ops() + self.conversation_write(message) diff --git a/core/account.pxd b/core/account.pxd deleted file mode 100644 index 052b035..0000000 --- a/core/account.pxd +++ /dev/null @@ -1,100 +0,0 @@ -# -# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia -# -# This file is part of python-purple. -# -# python-purple is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# python-purple is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -cdef extern from "glib.h": - ctypedef int gboolean - -cdef extern from "libpurple/account.h": - cdef struct _PurpleAccount - ctypedef _PurpleAccount PurpleAccount - - PurpleAccount *c_purple_account_new "purple_account_new" (const_char_ptr username, const_char_ptr protocol_id) - void c_purple_account_set_password "purple_account_set_password" (PurpleAccount *account, const_char_ptr password) - const_char_ptr c_purple_account_get_password "purple_account_get_password" (PurpleAccount *account) - void c_purple_account_set_enabled "purple_account_set_enabled" (PurpleAccount *account, const_char_ptr ui, gboolean value) - const_char_ptr c_purple_account_get_username "purple_account_get_username" (PurpleAccount *account) - -cdef extern from "libpurple/status.h": - ctypedef int PurpleStatusPrimitive - - cdef struct _PurpleSavedStatus - ctypedef _PurpleSavedStatus PurpleSavedStatus - - PurpleSavedStatus *c_purple_savedstatus_new "purple_savedstatus_new" (const_char_ptr title, PurpleStatusPrimitive type) - void c_purple_savedstatus_activate "purple_savedstatus_activate" (PurpleSavedStatus *saved_status) - -cdef extern from "libpurple/proxy.h": - cdef struct PurpleProxyInfo - - ctypedef int PurpleProxyType - PurpleProxyInfo *purple_proxy_info_new() - void c_purple_proxy_info_set_type "purple_proxy_info_set_type" (PurpleProxyInfo *info, PurpleProxyType type) - void c_purple_proxy_info_set_host "purple_proxy_info_set_host" (const_char_ptr host) - void c_purple_proxy_info_set_port "purple_proxy_info_set_port" (const_char_ptr port) - - -class ProxyType: - def __init__(self): - self.PROXY_USE_GLOBAL = -1 - self.PROXY_NONE = 0 - self.PROXY_HTTP = 1 - self.PROXY_SOCKS4 = 2 - self.PROXY_SOCKS5 = 3 - self.PROXY_USE_ENVVAR = 4 - - -class StatusPrimitive: - def __init__(self): - self.STAUTS_UNSET = 0 - self.STATUS_OFFLINE = 1 - self.STATUS_AVAILABLE = 2 - self.STATUS_UNAVAILABLE = 3 - self.STATUS_INVISIBLE = 4 - self.STATUS_AWAY = 5 - self.STATUS_EXTENDED_AWAY = 6 - self.STATUS_MOBILE = 7 - self.STATUS_TUNE = 8 - self.STATUS_NUN_PRIMITIVE = 9 - -cdef class Account: - """ Account class """ - cdef PurpleAccount *__account - cdef PurpleSavedStatus *__sstatus - - def __cinit__(self, const_char_ptr username, const_char_ptr protocol_id): - self.__account = c_purple_account_new(username, protocol_id) - - def set_password(self, password): - c_purple_account_set_password(self.__account, password) - - def set_enabled(self, ui, value): - c_purple_account_set_enabled(self.__account, ui, value) - - def get_acc_username(self): - if self.__account: - return c_purple_account_get_username(self.__account) - - def get_password(self): - if self.__account: - return c_purple_account_get_password(self.__account) - - def set_status(self): - self.__sstatus = c_purple_savedstatus_new(NULL, StatusPrimitive().STATUS_AVAILABLE) - c_purple_savedstatus_activate(self.__sstatus) - diff --git a/core/buddy.pxd b/core/buddy.pxd deleted file mode 100644 index 7d1a589..0000000 --- a/core/buddy.pxd +++ /dev/null @@ -1,60 +0,0 @@ -# -# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia -# -# This file is part of python-purple. -# -# python-purple is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# python-purple is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -cdef extern from "libpurple/purple.h": - ctypedef struct PurpleBlistNode: - pass - - ctypedef struct PurpleBuddyIcon: - pass - - ctypedef struct PurplePresence: - pass - - ctypedef struct PurpleBuddy: - PurpleBlistNode node - char *name - char *alias - char *server_alias - void *proto_data - PurpleBuddyIcon *icon - PurpleAccount *account - PurplePresence *presence - - PurpleBuddy *c_purple_buddy_new "purple_buddy_new" (PurpleAccount *account, - const_char_ptr screenname, const_char_ptr alias) - - const_char_ptr c_purple_buddy_get_alias_only "purple_buddy_get_alias_only" (PurpleBuddy *buddy) - const_char_ptr c_purple_buddy_get_name "purple_buddy_get_name" (PurpleBuddy *buddy) - -cdef class Buddy: - """ Buddy class """ - cdef PurpleBuddy *__buddy - - def __cinit__(self): - self.__buddy = NULL - - def new_buddy(self, acc, const_char_ptr scr, const_char_ptr alias): - self.__buddy = c_purple_buddy_new(acc.__account, scr, alias) - - def get_alias(self): - return c_purple_buddy_get_alias_only(self.__buddy) - - def get_name(self): - return c_purple_buddy_get_name(self.__buddy) diff --git a/core/connection.pxd b/core/connection.pxd deleted file mode 100644 index 48893da..0000000 --- a/core/connection.pxd +++ /dev/null @@ -1,30 +0,0 @@ -# -# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia -# -# This file is part of python-purple. -# -# python-purple is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# python-purple is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -cdef extern from "libpurple/connection.h": - cdef struct PurpleConnection - - void connect_to_signals_for_demonstration_purposes_only() - -cdef class Connection: - """ Connection class """ - cdef PurpleConnection *__conn - - def connect(self): - connect_to_signals_for_demonstration_purposes_only() diff --git a/core/conversation.pxd b/core/conversation.pxd deleted file mode 100644 index 26c2c89..0000000 --- a/core/conversation.pxd +++ /dev/null @@ -1,111 +0,0 @@ -# -# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia -# -# This file is part of python-purple. -# -# python-purple is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# python-purple is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -cdef extern from "libpurple/conversation.h": - ctypedef struct PurpleConversation: - pass - - ctypedef struct PurpleConvIm: - pass - - ctypedef enum PurpleMessageFlags: - PURPLE_MESSAGE_SEND = 0x0001 - PURPLE_MESSAGE_RECV = 0x0002 - PURPLE_MESSAGE_SYSTEM = 0x0004 - PURPLE_MESSAGE_AUTO_RESP = 0x0008 - PURPLE_MESSAGE_ACTIVE_ONLY = 0x0010 - PURPLE_MESSAGE_NICK = 0x0020 - PURPLE_MESSAGE_NO_LOG = 0x0040 - PURPLE_MESSAGE_WHISPER = 0x0080 - PURPLE_MESSAGE_ERROR = 0x0200 - PURPLE_MESSAGE_DELAYED = 0x0400 - PURPLE_MESSAGE_RAW = 0x0800 - PURPLE_MESSAGE_IMAGES = 0x1000 - PURPLE_MESSAGE_NOTIFY = 0x2000 - PURPLE_MESSAGE_NO_LINKIFY = 0x4000 - PURPLE_MESSAGE_INVISIBLE = 0x8000 - - ctypedef struct PurpleConversationUiOps: - void (*create_conversation) (PurpleConversation *conv) - void (*destroy_conversation) (PurpleConversation *conv) - void (*write_chat) (PurpleConversation *conv, const_char_ptr who, const_char_ptr message, PurpleMessageFlags flags, time_t mtime) - void (*write_im) (PurpleConversation *conv, const_char_ptr who, const_char_ptr message, PurpleMessageFlags flags, time_t mtime) - void (*write_conv) (PurpleConversation *conv, const_char_ptr name, const_char_ptr alias, const_char_ptr message, PurpleMessageFlags flags, time_t mtime) - void (*chat_add_users) (PurpleConversation *conv, GList *cbuddies, gboolean new_arrivals) - void (*chat_rename_user) (PurpleConversation *conv, const_char_ptr old_name, const_char_ptr new_name, const_char_ptr new_alias) - void (*chat_remove_users) (PurpleConversation *conv, GList *users) - void (*chat_update_user) (PurpleConversation *conv, const_char_ptr user) - void (*present) (PurpleConversation *conv) - gboolean (*has_focus) (PurpleConversation *conv) - gboolean (*custom_smiley_add) (PurpleConversation *conv, const_char_ptr smile, gboolean remote) - void (*custom_smiley_write) (PurpleConversation *conv, const_char_ptr smile, const_guchar_ptr data, gsize size) - void (*custom_smiley_close) (PurpleConversation *conv, const_char_ptr smile) - void (*send_confirm) (PurpleConversation *conv, const_char_ptr message) - - void purple_conversations_init() - PurpleConversation *purple_conversation_new(int type, PurpleAccount *account, const_char_ptr name) - void purple_conversation_set_ui_ops(PurpleConversation *conv, PurpleConversationUiOps *ops) - PurpleConvIm *purple_conversation_get_im_data(PurpleConversation *conv) - void purple_conv_im_send(PurpleConvIm *im, const_char_ptr message) - void *purple_conversations_get_handle() - void purple_conversation_destroy(PurpleConversation *conv) - -cdef class Conversation: - """ Conversation class """ - cdef PurpleConversation *__conv - - def __cinit__(self): - purple_conversations_init() - - def conversation_new(self, type, acc, const_char_ptr name): - self.__conv = purple_conversation_new(type, acc.__account, name) - - def conversation_set_ui_ops(self): - cdef PurpleConversationUiOps c_conv_ui_ops - c_conv_ui_ops.create_conversation = NULL - c_conv_ui_ops.destroy_conversation = NULL - c_conv_ui_ops.write_chat = NULL - c_conv_ui_ops.write_im = NULL - c_conv_ui_ops.write_conv = NULL - c_conv_ui_ops.chat_add_users = NULL - c_conv_ui_ops.chat_rename_user = NULL - c_conv_ui_ops.chat_remove_users = NULL - c_conv_ui_ops.chat_update_user = NULL - c_conv_ui_ops.present = NULL - c_conv_ui_ops.has_focus = NULL - c_conv_ui_ops.custom_smiley_add = NULL - c_conv_ui_ops.custom_smiley_write = NULL - c_conv_ui_ops.custom_smiley_close = NULL - c_conv_ui_ops.send_confirm = NULL - - purple_conversation_set_ui_ops(self.__conv, &c_conv_ui_ops) - - def conversation_write(self, const_char_ptr message): - purple_conv_im_send(purple_conversation_get_im_data(self.__conv), message) - - def conversation_destroy(self): - purple_conversation_destroy(self.__conv) - - def conversation_get_handle(self): - purple_conversations_get_handle() - - def send_message(self, buddy, const_char_ptr message): - self.conversation_new(1, buddy.account, buddy.name) - self.conversation_set_ui_ops() - self.conversation_write(message) diff --git a/libpurple/account.pxd b/libpurple/account.pxd new file mode 100644 index 0000000..059ee6f --- /dev/null +++ b/libpurple/account.pxd @@ -0,0 +1,29 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/account.h": + ctypedef struct PurpleAccount: + pass + + PurpleAccount *c_purple_account_new "purple_account_new" (const_char_ptr username, const_char_ptr protocol_id) + void c_purple_account_set_password "purple_account_set_password" (PurpleAccount *account, const_char_ptr password) + const_char_ptr c_purple_account_get_password "purple_account_get_password" (PurpleAccount *account) + void c_purple_account_set_enabled "purple_account_set_enabled" (PurpleAccount *account, const_char_ptr ui, gboolean value) + const_char_ptr c_purple_account_get_username "purple_account_get_username" (PurpleAccount *account) + GList *c_purple_accounts_get_all_active "purple_accounts_get_all_active" () diff --git a/libpurple/blist.pxd b/libpurple/blist.pxd new file mode 100644 index 0000000..36077f2 --- /dev/null +++ b/libpurple/blist.pxd @@ -0,0 +1,39 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/blist.h": + ctypedef struct PurpleBlistNode: + pass + + ctypedef struct PurpleBuddy: + pass + + ctypedef struct PurpleBuddyList: + pass + + void c_purple_blist_load "purple_blist_load" () + PurpleBuddyList* c_purple_blist_new "purple_blist_new" () + + PurpleBuddy *c_purple_buddy_new "purple_buddy_new" (PurpleAccount *account, + const_char_ptr screenname, const_char_ptr alias) + const_char_ptr c_purple_buddy_get_alias_only "purple_buddy_get_alias_only" (PurpleBuddy *buddy) + const_char_ptr c_purple_buddy_get_name "purple_buddy_get_name" (PurpleBuddy *buddy) + PurpleBuddy *c_purple_find_buddy "purple_find_buddy" (PurpleAccount *account, + const_char_ptr name) + void c_purple_set_blist "purple_set_blist" (PurpleBuddyList *list) diff --git a/libpurple/buddyicon.pxd b/libpurple/buddyicon.pxd new file mode 100644 index 0000000..6c06970 --- /dev/null +++ b/libpurple/buddyicon.pxd @@ -0,0 +1,22 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/buddyicon.h": + ctypedef struct PurpleBuddyIcon: + pass diff --git a/libpurple/connection.pxd b/libpurple/connection.pxd new file mode 100644 index 0000000..5e2c99a --- /dev/null +++ b/libpurple/connection.pxd @@ -0,0 +1,24 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/connection.h": + ctypedef struct PurpleConnection: + pass + + void connect_to_signals_for_demonstration_purposes_only() diff --git a/libpurple/conversation.pxd b/libpurple/conversation.pxd new file mode 100644 index 0000000..8df130f --- /dev/null +++ b/libpurple/conversation.pxd @@ -0,0 +1,68 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/conversation.h": + ctypedef struct PurpleConversation: + pass + + ctypedef struct PurpleConvIm: + pass + + ctypedef enum PurpleMessageFlags: + PURPLE_MESSAGE_SEND = 0x0001 + PURPLE_MESSAGE_RECV = 0x0002 + PURPLE_MESSAGE_SYSTEM = 0x0004 + PURPLE_MESSAGE_AUTO_RESP = 0x0008 + PURPLE_MESSAGE_ACTIVE_ONLY = 0x0010 + PURPLE_MESSAGE_NICK = 0x0020 + PURPLE_MESSAGE_NO_LOG = 0x0040 + PURPLE_MESSAGE_WHISPER = 0x0080 + PURPLE_MESSAGE_ERROR = 0x0200 + PURPLE_MESSAGE_DELAYED = 0x0400 + PURPLE_MESSAGE_RAW = 0x0800 + PURPLE_MESSAGE_IMAGES = 0x1000 + PURPLE_MESSAGE_NOTIFY = 0x2000 + PURPLE_MESSAGE_NO_LINKIFY = 0x4000 + PURPLE_MESSAGE_INVISIBLE = 0x8000 + + ctypedef struct PurpleConversationUiOps: + void (*create_conversation) (PurpleConversation *conv) + void (*destroy_conversation) (PurpleConversation *conv) + void (*write_chat) (PurpleConversation *conv, const_char_ptr who, const_char_ptr message, PurpleMessageFlags flags, time_t mtime) + void (*write_im) (PurpleConversation *conv, const_char_ptr who, const_char_ptr message, PurpleMessageFlags flags, time_t mtime) + void (*write_conv) (PurpleConversation *conv, const_char_ptr name, const_char_ptr alias, const_char_ptr message, PurpleMessageFlags flags, time_t mtime) + void (*chat_add_users) (PurpleConversation *conv, GList *cbuddies, gboolean new_arrivals) + void (*chat_rename_user) (PurpleConversation *conv, const_char_ptr old_name, const_char_ptr new_name, const_char_ptr new_alias) + void (*chat_remove_users) (PurpleConversation *conv, GList *users) + void (*chat_update_user) (PurpleConversation *conv, const_char_ptr user) + void (*present) (PurpleConversation *conv) + gboolean (*has_focus) (PurpleConversation *conv) + gboolean (*custom_smiley_add) (PurpleConversation *conv, const_char_ptr smile, gboolean remote) + void (*custom_smiley_write) (PurpleConversation *conv, const_char_ptr smile, const_guchar_ptr data, gsize size) + void (*custom_smiley_close) (PurpleConversation *conv, const_char_ptr smile) + void (*send_confirm) (PurpleConversation *conv, const_char_ptr message) + + void purple_conversations_init() + PurpleConversation *purple_conversation_new(int type, PurpleAccount *account, const_char_ptr name) + void purple_conversation_set_ui_ops(PurpleConversation *conv, PurpleConversationUiOps *ops) + PurpleConvIm *purple_conversation_get_im_data(PurpleConversation *conv) + void purple_conv_im_send(PurpleConvIm *im, const_char_ptr message) + void *purple_conversations_get_handle() + void purple_conversation_destroy(PurpleConversation *conv) + diff --git a/libpurple/core.pxd b/libpurple/core.pxd new file mode 100644 index 0000000..10803a2 --- /dev/null +++ b/libpurple/core.pxd @@ -0,0 +1,31 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/core.h": + ctypedef struct PurpleCoreUiOps: + void (*ui_prefs_init) () + void (*debug_ui_init) () + void (*ui_init) () + void (*quit) () + GHashTable* (*get_ui_info) () + + gboolean c_purple_core_init "purple_core_init" (const_char_ptr ui_name) + void c_purple_core_quit "purple_core_quit" () + void c_purple_core_set_ui_ops "purple_core_set_ui_ops" (PurpleCoreUiOps *ops) + gboolean c_purple_core_ensure_single_instance "purple_core_ensure_single_instance" () diff --git a/libpurple/debug.pxd b/libpurple/debug.pxd new file mode 100644 index 0000000..5132501 --- /dev/null +++ b/libpurple/debug.pxd @@ -0,0 +1,30 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/debug.h": + ctypedef enum PurpleDebugLevel: + PURPLE_DEBUG_ALL + PURPLE_DEBUG_MISC + PURPLE_DEBUG_INFO + PURPLE_DEBUG_WARNING + PURPLE_DEBUG_ERROR + PURPLE_DEBUG_FATAL + + void c_purple_debug "purple_debug" (PurpleDebugLevel level, const_char_ptr category, const_char_ptr format) + void c_purple_debug_set_enabled "purple_debug_set_enabled" (gboolean debug_enabled) diff --git a/libpurple/eventloop.pxd b/libpurple/eventloop.pxd new file mode 100644 index 0000000..4e8f1d3 --- /dev/null +++ b/libpurple/eventloop.pxd @@ -0,0 +1,35 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/eventloop.h": + ctypedef enum PurpleInputCondition: + PURPLE_INPUT_READ + PURPLE_INPUT_WRITE + + ctypedef void (*PurpleInputFunction) (gpointer, gint, PurpleInputCondition) + + ctypedef struct PurpleEventLoopUiOps: + guint (*timeout_add) (guint interval, GSourceFunc function, gpointer data) + gboolean (*timeout_remove) (guint handle) + guint (*input_add) (int fd, PurpleInputCondition cond, PurpleInputFunction func, gpointer user_data) + gboolean (*input_remove) (guint handle) + int (*input_get_error) (int fd, int *error) + guint (*timeout_add_seconds)(guint interval, GSourceFunc function, gpointer data) + + void c_purple_eventloop_set_ui_ops "purple_eventloop_set_ui_ops" (PurpleEventLoopUiOps *ops) diff --git a/libpurple/plugin.pxd b/libpurple/plugin.pxd new file mode 100644 index 0000000..15f9428 --- /dev/null +++ b/libpurple/plugin.pxd @@ -0,0 +1,29 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/plugin.h": + ctypedef struct PurplePluginInfo: + char *id + char *name + + ctypedef struct PurplePlugin: + PurplePluginInfo *info + + void c_purple_plugins_add_search_path "purple_plugins_add_search_path" (const_char_ptr path) + GList *c_purple_plugins_get_protocols "purple_plugins_get_protocols" () diff --git a/libpurple/pounce.pxd b/libpurple/pounce.pxd new file mode 100644 index 0000000..2fa9d5f --- /dev/null +++ b/libpurple/pounce.pxd @@ -0,0 +1,21 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/pounce.h": + gboolean c_purple_pounces_load "purple_pounces_load" () diff --git a/libpurple/prefs.pxd b/libpurple/prefs.pxd new file mode 100644 index 0000000..ea6958f --- /dev/null +++ b/libpurple/prefs.pxd @@ -0,0 +1,24 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/prefs.h": + void c_purple_prefs_add_none "purple_prefs_add_none" (const_char_ptr name) + void c_purple_prefs_rename "purple_prefs_rename" (const_char_ptr oldname, const_char_ptr newname) + const_char_ptr c_purple_prefs_get_string "purple_prefs_get_string" (const_char_ptr name) + gboolean c_purple_prefs_load "purple_prefs_load" () diff --git a/libpurple/proxy.pxd b/libpurple/proxy.pxd new file mode 100644 index 0000000..faefbae --- /dev/null +++ b/libpurple/proxy.pxd @@ -0,0 +1,27 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/proxy.h": + cdef struct PurpleProxyInfo + + ctypedef int PurpleProxyType + PurpleProxyInfo *purple_proxy_info_new() + void c_purple_proxy_info_set_type "purple_proxy_info_set_type" (PurpleProxyInfo *info, PurpleProxyType type) + void c_purple_proxy_info_set_host "purple_proxy_info_set_host" (const_char_ptr host) + void c_purple_proxy_info_set_port "purple_proxy_info_set_port" (const_char_ptr port) diff --git a/libpurple/status.pxd b/libpurple/status.pxd new file mode 100644 index 0000000..86a6554 --- /dev/null +++ b/libpurple/status.pxd @@ -0,0 +1,29 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/status.h": + ctypedef struct PurplePresence: + pass + + ctypedef struct PurpleSavedStatus: + pass + + ctypedef int PurpleStatusPrimitive + PurpleSavedStatus *c_purple_savedstatus_new "purple_savedstatus_new" (const_char_ptr title, PurpleStatusPrimitive type) + void c_purple_savedstatus_activate "purple_savedstatus_activate" (PurpleSavedStatus *saved_status) diff --git a/libpurple/util.pxd b/libpurple/util.pxd new file mode 100644 index 0000000..612876e --- /dev/null +++ b/libpurple/util.pxd @@ -0,0 +1,21 @@ +# +# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia +# +# This file is part of python-purple. +# +# python-purple is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# python-purple is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +cdef extern from "libpurple/util.h": + void c_purple_util_set_user_dir "purple_util_set_user_dir" (char *dir) diff --git a/purple.pyx b/purple.pyx index f5b7aa1..c012dd2 100644 --- a/purple.pyx +++ b/purple.pyx @@ -19,8 +19,6 @@ include "glib.pxd" -import ecore - cdef extern from *: ctypedef char* const_char_ptr "const char *" ctypedef char* const_guchar_ptr "const guchar *" @@ -28,87 +26,27 @@ cdef extern from *: cdef extern from "time.h": ctypedef long int time_t -cdef extern from "libpurple/blist.h": - ctypedef struct PurpleBuddyList: - pass - - void c_purple_set_blist "purple_set_blist" (PurpleBuddyList *list) - void c_purple_blist_load "purple_blist_load" () - PurpleBuddyList* c_purple_blist_new "purple_blist_new" () - -cdef extern from "libpurple/core.h": - ctypedef struct PurpleCoreUiOps: - void (*ui_prefs_init) () - void (*debug_ui_init) () - void (*ui_init) () - void (*quit) () - GHashTable* (*get_ui_info) () - - gboolean c_purple_core_init "purple_core_init" (const_char_ptr ui_name) - void c_purple_core_quit "purple_core_quit" () - void c_purple_core_set_ui_ops "purple_core_set_ui_ops" (PurpleCoreUiOps *ops) - gboolean c_purple_core_ensure_single_instance "purple_core_ensure_single_instance" () - -cdef extern from "libpurple/debug.h": - ctypedef enum PurpleDebugLevel: - PURPLE_DEBUG_ALL - PURPLE_DEBUG_MISC - PURPLE_DEBUG_INFO - PURPLE_DEBUG_WARNING - PURPLE_DEBUG_ERROR - PURPLE_DEBUG_FATAL - - void c_purple_debug "purple_debug" (PurpleDebugLevel level, const_char_ptr category, const_char_ptr format) - void c_purple_debug_set_enabled "purple_debug_set_enabled" (gboolean debug_enabled) - -cdef extern from "libpurple/eventloop.h": - ctypedef enum PurpleInputCondition: - PURPLE_INPUT_READ - PURPLE_INPUT_WRITE - - ctypedef void (*PurpleInputFunction) (gpointer , gint, PurpleInputCondition) - - ctypedef struct PurpleEventLoopUiOps: - guint (*timeout_add) (guint interval, GSourceFunc function, gpointer data) - gboolean (*timeout_remove) (guint handle) - guint (*input_add) (int fd, PurpleInputCondition cond, PurpleInputFunction func, gpointer user_data) - gboolean (*input_remove) (guint handle) - int (*input_get_error) (int fd, int *error) - guint (*timeout_add_seconds)(guint interval, GSourceFunc function, gpointer data) - - void c_purple_eventloop_set_ui_ops "purple_eventloop_set_ui_ops" (PurpleEventLoopUiOps *ops) - -cdef extern from "libpurple/plugin.h": - ctypedef struct PurplePlugin - - cdef struct _PurplePluginInfo: - char *id - char *name - ctypedef _PurplePluginInfo PurplePluginInfo - - cdef struct _PurplePlugin: - PurplePluginInfo *info # The plugin information. - ctypedef _PurplePlugin PurplePlugin - - void c_purple_plugins_add_search_path "purple_plugins_add_search_path" (const_char_ptr path) - GList *c_purple_plugins_get_protocols "purple_plugins_get_protocols" () - -cdef extern from "libpurple/pounce.h": - gboolean c_purple_pounces_load "purple_pounces_load" () - -cdef extern from "libpurple/prefs.h": - void c_purple_prefs_add_none "purple_prefs_add_none" (const_char_ptr name) - void c_purple_prefs_rename "purple_prefs_rename" (const_char_ptr oldname, const_char_ptr newname) - const_char_ptr c_purple_prefs_get_string "purple_prefs_get_string" (const_char_ptr name) - gboolean c_purple_prefs_load "purple_prefs_load" () - -cdef extern from "libpurple/util.h": - void c_purple_util_set_user_dir "purple_util_set_user_dir" (char *dir) +include "libpurple/account.pxd" +include "libpurple/buddyicon.pxd" +include "libpurple/blist.pxd" +include "libpurple/connection.pxd" +include "libpurple/conversation.pxd" +include "libpurple/core.pxd" +include "libpurple/debug.pxd" +include "libpurple/eventloop.pxd" +include "libpurple/plugin.pxd" +include "libpurple/pounce.pxd" +include "libpurple/prefs.pxd" +include "libpurple/proxy.pxd" +include "libpurple/status.pxd" +include "libpurple/util.pxd" cdef extern from "c_purple.h": guint glib_input_add(gint fd, PurpleInputCondition condition, PurpleInputFunction function, gpointer data) void glib_main_loop() +import ecore + __DEFAULT_PATH__ = "/tmp" __APP_NAME__ = "carman-purple-python" __APP_VERSION__ = "0.1" @@ -240,11 +178,10 @@ cdef class Purple: conn.connect() include "core/account.pxd" -include "core/buddy.pxd" -include "glib.pxd" #include "core/blist.pxd" +include "core/buddy.pxd" include "core/connection.pxd" +include "core/conversation.pxd" #include "core/core.pxd" #include "core/idle.pxd" #include "core/pounce.pxd" -include "core/conversation.pxd"