python写几个好玩的程序_Python写的Msn机器人,几好玩的

本文介绍了一个使用Python编写的MSN聊天机器人程序。该程序利用msnp.py模块实现,并通过定义特定的对话反应来进行简单的交互。文章还探讨了潜在的应用场景,如通过聊天命令控制SSH。

Python写的Msn机器人,几好玩的, 需要Msnp.py这个python模块, 用Python开发msn机器人程式还是很快的, 资料参考自网上.

msn.py的代码

#!/usr/local/bin/python

# -*- coding: utf-8 -*-

import msnp

import time

import string

def mytrim(zstr):

ystr=zstr.lstrip()

ystr=ystr.rstrip()

ystr=ystr.strip()

return ystr

def findstr(fstr):

if fstr==””:

return “”

fstr=mytrim(fstr)

fstr=fstr.lower()

j=0

try:

mystr=””

fd=file(“talk.txt”,’r’)

m=fd.readlines()

k=0

while k|’)

if len(aa) ==0:

break;

if aa[0].lower()==fstr:

mystr=aa[1]

mystr=mystr.decode(‘gb18030’).encode(‘utf-8’)

break;

k=k+1

fd.close()

return mystr

except Exception:

print ‘no file or error’

return “”

#print me

#text=’我们’

class MsnChatListener(msnp.ChatCallbacks):

def message_received(self, passport_id, display_name, text, charset):

textx=text.decode(‘utf-8’).encode(‘gb18030’)

#print ‘textx:’+textx

sss=findstr(textx)

#print ‘sss:’+sss

if sss==”:

#print ‘%s: %s’ % (passport_id, textx)

wo=”这是什么意思?”

wo=wo.decode(‘gb18030’).encode(‘utf-8’)

sss='{ ‘+text+’ } ‘+wo

self.chat.send_message(sss, charset)

class MsnListener(msnp.SessionCallbacks):

def chat_started(self, chat):

callbacks = MsnChatListener()

chat.callbacks = callbacks

callbacks.chat = chat

while True:

try:

msn = msnp.Session(MsnListener()) #MsnListener里面是回调函数

msn.login(‘xxxx@live.cn’, ‘123456789’) # 申请的msn账号和密码

msn.sync_friend_list()

while True:

try:

msn.process(chats = True)

time.sleep(1)

except msnp.error.Error, e:

#217 错误表示对方不在线,由于这个包判断好友状态不太准,所以我们不能先判断好友是否在线,然后再发消息,我的做法是不管在线离线,统统启动会话,如果对方不在线,MSN服务器会发217错误,msnp包会抛异常,不管就好了。其他的异常没有处理,出现了之后跳出内部循环,重新登陆。

if e.code == 217:

print ‘msn.process error’, e.code, e.message

pass

else:

print ‘msn.process error’, e.code, e.message

break

except:

pass

在终端输入 nohup ./msn.py & 就可以在后台运作了,但要停下来的话,就先输入ps ax , 然后看见那个id 就 kill掉它

在以上脚本当前目录下建立talk.txt , 这个是对话的相对反应,你问:我们,答:怎样啊 .

内容格式

????|=>|I don’t understand

who are you|=>|I am Robot

我们|=>|怎样啊

what time is it|=>|I don’t know

who are you|=>|I am a Robot

你好|=>|你好啊

今天天气不错啊|=>|系啊

今天天气不错|=>|系啊

how are you|=>|fine thank you

电话格式|=>|电话:人名

天气不错啊|=>|系啊

天气不错|=>|系啊

你想点啊|=>|唔知想点啊

你是男还是女啊|=>|我是机器人,没性别的

用|=>|这个做分隔符号

其实在程序里加入执行命令,我想到用这个msn聊天机器人来打开或者关闭ssh , 这样ssh就应该比较安全了, 这只是想到的其中一个用途,暂时想不到其它应用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值