feat(twitch): Add focuswith command.
This commit is contained in:
@@ -238,7 +238,7 @@ class FocusComponent(cmds.Component):
|
|||||||
"Use !unfocus to come back if you need to, best of luck! ☘️🍀☘️ "
|
"Use !unfocus to come back if you need to, best of luck! ☘️🍀☘️ "
|
||||||
)
|
)
|
||||||
|
|
||||||
@cmds.command(name="unfocus", aliases=["uncrocus"])
|
@cmds.command(name="unfocus", aliases=["uncrocus", "unhyper", "unhyperfocus"])
|
||||||
async def unfocus_cmd(self, ctx):
|
async def unfocus_cmd(self, ctx):
|
||||||
profile = await self.bot.profiles.fetch_profile(ctx.chatter, touch=True)
|
profile = await self.bot.profiles.fetch_profile(ctx.chatter, touch=True)
|
||||||
async with self.hyperfocus_lock:
|
async with self.hyperfocus_lock:
|
||||||
@@ -273,6 +273,40 @@ class FocusComponent(cmds.Component):
|
|||||||
else:
|
else:
|
||||||
await ctx.reply(f"{user.name} is not hyperfocused!")
|
await ctx.reply(f"{user.name} is not hyperfocused!")
|
||||||
|
|
||||||
|
@cmds.command(name="focuswith", aliases=["hyperfocuswith"])
|
||||||
|
async def focuswith_cmd(self, ctx, user: twitchio.User):
|
||||||
|
profile = await self.bot.profiles.fetch_profile(ctx.chatter, touch=False)
|
||||||
|
pid = profile.profileid
|
||||||
|
tprofile = await self.bot.profiles.fetch_profile(user, touch=False)
|
||||||
|
tpid = tprofile.profileid
|
||||||
|
|
||||||
|
now = utc_now()
|
||||||
|
|
||||||
|
if hyper := await self.get_hyperfocus(tpid):
|
||||||
|
async with self.hyperfocus_lock:
|
||||||
|
end_at = hyper.ends_at
|
||||||
|
|
||||||
|
# Update the row
|
||||||
|
comm = await self.bot.profiles.fetch_community(
|
||||||
|
ctx.broadcaster, touch=True
|
||||||
|
)
|
||||||
|
|
||||||
|
await Hyperfocuser.table.delete_where(profileid=pid)
|
||||||
|
focuser = await Hyperfocuser.create(
|
||||||
|
profileid=pid,
|
||||||
|
started_at=now,
|
||||||
|
ends_at=end_at,
|
||||||
|
started_in=comm.communityid,
|
||||||
|
)
|
||||||
|
|
||||||
|
await self.dispatch_focuser_update(pid, comm.communityid, focuser)
|
||||||
|
|
||||||
|
durstr = strfdelta(end_at - now)
|
||||||
|
await ctx.reply(
|
||||||
|
f"{ctx.chatter.name} follows {user.name} into HYPERFOCUS for the next {durstr}!"
|
||||||
|
"Best of luck! ☘️🍀☘️ "
|
||||||
|
)
|
||||||
|
|
||||||
@cmds.command(name="addfocus")
|
@cmds.command(name="addfocus")
|
||||||
async def addfocus_cmd(self, ctx):
|
async def addfocus_cmd(self, ctx):
|
||||||
await ctx.reply(
|
await ctx.reply(
|
||||||
|
|||||||
Reference in New Issue
Block a user