teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

少し修正

2022/01/05 13:01

投稿

akki0523
akki0523

スコア1

title CHANGED
File without changes
body CHANGED
@@ -21,7 +21,7 @@
21
21
  from discord.ext import tasks
22
22
  from datetime import datetime
23
23
 
24
- CHANNEL_ID2 = 851720569183141910 #チャンネルID
24
+ CHANNEL_ID2 = #チャンネルID
25
25
  # 接続に必要なオブジェクトを生成
26
26
  client = discord.Client()
27
27
 

4

エラー文の追加

2022/01/05 13:01

投稿

akki0523
akki0523

スコア1

title CHANGED
File without changes
body CHANGED
@@ -3,8 +3,14 @@
3
3
  数字は10分につき1上昇するとする。
4
4
  例)0時0分に「/97」と入力された時、30分後に100に達するので「0時30分」を返す。
5
5
 
6
- ### 発生している問題
6
+ ### エラー文
7
+ Ignoring exception in on_message
8
+ Traceback (most recent call last):
9
+ File "C:\Users\PycharmProjects\discord\venv\lib\site-packages\discord\client.py", line 343, in _run_event
7
- コマンドと数字を入力しても何も表示されない。
10
+ await coro(*args, **kwargs)
11
+ File "C:\Users\PycharmProjects\discord\bot.py", line 48, in on_message
12
+ jikan = jikan + h
13
+ NameError: name 'channel' is not defined
8
14
 
9
15
 
10
16
  ### 該当のソースコード

3

回答を基にプログラムを編集。

2022/01/05 11:11

投稿

akki0523
akki0523

スコア1

title CHANGED
File without changes
body CHANGED
@@ -10,24 +10,42 @@
10
10
  ### 該当のソースコード
11
11
 
12
12
  ```Python
13
+ #coding:UTF-8
14
+ import discord
15
+ from discord.ext import tasks
16
+ from datetime import datetime
17
+
18
+ CHANNEL_ID2 = 851720569183141910 #チャンネルID
19
+ # 接続に必要なオブジェクトを生成
20
+ client = discord.Client()
21
+
22
+
13
23
  @client.event
14
24
  async def on_message(message):
15
25
  # / というコマンドで反応する
16
26
  if message.content.startswith('/'):
17
27
  str = message.content
18
28
  number = str.lstrip('/')
29
+ # min = (100 - number) * 10 <-- intに変換
19
- min = (100 - number) * 10
30
+ min = (100 - int(number)) * 10
20
31
  if min >= 60:
21
32
  hour = min // 60
22
33
  minute = min % 60
23
-     else:
34
+ else:
35
+ hour = 0 # <-- 60以下の場合のhourの初期化
24
36
  minute = min
25
- now = datetime.datetime.now()
37
+ now = datetime.now()
26
38
  jikan = now.hour + hour
27
39
  fun = now.minute + minute
28
-   if fun >= 60:
40
+ if fun >= 60:
29
-   h = fun // 60
41
+ h = fun // 60
30
-   fun = fun % 60
42
+ fun = fun % 60
31
-   jikan = jikan + h
43
+ jikan = jikan + h
44
+ channel = client.get_channel(CHANNEL_ID2)
32
45
  await channel.send(str(jikan) + '時' + str(fun) + '分です。')
46
+
47
+ #ループ処理実行
48
+ loop.start()
49
+ # Botの起動とDiscordサーバーへの接続
50
+ client.run(TOKEN)
33
51
  ```

2

インデントに誤りがあったため修正。

2022/01/05 10:53

投稿

akki0523
akki0523

スコア1

title CHANGED
File without changes
body CHANGED
@@ -25,9 +25,9 @@
25
25
  now = datetime.datetime.now()
26
26
  jikan = now.hour + hour
27
27
  fun = now.minute + minute
28
- if fun >= 60:
28
+   if fun >= 60:
29
- h = fun // 60
29
+   h = fun // 60
30
- fun = fun % 60
30
+   fun = fun % 60
31
- jikan = jikan + h
31
+   jikan = jikan + h
32
32
  await channel.send(str(jikan) + '時' + str(fun) + '分です。')
33
33
  ```

1

時間の計算式が間違っていたため修正。

2021/12/17 17:23

投稿

akki0523
akki0523

スコア1

title CHANGED
File without changes
body CHANGED
@@ -20,8 +20,14 @@
20
20
  if min >= 60:
21
21
  hour = min // 60
22
22
  minute = min % 60
23
+     else:
24
+ minute = min
23
25
  now = datetime.datetime.now()
24
26
  jikan = now.hour + hour
25
27
  fun = now.minute + minute
28
+ if fun >= 60:
29
+ h = fun // 60
30
+ fun = fun % 60
31
+ jikan = jikan + h
26
32
  await channel.send(str(jikan) + '時' + str(fun) + '分です。')
27
33
  ```