BasyaKuE

やうやう白くなりゆく山際

Discordで天気予報botつくったよ【Python】

今日は予定もなかったので近所の美術館に行ってました

https://www.yumebi.com

 

 

Discordで天気予報Botを作りました。

といってもQiitaのこの記事の丸パクリです。

https://qiita.com/drumath2237/items/de92bea97080891ce6c6

ただここにあるコードをコピペしてもバージョンが古いのかわかりませんが動きませんでした。

いろいろ書き換えても動かなくて苦戦してたのですが、前に作った簡単なチャットbotを見返したらすぐに原因がわかって解決。

最後の方のmessageの部分を変えるだけでした。

一体に何に悩んでたんだろうと。。。

まあよくあることなんでしょうね。

 

以下コード

---------------------------------------------------------------------------------------------------

import discord
import urllib.request
import json
import re

client = discord.Client()

citycodes = {
"土浦": '080020',
"水戸": '080010',
"札幌": '016010',
"仙台": '040010',
"東京": '130010',
"横浜": '140010',
"長野": '200010',
"名古屋": '230010',
"大阪": '270000',
"広島": '340010',
"福岡": '400010',
"鹿児島": '460010',
"那覇": '471010'
}

@client.event
async def on_ready():
print("logged in as " + client.user.name)

@client.event
async def on_message(message):
if message.author != client.user:

reg_res = re.compile(u"(.+)の天気").search(message.content)
if reg_res:

if reg_res.group(1) in citycodes.keys():

citycode = citycodes[reg_res.group(1)]
resp = urllib.request.urlopen('http://weather.livedoor.com/forecast/webservice/json/v1?city=%s'%citycode).read()
resp = json.loads(resp.decode('utf-8'))

msg = resp['location']['city']
msg += "の天気は、\n"
for f in resp['forecasts']:
msg += f['dateLabel'] + "" + f['telop'] + "\n"
msg += "です。"

await message.channel.send(msg)
 
client.run("ここにトーク")

-----------------------------------------------------------------------------------------------------

次はInstagramの自動いいねをするものを作ろうと思います。