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); }
/** * 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; }