async def deletejob(self, ctx, timestamp: str, job_type: str, job_name: str): """Removes a timed robocronp job, staff only. You'll need to supply: - timestamp (like 1545981602) - job type (like "unban") - job name (userid, like 420332322307571713) You can get all 3 from listjobs command.""" delete_job(timestamp, job_type, job_name) await ctx.send(f"{ctx.author.mention}: Deleted!")
async def do_jobs(self, ctab, jobtype, timestamp): log_channel = self.bot.get_channel(config.botlog_channel) for job_name in ctab[jobtype][timestamp]: try: job_details = ctab[jobtype][timestamp][job_name] if jobtype == "unban": target_user = await self.bot.fetch_user(job_name) target_guild = self.bot.get_guild(job_details["guild"]) delete_job(timestamp, jobtype, job_name) await target_guild.unban(target_user, reason="Robocronp: Timed " "ban expired.") elif jobtype == "unmute": remove_restriction(job_name, config.mute_role) target_guild = self.bot.get_guild(job_details["guild"]) target_member = target_guild.get_member(int(job_name)) target_role = target_guild.get_role(config.mute_role) await target_member.remove_roles(target_role, reason="Robocronp: Timed " "mute expired.") delete_job(timestamp, jobtype, job_name) elif jobtype == "remind": text = job_details["text"] added_on = job_details["added"] target = await self.bot.fetch_user(int(job_name)) if target: await target.send("You asked to be reminded about" f" `{text}` on {added_on}.") delete_job(timestamp, jobtype, job_name) except: # Don't kill cronjobs if something goes wrong. delete_job(timestamp, jobtype, job_name) await log_channel.send("Crondo has errored, job deleted: ```" f"{traceback.format_exc()}```")
async def do_jobs(self, ctab, jobtype, timestamp): for job_name in ctab[jobtype][timestamp]: job_details = ctab[jobtype][timestamp][job_name] if jobtype == "unban": target_user = await self.bot.get_user_info(job_name) target_guild = self.bot.get_guild(job_details["guild"]) await target_guild.unban( target_user, reason="Robocronp: Timed ban expired.") delete_job(timestamp, jobtype, job_name) elif jobtype == "unmute": remove_restriction(job_name, config.mute_role) target_guild = self.bot.get_guild(job_details["guild"]) target_member = target_guild.get_member(int(job_name)) target_role = target_guild.get_role(config.mute_role) await target_member.remove_roles(target_role, reason="Robocronp: Timed " "mute expired.") delete_job(timestamp, jobtype, job_name)