社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 博客 左右分栏 |帮助
主题 : 修改版Adium, 可显示群内用户名及群内图片  (10.22更新基于1.3.7版, 3网盘下载)
级别: 论坛版主

UID: 349
精华: 6
发帖: 1185
可可豆: 848 CB
威望: 10008 点
贡献值: 0 点
交易币: 0
iChat:
GTalk:
在线时间: 1901(时)
注册时间: 2008-07-29
最后登录: 2010-09-02
0 楼:  发表于: 2009-06-24   
倒序阅读   全看  

修改版Adium, 可显示群内用户名及群内图片  (10.22更新基于1.3.7版, 3网盘下载)

管理提醒: 本帖被 lvyile 执行加亮操作(2009-10-21)
主要是吧/showname在我这里不好用了, 所以只能重新编译了
在网上找到了一个pidgin的msn群内名字补丁, 照抄, 然后编译, 就好了

不过很奇怪, 编译出来比官方发布的大了35MB, 不知是我拿弄错了还是怎么了. 但用应该还是没问题的.

我改过的只有这一个地方了, 有兴趣的或不想用我编的可以自己弄, 反正也不是太麻烦

编译方法
1. 首先从http://trac.adium.im/wiki/PreviousReleases下载源代码, 当然, 也可以参考http://trac.adium.im/wiki/GettingNewestAdiumSource通过源码管理工具Mercurial来获得最新版本的. 我是用的PreviousReleases内的1.3.5
2. 找个目录, 解压开, 后面大量的操作需要在terminal内进行, 请在Applications/Utilities内找到并运行
3. 假设adium-1.3.5是解压后的目录名, 那么就在terminal内进入adium-1.3.5/Utilities/dep-build-scripts
4. 打开这个里面的README, 然后按照说明一步步的往下做.
5. 在确保没有改动的自编译版Adium可以运行并登录msn后, 修改一个文件
    找到adium-1.3.5/Utilities/dep-build-scripts/source/im.pidgin.adium/libpurple/protocols/msn/msg.c

在800多行的位置找到msn_plain_msg这个函数

 
#if 0
    if ((value = msn_message_get_attr(msg, "User-Agent")) != NULL)
    {
        purple_debug_misc("msn", "User-Agent = '%s'\n", value);
    }
#endif
 


 
    if ((value = msn_message_get_attr(msg, "X-MMS-IM-Format")) != NULL)
 

之间增加
 
    if ((value = msn_message_get_attr(msg, "P4-Context")) != NULL)
    {
        char *body_enc2;
        body_enc2 = g_strdup_printf("<b>***%s***</b>  %s", value,
            body_enc ? body_enc : "");
        g_free(body_enc);
        body_enc = body_enc2;
    }
 


最终变成
 
#if 0
    if ((value = msn_message_get_attr(msg, "User-Agent")) != NULL)
    {
        purple_debug_misc("msn", "User-Agent = '%s'\n", value);
    }
#endif
 
    if ((value = msn_message_get_attr(msg, "P4-Context")) != NULL)
    {
        char *body_enc2;
        body_enc2 = g_strdup_printf("<b>***%s***</b>  %s", value,
            body_enc ? body_enc : "");
        g_free(body_enc);
        body_enc = body_enc2;
    }
 
    if ((value = msn_message_get_attr(msg, "X-MMS-IM-Format")) != NULL)
 


保存

6. 从README内, === LIBPURPLE ===这步, 也就是执行./purple_make.sh的这一步开始一直做到结束.

然后你编译出的adium也就支持群内显示用户名了
效果大致如下, (这个, 请两位朋友宽恕我使用了你们的对话)

m群-cocoachina (group307181@msnzone.cn) 下午07:03
***kyo***  ...
04:02
【系统提示】kyo将昵称更改为kyo 树上的青蛙
04:09
***kyo 树上的青蛙***  ...
04:36
***炘***  知道怎么改了
04:38
***炘***  不错,不错
04:54
***kyo 树上的青蛙***  我这边显示没变...
07:35
***炘***  我这里显示也没有变


2009.09,08
增加了显示群内发的图的功能
同样是修改msn_plain_msg这个函数

    body = msn_message_get_bin_data(msg, &body_len);
    body_str = g_strndup(body, body_len);
    body_enc = g_markup_escape_text(body_str, -1);
    g_free(body_str);
 


 
    passport = msg->remote_user;
 


之间增加

 
    imgURL = strstr(body_enc, "(accept)[url]http://msngroup.cn[/url]");
    if(imgURL) {
        //http://msngroup.cn/2zi7qv5prj8w.html
        //http://d.msngroup.cn/2zi7qv5prj8w.jpg?x-image=raw&&redirect=1
        char *body_enc2;
        body_enc2 = g_strdup_printf("<img src=\"http://d.%s?x-image=raw\"&></img>", imgURL+ 15);
        g_free(body_enc);
        body_enc = body_enc2;
    }
 


也就是说查找(accept)http://msngroup.cn后, 增加img标签

对自己发的图和别人发的图同样有效.

目前测试中, 没问题的话, 过一段放出.

带群内发图显示功能的版本(1.3.5), 大米盘
https://www.damipan.com/file/3zhHV3L.html

带群内发图显示功能的版本(1.3.7 DMG)
http://www.dmpan.com/file/4EWRK9H.html
http://ifile.it/ncpqjg3
http://cid-902020950ae7c0fb.skydrive.live.com/sendlink.aspx/.Public/Adium%5E_1.3.7%5E_transparentmask.dmg.zip?ref=3

暂时就这样吧

10/01 更新下载地址
[ 此帖被透明de面具在2009-10-22 11:40重新编辑 ]
级别: 论坛版主

UID: 191
精华: 2
发帖: 4498
可可豆: 120 CB
威望: 40160 点
贡献值: 31 点
交易币: 0
iChat: 12345678
GTalk: 12345678
在线时间: 1951(时)
注册时间: 2008-06-27
最后登录: 2010-09-03
1 楼:  发表于: 2009-06-24   
全看  
我的Adium上不了QQ了,总提示要密码,官方QQ没问题。
级别: 论坛版主

UID: 191
精华: 2
发帖: 4498
可可豆: 120 CB
威望: 40160 点
贡献值: 31 点
交易币: 0
iChat: 12345678
GTalk: 12345678
在线时间: 1951(时)
注册时间: 2008-06-27
最后登录: 2010-09-03
2 楼:  发表于: 2009-09-27   
全看  
现在adium还能登录QQ吗?
描述
快速回复


[emoji输入] (例如:)
验证问题:
论坛的名字?(小写) 正确答案:cocoachina
按"Ctrl+Enter"直接提交