30 lines
969 B
Python
30 lines
969 B
Python
import re
|
|
|
|
class Responses:
|
|
def __init__(self, bot):
|
|
self.bot = bot
|
|
self.triggers = {
|
|
"name": dict(),
|
|
"source": dict(),
|
|
"response": dict()
|
|
}
|
|
|
|
def add_trigger(self, trigger_type, pattern, callback):
|
|
if trigger_type in self.triggers:
|
|
self.triggers[trigger_type][pattern] = callback
|
|
|
|
def parse(self, name, source, response):
|
|
check = {
|
|
"name": name,
|
|
"source": source,
|
|
"response": response
|
|
}
|
|
|
|
for trigger in list(self.triggers.keys()):
|
|
for pattern, callback in self.triggers[trigger].items():
|
|
if pattern[0] == "!" and pattern == response:
|
|
callback(self, name, source, response)
|
|
else:
|
|
regex = re.compile(pattern)
|
|
if regex.match(check[trigger]) is not None:
|
|
callback(self, name, source, response) |