sopel/modules/banhe.py

77 lines
1.9 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
2017-11-22 19:26:40 -05:00
"""
ban he
ban he
ban he
"""
import time
2018-01-23 18:40:08 -05:00
from module import commands, example, require_admin
2017-11-22 19:26:40 -05:00
import modules.adminchannel
@commands('banhe')
@example('.banhe assfaggot 30m')
2017-11-22 19:26:40 -05:00
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.
"""
print(trigger.group())
2017-11-22 19:26:40 -05:00
banhee, period = trigger.group(3), trigger.group(4)
trigger.set_nick(bot.nick)
2017-11-22 19:26:40 -05:00
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):
period = 0
modules.adminchannel.ban(bot, trigger)
2017-11-22 19:26:40 -05:00
if period > 2592000:
bot.reply("It's too big, Onii-chan.")
if not period or period > 2592000:
return bot.say(f"Banned \x0304{banhee}\x03 for \x0309∞\x03 seconds.")
2017-11-22 19:26:40 -05:00
bot.say(f"Banned \x0304{banhee}\x03 for \x0309{str(period)}\x03 seconds.")
2017-11-22 19:26:40 -05:00
time.sleep(period)
modules.adminchannel.unban(bot, trigger)
bot.say(f"Unbanned \x0304{banhee}\x03")
2018-01-23 18:40:08 -05:00
@require_admin
@commands("banheall")
def banheall(bot, trigger):
"""
Ban them all, Johnny.
"""
period = trigger.group(2)
2018-01-23 18:40:08 -05:00
print(bot.nick)
trigger.set_nick(bot.nick)
conv = {'s':1, 'm':60, 'h':3600, 'd':86400}
try:
period = conv[period[-1]] * int(period[:-1])
except (KeyError, ValueError, TypeError):
period = 0
for nick in bot.privileges[trigger.sender].keys():
trigger.set_group(f".banhe {nick}")
modules.adminchannel.ban(bot, trigger)
if period > 2592000:
bot.reply("It's too big, Onii-chan.")
if not period or period > 2592000:
return bot.say("Banned \x0304them all\x03 for \x0309∞\x03 seconds.")
bot.say(f"Banned \x0304them all\x03 for \x0309{str(period)}\x03 seconds.")
time.sleep(period)
for nick in bot.privileges[trigger.sender].keys():
trigger.set_group(f".banhe {nick}")
modules.adminchannel.unban(bot, trigger)
bot.say("Unbanned \x0304them all\x03")