私はPythonを初めて使用し、Google Appsエンジンを使用して電報ボットを作成して学習したいと考えています. このリポジトリ プロジェクトhttps://github.com/yukuku/telebotをボット基盤に使用しています。このプロジェクト main.py には、次のコードがあります。
if text.startswith('/'):
if text == '/start':
reply('Bot enabled')
setEnabled(chat_id, True)
elif text == '/stop':
reply('Bot disabled')
setEnabled(chat_id, False)
elif text == '/image':
img = Image.new('RGB', (512, 512))
base = random.randint(0, 16777216)
pixels = [base+i*j for i in range(512) for j in range(512)] # generate sample image
img.putdata(pixels)
output = StringIO.StringIO()
img.save(output, 'JPEG')
reply(img=output.getvalue())
else:
reply("What command")
# CUSTOMIZE FROM HERE
elif 'who are you' in text:
reply('telebot starter kit, created by yukuku: https://github.com/yukuku/telebot')
elif 'what time' in text:
reply('look at the top-right corner of your screen!')
else:
if getEnabled(chat_id):
try:
resp1 = json.load(urllib2.urlopen('http://www.simsimi.com/requestChat?lc=en&ft=1.0&req=' + urllib.quote_plus(text.encode('utf-8'))))
back = resp1.get('res').get('msg')
except urllib2.HTTPError, err:
logging.error(err)
back = str(err)
if not back:
reply('okay...')
elif 'I HAVE NO RESPONSE' in back:
reply('you said something with no meaning')
else:
reply(back)
else:
logging.info('not enabled for chat_id {}'.format(chat_id))
ただし、ハードコードではなく、テキストファイルを使用してボットの知識を充実させたいと考えています。テキストファイルは次のようになります。
/fact1#I'm a robot
/fact2#I'm not human
/fact3#Stop talking to me
...等
私はこのようなコードを使用してみました:
d = {}
with open("data.txt") as f:
for line in f:
(key, val) = line.split("#")
d[key] = val
for x in d.keys():
if text==x:
reply(d[x])
しかし、何かがおかしいので、ボットは応答を停止します。これを解決するのを手伝ってください。前もって感謝します