⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gg.c

📁 Linux下的多协议即时通讯程序源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
	g_free(token->data);	g_free(token);}/* }}} *//* *//* static void ggp_register_user_dialog(PurpleConnection *gc) {{{ */static void ggp_register_user_dialog(PurpleConnection *gc){	PurpleAccount *account;	PurpleRequestFields *fields;	PurpleRequestFieldGroup *group;	PurpleRequestField *field;	GGPInfo *info = gc->proto_data;	GGPToken *token = info->token;	account = purple_connection_get_account(gc);	fields = purple_request_fields_new();	group = purple_request_field_group_new(NULL);	purple_request_fields_add_group(fields, group);	field = purple_request_field_string_new("email",			_("E-mail"), "", FALSE);	purple_request_field_string_set_masked(field, FALSE);	purple_request_field_group_add_field(group, field);	field = purple_request_field_string_new("password1",			_("Password"), "", FALSE);	purple_request_field_string_set_masked(field, TRUE);	purple_request_field_group_add_field(group, field);	field = purple_request_field_string_new("password2",			_("Password (retype)"), "", FALSE);	purple_request_field_string_set_masked(field, TRUE);	purple_request_field_group_add_field(group, field);	field = purple_request_field_string_new("token",			_("Enter current token"), "", FALSE);	purple_request_field_string_set_masked(field, FALSE);	purple_request_field_group_add_field(group, field);	/* original size: 60x24 */	field = purple_request_field_image_new("token_img",			_("Current token"), token->data, token->size);	purple_request_field_group_add_field(group, field);	purple_request_fields(account,		_("Register New Gadu-Gadu Account"),		_("Register New Gadu-Gadu Account"),		_("Please, fill in the following fields"),		fields,		_("OK"), G_CALLBACK(ggp_callback_register_account_ok),		_("Cancel"), G_CALLBACK(ggp_callback_register_account_cancel),		purple_connection_get_account(gc), NULL, NULL,		gc);}/* }}} *//* ----- PUBLIC DIRECTORY SEARCH ---------------------------------------- *//* *//* static void ggp_callback_show_next(PurpleConnection *gc, GList *row, gpointer user_data) {{{ */static void ggp_callback_show_next(PurpleConnection *gc, GList *row, gpointer user_data){	GGPInfo *info = gc->proto_data;	GGPSearchForm *form = user_data;	guint32 seq;	g_free(form->offset);	form->offset = g_strdup(form->last_uin);	ggp_search_remove(info->searches, form->seq);	seq = ggp_search_start(gc, form);	ggp_search_add(info->searches, seq, form);}/* }}} *//* *//* static void ggp_callback_add_buddy(PurpleConnection *gc, GList *row, gpointer user_data) {{{ */static void ggp_callback_add_buddy(PurpleConnection *gc, GList *row, gpointer user_data){	purple_blist_request_add_buddy(purple_connection_get_account(gc),				     g_list_nth_data(row, 0), NULL, NULL);}/* }}} *//* *//* static void ggp_callback_im(PurpleConnection *gc, GList *row, gpointer user_data) {{{ */static void ggp_callback_im(PurpleConnection *gc, GList *row, gpointer user_data){	PurpleAccount *account;	PurpleConversation *conv;	char *name;	account = purple_connection_get_account(gc);	name = g_list_nth_data(row, 0);	conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, name);	purple_conversation_present(conv);}/* }}} *//* *//* static void ggp_callback_find_buddies(PurpleConnection *gc, PurpleRequestFields *fields) {{{ */static void ggp_callback_find_buddies(PurpleConnection *gc, PurpleRequestFields *fields){	GGPInfo *info = gc->proto_data;	GGPSearchForm *form;	guint32 seq;	form = ggp_search_form_new(GGP_SEARCH_TYPE_FULL);	form->user_data = info;	form->lastname  = charset_convert(				purple_request_fields_get_string(fields, "lastname"),				"UTF-8", "CP1250");	form->firstname = charset_convert(				purple_request_fields_get_string(fields, "firstname"),				"UTF-8", "CP1250");	form->nickname  = charset_convert(				purple_request_fields_get_string(fields, "nickname"),				"UTF-8", "CP1250");	form->city      = charset_convert(				purple_request_fields_get_string(fields, "city"),				"UTF-8", "CP1250");	form->birthyear = charset_convert(				purple_request_fields_get_string(fields, "year"),				"UTF-8", "CP1250");	switch (purple_request_fields_get_choice(fields, "gender")) {		case 1:			form->gender = g_strdup(GG_PUBDIR50_GENDER_MALE);			break;		case 2:			form->gender = g_strdup(GG_PUBDIR50_GENDER_FEMALE);			break;		default:			form->gender = NULL;			break;	}	form->active = purple_request_fields_get_bool(fields, "active")				   ? g_strdup(GG_PUBDIR50_ACTIVE_TRUE) : NULL;	form->offset = g_strdup("0");	seq = ggp_search_start(gc, form);	ggp_search_add(info->searches, seq, form);}/* }}} *//* *//* static void ggp_find_buddies(PurplePluginAction *action) {{{ */static void ggp_find_buddies(PurplePluginAction *action){	PurpleConnection *gc = (PurpleConnection *)action->context;	PurpleRequestFields *fields;	PurpleRequestFieldGroup *group;	PurpleRequestField *field;	fields = purple_request_fields_new();	group = purple_request_field_group_new(NULL);	purple_request_fields_add_group(fields, group);	field = purple_request_field_string_new("lastname",			_("Last name"), NULL, FALSE);	purple_request_field_string_set_masked(field, FALSE);	purple_request_field_group_add_field(group, field);	field = purple_request_field_string_new("firstname",			_("First name"), NULL, FALSE);	purple_request_field_string_set_masked(field, FALSE);	purple_request_field_group_add_field(group, field);	field = purple_request_field_string_new("nickname",			_("Nickname"), NULL, FALSE);	purple_request_field_string_set_masked(field, FALSE);	purple_request_field_group_add_field(group, field);	field = purple_request_field_string_new("city",			_("City"), NULL, FALSE);	purple_request_field_string_set_masked(field, FALSE);	purple_request_field_group_add_field(group, field);	field = purple_request_field_string_new("year",			_("Year of birth"), NULL, FALSE);	purple_request_field_group_add_field(group, field);	field = purple_request_field_choice_new("gender", _("Gender"), 0);	purple_request_field_choice_add(field, _("Male or female"));	purple_request_field_choice_add(field, _("Male"));	purple_request_field_choice_add(field, _("Female"));	purple_request_field_group_add_field(group, field);	field = purple_request_field_bool_new("active",			_("Only online"), FALSE);	purple_request_field_group_add_field(group, field);	purple_request_fields(gc,		_("Find buddies"),		_("Find buddies"),		_("Please, enter your search criteria below"),		fields,		_("OK"), G_CALLBACK(ggp_callback_find_buddies),		_("Cancel"), NULL,		purple_connection_get_account(gc), NULL, NULL,		gc);}/* }}} *//* ----- CHANGE PASSWORD ------------------------------------------------ *//* *//* static void ggp_callback_change_passwd_ok(PurpleConnection *gc, PurpleRequestFields *fields) {{{ */static void ggp_callback_change_passwd_ok(PurpleConnection *gc, PurpleRequestFields *fields){	PurpleAccount *account;	GGPInfo *info = gc->proto_data;	struct gg_http *h;	gchar *cur, *p1, *p2, *t;	cur = charset_convert(			purple_request_fields_get_string(fields, "password_cur"),			"UTF-8", "CP1250");	p1  = charset_convert(			purple_request_fields_get_string(fields, "password1"),			"UTF-8", "CP1250");	p2  = charset_convert(			purple_request_fields_get_string(fields, "password2"),			"UTF-8", "CP1250");	t   = charset_convert(			purple_request_fields_get_string(fields, "token"),			"UTF-8", "CP1250");	account = purple_connection_get_account(gc);	if (cur == NULL || p1 == NULL || p2 == NULL || t == NULL ||	    *cur == '\0' || *p1 == '\0' || *p2 == '\0' || *t == '\0') {		purple_notify_error(account, NULL, _("Fill in the fields."), NULL);		goto exit_err;	}	if (g_utf8_collate(p1, p2) != 0) {		purple_notify_error(account, NULL,				  _("New passwords do not match."), NULL);		goto exit_err;	}	if (g_utf8_collate(cur, purple_account_get_password(account)) != 0) {		purple_notify_error(account, NULL,			_("Your current password is different from the one that you specified."),			NULL);		goto exit_err;	}	purple_debug_info("gg", "Changing password\n");	/* XXX: this e-mail should be a pref... */	h = gg_change_passwd4(ggp_get_uin(account),			      "user@example.net", purple_account_get_password(account),			      p1, info->token->id, t, 0);	if (h == NULL) {		purple_notify_error(account, NULL,			_("Unable to change password. Error occurred.\n"),			NULL);		goto exit_err;	}	purple_account_set_password(account, p1);	gg_change_passwd_free(h);	purple_notify_info(account, _("Change password for the Gadu-Gadu account"),			 _("Password was changed successfully!"), NULL);exit_err:	g_free(cur);	g_free(p1);	g_free(p2);	g_free(t);	g_free(info->token->id);	g_free(info->token->data);	g_free(info->token);}/* }}} *//* *//* static void ggp_change_passwd_dialog(PurpleConnection *gc) {{{ */static void ggp_change_passwd_dialog(PurpleConnection *gc){	PurpleRequestFields *fields;	PurpleRequestFieldGroup *group;	PurpleRequestField *field;	GGPInfo *info = gc->proto_data;	GGPToken *token = info->token;	char *msg;	fields = purple_request_fields_new();	group = purple_request_field_group_new(NULL);	purple_request_fields_add_group(fields, group);	field = purple_request_field_string_new("password_cur",			_("Current password"), "", FALSE);	purple_request_field_string_set_masked(field, TRUE);	purple_request_field_group_add_field(group, field);	field = purple_request_field_string_new("password1",			_("Password"), "", FALSE);	purple_request_field_string_set_masked(field, TRUE);	purple_request_field_group_add_field(group, field);	field = purple_request_field_string_new("password2",			_("Password (retype)"), "", FALSE);	purple_request_field_string_set_masked(field, TRUE);	purple_request_field_group_add_field(group, field);	field = purple_request_field_string_new("token",			_("Enter current token"), "", FALSE);	purple_request_field_string_set_masked(field, FALSE);	purple_request_field_group_add_field(group, field);	/* original size: 60x24 */	field = purple_request_field_image_new("token_img",			_("Current token"), token->data, token->size);	purple_request_field_group_add_field(group, field);	msg = g_strdup_printf("%s %d",		_("Please, enter your current password and your new password for UIN: "),		ggp_get_uin(purple_connection_get_account(gc)));	purple_request_fields(gc,		_("Change Gadu-Gadu Password"),		_("Change Gadu-Gadu Password"),		msg,		fields, _("OK"), G_CALLBACK(ggp_callback_change_passwd_ok),		_("Cancel"), NULL,		purple_connection_get_account(gc), NULL, NULL,		gc);	g_free(msg);}/* }}} *//* *//* static void ggp_change_passwd(PurplePluginAction *action) {{{ */static void ggp_change_passwd(PurplePluginAction *action){	PurpleConnection *gc = (PurpleConnection *)action->context;	ggp_token_request(gc, ggp_change_passwd_dialog);}/* }}} *//* ----- CONFERENCES ---------------------------------------------------- *//* *//* static void ggp_callback_add_to_chat_ok(PurpleConnection *gc, PurpleRequestFields *fields) {{{ */static void ggp_callback_add_to_chat_ok(PurpleConnection *gc, PurpleRequestFields *fields){	GGPInfo *info = gc->proto_data;	PurpleRequestField *field;	const GList *sel;	field = purple_request_fields_get_field(fields, "name");	sel = purple_request_field_list_get_selected(field);	ggp_confer_participants_add_uin(gc, sel->data, info->tmp_buddy);	info->tmp_buddy = 0;}/* }}} *//* *//* static void ggp_bmenu_add_to_chat(PurpleBlistNode *node, gpointer ignored) {{{ */static void ggp_bmenu_add_to_chat(PurpleBlistNode *node, gpointer ignored){	PurpleBuddy *buddy;	PurpleConnection *gc;	GGPInfo *info;	PurpleRequestFields *fields;	PurpleRequestFieldGroup *group;	PurpleRequestField *field;	GList *l;	gchar *msg;	buddy = (PurpleBuddy *)node;	gc = purple_account_get_connection(purple_buddy_get_account(buddy));	info = gc->proto_data;	/* TODO: It tmp_buddy != 0 then stop! */	info->tmp_buddy = ggp_str_to_uin(purple_buddy_get_name(buddy));	fields = purple_request_fields_new();	group = purple_request_field_group_new(NULL);	purple_request_fields_add_group(fields, group);	field = purple_request_field_list_new("name", "Chat name");	for (l = info->chats; l != NULL; l = l->next) {		GGPChat *chat = l->data;		purple_request_field_list_add(field, g_strdup(chat->name),					    g_strdup(chat->name));	}	purple_request_field_group_add_field(group, field);	msg = g_strdup_printf(_("Select a chat for buddy: %s"),			      purple_buddy_get_alias(buddy));	purple_request_fields(gc,			_("Add to chat..."),			_("Add to chat..."),			msg,			fields,			_("Add"), G_CALLBACK(ggp_callback_add_to_chat_ok),			_("Cancel"), NULL,			purple_connection_get_account(gc), NULL, NULL,			  			gc);	g_free(msg);}/* }}} *//* ----- BLOCK BUDDIES -------------------------------------------------- *//*

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -