Skip to content

Commit fd46317

Browse files
committed
Reorganise event creation commands
1 parent d10231e commit fd46317

File tree

1 file changed

+31
-47
lines changed

1 file changed

+31
-47
lines changed

commandListener.py

Lines changed: 31 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -177,15 +177,20 @@ async def exec(self, ctx: Context, flag: str, *, cmd: str):
177177

178178
async def _create_event(self, ctx: Context, date: datetime,
179179
batch=False, sideop=False,
180-
platoon_size=None) -> Event:
181-
# TODO: Optionally specify sideop -> hide 1PLT and Bravo
180+
platoon_size=None, force=False) -> Event:
182181
# TODO: Check for duplicate event dates?
182+
if date < datetime.today() and not force:
183+
raise BadArgument("Requested date {} has already passed. "
184+
"Use the `force` argument to override"
185+
.format(date))
186+
183187
# Create event and sort events, export
184188
event: Event = EventDatabase.createEvent(date, ctx.guild.emojis,
185189
sideop=sideop,
186190
platoon_size=platoon_size)
187-
message = await msgFnc.createEventMessage(event, self.bot.eventchannel)
188191
if not batch:
192+
message = await msgFnc.createEventMessage(
193+
event, self.bot.eventchannel)
189194
await msgFnc.updateReactions(event, message=message)
190195
await msgFnc.sortEventMessages(ctx)
191196
EventDatabase.toJson() # Update JSON file
@@ -201,22 +206,15 @@ async def create(self, ctx: Context, date: EventDateTime, force=None,
201206
202207
Use the `force` argument to create past events.
203208
204-
The platoon_size argument can be used to override the platoon size.
205-
Valid values: 1PLT, 2PLT
209+
The platoon_size argument can be used to override the platoon size. Valid values: 1PLT, 2PLT
206210
207211
Example: create 2019-01-01
208212
create 2019-01-01 force
209213
create 2019-01-01 force 2PLT
210-
"""
214+
""" # NOQA
211215

212-
# FIXME: take time zone into account
213-
if date < datetime.today() and not force:
214-
await ctx.send("Requested date {} has already passed. "
215-
"Use the `force` argument to override. "
216-
"See `{}help create`"
217-
.format(date, CMD))
218-
else:
219-
await self._create_event(ctx, date, platoon_size=platoon_size)
216+
await self._create_event(ctx, date, platoon_size=platoon_size,
217+
force=force)
220218

221219
@command(aliases=['cs'])
222220
async def createside(self, ctx: Context, date: EventDateTime, force=None):
@@ -225,18 +223,11 @@ async def createside(self, ctx: Context, date: EventDateTime, force=None):
225223
226224
Use the `force` argument to create past events.
227225
228-
Example: create 2019-01-01
229-
create 2019-01-01 force
226+
Example: createside 2019-01-01
227+
createside 2019-01-01 force
230228
"""
231229

232-
# FIXME: take time zone into account
233-
if date < datetime.today() and not force:
234-
await ctx.send("Requested date {} has already passed. "
235-
"Use the `force` argument to override. "
236-
"See `{}help create`"
237-
.format(date, CMD))
238-
else:
239-
await self._create_event(ctx, date, sideop=True)
230+
await self._create_event(ctx, date, sideop=True, force=force)
240231

241232
@command(aliases=['csq'])
242233
async def createsidequick(self, ctx: Context, date: EventDateTime,
@@ -247,32 +238,25 @@ async def createsidequick(self, ctx: Context, date: EventDateTime,
247238
248239
Use the `force` argument to create past events.
249240
250-
Example: create 2019-01-01 Altis USMC Stroker
251-
create 2019-01-01 Altis USMC Stroker force
241+
Example: createsidequick 2019-01-01 Altis USMC Stroker
242+
createsidequick 2019-01-01 Altis USMC Stroker force
252243
"""
253-
if date < datetime.today() and not force:
254-
await ctx.send("Requested date {} has already passed. "
255-
"Use the `force` argument to override. "
256-
"See `{}help create`"
257-
.format(date, CMD))
258-
else:
259-
event: Event = EventDatabase.createEvent(date, ctx.guild.emojis,
260-
sideop=True,
261-
platoon_size=None)
262-
message = await msgFnc.createEventMessage(event,
263-
self.bot.eventchannel)
244+
event = await self._create_event(
245+
ctx, date, sideop=True, force=force, batch=True)
246+
message = await msgFnc.createEventMessage(
247+
event, self.bot.eventchannel)
264248

265-
event.setTerrain(terrain)
266-
event.setFaction(faction)
267-
event.signup(event.findRoleWithName("ZEUS"), zeus)
249+
event.setTerrain(terrain)
250+
event.setFaction(faction)
251+
event.signup(event.findRoleWithName("ZEUS"), zeus)
268252

269-
await msgFnc.updateReactions(event, message=message)
270-
await msgFnc.updateMessageEmbed(message, event)
271-
await msgFnc.sortEventMessages(ctx)
272-
EventDatabase.toJson() # Update JSON file
273-
await ctx.send("Created event {} with id {}".format(event,
274-
event.id))
275-
return event
253+
await msgFnc.updateReactions(event, message=message)
254+
await msgFnc.updateMessageEmbed(message, event)
255+
await msgFnc.sortEventMessages(ctx)
256+
EventDatabase.toJson() # Update JSON file
257+
await ctx.send(
258+
"Created event {} with id {}".format(event, event.id))
259+
return event
276260

277261
@command(aliases=['mc'])
278262
async def multicreate(self, ctx: Context, start: EventDate,

0 commit comments

Comments
 (0)