質問編集履歴

4

文法の修正

2021/11/26 03:52

投稿

poketatsu
poketatsu

スコア19

test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  ```ここに言語を入力
34
34
 
35
- #coding:UTF-8
35
+ # coding:UTF-8
36
36
 
37
37
  import discord
38
38
 
@@ -42,7 +42,7 @@
42
42
 
43
43
  TOKEN = "トークン"
44
44
 
45
- CHANNEL_ID = チャンネルID
45
+ CHANNEL_ID =チャンネルID
46
46
 
47
47
  # 接続に必要なオブジェクトを生成
48
48
 
@@ -50,11 +50,13 @@
50
50
 
51
51
 
52
52
 
53
+
54
+
53
55
  @client.event
54
56
 
55
57
  async def on_message(message):
56
58
 
57
- #Botだった場合は、return
59
+ # Botだった場合は、return
58
60
 
59
61
  if message.author.bot:
60
62
 
@@ -62,41 +64,41 @@
62
64
 
63
65
  if message.content == '!start':
64
66
 
67
+
68
+
69
+ # 3秒に一回ループ
70
+
71
+ @tasks.loop(seconds=1)
72
+
73
+ async def loop():
74
+
75
+ # botが起動するまで待つ
76
+
77
+ await client.wait_until_ready()
78
+
79
+ channel = client.get_channel(CHANNEL_ID)
80
+
65
- await message.channel.send('!d bump')
81
+ await channel.send('!d bump')
66
82
 
67
83
 
68
84
 
69
- # 3秒に一回ループ
85
+ # ループ処理実行
70
86
 
71
- @tasks.loop(minutes=1)
87
+ loop.start()
72
-
73
- async def loop():
74
-
75
- # botが起動するまで待つ
76
-
77
- await client.wait_until_ready()
78
-
79
- channel = client.get_channel(CHANNEL_ID)
80
-
81
- await channel.send('!d bump')
82
88
 
83
89
 
84
90
 
85
- #ループ処理実行
91
+ @client.event
86
92
 
93
+ async def on_message(message):
94
+
95
+ if message.content == '!bye':
96
+
97
+ await message.channel.send("ばいばーい!")
98
+
87
- loop.start()
99
+ loop.stop()
88
100
 
89
101
 
90
-
91
- @client.event
92
-
93
- async def on_message(message):
94
-
95
- if message.content == '!bye':
96
-
97
- await message.channel.send("ばいばーい!")
98
-
99
- await client.logout()
100
102
 
101
103
 
102
104
 
@@ -116,7 +118,7 @@
116
118
 
117
119
  インデントエラーが出ていましたが、なんとか修正できました。
118
120
 
119
- await client.logout()をloop.stop()にしたら、ボット事態は
121
+ await client.logout()をloop.stop()にしたら、チャットを送るのを停止し、ボット事態は
120
122
 
121
123
  オンラインを維持できてましたが、!startと打っても再開ができなかったです。
122
124
 

3

試したことの追記

2021/11/26 03:52

投稿

poketatsu
poketatsu

スコア19

test CHANGED
File without changes
test CHANGED
@@ -26,11 +26,7 @@
26
26
 
27
27
  エラーメッセージ
28
28
 
29
- @tasks.loop(seconds=10)
30
-
31
- ^
29
+ なし
32
-
33
- IndentationError: expected an indented block
34
30
 
35
31
  ```
36
32
 
@@ -120,6 +116,10 @@
120
116
 
121
117
  インデントエラーが出ていましたが、なんとか修正できました。
122
118
 
119
+ await client.logout()をloop.stop()にしたら、ボット事態は
120
+
121
+ オンラインを維持できてましたが、!startと打っても再開ができなかったです。
122
+
123
123
 
124
124
 
125
125
 

2

書式の改善

2021/11/26 02:30

投稿

poketatsu
poketatsu

スコア19

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,13 @@
14
14
 
15
15
  ### 発生している問題・エラーメッセージ
16
16
 
17
- ループに入るときにエラーが出てしまいます。
17
+ 起動するときになぜか2回、発言してしまいます。
18
+
19
+ 終了するときに停止処理をするとログアウトして、再開ができません。
20
+
21
+ await client.logout()が原因だと思うのですが、一時停止のコマンドがわからないです。
22
+
23
+
18
24
 
19
25
  ```
20
26
 
@@ -26,13 +32,9 @@
26
32
 
27
33
  IndentationError: expected an indented block
28
34
 
29
-
30
-
31
35
  ```
32
36
 
33
- ソースコード
34
-
35
- ### 該当のソースコード
37
+ ```ここに言語を入力
36
38
 
37
39
  #coding:UTF-8
38
40
 
@@ -44,9 +46,11 @@
44
46
 
45
47
  TOKEN = "トークン"
46
48
 
47
- CHANNEL_ID = CHANNEL_ID
49
+ CHANNEL_ID = チャンネルID
48
50
 
51
+ # 接続に必要なオブジェクトを生成
52
+
49
- client = discord.Client() # 接続に必要なオブジェクトを生成
53
+ client = discord.Client()
50
54
 
51
55
 
52
56
 
@@ -54,45 +58,45 @@
54
58
 
55
59
  async def on_message(message):
56
60
 
57
-
61
+ #Botだった場合は、return
58
62
 
59
- if message.author.bot: #Botだった場合は、return
63
+ if message.author.bot:
60
64
 
61
65
  return
62
66
 
63
67
  if message.content == '!start':
64
68
 
69
+ await message.channel.send('!d bump')
65
70
 
66
71
 
67
72
 
73
+ # 3秒に一回ループ
68
74
 
69
- @tasks.loop(seconds=10) # 10秒に一回ループ
75
+ @tasks.loop(minutes=1)
70
76
 
71
- async def loop():
77
+ async def loop():
72
78
 
73
-
79
+ # botが起動するまで待つ
74
80
 
75
- await client.wait_until_ready()  # botが起動するまで待つ
81
+ await client.wait_until_ready()
76
82
 
77
- channel = client.get_channel(CHANNEL_ID)
83
+ channel = client.get_channel(CHANNEL_ID)
78
84
 
79
- await channel.send('!d bump')
85
+ await channel.send('!d bump')
80
86
 
81
87
 
82
88
 
89
+ #ループ処理実行
83
90
 
84
-
85
- loop.start() #ループ処理実行
91
+ loop.start()
86
92
 
87
93
 
88
94
 
89
- @client.event
95
+ @client.event
90
96
 
91
- async def on_message(message):
97
+ async def on_message(message):
92
98
 
93
- if "!stop" in message.content:
99
+ if message.content == '!bye':
94
-
95
-
96
100
 
97
101
  await message.channel.send("ばいばーい!")
98
102
 
@@ -100,11 +104,11 @@
100
104
 
101
105
 
102
106
 
107
+ # Botの起動とDiscordサーバーへの接続
103
108
 
109
+ client.run("Botのトークン")
104
110
 
105
- client.run("Botのトークン") # Botの起動とDiscordサーバーへの接続
111
+ ```
106
-
107
-
108
112
 
109
113
 
110
114
 
@@ -114,64 +118,12 @@
114
118
 
115
119
 
116
120
 
117
- ここに問題に対ししたを記載てください
121
+ インデントエラーが出いましたが、なんか修正できま
118
122
 
119
- インデントエラーだったのでどこか改行とか、しなくてはいけないかと思ったのですが、
120
123
 
121
- 直りませんでした。
122
124
 
123
125
 
124
126
 
125
127
  ### 補足情報(FW/ツールのバージョンなど)
126
128
 
127
129
  python 3.8.10
128
-
129
- ### 前提・実現したいこと
130
-
131
-
132
-
133
- ここに質問の内容を詳しく書いてください。
134
-
135
- (例)PHP(CakePHP)で●●なシステムを作っています。
136
-
137
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
138
-
139
-
140
-
141
- ### 発生している問題・エラーメッセージ
142
-
143
-
144
-
145
- ```
146
-
147
- エラーメッセージ
148
-
149
- ```
150
-
151
-
152
-
153
- ### 該当のソースコード
154
-
155
-
156
-
157
- ```ここに言語名を入力
158
-
159
- ソースコード
160
-
161
- ```
162
-
163
-
164
-
165
- ### 試したこと
166
-
167
-
168
-
169
- ここに問題に対して試したことを記載してください。
170
-
171
-
172
-
173
- ### 補足情報(FW/ツールのバージョンなど)
174
-
175
-
176
-
177
- ここにより詳細な情報を記載してください。

1

書式の改善

2021/11/26 01:28

投稿

poketatsu
poketatsu

スコア19

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,8 @@
5
5
  ここに質問の内容を詳しく書いてください。
6
6
 
7
7
  discord.pyで2時間ごとに一度、発言をさせたいです。
8
+
9
+ 今は、試しているところなので、10秒ごとにループさせようと思っています。
8
10
 
9
11
 
10
12
 
@@ -17,6 +19,10 @@
17
19
  ```
18
20
 
19
21
  エラーメッセージ
22
+
23
+ @tasks.loop(seconds=10)
24
+
25
+ ^
20
26
 
21
27
  IndentationError: expected an indented block
22
28
 
@@ -40,9 +46,7 @@
40
46
 
41
47
  CHANNEL_ID = CHANNEL_ID
42
48
 
43
- # 接続に必要なオブジェクトを生成
44
-
45
- client = discord.Client()
49
+ client = discord.Client() # 接続に必要なオブジェクトを生成
46
50
 
47
51
 
48
52
 
@@ -50,9 +54,9 @@
50
54
 
51
55
  async def on_message(message):
52
56
 
53
- #Botだった場合は、return
57
+
54
58
 
55
- if message.author.bot:
59
+ if message.author.bot: #Botだった場合は、return
56
60
 
57
61
  return
58
62
 
@@ -60,15 +64,15 @@
60
64
 
61
65
 
62
66
 
63
- # 3秒に一回ループ
64
67
 
68
+
65
- @tasks.loop(seconds=10)
69
+ @tasks.loop(seconds=10) # 10秒に一回ループ
66
70
 
67
71
  async def loop():
68
72
 
69
- # botが起動するまで待つ
73
+
70
74
 
71
- await client.wait_until_ready()
75
+ await client.wait_until_ready()  # botが起動するまで待つ
72
76
 
73
77
  channel = client.get_channel(CHANNEL_ID)
74
78
 
@@ -76,9 +80,9 @@
76
80
 
77
81
 
78
82
 
79
- #ループ処理実行
80
83
 
84
+
81
- loop.start()
85
+ loop.start() #ループ処理実行
82
86
 
83
87
 
84
88
 
@@ -96,9 +100,9 @@
96
100
 
97
101
 
98
102
 
99
- # Botの起動とDiscordサーバーへの接続
100
103
 
104
+
101
- client.run("Botのトークン")
105
+ client.run("Botのトークン") # Botの起動とDiscordサーバーへの接続
102
106
 
103
107
 
104
108