私はゆっくりとPythonを学習し、チュートリアルを見ています。私はそれがどのように機能するのか基本的に理解していると感じています。
クリエイティブなプロジェクトとして、私はIRCボットを作りたいと思っています。私はあらかじめ確立されたフレームワークを使用したくありません。私は車輪を再発明するつもりはない、私は単に学習プロジェクトと創造的なアウトレットの両方として、ボトムアップからボットを構築したいと思う。私が一貫してこれを行う方法の分の知識の中で遭遇している1つの問題は、私のボットが私のコマンドad infinitumに応答しているようです。コードは次のとおりです:
HOST="irc.durd.net"
PORT=6667
NICK="Data"
IDENT="data"
REALNAME="databot"
HOME='#zela'
feedback=""
s=socket.socket( )
s.connect((HOST, PORT))
s.send("NICK %s\r\n" % NICK)
s.send("USER %s %s bla :%s\r\n" % (IDENT, HOST, REALNAME))
s.send("JOIN #zela" + "\r\n")
s.send("PRIVMSG nickserv identify ac}pcut]eobosbec" + "\r\n")
def sendmsg(chan, msg):
s.send("PRIVMSG "+ chan +" :"+ msg +"\n")
def ping():
s.send("PONG :pingis\n")
while 1:
feedback=feedback+s.recv(1024)
print (feedback)
if feedback.find("PING :") != -1:
ping()
if feedback.find("say hello Data") != -1:
sendmsg("#zela", "Hello Data!")
if feedback.find("tell us a joke Data") != -1:
sendmsg("#zela", "but Captain, I don't know how.")
if feedback.find("terminate Data") != -1:
s.send("QUIT\r\n")
今、すべて正常に動作し、データは彼のコマンドに正しく応答します。彼は私が彼に言うときにも終了します。残念なことに、これらのコマンドの1つがトリガーされると、私は何か新しいことを言うたびに自分自身を繰り返し、そして私が彼をオフにするまで永遠に繰り返す。
<~Jordan> say hello Data
Hello Data!
<~Jordan> a
Hello Data!
<~Jordan> a
<~Jordan> a
Hello Data!
Hello Data!
Hello Data!
Hello Data!
私はサーバがボットにメッセージを再送しているかどうかを確認するためにテストしましたが、そうではありませんので、私の責任です。