我目前有一个skypebot,当我使用以下代码时,它会回复命令和ping网站:
if Status == 'SENT' or (Status == 'RECEIVED'):
if Message.Body.lower() == '!ping google':
ping = os.system("ping google.com")
if ping == 0:
Message.Chat.SendMessage("Online!")
else:
Message.Chat.SendMessage('Offline!')
这是有效的,如果网站在线,它将显示在线!在聊天中。但是,它要求我事先定义网站。我已经搜索了好几个小时,试图找到我将如何做到这一点,我可以做!ping [网站]并允许用户随时使用他们想要的任何网站。有任何想法吗?
答案 0 :(得分:0)
我会做这样的事情:
body = Message.Body
if body.startswith('!'):
parts = body.split() # ['!ping', 'google.com']
command = parts[0][1:] # 'ping'
result = commands[command](*parts[1:]) # Calls `ping` with 'google.com'
Message.Chat.SendMessage(result) # Prints out the resulting string
现在,您可以定义简单的函数:
def ping(url):
if os.system("ping " + url) == 0:
return 'Online!'
else:
return 'Offline!'
并将它们添加到命令字典中:
commands = {
'ping': ping
}
os.system()
如果您期待任意用户输入是不安全的,那么我会使用subprocess.Popen
代替(或者只是尝试使用Python连接到网站)。
答案 1 :(得分:0)
我也有SkypeBot。
我用http://www.downforeveryoneorjustme.com/
我是这样做的:
Functions.py
def isUP(url):
try:
source = urllib2.urlopen('http://www.downforeveryoneorjustme.com/' + url).read()
if source.find('It\'s just you.') != -1:
return 'Website Responsive'
elif source.find('It\'s not just you!') != -1:
return 'Tango Down.'
elif source.find('Huh?') != -1:
return 'Invalid Website. Try again'
else:
return 'UNKNOWN'
except:
return 'UNKNOWN ERROR'
对于 commands.py
elif msg.startswith('!isup '):
debug.action('!isup command executed.')
send(self.nick + 'Checking website. Please wait...')
url = msg.replace('!isup ', '', 1)
url = functions.getCleanURL(url)
send(self.nick + functions.isUP(url))
当然在commands.py文件中使用“import functions”。
我相信你可以改变这一点,以便检查网站的机器人状态。
祝你好运:)