2 # Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia
4 # This file is part of python-purple.
6 # python-purple is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # python-purple is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
29 cdef extern from "libpurple/util.h":
30 ctypedef struct PurpleUtilFetchUrlData:
33 ctypedef struct PurpleMenuAction:
35 signals.PurpleCallback callback
39 ctypedef char *(*PurpleInfoFieldFormatCallback)(char *field, size_t len)
41 ctypedef struct PurpleKeyValuePair:
45 PurpleMenuAction *purple_menu_action_new(char *label, \
46 signals.PurpleCallback callback, glib.gpointer data, \
48 void purple_menu_action_free(PurpleMenuAction *act)
50 void purple_util_set_current_song(char *title, char *artist, char *album)
52 char *purple_util_format_song_info(char *title, char *artist, \
53 char *album, glib.gpointer unused)
56 void purple_util_init()
57 void purple_util_uninit()
60 glib.gchar *purple_base16_encode(glib.guchar *data, glib.gsize len)
61 glib.guchar *purple_base16_decode(char *str, glib.gsize *ret_len)
62 glib.gchar *purple_base16_encode_chunked(glib.guchar *data, glib.gsize len)
65 glib.gchar *purple_base64_encode(glib.guchar *data, glib.gsize len)
66 glib.guchar *purple_base64_decode(char *str, glib.gsize *ret_len)
68 # Quoted Printable Functions
69 glib.guchar *purple_quotedp_decode(char *str, glib.gsize *ret_len)
72 char *purple_mime_decode_field(char *str)
74 # Date/Time Functions FIXME
75 #char *purple_utf8_strftime(char *format, struct tm *tm)
76 #char *purple_get_tzoff_str(struct tm *tm, glib.gboolean iso)
77 #char *purple_date_format_short(struct tm *tm)
78 #char *purple_date_format_long(struct tm *tm)
79 #char *purple_date_format_full(struct tm *tm)
80 #char *purple_time_format(struct tm *tm)
81 #time_t purple_time_build(int year, int month, int day, int hour, int min, \
83 #time_t purple_str_to_time(char *timestamp, glib.gboolean utc, \
84 #struct tm *tm, long *tz_off, char **rest);
86 # Markup Functions FIXME
87 # glib.gboolean purple_markup_find_tag(char *needle, char *haystack, \
88 # char **start, char **end, glib.GData **attributes)
89 glib.gboolean purple_markup_extract_info_field(char *str, int len, \
90 notify.PurpleNotifyUserInfo *user_info, char *start_token, \
91 int skip, char *end_token, char check_value, \
92 char *no_value_token, char *display_name, glib.gboolean is_link, \
93 char *link_prefix, PurpleInfoFieldFormatCallback format_cb)
94 void purple_markup_html_to_xhtml(char *html, char **dest_xhtml, char **dest_plain)
95 char *purple_markup_strip_html(char *str)
96 char *purple_markup_linkify(char *str)
97 char *purple_unescape_html(char *html)
98 char *purple_markup_slice(char *str, glib.guint x, glib.guint y)
99 char *purple_markup_get_tag_name(char *tag)
100 char *purple_markup_unescape_entity(char *text, int *length)
101 char *purple_markup_get_css_property(glib.gchar *style, glib.gchar *opt)
103 # Path/Filename Functions
104 glib.gchar *purple_home_dir()
105 glib.gchar *purple_user_dir()
106 void purple_util_set_user_dir(char *dir)
107 int purple_build_dir(char *path, int mode)
108 glib.gboolean purple_util_write_data_to_file(char *filename, char *data, \
110 glib.gboolean purple_util_write_data_to_file_absolute(char *filename_full, char *data, glib.gssize size)
111 xmlnode.xmlnode *purple_util_read_xml_from_file(char *filename, char *description)
112 #FILE *purple_mkstemp(char **path, glib.gboolean binary)
113 #char *purple_util_get_image_extension(glib.gconstpointer data, size_t len)
114 #char *purple_util_get_image_checksum(glib.gconstpointer image_data, size_t image_len)
115 #char *purple_util_get_image_filename(glib.gconstpointer image_data, size_t image_len)
117 # Environment Detection Functions
118 glib.gboolean purple_program_is_valid(char *program)
119 glib.gboolean purple_running_gnome()
120 glib.gboolean purple_running_kde()
121 glib.gboolean purple_running_osx()
122 char *purple_fd_get_ip(int fd)
124 # String Functions FIXME
125 char *purple_normalize(account.PurpleAccount *account, char *str)
126 char *purple_normalize_nocase(account.PurpleAccount *account, char *str)
127 glib.gboolean purple_str_has_prefix(char *s, char *p)
128 glib.gboolean purple_str_has_suffix(char *s, char *x)
129 glib.gchar *purple_strdup_withhtml(glib.gchar *src)
130 char *purple_str_add_cr(char *str)
131 void purple_str_strip_char(char *str, char thechar)
132 void purple_util_chrreplace(char *string, char delimiter, char replacement)
133 glib.gchar *purple_strreplace(char *string, char *delimiter, \
135 #char *purple_utf8_ncr_encode(char *in)
136 #char *purple_utf8_ncr_decode(char *in)
137 glib.gchar *purple_strcasereplace(char *string, char *delimiter, \
139 char *purple_strcasestr(char *haystack, char *needle)
140 #char *purple_str_size_to_units(size_t size)
141 char *purple_str_seconds_to_string(glib.guint sec)
142 char *purple_str_binary_to_ascii(unsigned char *binary, glib.guint len)
144 # URI/URL Functions FIXME
145 void purple_got_protocol_handler_uri(char *uri)
146 glib.gboolean purple_url_parse(char *url, char **ret_host, int *ret_port, \
147 char **ret_path, char **ret_user, char **ret_passwd)
149 #ctypedef void (*PurpleUtilFetchUrlCallback)( \
150 #PurpleUtilFetchUrlData *url_data, glib.gpointer user_data, \
151 #glib.gchar *url_text, glib.gsize len, glib.gchar *error_message)
153 #PurpleUtilFetchUrlData *purple_util_fetch_url_request(glib.gchar *url, \
154 # glib.gboolean full, glib.gchar *user_agent, glib.gboolean http11, \
155 # glib.gchar *request, glib.gboolean include_headers, \
156 # PurpleUtilFetchUrlCallback callback, glib.gpointer data)
157 #PurpleUtilFetchUrlData *purple_util_fetch_url_request_len(glib.gchar *url, \
158 # glib.gboolean full, glib.gchar *user_agent, glib.gboolean http11, \
159 # glib.gchar *request, glib.gboolean include_headers, \
160 # glib.gssize max_len, PurpleUtilFetchUrlCallback callback, \
161 # glib.gpointer data)
162 #void purple_util_fetch_url_cancel(PurpleUtilFetchUrlData *url_data)
163 char *purple_url_decode(char *str)
164 char *purple_url_encode(char *str)
165 glib.gboolean purple_email_is_valid(char *address)
166 glib.gboolean purple_ip_address_is_valid(char *ip)
167 glib.GList *purple_uri_list_extract_uris(glib.gchar *uri_list)
168 glib.GList *purple_uri_list_extract_filenames(glib.gchar *uri_list)
170 # UTF8 String Functions FIXME
171 glib.gchar *purple_utf8_try_convert(char *str)
172 glib.gchar *purple_utf8_salvage(char *str)
173 glib.gchar *purple_gai_strerror(glib.gint errnum)
174 int purple_utf8_strcasecmp(char *a, char *b)
175 glib.gboolean purple_utf8_has_word(char *haystack, char *needle)
176 #void purple_print_utf8_to_console(FILE *filestream, char *message)
177 glib.gboolean purple_message_meify(char *message, glib.gssize len)
178 #char *purple_text_strip_mnemonic(char *in)
179 char *purple_unescape_filename(char *str)
180 char *purple_escape_filename(char *str)
181 char *_purple_oscar_convert(char *act, char *protocol)
182 void purple_restore_default_signal_handlers()
183 glib.gchar *purple_get_host_name()