LoginSignup
1
1

More than 3 years have passed since last update.

discord.pyをasyncからrewrite版にバージョンアップしたときのメモ

Posted at

いやぁ・・・w

せっかくdiscordの板とかで質問とかして回答いただいても、
「あ・・・ワイの古かった・・・」
ってなると回答してくれた方にも申し訳ないし、なによりずっと古いバージョンのものを使ってる事自体が情けないというか。

きっと僕以外にも、
「バージョンアップしないといけないのはわかってはいるんだけどどんな壁が待っているのかわからないし・・・とりあえず来月やろう」
って思っている方もいると信じて、そういった方に少しでも勇気を分けてあげられればと。

基本的には、
1.最新のdiscord.pyにする。

2.とりあえず今まで通り動かしてみる

3.エラーがでる

4.https://discordpy.readthedocs.io/ja/latest/migrating.html でエラーがでてるメソッドを検索かけてみて修正する

をひたすら繰り返せばなんとかなります。

また、pyenvのvirtualenvとかで既存の環境とは分けてやったほうが安全です。
また、gitとかで管理しているのであればブランチは切りましょう(当たり前や)

それでは書いていきます。

idがstr型からint型になった。

idをとって何か処理したり分岐させてるところでもしシングルコートで囲って判別してるところがあったら外してあげる。
どうしても今まで通りでやりたい場合は、

str(client.user.id)

という形でくくってあげる。

メッセージの投稿

async

await client.send_message(message.channel, "メッセージ")

rewrite

await message.channel.send(res)

画像の添付

async

await client.send_file(message.channel, res)

rewrite

await message.channel.send(file=discord.File(res,))

メッセージを送るときと同じメソッドを使うんですね。
resには、添付したい画像へのパスが入っている想定です。
またタプルで渡しているところにも注意です。(複数貼りたいときは普通にカンマ区切りで大丈夫)

リアクションの付与

async

await client.add_reaction(message, e)

rewrite

await message.add_reaction(e)

あれ・・・以上・・・?

えっと・・・

終わっちゃいました!!w

本当はもっといっぱいあると思ってたんですけどやってみたらこんなもんでした。(僕の場合は)

多分修正行数としては5行くらいだったんじゃないでしょうか。(idを直書きでstrで判定してた部分が2行あった)

この記事で一番大事なのは、やってみれば以外と大したことないのでとりあえずやり始めてみよう!!ってことになると思います!

もしかしたら僕が見落としてるだけで別のところも修正しないといけないかもしれませんが、
そういうのがあったらまた適宜追記していきたいと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1