質問編集履歴

2

文法の修正

2022/01/11 00:12

投稿

poketatsu
poketatsu

スコア19

test CHANGED
File without changes
test CHANGED
@@ -16,8 +16,6 @@
16
16
 
17
17
  # coding:UTF-8
18
18
 
19
- import discord
20
-
21
19
  from datetime import datetime
22
20
 
23
21
  from discord.ext import tasks
@@ -26,13 +24,13 @@
26
24
 
27
25
  import asyncio
28
26
 
27
+ import discord
29
28
 
30
29
 
31
30
 
31
+ ROLE_ID = 123456789
32
32
 
33
- ROLE_ID = 123456
34
-
35
- CHANNEL_ID = 123456
33
+ CHANNEL_ID = 123456789
36
34
 
37
35
  # 接続に必要なオブジェクトを生成
38
36
 
@@ -48,6 +46,8 @@
48
46
 
49
47
  async def on_ready():
50
48
 
49
+ loops.start()
50
+
51
51
  print('ready')
52
52
 
53
53
 
@@ -60,19 +60,17 @@
60
60
 
61
61
  async def loops():
62
62
 
63
+
64
+
63
65
  # 現在の時刻
64
66
 
65
67
  now = datetime.now().strftime('%H:%M')
66
-
67
- print("lunchtime")
68
68
 
69
69
  channel_sent = client.get_channel(CHANNEL_ID)
70
70
 
71
71
  # ROLE_ID のロールを取得
72
72
 
73
73
  lunch_role = channel_sent.guild.get_role(ROLE_ID)
74
-
75
-
76
74
 
77
75
  tmp = list(set(channel_sent.members) & set(lunch_role.members))
78
76
 
@@ -84,15 +82,19 @@
84
82
 
85
83
  # 先のリストから、ステータスがオンラインのメンバーのみのリストを作成。
86
84
 
85
+ if now == '09:02':
86
+
87
+ await channel_sent.send(f"今日のお昼ご飯当番は {random.choice(online_members).mention} さんです!!")
87
88
 
88
89
 
89
- if now == '16:44':
90
90
 
91
- await channel_sent.send(f"今日のお昼ご飯当番は {random.choice(online_members).mention} さんです!!")
91
+
92
92
 
93
93
  # Botの起動とDiscordサーバーへの接続
94
94
 
95
95
  client.run("Botのトークン")
96
+
97
+
96
98
 
97
99
 
98
100
 

1

修正

2022/01/11 00:11

投稿

poketatsu
poketatsu

スコア19

test CHANGED
File without changes
test CHANGED
@@ -6,27 +6,17 @@
6
6
 
7
7
  ###発生している問題
8
8
 
9
- ```ここに言語を入力
9
+ エラーコードはでず、起動はするのですが、
10
10
 
11
- Unhandled exception in internal background task 'loop'.
11
+ 指定した時間に発言してくれません。
12
12
 
13
- Traceback (most recent call last):
14
13
 
15
- File "C:\Users\hopef\PycharmProjects\discordbot\venv\lib\site-packages\discord\ext\tasks\__init__.py", line 101, in _loop
16
-
17
- await self.coro(*args, **kwargs)
18
-
19
- File "C:/Users/hopef/PycharmProjects/discordbot/bot.py", line 28, in loop
20
-
21
- lunch_role = channel_sent.guild.get_role(ROLE_ID)
22
-
23
- AttributeError: 'NoneType' object has no attribute 'guild'
24
-
25
- ```
26
14
 
27
15
  ```ここに言語を入力
28
16
 
29
17
  # coding:UTF-8
18
+
19
+ import discord
30
20
 
31
21
  from datetime import datetime
32
22
 
@@ -36,13 +26,13 @@
36
26
 
37
27
  import asyncio
38
28
 
39
- import discord
40
29
 
41
30
 
42
31
 
43
- ROLE_ID = 12345645466
44
32
 
33
+ ROLE_ID = 123456
34
+
45
- CHANNEL_ID = 12345645466
35
+ CHANNEL_ID = 123456
46
36
 
47
37
  # 接続に必要なオブジェクトを生成
48
38
 
@@ -68,19 +58,21 @@
68
58
 
69
59
  @tasks.loop(seconds=60)
70
60
 
71
- async def loop():
61
+ async def loops():
72
-
73
-
74
62
 
75
63
  # 現在の時刻
76
64
 
77
65
  now = datetime.now().strftime('%H:%M')
66
+
67
+ print("lunchtime")
78
68
 
79
69
  channel_sent = client.get_channel(CHANNEL_ID)
80
70
 
81
71
  # ROLE_ID のロールを取得
82
72
 
83
73
  lunch_role = channel_sent.guild.get_role(ROLE_ID)
74
+
75
+
84
76
 
85
77
  tmp = list(set(channel_sent.members) & set(lunch_role.members))
86
78
 
@@ -92,17 +84,17 @@
92
84
 
93
85
  # 先のリストから、ステータスがオンラインのメンバーのみのリストを作成。
94
86
 
87
+
88
+
95
- if now == '18:36':
89
+ if now == '16:44':
96
90
 
97
91
  await channel_sent.send(f"今日のお昼ご飯当番は {random.choice(online_members).mention} さんです!!")
98
-
99
- loop.start()
100
-
101
-
102
92
 
103
93
  # Botの起動とDiscordサーバーへの接続
104
94
 
105
95
  client.run("Botのトークン")
96
+
97
+
106
98
 
107
99
 
108
100