Example #1
0
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
}
Example #2
0
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;
}
Example #3
0
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);
}
Example #4
0
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);
}