RTB_TYPE flist_rtb_get_type(const gchar *type_str) { RTB_TYPE type = None; if(flist_str_equal(type_str, "friendrequest")) type = FriendRequest; else if(flist_str_equal(type_str, "friendadd")) type = FriendAdd; else if(flist_str_equal(type_str, "friendremove")) type = FriendRemove; else if(flist_str_equal(type_str, "note")) type = Note; else if(flist_str_equal(type_str, "bugreport")) type = BugReport; else if(flist_str_equal(type_str, "helpdeskticket")) type = HelpdeskTicket; else if(flist_str_equal(type_str, "ticketcreate")) type = TicketCreate; else if(flist_str_equal(type_str, "helpdeskreply")) type = HelpdeskReply; else if(flist_str_equal(type_str, "featurerequest")) type = FeatureRequest; else if(flist_str_equal(type_str, "comment")) type = Comment; return type; }
gchar *flist_rtb_get_comment_url(const gchar *type, gint target_id, gint comment_id) { gchar *url = NULL; if (flist_str_equal(type, "newspost")) url = g_strdup_printf(FLIST_URL_NEWSPOST_COMMENT, target_id, comment_id); else if(flist_str_equal(type, "bugreport")) url = g_strdup_printf(FLIST_URL_BUGREPORT_COMMENT, target_id, comment_id); else if(flist_str_equal(type, "changelog")) url = g_strdup_printf(FLIST_URL_CHANGELOG_COMMENT, target_id, comment_id); else if(flist_str_equal(type, "feature")) url = g_strdup_printf(FLIST_URL_FEATURE_COMMENT, target_id, comment_id); return url; }
gboolean flist_process_SFC(PurpleConnection *pc, JsonObject *root) { const gchar *action; action = json_object_get_string_member(root, "action"); g_return_val_if_fail(action, TRUE); if(flist_str_equal(action, "report")) { flist_sfc_report(pc, root); } if(flist_str_equal(action, "confirm")) { flist_sfc_confirm(pc, root); } return TRUE; }
void flist_login(PurpleAccount *pa) { PurpleConnection *pc = purple_account_get_connection(pa); FListAccount *fla; gchar **ac_split; fla = g_new0(FListAccount, 1); fla->pa = pa; fla->pc = pc; fla->all_characters = g_hash_table_new_full((GHashFunc)flist_str_hash, (GEqualFunc)flist_str_equal, g_free, (GDestroyNotify)flist_character_free); fla->rx_buf = g_malloc0(256); fla->rx_len = 0; pc->proto_data = fla; ac_split = g_strsplit(purple_account_get_username(pa), ":", 2); fla->username = g_strdup(ac_split[0]); fla->character = g_strdup(ac_split[1]); fla->password = g_strdup(purple_account_get_password(pa)); //we don't want to display the whole username:character thing if(purple_account_get_alias(pa) == NULL || flist_str_equal(purple_account_get_username(pa), purple_account_get_alias(pa))) { purple_account_set_alias(pa, fla->character); } /* login options */ fla->server_address = g_strdup(purple_account_get_string(pa, "server_address", "chat.f-list.net")); fla->server_port = purple_account_get_int(pa, "server_port", FLIST_PORT); fla->sync_bookmarks = purple_account_get_bool(pa, "sync_bookmarks", FALSE); fla->sync_friends = purple_account_get_bool(pa, "sync_friends", TRUE); fla->debug_mode = purple_account_get_bool(pa, "debug_mode", FALSE); flist_channel_subsystem_load(fla); flist_clear_filter(fla); flist_global_kinks_load(pc); flist_profile_load(pc); flist_friends_load(fla); flist_ticket_timer(fla, 0); g_strfreev(ac_split); }