#!/usr/bin/env python3 """ ban he ban he ban he """ import time from module import commands, example, require_admin from tools import configureHostMask @commands('banhe') @example('.banhe Rob 30m') def banhe(bot, trigger): """ Bans he for a set period of time. Admins may set the period of time, non-admins only get 20 second bans. """ banhee = trigger.args[1] if len(trigger.args) >= 2 else '' period = trigger.args[2] if len(trigger.args) >= 3 else '' if not trigger.admin: period = 20 else: conv = {'s':1, 'm':60, 'h':3600, 'd':86400} try: period = conv[period[-1]] * int(period[:-1]) except (KeyError, ValueError, TypeError, IndexError): period = 0 banmask = configureHostMask(banhee) bot.mode(trigger.channel, True, "b", mask=banmask) if period > 2592000: bot.reply("Onii-chan, It's too big!") if not period or period > 2592000: return bot.msg(f"Banned \x0304{banhee}\x03 for \x0309∞\x03 seconds.") bot.msg(f"Banned \x0304{banhee}\x03 for \x0309{str(period)}\x03 seconds.") time.sleep(period) bot.mode(trigger.channel, False, "b", mask=banmask) bot.msg(f"Unbanned \x0304{banhee}\x03") @require_admin @commands("banheall") def banheall(bot, trigger): """ Ban them all, Johnny. """ period = trigger.args[1] if len(trigger.args) >= 2 else '20s' conv = {'s':1, 'm':60, 'h':3600, 'd':86400} try: period = conv[period[-1]] * int(period[:-1]) except (IndexError, KeyError, ValueError, TypeError): period = 0 for nick in bot.channels[trigger.channel].users.keys(): banmask = configureHostMask(nick) bot.mode(trigger.channel, True, "b", mask=banmask) if period > 2592000: bot.reply("Onii-chan, It's too big!") if not period or period > 2592000: return bot.msg("Banned \x0304them all\x03 for \x0309∞\x03 seconds.") bot.msg(f"Banned \x0304them all\x03 for \x0309{str(period)}\x03 seconds.") time.sleep(period) for nick in bot.channels[trigger.channel].users.keys(): banmask = configureHostMask(nick) bot.mode(trigger.channel, False, "b", mask=banmask) bot.msg("Unbanned \x0304them all\x03")