Gtalk通知机器人脚本

标签: www 网络和安全 GAE php Python | 发表时间:2010-12-02 14:08 | 作者:Litrin flypen
出处:http://www.litrin.net

服务器每天都有这样那样的信息需要实时推送。最初一直是Mail,最容易实现,成本也低。后来有了短信接口,就有了相对实时但要花钱的方式推送。

知道GAE可以直接跟gtalk挂钩推送消息,可能一直挂Gtalk的人远没有挂QQ和MSN的多(密之声:Gtalk又没有星星和钻石,挂也没劲),但有了Android + 3G的实时在线,这种方式却可以直接替代SMS这类花钱的服务,何乐不为?

大致上完成了原型,制作了一个基于Python的命令行程序,不敢独享,分享给大家。希望大家能够一起加入这个项目完善它。
在此之前,请现将 server-say @@@ appspot.com (你懂的!)加为好友

#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
import re
import urllib

class ServerSaid:

	ApiURL = 'http://server-say.appspot.com/api'
	#
	#请到http://server-said.appspot.com/注册您的Ip地址。没有注册的Ip每小时最多10条消息。
	#
	Account = ''
	MessageBody = ''
	DefaultEncode = 'utf-8'

	def SendMessage(self):
		cleanMessage = self.MessageBody.encode(self.DefaultEncode)
		if (self.checkEmail(self.Account) and self.checkMessage(cleanMessage)):
			cleanMessage = self.MessageBody.encode('utf-8')
			url = self.ApiURL + '?account='+ urllib.quote(self.Account) +'&message=' + urllib.quote(cleanMessage)
		#	print url
			query = urllib.urlopen(url)
			if ( query.read() == '200' ):
				print 'Message be sent!\\n'

			else:
				print self.Error(0)
		else :
			print self.Error(1)

	def Error(self, code=0):
		return  'Message can\\'t be send! \\n'

	def checkEmail(self, Email):
		RegexString = r'^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w{2,5}$'

		return re.match(RegexString, Email)

	def checkMessage(self, Message):

		RegexString = r'^.{1,140}$'
		return re.match(RegexString, Message)

if __name__ == '__main__':

	if (len(sys.argv)>1):
		handler = ServerSaid()
		handler.Account = sys.argv[1]

		Message = sys.argv[2]

		handler.MessageBody = Message.decode(handler.DefaultEncode)

		handler.SendMessage()
	else:
		print 'serversaid.py YOUR_GTALK MESSAGE '

这里为了防止消息的滥发,使用前最好先到 http://server-say.appspot.com/ 注册一下。没有注册的IP每小时仅能发送10条消息,我想大部分情况下也够用了。注册了的用户可以无限制的发送消息了,除非我在GAE注册的那张信用卡里的钱花光——我会哭的。

啥也不说了,PHP接口也搞定了!

< ?php
/*
 *    Gtalk 通告机器人 Ver 0.1
 *
 *    Litrin Jiang 2010/12/02
 *
 * --------------------------------
 *  1. 2010/12: v0.1 原型实现
 *
 */

Class Gtalk{

	private $APIUrl = 'Http://server-say.appspot.com/api?';
	//Api 的地址,不要修改

	public $mothod = 'get';
	//默认的提交方式,现阶段仅支持get
	public $account = '';
	//接收人的Gtalk账户
	public $messageBody = '';
	//消息主体,最多支持140个字符

	public $Charset = 'UTF-8';

	public function Send($account=null, $messageBody=null){
		if (is_array($account)){
			foreach ($account as $key) {
				$this->Send($key);
			}
		}

		if ($account === null){
			$account = $this.account;
		}
		$this->CheckAccount($account);

		if($messageBody === null){
			$messageBody = $this->messageBody;
		}
		if ($this->Charset != 'UTF-8'){
			$messageBody = iconv("UTF-8", $this->Charset.'//IGNORE', $messageBody);
		}
		$this->CheckMessage($messageBody);

		$url = $this->APIUrl .'account=' . urlencode($account) . '&message=' .  urlencode($messageBody);

		$query = file($url);
		/*
		if($query == '200'){
			return true;
		}else{
			return false;
		}*/

	}

	private function CheckAccount($account){
		$regexString = '^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w{2,5}$';
		echo ereg($regexString, $account);
		if (ereg($regexString, $account) != true){
			#throw new Exception("Value not a Email account! ");
		}

	}

	private function CheckMessage($messageBody){
		$regexString = '^.{1,140}';
		if (ereg($regexString, $messageBody) != true){
			#throw new Exception("Message not a allowed format! ");
		}
	}
}

?>

相关 [gtalk 机器人 脚本] 推荐:

Gtalk通知机器人脚本

- flypen - 开源小站
服务器每天都有这样那样的信息需要实时推送. 最初一直是Mail,最容易实现,成本也低. 后来有了短信接口,就有了相对实时但要花钱的方式推送. 知道GAE可以直接跟gtalk挂钩推送消息,可能一直挂Gtalk的人远没有挂QQ和MSN的多(密之声:Gtalk又没有星星和钻石,挂也没劲),但有了Android + 3G的实时在线,这种方式却可以直接替代SMS这类花钱的服务,何乐不为.

请给Gtalk一次机会

- 〄 淘 氣 - aw&#39;s blog
今天,势必是中国互联网数年来最风云变幻的一天. 腾讯和360这样两个拥有亿级安装量的客户端软件经过一系列口水战和客户端弹窗大战升级之后,在腾讯的主动出击下,把选择权最终留给了用户,并且,这种口气看起来是没有退让的余地的. 也就是说,用户必须从二者中选其一,对这两个客户端来说,不是你死,就是我亡. 关于这场纷争的原因和来龙去脉,行业分析已经有太多,我不想再赘述,我觉得从最终的结果上,作为普通用户来说,可以考虑使用苹果电脑,或是切换到Linux系统,或是尝试一下GTalk.

【最佳GTalk客户端】BeejiveIM for GTalk 不必等Google出了

- 探花 - 爱Apps - www.iapps.im
精选限时免费应用,由 AppPusher 为您送达. 无限精彩,尽在 iapps.im. 大小: 9.6 MB 系统: 3.1+. 感谢 leal 在爱分享中留言分享. GTalk一直不出官方客户端,Google的人都不知道干啥去了. 不过没关系,BeejiveIM for GTalk 今日上架,这是 Beejive 专门针对 GTalk 推出的版本,内置中文支持,完全免费,而且也没有广告.

Gtalklet – 让所有标签支持 Gtalk [Chrome] | 小众软件 > Chrome

- KiVEN - 小众软件
上官二狗是 Gtalk 和 Chrome 的忠诚用户,在 Gmail 页面上使用 Gtalk 聊得不亦乐乎,装了插件的话还支持跨平台视频. 不爽的是,一切换标签看别的网页,Gtalk 框就没了. Gtalklet 所有标签右下角留下 Gtalk 激活按钮,点击弹出,界面简单还支持桌面通知. 下载: 下载 | 来自小众软件.

Gtalk 聊天记录现可通过 Gmail 的 IMAP 导出

- 猫 - 谷奥——探寻谷歌的奥秘
Google Data Liberation团队今天宣布你将可通过IMAP下载Gmail聊天记录了,之前我们可以通过IMAP来下载Gmail的邮件,但Gmail和Gtalk里的聊天记录一直还不行. 要导出,需要到Gmail的Labels标签页设置里,将Chats的Show in IMAP打上钩,然后你的邮件客户端(比如Outlook)里就可收到来自Gtalk的聊天记录了.

公告:什么值得买Gtalk实时推送功能正式上线

- 月七 - 什么值得买
经过一段时间的试运行,“什么值得买”网站的Gtalk实时推送功能正式启用. 推送支持各种桌面平台和主流移动平台,是即时获取“什么值得买”网站内容更新的较佳方案,从此摆脱“手慢无”的囧境. 据了解,目前有部分用户使用了某网友制作的邮件推送方案,该方案非“什么值得买”网站提供. 若遇到推送信息不稳定或信息异常,请联系该网友修正BUG、屏蔽相关垃圾邮件或退订邮件推送服务.

GFW BLOG(功夫网与翻墙): Google最全Hosts(包含Google,Gmail,Google+,Youtube,Gtalk等Hosts)

- aolifeng - www.chinagfw.org
Google最全Hosts(包含Google,Gmail,Google+,Youtube,Gtalk等Hosts). 来源:http://item.feedsky.com/~feedsky/shtion/~7864040/537827807/6003585/1/item.html. 我们整理了一下Google的hosts(包含google的大部分服务,google+,gmail,地图,gtalk等).

mysql backup 脚本

- - ITeye博客
网上备份脚本很多,但考虑都不周全. 保证创建备份文件只能是创建者跟root可以访问,其他用户没有权限,保证了数据库备份的安全. 上面脚本是负责备份的份数管理,. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

机器人与羊

- Mr.aa - 网不易
- 这里有两个机器人,不,是两个加上两个“半个”机器人,问你怕不怕.

RMAN 备份脚本

- - CSDN博客数据库推荐文章
RMAN冷备份、一致性备份脚本. RMAN热备份、非一致性备份脚本. rman名称不允许重复,%U肯定不重复. %D 位于该月中的第几天 (DD). %M 位于该年中的第几月 (MM). %F 一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,. %d 数据库名称其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列.