XChat屏幕聊天插件

IRC聊天室介绍

1. XChat是什么?

XChat是一个IRC聊天客户端。

2. IRC是什么?

维基百科:IRC(Internet Relay Chat的缩写,“因特网中继聊天”)是一种通过网络的即时聊天方式。其主要用于群体聊天,但同样也可以用于个人对个人的聊天。

3. IRC聊天室和QQ群有什么区别?

IRC聊天室无需注册、无需认证自由出入,没有人数限制;而QQ群需要注册QQ号,需要群主批准才能加入,有人数限制。IRC是开放的协议,可自由架设服务器,服务器大多分布在国外,而QQ群服务器由腾讯控制。但这些都不是最重要的,最重要的是IRC聊天室有大量的技术频道,无数技术高手在里面高谈阔论。

XChat屏幕聊天插件(OSDChat)介绍

1.背景

因为我是菜鸟,在IRC聊天室里常常插不上话,而盯着屏幕看高手聊天,时间长了也会觉得无聊。大家都见过千千静听的桌面歌词,于是我想要是有一个功能,把聊天室的聊天内容像桌面歌词那样显示在屏幕上就好了。那样我就可以一边做自己的事情(如看浏览网页、写程序等),一边看高手聊天。

2.技术实现

XChat聊天室软件支持插件,这样我就无需自己做一个IRC客户端,而只需做一个插件就可以了。我平时主要用Linux的Gnome桌面,于是就使用GTK界面库。作为一个XChat插件,可以很方便接收到聊天内容,只需把它显示到桌面上就可以了。最关键的是显示效果,实现了文字勾边和阴影效果。

3.使用方法

把编译后的osdchat.so拷贝到~/.xchat2/下就行了。在XChat聊天窗口输入“/osd off”关闭桌面聊天,输入“/osd on”打开桌面聊天。

4. 缺点和改进

因为这个插件一直只有我一个人用,我在程序里hard code了字体和大小,还对自己常上的频道ubuntu-cn和arch-ch分别hard code了绿色和黄色字体,其他频道显示白色字体(确实不好看,冏)。期望以后用户可以设置字体、大小、颜色等。

5. 源代码

下载

6. 截图

桌面聊天效果(见屏幕底部)



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
jQuery.chatbox 说明文档 特性 1.轻量级动画特效以及友好的界面 2.支持多窗口 3.完善的回调函数以实现自定义功能 4.多种调用方式 4.良好的封装以及扩展性 5.每个聊天窗对象实例以data属性的形式附加在聊天窗DOM对象上(如果你想获得某个特定插件的实例,可以直接从页面元素中获取:$('{boxId}').data('chatbox')) 配置项 配置项分为全局配置项和实例配置项 全局配置项: 参数            类型           默认值                说明 ----------------------------------------------------------------------------------------------- id              number          null                  当前用户的id,也就是发送者的id,必须是唯一值 user            string          null                  发送者的显示名称,可以是昵称用户名等,不要求唯一 debug           boolean         false                 是否打开调试功能 idPrefix        string          'chatbox_'            生成页面DOM元素的id值 实例配置项: 参数            类型           默认值                说明 ----------------------------------------------------------------------------------------------- id              number          null                  接收者的id,同时也会作为实例id,必须是唯一值 user            string          null                  接收者的显示名称,可以是昵称用户名等,不要求唯一 title           string          'Chat with ' {user}   聊天窗的标题 回调函数 回调函数也分为两种,一种是全局回调函数另一种是实例回调函数。 但是有点Javascript基础的开发者应该了解不管是哪种类型的回调函数我们都应该以传递函数引用的方式来调用,而不是对每个实例创建一个函数副本。 这样会造成内存浪费。全局回调函数不会在实例化每个聊天窗对象时重复创建副本分配给每个对象实例,而实例回调函数会。 因此在不需要为每个独立的聊天窗分配不同的回调功能时使用实例回调函数也应该以传递函数引用的方式来分配回调函数以节省内存空间。 回调函数参考: 函数名                  参数       说明 ----------------------------------------------------------------------------------------------- onChatboxCreate                     创建聊天窗时触发 onChatboxEnable                     聊天窗被启用时触发 onChatboxDisable                    聊天窗被禁用时触发 onMessageSend           msg         发送消息时触发,唯一参数:消息内容msg onMessageReceive        msg         收到消息时触发,唯一参数:消息内容msg onMessageSystem         msg         收到系统消息时触发,唯一参数:消息内容msg onChatboxDestroy                    销毁聊天窗时触发 优先级:实例回调函数优先级高于全局回调函数,也就是说实例配置项中的回调函数会覆盖全局配置项中同名的回调函数。 this指针:this指针经由apply或者call方法已经指向调用该方法的实例。 API(属性和方法) 全局API: 属性/方法名       类型       参数          说明 ----------------------------------------------------------------------------------------------- globalOptions     属性        无           保存所有聊天窗的全局配置项 getQueue()        方法        无           返回当前聊天窗的实例队列 实例API: 属性/方法名       类型      参数              说明 ----------------------------------------------------------------------------------------------- $elem             属性        无              保存着当前聊天窗实例的jQuery对象 opts              属性        无              保存着当前聊天窗实例的初始化选项 show()            方法        无              显示聊天窗 hide()            方法        无              隐藏聊天窗 enable()          方法        无              启用聊天窗 disable()         方法        无              禁用聊天窗 message()         方法        msg,type        设置接收到的消息到聊天窗,两个参数:消息内容msg、消息类型type blink()           方法        无              高亮标题栏闪烁提示 destroy()         方法        无              无 调用方式 设定全局配置项: 直接定义配置对象globalOptions,未给定的配置项依旧会使用默认值并不会被该配置对象覆盖 $.chatbox.globalOptions = {     id:10000,     user:'Jason',     debug:true,     onChatboxCreate:function(){         //要执行的代码     } } 或者以附加属性的方式 $.chatbox.globalOptions.id = 10000; $.chatbox.globalOptions.user = 'Jason'; $.chatbox.globalOptions.onChatboxCreate = function(){     //要执行的代码 }; 初始化聊天窗: $.chatbox({     id:11254,     user:'Tony',     title:'Chat with Tony',     onChatboxCreate:function(){         //要执行的代码     } }); 调用API方法: 第一种调用方式 $.chatbox({instanceId}).message({message content}); 第二种调用方式 $({boxId}).data('chatbox').message({message content}); 标签:Chatbox
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值