forked from sopel-irc/sopel-extras
-
Notifications
You must be signed in to change notification settings - Fork 0
/
slap.py
33 lines (29 loc) · 1.03 KB
/
slap.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
"""
slap.py - Slap Module
Copyright 2009, Michael Yanovich, yanovich.net
http://sopel.chat
"""
import random
import re
from sopel.module import commands
@commands('slap', 'slaps')
def slap(sopel, trigger):
""".slap <target> - Slaps <target>"""
text = trigger.group().split()
if len(text) < 2:
text.append(trigger.nick)
text[1] = re.sub(r"\x1f|\x02|\x12|\x0f|\x16|\x03(?:\d{1,2}(?:,\d{1,2})?)?", '', text[1])
if text[1].startswith('#'):
return
if text[1] == 'me' or text[1] == 'myself':
text[1] = trigger.nick
if text[1] == sopel.nick:
if (trigger.nick not in sopel.config.admins):
text[1] = trigger.nick
else:
text[1] = 'itself'
if text[1] in sopel.config.admins:
if (trigger.nick not in sopel.config.admins):
text[1] = trigger.nick
verb = random.choice(('slaps', 'kicks', 'destroys', 'annihilates', 'punches', 'roundhouse kicks', 'pwns', 'owns'))
sopel.write(['PRIVMSG', trigger.sender, ' :\x01ACTION', verb, text[1], '\x01'])