知我者谓我心忧,不知我者谓我何求。 顺天命者,悲;逆,亡?

pidgin(gaim)插件开发之初级教程

上一篇 / 下一篇  2007-06-11 01:01:26 / 个人分类:备忘

查看( 3913 ) / 评论( 3 )
抛砖引玉之用。发现自己工作以后实在没有时间能像在大学里那样专注于技术了。

pidgin相信是每个使用linux的朋友的必备工具。如果有兴趣的话,可以自己开发些插件。
目前计划做一个保存最近联系人的功能。不然在几百个好友里找一个刚给我发消息的人真是很麻烦。

翻译了个开发pidgin插件的入门教程,提供一个骨架(skelecton)源码。
下载pidgin的源码

CODE:

sudo apt-get source pidgin现有的插件源码在 /pidgin/plugins 目录里,可以参考下,尤其是看看比较简单的 history.c  文件。
我们先从hello world开始吧。

(
技术基础:
C语言开发
automake autoconf 使用
)

CODE:

#define PURPLE_PLUGINS        //必须定义

#include <glib.h>
#include "notify.h"
#include "plugin.h"

#include "version.h"

static gboolean
plugin_load(PurplePlugin *plugin) {

    purple_notify_message(plugin, PURPLE_NOTIFY_MSG_INFO, "Hello World!",

                        "This is the Hello World! plugin ", NULL, NULL, NULL);

    return TRUE;

}

static PurplePluginInfo info = {         //插件相关属性的定义

    PURPLE_PLUGIN_MAGIC,           //必须强制定义,没什么解释的。

    PURPLE_MAJOR_VERSION,         //帮助libpurple识别插件版本号,  (libpurple是IM的图形控件)

    PURPLE_MINOR_VERSION,

    PURPLE_PLUGIN_STANDARD,     //有四个数值,PURPLE_PLUGIN_UNKNOWN 表示不使用

//PURPLE_PLUGIN_STANDARD 标准插件

//PURPLE_PLUGIN_LOADER 为PERL 或者TCL 等语言开发的插件作准备

//PURPLE_PLUGIN_PROTOCOL 为各种通信协议准备的 比如QQ插件

    NULL,            //是否涉及对界面的控制

    0,                //是否在插件列表里显示

    NULL,            //是否采用Glist

    PURPLE_PRIORITY_DEFAULT,    //优先级

    "core-hello_world",    //插件编号,最后面会用到的。


    "Hello World!",        //插件名称

    VERSION,                //版本


    "Hello World Plugin",    //插件简介

    "Hello World Plugin",   //插件描述

    NULL,                    //插件作者和邮箱等内容


    "http://helloworld.tld",    //插件的联系网站地址

    plugin_load,            //插件的加载函数,

    NULL,                //定义插件加载失败时所调用的函数

    NULL,                  //当libpurple销毁本插件时调用的函数


    NULL,            

    NULL,

    NULL,

    NULL

};

static void

init_plugin(PurplePlugin *plugin)

{

}

PURPLE_INIT_PLUGIN(hello_world, init_plugin, info);   //加载
以上是一个最基本的插件骨架,加载后会弹出一个提示消息。

TAG:

Sanool和开源的故事--邵炜主题博客.. sanool 发布于2007-06-11 01:06:56
通过 apt-get 得到的源码是干净的源码 不包括开发用的系列脚本

如果需要的话 只能到官方通过 svn 获得

svn co https://pidgin.svn.sourceforge.net/svnroot/pidgin pidgin

这样 你修改了makefile.am 之后  再 autogen.sh 一下就好了
Fluke@LUPA fluke 发布于2007-06-11 02:21:10
留个脚印。这两天有时间checkout下来看看。

sanool的idea不错,这个插件挺实用的。
someone someone 发布于2007-06-11 09:55:32
当你发现,自己呼吁大家让银行开放插件时候,LINUX却无人接手
当你呼吁大家开发linux密码管理小工具,却无人迎战

那么不如作点实际事情:
    培养更多的人,让他们掌握工具,
    今天大学毕业的人,至少会打开vc  IDE,不用写一句代码,自动编译会有个程序运行
    但是不会有大学生毕业后能编译一个linux下的运行NFS系统。

if you have sentiment sail to me : someone@lupaworld.com
我来说两句

(可选)

Open Toolbar