Example #1
0
static void action_show_account_info(PurplePluginAction *action)
{
	PurpleConnection *gc = (PurpleConnection *) action->context;
	GString *info;
	gchar *province, *city;

	fetion_account *ac = purple_connection_get_protocol_data(gc);
	User *user = ac->user;

	info = g_string_new("<html><body>");

	province = get_province_name(user->province);
	city     = get_city_name(user->province, user->city);
	g_string_append_printf(info, _("<b>Last Login Time</b>: %s<br>\n"), user->lastLoginTime);
	g_string_append_printf(info, _("<b>Last Login IP</b>: %s<br>\n"), user->lastLoginIp);
	g_string_append_printf(info, _("<b>Public IP</b>: %s<br>\n"), user->publicIp);
	g_string_append(info, "<hr>");
	g_string_append_printf(info, _("<b>Fetion Number</b>: %s<br>\n"), user->sId);
	g_string_append_printf(info, _("<b>Mobile Number</b>: %s<br>\n"), user->mobileno);
	g_string_append_printf(info, _("<b>Login Time</b>: %s<br>\n"), user->lastLoginTime);
	g_string_append_printf(info, _("<b>NickName</b>: %s<br>\n"), user->nickname);
	g_string_append_printf(info, _("<b>Signature</b>: %s<br>\n"), user->impression);
	g_string_append_printf(info, _("<b>Province</b>: %s<br>\n"), province);
	g_string_append_printf(info, _("<b>City</b>: %s<br>\n"), city);
	g_string_append(info, "<hr>");
	g_string_append_printf(info, _("<b>SMS Sent Today</b>: %d<br>\n"), user->smsDayCount);
	g_string_append_printf(info, _("<b>SMS Sent This Month</b>: %d<br>\n"), user->smsMonthCount);
	g_string_append_printf(info, _("<b>SMS Limit Today</b>: %d<br>\n"), user->smsDayLimit);
	g_string_append_printf(info, _("<b>SMS Limit This Month</b>: %d<br>\n"), user->smsMonthLimit);


	g_string_append(info, "</body></html>");

	purple_notify_formatted(gc, NULL, _("Account Information"), NULL, info->str, NULL, NULL);

	g_string_free(info, TRUE);
	g_free(province); g_free(city);
}
Example #2
0
/**
 * Callback function for the get_info transaction.
 */
static gint
get_info_cb(fetion_account *ac, const gchar *sipmsg, fetion_transaction *trans)
{
    HybridNotifyInfo *info;
    HybridBuddy      *hybrid_buddy;
    fetion_buddy     *buddy;
    gchar            *province;
    gchar            *city;
    GdkPixbuf        *pixbuf = NULL;

    //info = (HybridInfo*)trans->data;

    if (!(buddy = fetion_buddy_parse_info(ac, trans->userid, sipmsg))) {
        /* TODO show an error msg in the get-info box. */
        return HYBRID_ERROR;
    }

    province = buddy->province && *(buddy->province) != '\0' ?
                get_province_name(buddy->province) : g_strdup(_("Unknown"));

    city = buddy->city && *(buddy->city) != '\0' ?
                get_city_name(buddy->province, buddy->city) :
                g_strdup(_("Unknown"));

    info = hybrid_notify_info_create();

    hybrid_info_add_pair(info, _("Nickname"), buddy->nickname);
    if (*buddy->localname) {
        hybrid_info_add_pair(info, _("Localname"), buddy->localname);
    }
    hybrid_info_add_pair(info, _("Fetion-no"), buddy->sid);
    if (buddy->mobileno && *buddy->mobileno) {
        hybrid_info_add_pair(info, _("Mobile-no"), buddy->mobileno);
    }
    hybrid_info_add_pair(info, _("Gender"),
        buddy->gender == 1 ? _("Male") :
        (buddy->gender == 2 ? _("Female") : _("Secrecy")));

    if (*buddy->mood_phrase) {
        hybrid_info_add_pair(info, _("Mood"), buddy->mood_phrase);
    }

    hybrid_info_add_pair(info, _("Country"),
            !buddy->country || g_strcmp0(buddy->country, "CN") == 0 || !*buddy->country ?
            "China" : buddy->country);
    hybrid_info_add_pair(info, _("Province"), province);
    hybrid_info_add_pair(info, _("City"), city);

    if ((hybrid_buddy = hybrid_blist_find_buddy(ac->account, buddy->userid))) {

        if (hybrid_buddy->icon_data) {
            pixbuf = hybrid_create_pixbuf(hybrid_buddy->icon_data,
                    hybrid_buddy->icon_data_length);
            hybrid_info_add_pixbuf_pair(info, _("Photo"), pixbuf);

            if (pixbuf) {
                g_object_unref(pixbuf);
            }
        }
    }

    g_free(province);
    g_free(city);

    hybrid_info_notify(ac->account, info, buddy->userid);

    hybrid_notify_info_destroy(info);

    return HYBRID_OK;
}