From aeaa58a97ad054ec9f60c3c6e374c9d8ffcc054c Mon Sep 17 00:00:00 2001 From: Harvie Date: Wed, 2 Jun 2010 01:28:38 +0200 Subject: [PATCH] cleaned gtk and pidgin code from autoansw.c --- plugins/pidgin-plugins/autokiss/autoansw.c | 375 ++------------------ plugins/pidgin-plugins/autokiss/autoansw.o | Bin 11368 -> 2756 bytes plugins/pidgin-plugins/autokiss/autoansw.so | Bin 19068 -> 6562 bytes 3 files changed, 27 insertions(+), 348 deletions(-) diff --git a/plugins/pidgin-plugins/autokiss/autoansw.c b/plugins/pidgin-plugins/autokiss/autoansw.c index fabd75b..0cd9a88 100755 --- a/plugins/pidgin-plugins/autokiss/autoansw.c +++ b/plugins/pidgin-plugins/autokiss/autoansw.c @@ -1,16 +1,4 @@ #define PURPLE_PLUGINS -#define PREF_PREFIX "/plugins/gtk/autoanswer" -#define PREF_MODE PREF_PREFIX "/use_funny_mode" -#define PREF_LIMIT PREF_PREFIX "/limit_of_answers" -#define PREF_ROBOT PREF_PREFIX "/unhide_robot" -#define PREF_SEARCH PREF_PREFIX "/use_all_logs" -#define PREF_DICT PREF_PREFIX "/use_dct" -#define PREF_VERBOSE PREF_PREFIX "/use_verbose_mode" -#define PREF_PROMPT PREF_PREFIX "/robots_prompt" - -#define _(String) ((const char *) (String)) - -#include /* Purple headers */ #include @@ -25,36 +13,17 @@ #include #include -/* Pidgin headers */ -#include -#include -#include -#include -#include -#include -#include -#include - - - #include #include #include +/* #include #include #include - +#include +*/ char *buff = NULL; -char *buddyname1 = NULL; -char *buddyname1_alias = NULL; -char *username_alias = NULL; -char *username = NULL; -GList *answers = NULL; -int limit_of_answers = 10; - -int list(const char *, const struct stat *, int); -static void create_send_combo_pidgin(PidginConversation *gtkconv); gint compare_str(gconstpointer a, gconstpointer b) { @@ -63,289 +32,22 @@ gint compare_str(gconstpointer a, gconstpointer b) return strcmp(a,b); } -int list (const char *name, const struct stat *status, int type) { - - GList *files = NULL; - FILE *curlog; - char curline[1024]; - char *match = NULL; - char answer[1024], *answer_body, *tmp_ptr; - char *me; //, *me_end; - int me_length; - int current_number_of_answers = g_list_length(answers); - - if (type == FTW_NS) return 0; - if (type == FTW_F) { - /* purple_debug_misc("auto-answer-history DEBUG", "%-30s\t0%3o\n", name, status->st_mode&0777); */ - files = g_list_append(files, (gpointer) name); - } -/* else { - purple_debug_misc("auto-answer-history DEBUG", "Logdir is: %-30s*\t0%3o\n", name, status->st_mode&0777); - purple_debug_misc("auto-answer-history DEBUG", "Going to find \"%s\" from buddy %s (%s)\n", buff, buddyname1, buddyname1_alias); - }*/ - - if (username_alias != NULL) me = username_alias; - else me = username; - - me_length=strlen(me); - - while(files) { - /* purple_debug_misc("auto-answer-history DEBUG", "Processing... %s\n", files->data); */ - if ((curlog = fopen(files->data, "r")) != NULL) { - while (fgets(curline, sizeof curline, curlog) != NULL) { - if ( ((strstr(curline, buff)) != NULL) && ((strstr(curline, me)) == NULL)) { - match = strstr(curline, buff); - /* purple_debug_misc("auto-answer-history DEBUG", "FOUND in %s, line %d, looking for answer...\n", files->data, counter); */ - while (fgets(answer, sizeof answer, curlog) !=NULL ) { - if ((strstr(answer, me)) != NULL) { - if (purple_markup_strip_html(answer) != NULL) { - if (current_number_of_answers>limit_of_answers) - { fclose(curlog); - return 0; - } - /* check if such answer isn't already in a GList */ - - answer_body=purple_markup_strip_html(answer); - tmp_ptr=strchr(answer_body,':')+1; tmp_ptr=strchr(tmp_ptr,':')+1; - tmp_ptr=strchr(tmp_ptr,':')+1; /*skip 3 semi-colons in the preface*/ - - answer_body=strstr(answer_body,me)+me_length+1; /*skip preface*/ - if (tmp_ptr > answer_body) answer_body = tmp_ptr; /* choose the better method of preface skip*/ - - if (!g_list_find_custom(answers,answer_body,compare_str)) - { g_list_append (answers, answer_body); - current_number_of_answers++; - } - - } - break; - } - } - } - } - } - fclose(curlog); - files = files->next; - } - return 0; -} - -static void -send_combo_cb(GtkWidget *widget, PidginConversation *gtkconv) -{ /* A button to send item from combobox was pressed */ - GtkIMHtmlOptions options; - GtkWidget *send_combo; - gchar *text, *pref_prompt; - gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry)); -/* if (purple_prefs_get_bool(PREF_ROBOT)) - {*/ /*gtk_imhtml_append_text(GTK_IMHTML(gtkconv->entry), _("The possible answer is:"), options);*/ - pref_prompt=purple_prefs_get_string(PREF_PROMPT); - if (strlen(pref_prompt)>0) - { gtk_imhtml_append_text(GTK_IMHTML(gtkconv->entry), pref_prompt, options); - gtk_imhtml_append_text(GTK_IMHTML(gtkconv->entry), "", options); - } -// purple_debug_misc("auto-answer-history DEBUG", "the prompt was \"%d\"", strlen(pref_prompt)); - -/* }*/ - send_combo = g_object_get_data(G_OBJECT(gtkconv->toolbar), "send_combo"); - text=gtk_combo_box_get_active_text(GTK_COMBO_BOX(send_combo)); - gtk_imhtml_append_text(GTK_IMHTML(gtkconv->entry), text, options); - g_free(text); - g_signal_emit_by_name(gtkconv->entry, "message_send"); -} static void received_im_msg_cb(PurpleAccount *account, char *who, char *buffer, PurpleConversation *conv, PurpleMessageFlags flags, void *data) { - const char *name; - char* logdir; - char* foundmessage = NULL; - gchar * pref_prompt; - int number_of_lines; - - GtkWidget *send_combo = NULL; - PurpleBuddy *b; - GtkIMHtmlOptions options; - PidginConversation *gtkconv = NULL; - - - limit_of_answers=purple_prefs_get_int(PREF_LIMIT); /* A workaround to avoid skipping of the first message as a result on NULL-conv: */ if (conv == NULL) conv=purple_conversation_new(PURPLE_CONV_TYPE_IM, account, who); - - buff = purple_markup_strip_html(buffer); printf("\nHarvie received 1: %s\n", buffer); - purple_conv_im_send(purple_conversation_get_im_data(conv), ":-*"); - - purple_debug_info("auto-answer-history DEBUG", "buff: %s\n", buff); - username = purple_account_get_username(account); - purple_debug_info("auto-answer-history DEBUG", "username: %s\n", username); - username_alias = purple_account_get_alias(account); - buddyname1 = purple_conversation_get_name(conv); /** this shoud work fine, at least with ICQ **/ - purple_debug_info("auto-answer-history DEBUG", "buddyname: %s\n", buddyname1); - b = purple_find_buddy(account, buddyname1); - buddyname1_alias = purple_buddy_get_alias_only(b); - - name = purple_conversation_get_name(conv); - logdir = purple_log_get_log_dir(PURPLE_LOG_IM, name, account); - /* purple_debug_info("auto-answer-history DEBUG", "LogDir: %s\n", logdir); */ - - answers=g_list_alloc(); - ftw(logdir, list, 1); - purple_debug_misc("auto-answer-history DEBUG", "Number of answers found is: %d\n", (g_list_length(answers)-1)); - - if (g_list_length(answers) == 1) return; /* exit if no possible answers found */ - - gtkconv = PIDGIN_CONVERSATION(conv); - - if (purple_prefs_get_bool(PREF_VERBOSE)) gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), "
", options); - - send_combo = g_object_get_data(G_OBJECT(gtkconv->toolbar), "send_combo"); - if (send_combo == NULL) { - create_send_combo_pidgin(gtkconv); - send_combo = g_object_get_data(G_OBJECT(gtkconv->toolbar), "send_combo"); - } - else { /* clear combo box */ - number_of_lines = gtk_tree_model_iter_n_children(gtk_combo_box_get_model(send_combo), NULL); - for(; number_of_lines; number_of_lines--) gtk_combo_box_remove_text(send_combo, number_of_lines-1); - purple_debug_misc("auto-answer-history DEBUG", "number of lines to delete:%d\n", number_of_lines); - } - - while (answers) { - if (answers->data != 0) { - g_strchomp(answers->data); - foundmessage = (char*) answers->data; - - if (purple_prefs_get_bool(PREF_VERBOSE)) /* Flood all possible answers into my conversation window */ - { - - pref_prompt=purple_prefs_get_string(PREF_PROMPT); - if (strlen(pref_prompt)>0) - { gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), pref_prompt, options); - gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), "", options); - } - - - gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), foundmessage, options); - gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), "
", options); - } - /* A more flexible (than Copy/Paste) way to select answer: */ - gtk_combo_box_append_text(send_combo, foundmessage); - - } - answers = answers->next; - } - number_of_lines = gtk_tree_model_iter_n_children(gtk_combo_box_get_model(send_combo), NULL); - gtk_combo_box_set_active(send_combo, rand()%number_of_lines); - - - - if (purple_prefs_get_bool(PREF_VERBOSE)) gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), "
", options); - - - if (purple_prefs_get_bool(PREF_MODE)) - { - - /* If "Funny Mode" is ON - going to autosend an answer */ - foundmessage=gtk_combo_box_get_active_text(send_combo); - purple_conv_im_send(PURPLE_CONV_IM(conv), foundmessage); - gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry)); - g_free(foundmessage); - } -} - -static GtkWidget * -get_plugin_pref_frame(PurplePlugin *plugin) { - - GtkWidget *vbox = NULL; - GtkWidget *frame = NULL; - GtkWidget *auto_option = NULL; - GtkWidget *limit_option = NULL; - GtkWidget *verbose_option = NULL; - GtkWidget *prompt_option = NULL; - - vbox = gtk_vbox_new(TRUE, PIDGIN_HIG_BOX_SPACE); + purple_conv_im_send(purple_conversation_get_im_data(conv), ":-*"); - frame = pidgin_make_frame(vbox, _("Auto-answer options")); - limit_option = pidgin_prefs_labeled_spin_button (frame, _("Maximum answers to find"), PREF_LIMIT, 5, 100, NULL); - auto_option = pidgin_prefs_checkbox(_("Send automatically"), PREF_MODE, frame); - verbose_option = pidgin_prefs_checkbox(_("Use verbose mode"), PREF_VERBOSE, frame); - prompt_option = pidgin_prefs_labeled_entry(frame, _("Preface robot's answer with"), PREF_PROMPT, NULL); - - gtk_widget_show_all(vbox); - - return vbox; -} - - -static PurplePluginUiInfo ui_info = { - get_plugin_pref_frame, - 0, /* page_num (Reserved) */ - NULL, /* frame (Reserved) */ - - /* padding */ - NULL, - NULL, - NULL, - NULL -}; - - -static void -create_send_combo_pidgin(PidginConversation *gtkconv) -{ - GtkWidget *send_combo, *say_button; - GtkRequisition greq; -/* purple_debug_misc("auto-answer-history DEBUG", "combo created\n");*/ - - send_combo = gtk_combo_box_new_text(); - gtk_combo_box_set_focus_on_click(send_combo, FALSE); - - gtk_box_pack_end(GTK_BOX(gtkconv->toolbar), send_combo, TRUE, TRUE, 0); - gtk_widget_show(send_combo); - - gtk_widget_size_request(send_combo, &greq); - gtk_widget_set_size_request (send_combo, greq.width, greq.height); - - g_object_set_data(G_OBJECT(gtkconv->toolbar), "send_combo", send_combo); - - - - say_button = gtk_button_new_with_mnemonic(_("Say")); - gtk_button_set_focus_on_click(say_button, FALSE); - gtk_button_set_relief(say_button, GTK_RELIEF_NONE); - g_signal_connect(G_OBJECT(say_button), "clicked", - G_CALLBACK(send_combo_cb), gtkconv); - gtk_box_pack_end(GTK_BOX(gtkconv->toolbar), say_button, FALSE, FALSE, 0); - gtk_widget_show(say_button); - - g_object_set_data(G_OBJECT(gtkconv->toolbar), "say_button", say_button); - - } -static void -remove_send_combo_pidgin(PidginConversation *gtkconv) -{ - GtkWidget *send_combo = NULL, *say_button = NULL; - - send_combo = g_object_get_data(G_OBJECT(gtkconv->toolbar), "send_combo"); - if (send_combo != NULL) { - gtk_widget_destroy(send_combo); - } - - say_button = g_object_get_data(G_OBJECT(gtkconv->toolbar), "say_button"); - if (say_button != NULL) { - gtk_widget_destroy(say_button); - } -} - - /* Plugin Routine */ static gboolean @@ -361,73 +63,50 @@ plugin_load(PurplePlugin *plugin) static gboolean plugin_unload(PurplePlugin *plugin) { - GList *convs = purple_get_conversations(); - - while (convs) { - PurpleConversation *conv = (PurpleConversation *)convs->data; - - /* Remove Send combo */ - if (PIDGIN_IS_PIDGIN_CONVERSATION(conv)) { - remove_send_combo_pidgin(PIDGIN_CONVERSATION(conv)); - } - - convs = convs->next; - } - return TRUE; } -static PurplePluginInfo info = -{ - PURPLE_PLUGIN_MAGIC, - PURPLE_MAJOR_VERSION, - PURPLE_MINOR_VERSION, - PURPLE_PLUGIN_STANDARD, /**< type */ - PIDGIN_PLUGIN_TYPE, /**< ui_requirement */ - 0, /**< flags */ - NULL, /**< dependencies */ - PURPLE_PRIORITY_DEFAULT, /**< priority */ +static PurplePluginInfo info = { + PURPLE_PLUGIN_MAGIC, + PURPLE_MAJOR_VERSION, + PURPLE_MINOR_VERSION, + PURPLE_PLUGIN_STANDARD, + NULL, + 0, + NULL, + PURPLE_PRIORITY_DEFAULT, - "pidgin-autokiss", /**< id */ + "core-autokiss", /**< id */ "AutoKiss", /**< name */ "0.1", /**< version */ /** summary */ "Automatically answering based on regexes.", /** description */ - "Automatically answering based on regexp", + "Automatically answering based on regexpppppppppppppppp", "Harvie ", /**< author */ "http://sourceforge.net/projects/pidgin-autoansw", /**< homepage */ plugin_load, /**< load */ plugin_unload, /**< unload */ - NULL, /**< destroy */ - &ui_info, /**< ui_info */ - NULL, /**< extra_info */ - NULL, /**< prefs_info */ - NULL, /* this tells libpurple the address of the function to call - to get the list of plugin actions. */ - - /* padding */ - NULL, - NULL, - NULL, - NULL + NULL, + + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }; static void init_plugin(PurplePlugin *plugin) { - purple_prefs_add_none(PREF_PREFIX); - purple_prefs_add_bool(PREF_MODE, FALSE); - purple_prefs_add_bool(PREF_VERBOSE, FALSE); - purple_prefs_add_string(PREF_PROMPT, "The possible answer is:"); - - /** TODO: Add more search options and uninformative words dictionary support**/ - - purple_prefs_add_bool(PREF_SEARCH, FALSE); - purple_prefs_add_bool(PREF_DICT, FALSE); } PURPLE_INIT_PLUGIN(autoanswer, init_plugin, info) + + diff --git a/plugins/pidgin-plugins/autokiss/autoansw.o b/plugins/pidgin-plugins/autokiss/autoansw.o index 6661d034861541c1745db2cc6d7ca6ac2ad9526c..74d357485824b4cfa9c364aac870ced1e7815aed 100644 GIT binary patch literal 2756 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 diff --git a/plugins/pidgin-plugins/autokiss/autoansw.so b/plugins/pidgin-plugins/autokiss/autoansw.so index f53518ee6d9428079b395a6f74e73839d4e47eb4..765a7043eba89d872b689fbb7a897b9c6d21ddc0 100755 GIT binary patch literal 6562 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 n<^KXfDTh&yW3CM