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就应该比较安全了, 这只是想到的其中一个用途,暂时想不到其它应用.

python写几个好玩的程序_Python写的Msn机器人,几好玩的相关推荐

  1. 用python编写一个点餐程序_Python写一个自动点餐程序

    原博文 2019-08-09 10:45 − # Python写一个自动点餐程序 ## 为什么要写这个 公司现在用meican作为点餐渠道,每天规定的时间是早7:00-9:40点餐,有时候我经常容易忘 ...

  2. python网络爬虫程序_Python写的网络爬虫程序(很简单)

    Python写的网络爬虫程序(很简单) 这是我的一位同学传给我的一个小的网页爬虫程序,觉得挺有意思的,和大家分享一下.不过有一点需要注意,要用python2.3,如果用python3.4会有些问题出现 ...

  3. python写窗体程序_python写窗口

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 最近在学习 pyqt5 gui 编程,大致路线是找了套网课<撩课-pyth ...

  4. python写用用户名密码程序_python写用’户登录程序‘的过程

    作业需求: 基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 升级需求: 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程序 ...

  5. python中怎么编写程序_python写完程序怎么运行

    安装并配置完成之后,我们就可以编写第一个python程序.学过其他语言的兄弟姐妹们,都知道语言的入门程序就是hello world.那么,我们这里也以hello world来抛砖引玉,打开python ...

  6. python日历小程序_python写的日历小程序

    查看: 14785|回复: 262 [作品展示] python写的日历小程序 电梯直达 发表于 2013-8-19 21:38:32 | 只看该作者 |倒序浏览 |阅读模式 马上注册,结交更多好友,享 ...

  7. python写采集程序_Python写的简易采集爬虫(蜘蛛)

    #!/usr/bin/python #-*-coding:utf-8-*- # 简易采集爬虫 #    1.采集Yahoo!Answers,parseData函数修改一下,可以采集任何网站 #    ...

  8. python红包程序_Python写随机发红包的原理流程

    首先来说说要用到的知识点,第一个要说的是扩展包random,random模块一般用来生成一个随机数 今天要用到ramdom中unifrom的方法用于生成一个指定范围的随机浮点数通过下面的图简单看下: ...

  9. python有什么好玩的程序_Python小程序,够你玩一整天~

    一天无聊如何度过 既想锻炼智力,又想打发时间 这个程序很适合你~~~ 好了,环境是Python3.8 开始我们的程序吧! 首先需要import随机数random模块,这个模块可是核心哦 接下来可以pr ...

  10. python定时播放音乐程序_python写的定时播放音乐

    import datetime import os import time import pygame from pygame import mixer from pygame.locals impo ...

最新文章

  1. String字符串类的获取功能
  2. disruptor框架为什么不流行_Java并发编程框架Disruptor
  3. 正弦波 程序 角度传感器_激光位移传感器的原理及应用领域
  4. 解决SSM项目下静态资源(img、js、css)无法引用的问题
  5. 对web应用构成安全威胁的错误漏洞
  6. IT工程项目需求获取的主要方法
  7. CTF 每日一题 Day39 达芬奇密码
  8. PhotoShop 常用技巧记录
  9. eclipse使用maven新建类目录时,提示The folder is already a source folder
  10. 5“机”时代,如何掘金新价值和新机遇?
  11. Maven_怎么查看maven本地仓库地址
  12. 【MySQL 数据库】MySQL 的对库的操作及其数据类型
  13. 分享二维码领红包系统开发
  14. GPS定位及通信协议解析
  15. win10下安装CUDA和CUDNN的版本对应
  16. mysql设置安全卡住了_MySQL数据库安全设置与注意事项小结
  17. Java程序员职业发展规划和方向
  18. python控制树莓派马达_树莓派控制步进电机
  19. 地铁照明中的智能照明控制系统
  20. Apollo开放平台 API

热门文章

  1. 如何在打印机驱动详细信息不能查看的情况下利用DISM命令备份还原打印机驱动
  2. 计算机技能大赛简报,网络攻防比赛简报
  3. 清华姚班毕业的斯坦福博士陈丹琦入选Google AI2021研究学者计划
  4. R语言将两个矩阵数据进行相乘、抽取矩阵的正对角线元素值
  5. Android Paint,Canvas api 详解
  6. 获取联通光猫PT952G的管理员密码
  7. 事实表 的指标 维度表_事实表和维度表 | Power BI星球
  8. 基于LPC2148的音频分析仪设计
  9. DVBS卫星识别流程
  10. Node.js学习笔记(五)——WebSocket