1

現在、次のコードを使用すると、コマンドに応答して Web サイトに ping を送信する skypebot があります。

 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!')

これは機能し、Web サイトがオンラインの場合は Online! と表示されます。チャットで。ただし、事前に Web サイトを定義する必要があります。!ping [website] を実行して、ユーザーがいつでも好きな Web サイトを使用できるようにする方法を見つけるために、ここ数時間検索しました。何か案は?

4

2 に答える 2

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 だけで Web サイトに接続してみてください)。

于 2013-06-08T18:46:08.617 に答える
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 ファイルの「インポート関数」を使用します。
これを少し変更して、ボットの Web サイトのステータスも確認できると確信しています。
幸運を :)

于 2013-12-15T11:20:06.053 に答える