亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qq.c

?? Linux下的多協議即時通訊程序源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
}static void _qq_menu_change_password(PurplePluginAction *action){	purple_notify_uri(NULL, "https://password.qq.com");}/* remove a buddy from my list and remove myself from his list *//* TODO: re-enable thisstatic void _qq_menu_block_buddy(PurpleBlistNode * node){	guint32 uid;	gc_and_uid *g;	PurpleBuddy *buddy;	PurpleConnection *gc;	const gchar *who;	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));	buddy = (PurpleBuddy *) node;	gc = purple_account_get_connection(buddy->account);	who = buddy->name;	g_return_if_fail(who != NULL);	uid = purple_name_to_uid(who);	g_return_if_fail(uid > 0);	g = g_new0(gc_and_uid, 1);	g->gc = gc;	g->uid = uid;	purple_request_action(gc, _("Block Buddy"),			    _("Are you sure to block this buddy?"), NULL,			    1, g, 2,			    _("Cancel"),			    G_CALLBACK(qq_do_nothing_with_gc_and_uid),			    _("Block"), G_CALLBACK(qq_block_buddy_with_gc_and_uid));}*//* show a brief summary of what we get from login packet */static void _qq_menu_show_login_info(PurplePluginAction *action){	PurpleConnection *gc = (PurpleConnection *) action->context;	qq_data *qd;	GString *info;	qd = (qq_data *) gc->proto_data;	info = g_string_new("<html><body>\n");	g_string_append_printf(info, _("<b>Current Online</b>: %d<br>\n"), qd->all_online);	g_string_append_printf(info, _("<b>Last Refresh</b>: %s<br>\n"), ctime(&qd->last_get_online));	g_string_append(info, "<hr>\n");	g_string_append_printf(info, _("<b>Connection Mode</b>: %s<br>\n"), qd->use_tcp ? "TCP" : "UDP");	g_string_append_printf(info, _("<b>Server IP</b>: %s: %d<br>\n"), qd->server_ip, qd->server_port);	g_string_append_printf(info, _("<b>My Public IP</b>: %s<br>\n"), qd->my_ip);	g_string_append(info, "<hr>\n");	g_string_append(info, "<i>Information below may not be accurate</i><br>\n");	g_string_append_printf(info, _("<b>Login Time</b>: %s<br>\n"), ctime(&qd->login_time));	g_string_append_printf(info, _("<b>Last Login IP</b>: %s<br>\n"), qd->last_login_ip);	g_string_append_printf(info, _("<b>Last Login Time</b>: %s\n"), ctime(&qd->last_login_time));	g_string_append(info, "</body></html>");	purple_notify_formatted(gc, NULL, _("Login Information"), NULL, info->str, NULL, NULL);	g_string_free(info, TRUE);}/*static void _qq_menu_search_or_add_permanent_group(PurplePluginAction *action){	purple_roomlist_show_with_account(NULL);}*//*static void _qq_menu_create_permanent_group(PurplePluginAction * action){	PurpleConnection *gc = (PurpleConnection *) action->context;	purple_request_input(gc, _("Create QQ Qun"),			   _("Input Qun name here"),			   _("Only QQ member can create permanent Qun"),			   "OpenQ", FALSE, FALSE, NULL,			   _("Create"), G_CALLBACK(qq_group_create_with_name), _("Cancel"), NULL, gc);}*/static void _qq_menu_unsubscribe_group(PurpleBlistNode * node){	PurpleChat *chat = (PurpleChat *)node;	PurpleConnection *gc = purple_account_get_connection(chat->account);	GHashTable *components = chat -> components;	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));	g_return_if_fail(components != NULL);	qq_group_exit(gc, components);}/*static void _qq_menu_manage_group(PurpleBlistNode * node){	PurpleChat *chat = (PurpleChat *)node;	PurpleConnection *gc = purple_account_get_connection(chat->account);	GHashTable *components = chat -> components;	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));	g_return_if_fail(components != NULL);	qq_group_manage_group(gc, components);}*/#if 0/* TODO: re-enable this */static void _qq_menu_send_file(PurpleBlistNode * node, gpointer ignored){	PurpleBuddy *buddy;	PurpleConnection *gc;	qq_buddy *q_bud;	g_return_if_fail (PURPLE_BLIST_NODE_IS_BUDDY (node));	buddy = (PurpleBuddy *) node;	q_bud = (qq_buddy *) buddy->proto_data;/*	if (is_online (q_bud->status)) { */	gc = purple_account_get_connection (buddy->account);	g_return_if_fail (gc != NULL && gc->proto_data != NULL);	qq_send_file(gc, buddy->name, NULL);/*	} */}#endif/* protocol related menus */static GList *_qq_actions(PurplePlugin *plugin, gpointer context){	GList *m;	PurplePluginAction *act;	m = NULL;	act = purple_plugin_action_new(_("Modify My Information"), _qq_menu_modify_my_info);	m = g_list_append(m, act);	act = purple_plugin_action_new(_("Change Password"), _qq_menu_change_password);	m = g_list_append(m, act);	act = purple_plugin_action_new(_("Show Login Information"), _qq_menu_show_login_info);	m = g_list_append(m, act);	/*	act = purple_plugin_action_new(_("Qun: Search a permanent Qun"), _qq_menu_search_or_add_permanent_group);	m = g_list_append(m, act);	act = purple_plugin_action_new(_("Qun: Create a permanent Qun"), _qq_menu_create_permanent_group);	m = g_list_append(m, act);	*/	return m;}/* chat-related (QQ Qun) menu shown up with right-click */static GList *_qq_chat_menu(PurpleBlistNode *node){	GList *m;	PurpleMenuAction *act;	m = NULL;	act = purple_menu_action_new(_("Exit this QQ Qun"), PURPLE_CALLBACK(_qq_menu_unsubscribe_group), NULL, NULL);	m = g_list_append(m, act);	/* TODO: enable this	act = purple_menu_action_new(_("Show Details"), PURPLE_CALLBACK(_qq_menu_manage_group), NULL, NULL);	m = g_list_append(m, act);	*/	return m;}/* buddy-related menu shown up with right-click */static GList *_qq_buddy_menu(PurpleBlistNode * node){	GList *m;	if(PURPLE_BLIST_NODE_IS_CHAT(node))		return _qq_chat_menu(node);	m = NULL;/* TODO : not working, temp commented out by gfhuang */#if 0	act = purple_menu_action_new(_("Block this buddy"), PURPLE_CALLBACK(_qq_menu_block_buddy), NULL, NULL); /* add NULL by gfhuang */	m = g_list_append(m, act);/*	if (q_bud && is_online(q_bud->status)) { */		act = purple_menu_action_new(_("Send File"), PURPLE_CALLBACK(_qq_menu_send_file), NULL, NULL); /* add NULL by gfhuang */		m = g_list_append(m, act);/*	} */#endif	return m;}static void _qq_keep_alive(PurpleConnection *gc){	qq_group *group;	qq_data *qd;	GList *list;	if (NULL == (qd = (qq_data *) gc->proto_data))		return;	list = qd->groups;	while (list != NULL) {		group = (qq_group *) list->data;		if (group->my_status == QQ_GROUP_MEMBER_STATUS_IS_MEMBER ||		    group->my_status == QQ_GROUP_MEMBER_STATUS_IS_ADMIN)			/* no need to get info time and time again, online members enough */			qq_send_cmd_group_get_online_members(gc, group);		list = list->next;	}	qq_send_packet_keep_alive(gc);}/* convert chat nickname to qq-uid to get this buddy info *//* who is the nickname of buddy in QQ chat-room (Qun) */static void _qq_get_chat_buddy_info(PurpleConnection *gc, gint channel, const gchar *who){	gchar *purple_name;	g_return_if_fail(who != NULL);	purple_name = chat_name_to_purple_name(who);	if (purple_name != NULL)		_qq_get_info(gc, purple_name);}/* convert chat nickname to qq-uid to invite individual IM to buddy *//* who is the nickname of buddy in QQ chat-room (Qun) */static gchar *_qq_get_chat_buddy_real_name(PurpleConnection *gc, gint channel, const gchar *who){	g_return_val_if_fail(who != NULL, NULL);	return chat_name_to_purple_name(who);}PurplePlugin *my_protocol = NULL;static PurplePluginProtocolInfo prpl_info	= {	OPT_PROTO_CHAT_TOPIC | OPT_PROTO_USE_POINTSIZE,	NULL,							/* user_splits	*/	NULL,							/* protocol_options */	{"png", 96, 96, 96, 96, 0, PURPLE_ICON_SCALE_SEND}, /* icon_spec */	_qq_list_icon,						/* list_icon */	_qq_list_emblem,					/* list_emblems */	_qq_status_text,					/* status_text	*/	_qq_tooltip_text,					/* tooltip_text */	_qq_away_states,					/* away_states	*/	_qq_buddy_menu,						/* blist_node_menu */	qq_chat_info,						/* chat_info */	qq_chat_info_defaults,					/* chat_info_defaults */	_qq_login,						/* login */	_qq_close,						/* close */	_qq_send_im,						/* send_im */	NULL,							/* set_info */	NULL,							/* send_typing	*/	_qq_get_info,						/* get_info */	_qq_set_away,						/* set_away */	NULL,							/* set_idle */	NULL,							/* change_passwd */	qq_add_buddy,						/* add_buddy */	NULL,							/* add_buddies	*/	qq_remove_buddy,					/* remove_buddy */	NULL,							/* remove_buddies */	NULL,							/* add_permit */	NULL,							/* add_deny */	NULL,							/* rem_permit */	NULL,							/* rem_deny */	NULL,							/* set_permit_deny */	qq_group_join,						/* join_chat */	NULL,							/* reject chat	invite */	NULL,							/* get_chat_name */	NULL,							/* chat_invite	*/	NULL,							/* chat_leave */	NULL,							/* chat_whisper */	_qq_chat_send,						/* chat_send */	_qq_keep_alive,						/* keepalive */	NULL,							/* register_user */	_qq_get_chat_buddy_info,				/* get_cb_info	*/	NULL,							/* get_cb_away	*/	NULL,							/* alias_buddy	*/	NULL,							/* group_buddy	*/	NULL,							/* rename_group */	NULL,							/* buddy_free */	NULL,							/* convo_closed */	NULL,							/* normalize */	qq_set_my_buddy_icon,					/* set_buddy_icon */	NULL,							/* remove_group */	_qq_get_chat_buddy_real_name,				/* get_cb_real_name */	NULL,							/* set_chat_topic */	NULL,							/* find_blist_chat */	qq_roomlist_get_list,					/* roomlist_get_list */	qq_roomlist_cancel,					/* roomlist_cancel */	NULL,							/* roomlist_expand_category */	NULL,							/* can_receive_file */	qq_send_file,						/* send_file */	NULL,							/* new xfer */	NULL,							/* offline_message */	NULL,							/* PurpleWhiteboardPrplOps */	NULL,							/* send_raw */	NULL,							/* roomlist_room_serialize */	/* padding */	NULL,	NULL,	NULL,	NULL};static PurplePluginInfo info = {	PURPLE_PLUGIN_MAGIC,	PURPLE_MAJOR_VERSION,	PURPLE_MINOR_VERSION,	PURPLE_PLUGIN_PROTOCOL,		/**< type		*/	NULL,				/**< ui_requirement	*/	0,				/**< flags		*/	NULL,				/**< dependencies	*/	PURPLE_PRIORITY_DEFAULT,		/**< priority		*/	"prpl-qq",			/**< id			*/	"QQ",				/**< name		*/	VERSION,			/**< version		*/					/**  summary		*/	N_("QQ Protocol	Plugin"),					/**  description	*/	N_("QQ Protocol	Plugin"),	OPENQ_AUTHOR,			/**< author		*/	OPENQ_WEBSITE,			/**< homepage		*/	NULL,				/**< load		*/	NULL,				/**< unload		*/	NULL,				/**< destroy		*/	NULL,				/**< ui_info		*/	&prpl_info,			/**< extra_info		*/	NULL,				/**< prefs_info		*/	_qq_actions,	/* padding */	NULL,	NULL,	NULL,	NULL};static void init_plugin(PurplePlugin *plugin){	PurpleAccountOption *option;	option = purple_account_option_bool_new(_("Login in TCP"), "use_tcp", FALSE);	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);	option = purple_account_option_bool_new(_("Login Hidden"), "hidden", FALSE);	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);	option = purple_account_option_string_new(_("Server"), "server", NULL);	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);	option = purple_account_option_string_new(_("Port"), "port", NULL);	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);	my_protocol = plugin;	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/prompt_group_msg_on_recv", TRUE);}PURPLE_INIT_PLUGIN(qq, init_plugin, info);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本色综合中文字幕| 国产欧美日韩视频在线观看| 一本色道**综合亚洲精品蜜桃冫| 成年人国产精品| 国产高清一区日本| 男人的天堂久久精品| 久久国产麻豆精品| 日韩成人精品在线| 美女脱光内衣内裤视频久久网站 | 免费高清成人在线| 日本视频中文字幕一区二区三区| 一二三区精品视频| 性感美女久久精品| 亚洲国产视频直播| 亚洲欧美怡红院| 18成人在线观看| 亚洲人成伊人成综合网小说| 亚洲猫色日本管| 中文字幕一区二区三区在线不卡| 一区二区理论电影在线观看| 欧美国产一区视频在线观看| 久久久99免费| 中文子幕无线码一区tr| 久久精品视频一区二区| 国产精品美女久久久久久2018| 国产精品福利一区二区三区| 亚洲欧洲国产专区| 一区二区三区久久久| 天堂av在线一区| 免费观看成人鲁鲁鲁鲁鲁视频| 国产专区综合网| 成人免费视频免费观看| 欧洲av一区二区嗯嗯嗯啊| 欧美日韩一区二区三区在线| 欧美一级生活片| 久久久久国产免费免费| 亚洲人妖av一区二区| 一区二区不卡在线播放| 亚洲免费高清视频在线| 久久精品国产澳门| 国产精品一区在线观看乱码 | 99re在线精品| 欧美午夜精品久久久久久孕妇| 欧美mv日韩mv| 中文字幕一区二区三区蜜月| 亚洲成人自拍网| 加勒比av一区二区| 日本高清不卡aⅴ免费网站| 欧美色老头old∨ideo| 久久久久久免费网| 一区二区高清视频在线观看| 国产综合久久久久影院| 色悠悠久久综合| www国产成人免费观看视频 深夜成人网| 久久久久久久久久久久电影 | 成人午夜在线免费| 91福利视频久久久久| 精品捆绑美女sm三区| 成人欧美一区二区三区白人 | 中文成人av在线| 亚洲午夜久久久久久久久电影网| 国产一区二区精品在线观看| 97久久超碰国产精品| 精品免费日韩av| 依依成人精品视频| 青青草国产成人99久久| 日本精品裸体写真集在线观看 | 亚洲成a人v欧美综合天堂| 国产一区999| 不卡一区二区三区四区| 91精品久久久久久久91蜜桃| 国产精品国产三级国产a| 国产精品自拍网站| 欧美精品久久久久久久多人混战 | 成人精品一区二区三区四区| 欧美一区二区三区四区久久| 中文字幕亚洲欧美在线不卡| 午夜电影一区二区| 欧美在线看片a免费观看| 国产亚洲欧美一级| 蜜桃一区二区三区在线| 在线观看日韩电影| 亚洲欧美成aⅴ人在线观看| 激情欧美一区二区三区在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 欧美亚洲综合在线| 国产精品亲子伦对白| 国产一区美女在线| 欧美日韩电影一区| 亚洲一区二区av电影| 99在线热播精品免费| 国产精品久久毛片| 国产一本一道久久香蕉| 精品久久免费看| 青娱乐精品视频在线| 一本大道久久a久久精二百| 欧美国产一区二区| 日日夜夜一区二区| 欧美一卡2卡三卡4卡5免费| 亚洲成人自拍一区| 91精品国产综合久久久久久久| 一区二区三区四区不卡在线 | 蜜桃视频在线一区| 欧美顶级少妇做爰| 亚洲欧美色综合| 欧美在线一二三四区| 一区二区三区四区视频精品免费| 色噜噜狠狠成人中文综合| 中文字幕一区二区三区不卡在线| 91丝袜美腿高跟国产极品老师 | 在线视频国内自拍亚洲视频| 亚洲欧洲av色图| 色www精品视频在线观看| 中文字幕永久在线不卡| 91久久香蕉国产日韩欧美9色| 中文字幕一区二区在线观看| 91黄色免费网站| 亚洲精品乱码久久久久久久久 | 色婷婷国产精品| 亚洲国产毛片aaaaa无费看 | 2021久久国产精品不只是精品| 美女任你摸久久| 国产免费观看久久| 成人免费精品视频| 亚洲老妇xxxxxx| 欧美日韩国产欧美日美国产精品| 免费成人在线网站| 26uuu精品一区二区在线观看| 欧美日韩的一区二区| 天天做天天摸天天爽国产一区| 日韩精品专区在线| 久久精品免费观看| 中文av一区二区| 色天天综合久久久久综合片| 亚洲色图20p| 欧美日韩国产电影| 亚洲午夜羞羞片| wwwwxxxxx欧美| 成人一区在线观看| 亚洲综合清纯丝袜自拍| 在线观看91精品国产麻豆| 亚洲bt欧美bt精品| 精品国产乱码久久| av一区二区三区四区| 一区二区三区四区不卡在线 | 亚洲国产人成综合网站| 精品国产乱码久久久久久图片 | 日本视频一区二区三区| 精品1区2区在线观看| 一本一本久久a久久精品综合麻豆| 肉丝袜脚交视频一区二区| 国产精品欧美综合在线| 欧美日韩在线电影| 国产精品18久久久久久久久久久久| 国产精品福利影院| 精品乱码亚洲一区二区不卡| gogogo免费视频观看亚洲一| 日韩中文欧美在线| 中文av一区二区| 日韩欧美亚洲国产精品字幕久久久| 成人激情小说乱人伦| 久久成人av少妇免费| 亚洲女同一区二区| 久久久99精品免费观看不卡| 色综合久久88色综合天天免费| 国产一区啦啦啦在线观看| 亚洲精品国产一区二区精华液| 久久久久88色偷偷免费| 欧美视频一区二区| eeuss鲁一区二区三区| 青青草国产精品97视觉盛宴| 亚洲激情综合网| 久久天天做天天爱综合色| 欧美日韩三级视频| 成人avav影音| 国产成人综合视频| 五月激情综合色| 一区二区三区精品视频在线| 亚洲精品乱码久久久久久日本蜜臀| 另类小说一区二区三区| 欧美激情在线一区二区| 成人h动漫精品一区二| 日本在线观看不卡视频| 亚洲色图视频免费播放| 欧美午夜精品一区| 色成年激情久久综合| 国产麻豆91精品| 激情小说亚洲一区| 亚洲精品水蜜桃| 久久久精品蜜桃| 日韩一区二区三区在线| 东方欧美亚洲色图在线| 久久99国内精品| 亚洲主播在线观看| 夜夜夜精品看看| 中文av字幕一区| 国产精品人人做人人爽人人添| 欧美大尺度电影在线| 日韩欧美另类在线| 欧美群妇大交群的观看方式 |