Skip to content

Commit a242d5c

Browse files
committed
Fixed a problem where "?activity listening to music" will result in "listening to to music"
1 parent f5bf8b8 commit a242d5c

File tree

2 files changed

+57
-18
lines changed

2 files changed

+57
-18
lines changed

bot.py

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -249,21 +249,6 @@ async def on_connect(self):
249249
print(Fore.CYAN + 'Connected to gateway.')
250250

251251
await self.config.refresh()
252-
253-
activity_type = self.config.get('activity_type')
254-
message = self.config.get('activity_message')
255-
256-
if activity_type is not None and message:
257-
if activity_type == ActivityType.streaming:
258-
259-
url = self.config.get('twitch_url',
260-
'https://www.twitch.tv/discord-modmail/')
261-
else:
262-
url = None
263-
264-
activity = discord.Activity(type=activity_type, name=message,
265-
url=url)
266-
await self.change_presence(activity=activity)
267252
self._connected.set()
268253

269254
async def on_ready(self):
@@ -284,10 +269,48 @@ async def on_ready(self):
284269
else:
285270
await self.threads.populate_cache()
286271

287-
# Wait until config cache is popluated with stuff from db
272+
# Wait until config cache is populated with stuff from db
288273
await self.config.wait_until_ready()
289274

275+
# activities
276+
activity_type = self.config.get('activity_type', -1)
277+
message = self.config.get('activity_message', '')
278+
279+
normalized_message = ''
280+
try:
281+
activity_type = ActivityType(activity_type)
282+
except ValueError:
283+
activity_type = -1
284+
285+
if activity_type >= 0 and message:
286+
if activity_type == ActivityType.listening:
287+
if message.lower().startswith('to '):
288+
# Must be listening to...
289+
normalized_message = message[3:].strip()
290+
else:
291+
normalized_message = message.strip()
292+
293+
if normalized_message:
294+
if activity_type == ActivityType.streaming:
295+
url = self.config.get('twitch_url',
296+
'https://www.twitch.tv/discord-modmail/')
297+
else:
298+
url = None
299+
300+
activity = discord.Activity(type=activity_type,
301+
name=normalized_message,
302+
url=url)
303+
await self.change_presence(activity=activity)
304+
# TODO: Trim message
305+
print(f'{Fore.CYAN}Activity set to: '
306+
f'{activity_type.name} {message}.')
307+
else:
308+
print(f'{Fore.CYAN}No activity message set.')
309+
310+
# closures
290311
closures = self.config.closures.copy()
312+
print(f'{Fore.CYAN}There are {len(closures)} thread(s) pending '
313+
'to be closed.')
291314

292315
for recipient_id, items in closures.items():
293316
after = (datetime.fromisoformat(items['time']) -
@@ -313,6 +336,7 @@ async def on_ready(self):
313336
delete_channel=items['delete_channel'],
314337
message=items['message']
315338
)
339+
print(LINE)
316340

317341
async def process_modmail(self, message):
318342
"""Processes messages sent to the bot."""

cogs/utility.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,9 @@ async def activity(self, ctx, activity_type: str, *, message: str = ''):
283283
- `clear`
284284
285285
When activity type is set to `clear`, the current activity is removed.
286+
287+
When activity type is set to `listening`,
288+
it must be followed by a "to": "listening to..."
286289
"""
287290
if activity_type == 'clear':
288291
await self.bot.change_presence(activity=None)
@@ -299,16 +302,28 @@ async def activity(self, ctx, activity_type: str, *, message: str = ''):
299302
raise commands.UserInputError
300303

301304
try:
302-
activity_type = ActivityType[activity_type]
305+
activity_type = ActivityType[activity_type.lower()]
303306
except KeyError:
304307
raise commands.UserInputError
305308

309+
if activity_type == ActivityType.listening:
310+
if not message.lower().startswith('to '):
311+
# Must be listening to...
312+
raise commands.UserInputError
313+
normalized_message = message[3:].strip()
314+
else:
315+
# Discord does not allow leading/trailing spaces anyways
316+
normalized_message = message.strip()
317+
306318
if activity_type == ActivityType.streaming:
307319
url = self.bot.config.get('twitch_url',
308320
'https://www.twitch.tv/discord-Modmail/')
309321
else:
310322
url = None
311-
activity = Activity(type=activity_type, name=message, url=url)
323+
324+
activity = Activity(type=activity_type,
325+
name=normalized_message,
326+
url=url)
312327
await self.bot.change_presence(activity=activity)
313328

314329
self.bot.config['activity_type'] = activity_type

0 commit comments

Comments
 (0)