static void plainprpl_init(PurplePlugin *plugin) { PurpleAccountOption *option; PurpleKeyValuePair *kvp; GList *list; kvp = g_new0(PurpleKeyValuePair, 1); kvp->key = g_strdup(_("IPv4")); kvp->value = g_strdup("ipv4"); list = g_list_append(NULL, kvp); kvp = g_new0(PurpleKeyValuePair, 1); kvp->key = g_strdup(_("IPv6")); kvp->value = g_strdup("ipv6"); list = g_list_append(list, kvp); option = purple_account_option_list_new(_("Protocol"), "listen_af", list); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_string_new(_("Port"), "listen_port", PLAIN_DEFAULT_PORT_STR); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_bool_new(_("Allow messages from unknown contacts."), "allow_unknown", FALSE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_string_new(_("On Login"), "on_login",""); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_string_new(_("On Logout"), "on_logout",""); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); /* To lookup an IP address */ option = purple_account_option_string_new(_("On Resolve"), "on_lookup", ""); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); #if 0 /* When verification fails */ option = purple_account_option_string_new(_("On Invalid"), "on_invalid", ""); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); #endif #if PURPLE_MAJOR_VERSION == 2 /* * Workaround to tell the OTR plugin our maximum message size. * There is not other way for current libpurple 2.x. */ otr_set_max_message_size( PLAINPRPL_ID, MAX_MESSAGE_SIZE ); #endif }
static GList *get_protocol_options(const char *protocol_id) { GList *options = NULL; PurpleAccountOption *option; option = purple_account_option_bool_new(_("Enable HTTPS"), /* text shown to user */ TWITTER_PREF_USE_HTTPS, /* pref name */ TWITTER_PREF_USE_HTTPS_DEFAULT); /* default value */ options = g_list_append(NULL, option); if (!strcmp(protocol_id, STATUSNET_PROTOCOL_ID)) { option = purple_account_option_bool_new(_("Enable OAuth (more secure, higher rate limit)"), TWITTER_PREF_USE_OAUTH, FALSE); options = g_list_append(options, option); option = purple_account_option_string_new(_("Custom Consumer Key"), TWITTER_PREF_CONSUMER_KEY, ""); options = g_list_append(options, option); option = purple_account_option_string_new(_("Custom Consumer Secret"), TWITTER_PREF_CONSUMER_SECRET, ""); options = g_list_append(options, option); } /* Default sending im to buddy is to dm */ option = purple_account_option_bool_new(_("Default IM to buddy is a DM"), TWITTER_PREF_DEFAULT_DM, TWITTER_PREF_DEFAULT_DM_DEFAULT); options = g_list_append(options, option); /* Retrieve tweets history after login */ option = purple_account_option_bool_new(_("Retrieve tweets history after login"), TWITTER_PREF_RETRIEVE_HISTORY, TWITTER_PREF_RETRIEVE_HISTORY_DEFAULT); options = g_list_append(options, option); /* Sync presence update to twitter */ option = purple_account_option_bool_new(_("Sync availability status message to Twitter"), TWITTER_PREF_SYNC_STATUS, TWITTER_PREF_SYNC_STATUS_DEFAULT); options = g_list_append(options, option); /* Automatically generate a buddylist based on followers */ option = purple_account_option_bool_new(_("Add following as friends (NOT recommended for large follower list)"), TWITTER_PREF_GET_FRIENDS, TWITTER_PREF_GET_FRIENDS_DEFAULT); options = g_list_append(options, option); /* If adding following as friends, what should be the default alias? */ { static const gchar *alias_keys[] = { N_("<nickname> | <full name>"), N_("<nickname> only"), N_("<full name> only"), NULL }; static const gchar *alias_values[] = { TWITTER_PREF_ALIAS_FORMAT_ALL, TWITTER_PREF_ALIAS_FORMAT_NICK, TWITTER_PREF_ALIAS_FORMAT_FULLNAME, NULL }; GList *alias_options = NULL; int i; for (i = 0; alias_keys[i]; i++) { PurpleKeyValuePair *kvp = g_new0(PurpleKeyValuePair, 1); kvp->key = g_strdup(_(alias_keys[i])); kvp->value = g_strdup(alias_values[i]); alias_options = g_list_append(alias_options, kvp); } option = purple_account_option_list_new(_("Set default alias to:"), TWITTER_PREF_ALIAS_FORMAT, alias_options); options = g_list_append(options, option); } /* Add URL link to each tweet */ option = purple_account_option_bool_new(_("Add URL link to each tweet"), TWITTER_PREF_ADD_URL_TO_TWEET, TWITTER_PREF_ADD_URL_TO_TWEET_DEFAULT); options = g_list_append(options, option); /* Idle cutoff time */ option = purple_account_option_int_new(_("Buddy last tweet hours before set offline (0: Always online)"), /* text shown to user */ TWITTER_ONLINE_CUTOFF_TIME_HOURS, /* pref name */ TWITTER_ONLINE_CUTOFF_TIME_HOURS_DEFAULT); /* default value */ options = g_list_append(options, option); /* Max tweets to retrieve when retrieving timeline data */ option = purple_account_option_int_new(_("Max historical timeline tweets to retrieve (0: infinite)"), /* text shown to user */ TWITTER_PREF_HOME_TIMELINE_MAX_TWEETS, /* pref name */ TWITTER_PREF_HOME_TIMELINE_MAX_TWEETS_DEFAULT); /* default value */ options = g_list_append(options, option); /* Timeline tweets refresh interval */ option = purple_account_option_int_new(_("Refresh timeline every (min)"), /* text shown to user */ TWITTER_PREF_TIMELINE_TIMEOUT, /* pref name */ TWITTER_PREF_TIMELINE_TIMEOUT_DEFAULT); /* default value */ options = g_list_append(options, option); /* Mentions/replies tweets refresh interval */ option = purple_account_option_int_new(_("Refresh replies every (min)"), /* text shown to user */ TWITTER_PREF_REPLIES_TIMEOUT, /* pref name */ TWITTER_PREF_REPLIES_TIMEOUT_DEFAULT); /* default value */ options = g_list_append(options, option); /* Dms refresh interval */ option = purple_account_option_int_new(_("Refresh direct messages every (min)"), /* text shown to user */ TWITTER_PREF_DMS_TIMEOUT, /* pref name */ TWITTER_PREF_DMS_TIMEOUT_DEFAULT); /* default value */ options = g_list_append(options, option); if (!strcmp(protocol_id, TWITTER_PROTOCOL_ID)) { /* Lists tweets refresh interval */ option = purple_account_option_int_new(_("Refresh lists every (min)"), /* text shown to user */ TWITTER_PREF_LIST_TIMEOUT, /* pref name */ TWITTER_PREF_LIST_TIMEOUT_DEFAULT); /* default value */ options = g_list_append(options, option); } /* Friendlist refresh interval */ option = purple_account_option_int_new(_("Refresh friendlist every (min)"), /* text shown to user */ TWITTER_PREF_USER_STATUS_TIMEOUT, /* pref name */ TWITTER_PREF_USER_STATUS_TIMEOUT_DEFAULT); /* default value */ options = g_list_append(options, option); /* Search results refresh interval */ option = purple_account_option_int_new(_("Default refresh search results every (min)"), /* text shown to user */ TWITTER_PREF_SEARCH_TIMEOUT, /* pref name */ TWITTER_PREF_SEARCH_TIMEOUT_DEFAULT); /* default value */ options = g_list_append(options, option); if (!strcmp(protocol_id, STATUSNET_PROTOCOL_ID)) { option = purple_account_option_string_new(_("API Base URL"), /* text shown to user */ TWITTER_PREF_API_BASE, /* pref name */ STATUSNET_PREF_API_BASE_DEFAULT); /* default value */ options = g_list_append(options, option); } return options; }
static void init_plugin(PurplePlugin *plugin) { PurpleAccountUserSplit *split; PurpleAccountOption *option; GList *encryption_values = NULL; /* Translators: 'domain' is used here in the context of Internet domains, e.g. pidgin.im */ split = purple_account_user_split_new(_("Domain"), NULL, '@'); purple_account_user_split_set_reverse(split, FALSE); prpl_info.user_splits = g_list_append(prpl_info.user_splits, split); split = purple_account_user_split_new(_("Resource"), "", '/'); purple_account_user_split_set_reverse(split, FALSE); prpl_info.user_splits = g_list_append(prpl_info.user_splits, split); #define ADD_VALUE(list, desc, v) { \ PurpleKeyValuePair *kvp = g_new0(PurpleKeyValuePair, 1); \ kvp->key = g_strdup((desc)); \ kvp->value = g_strdup((v)); \ list = g_list_prepend(list, kvp); \ } ADD_VALUE(encryption_values, _("Require encryption"), "require_tls"); ADD_VALUE(encryption_values, _("Use encryption if available"), "opportunistic_tls"); ADD_VALUE(encryption_values, _("Use old-style SSL"), "old_ssl"); #if 0 ADD_VALUE(encryption_values, "None", "none"); #endif encryption_values = g_list_reverse(encryption_values); #undef ADD_VALUE option = purple_account_option_list_new(_("Connection security"), "connection_security", encryption_values); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_bool_new( _("Allow plaintext auth over unencrypted streams"), "auth_plain_in_clear", FALSE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_int_new(_("Connect port"), "port", 5222); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_string_new(_("Connect server"), "connect_server", NULL); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_string_new(_("File transfer proxies"), "ft_proxies", /* TODO: Is this an acceptable default? * Also, keep this in sync as they add more servers */ JABBER_DEFAULT_FT_PROXIES); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_string_new(_("BOSH URL"), "bosh_url", NULL); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); /* this should probably be part of global smiley theme settings later on, shared with MSN */ option = purple_account_option_bool_new(_("Show Custom Smileys"), "custom_smileys", TRUE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); my_protocol = plugin; purple_prefs_remove("/plugins/prpl/jabber"); purple_signal_connect(purple_get_core(), "uri-handler", plugin, PURPLE_CALLBACK(xmpp_uri_handler), NULL); }
static void init_plugin(PurplePlugin *plugin) { PurpleAccountOption *option; PurpleKeyValuePair *kvp; GList *server_list = NULL; GList *server_kv_list = NULL; GList *it; /* #ifdef DEBUG */ GList *version_kv_list = NULL; /* #endif */ server_list = server_list_build('A'); purple_prefs_remove("/plugins/prpl/qq/serverlist"); server_kv_list = NULL; kvp = g_new0(PurpleKeyValuePair, 1); kvp->key = g_strdup(_("Auto")); kvp->value = g_strdup("auto"); server_kv_list = g_list_append(server_kv_list, kvp); it = server_list; while(it) { if (it->data != NULL && strlen(it->data) > 0) { kvp = g_new0(PurpleKeyValuePair, 1); kvp->key = g_strdup(it->data); kvp->value = g_strdup(it->data); server_kv_list = g_list_append(server_kv_list, kvp); } it = it->next; } g_list_free(server_list); option = purple_account_option_list_new(_("Select Server"), "server", server_kv_list); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); kvp = g_new0(PurpleKeyValuePair, 1); kvp->key = g_strdup(_("QQ2010")); kvp->value = g_strdup("qq2010"); version_kv_list = g_list_append(version_kv_list, kvp); kvp = g_new0(PurpleKeyValuePair, 1); kvp->key = g_strdup(_("QQ2011")); kvp->value = g_strdup("qq2011"); version_kv_list = g_list_append(version_kv_list, kvp); kvp = g_new0(PurpleKeyValuePair, 1); kvp->key = g_strdup(_("QQ2012")); kvp->value = g_strdup("qq2012"); version_kv_list = g_list_append(version_kv_list, kvp); option = purple_account_option_list_new(_("Client Version"), "client_version", version_kv_list); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_bool_new(_("Connect by TCP"), "use_tcp", TRUE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_bool_new(_("Show server notice"), "show_notice", TRUE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_bool_new(_("Show server news"), "show_news", TRUE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_bool_new(_("Show chat room when msg comes"), "show_chat", TRUE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_int_new(_("Keep alive interval (seconds)"), "keep_alive_interval", 60); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_int_new(_("Update interval (seconds)"), "update_interval", 300); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); purple_prefs_add_none("/plugins/prpl/qq"); purple_prefs_add_bool("/plugins/prpl/qq/show_status_by_icon", TRUE); purple_prefs_add_bool("/plugins/prpl/qq/show_fake_video", FALSE); purple_prefs_add_bool("/plugins/prpl/qq/auto_get_authorize_info", TRUE); purple_prefs_add_int("/plugins/prpl/qq/resend_interval", 4); purple_prefs_add_int("/plugins/prpl/qq/resend_times", 10); }