forked from aewens/babili-bot
Merge branch 'develop'
This commit is contained in:
commit
73eb573f83
|
@ -2,6 +2,7 @@
|
|||
settings.json
|
||||
settings.demo.json
|
||||
data/*.json
|
||||
logs/*.log*
|
||||
irc/
|
||||
|
||||
# ---> Python
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
from actions.botlist import botlist
|
||||
from actions.web import summon, whois
|
||||
from actions.access import banish, pardon
|
||||
from actions.control import puppet, nomad
|
||||
from actions.stupid import hmm, hmmscore, hmmscoreboard
|
||||
from actions.control import puppet, inject, nomad
|
||||
from actions.web import summon, whois, how_dare_you
|
||||
from actions.stupid import score_word, wordscore, wordscoreboard
|
||||
|
||||
actions = [
|
||||
{
|
||||
|
@ -17,47 +17,72 @@ actions = [
|
|||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": ";;!summon \S+ .+",
|
||||
"pattern": "/!summon \S+ .+/",
|
||||
"callback": summon
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": ";;!banish \S+ .+",
|
||||
"pattern": "/!summon \S+$/",
|
||||
"callback": how_dare_you
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": "/!banish \S+ .+/",
|
||||
"callback": banish
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": ";;!pardon \S+",
|
||||
"pattern": "/!pardon \S+/",
|
||||
"callback": pardon
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": ";;!puppet [^|]+\|.+",
|
||||
"pattern": "/!puppet \S+ .+/",
|
||||
"callback": puppet
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": ";;!nomad \S+ \S+",
|
||||
"pattern": "/!inject \S+/",
|
||||
"callback": inject
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": "/!nomad \S+ \S+/",
|
||||
"callback": nomad
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": ";;hm+",
|
||||
"callback": hmm
|
||||
"pattern": "/hm+/",
|
||||
"callback": score_word("hmm", "hm+")
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": ";;!hmmscore",
|
||||
"callback": hmmscore
|
||||
"pattern": "/!hmmscore(\s|$)/",
|
||||
"callback": wordscore("hmm")
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": "!hmmscoreboard",
|
||||
"callback": hmmscoreboard
|
||||
"callback": wordscoreboard("hmm")
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": ";;!whois \S+",
|
||||
"pattern": "/o+f/",
|
||||
"callback": score_word("oof", "o+f")
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": "/!oofscore(\s|$)/",
|
||||
"callback": wordscore("oof")
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": "!oofscoreboard",
|
||||
"callback": wordscoreboard("oof")
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"pattern": "/!whois \S+/",
|
||||
"callback": whois
|
||||
}
|
||||
]
|
|
@ -16,7 +16,7 @@ def banish(self, name, source, response):
|
|||
"when": datetime.now().timestamp()
|
||||
}
|
||||
|
||||
self.bot.save_memories()
|
||||
self.bot.thread(self.bot.save_memories)
|
||||
|
||||
confirmation = "{} has been banished for reason: {}".format(user, reason)
|
||||
self.bot.send_message(source, confirmation)
|
||||
|
@ -31,7 +31,7 @@ def pardon(self, name, source, response):
|
|||
|
||||
del self.bot.memories["users"][user]["blacklist"]
|
||||
|
||||
self.bot.save_memories()
|
||||
self.bot.thread(self.bot.save_memories)
|
||||
|
||||
confirmation = "{} has been pardoned".format(user)
|
||||
self.bot.send_message(source, confirmation)
|
|
@ -2,12 +2,27 @@ def puppet(self, name, source, response):
|
|||
botnick = self.bot.botnick
|
||||
author = self.bot.author
|
||||
command = response.split("!puppet ")[1]
|
||||
place, message = command.split("|", 1)
|
||||
mode, place, message = command.split(" ", 2)
|
||||
|
||||
if name != author:
|
||||
return
|
||||
|
||||
self.bot.send_message(place, message)
|
||||
modes = {
|
||||
"say": self.bot.send_message,
|
||||
"act": self.bot.send_action
|
||||
}
|
||||
default = lambda _, msg: self.bot.send_message(source, "Invalid action!")
|
||||
modes.get(mode, default)(place, message)
|
||||
|
||||
def inject(self, name, source, response):
|
||||
botnick = self.bot.botnick
|
||||
author = self.bot.author
|
||||
command = response.split("!inject ")[1]
|
||||
|
||||
if name != author:
|
||||
return
|
||||
|
||||
self.bot.send(command)
|
||||
|
||||
def nomad(self, name, source, response):
|
||||
botnick = self.bot.botnick
|
||||
|
@ -23,5 +38,4 @@ def nomad(self, name, source, response):
|
|||
"leave": self.bot.leave
|
||||
}
|
||||
default = lambda p: self.bot.send_message(source, "Invalid action!")
|
||||
|
||||
actions.get(action, default)(place)
|
|
@ -1,58 +1,81 @@
|
|||
import re
|
||||
import operator
|
||||
|
||||
def hmm(self, name, source, response):
|
||||
botnick = self.bot.botnick
|
||||
pattern = re.compile("hm+")
|
||||
matches = re.findall(pattern, response)
|
||||
score = len(matches)
|
||||
def capitalize(word):
|
||||
return word[0].upper() + word[1:]
|
||||
|
||||
if name not in self.bot.memories["users"]:
|
||||
self.bot.memories["users"][name] = dict()
|
||||
def score_word(word, regex):
|
||||
def wording(self, name, source, response):
|
||||
check = response.lower().strip()
|
||||
|
||||
if "hmmscore" not in self.bot.memories["users"][name]:
|
||||
self.bot.memories["users"][name]["hmmscore"] = 0
|
||||
botnick = self.bot.botnick
|
||||
pattern = re.compile(regex)#"hm+")
|
||||
matches = re.findall(pattern, check)
|
||||
maximum = 10
|
||||
score = len(matches) if len(matches) <= maximum else maximum
|
||||
|
||||
current_score = self.bot.memories["users"][name]["hmmscore"]
|
||||
self.bot.memories["users"][name]["hmmscore"] = current_score + score
|
||||
if len(matches) > 1 and len("".join(re.split(pattern, check))) == 0:
|
||||
return
|
||||
|
||||
self.bot.save_memories()
|
||||
if name not in self.bot.memories["users"]:
|
||||
self.bot.memories["users"][name] = dict()
|
||||
|
||||
def hmmscore(self, name, source, response):
|
||||
botnick = self.bot.botnick
|
||||
score = 0
|
||||
score_format = "Hmm score for '{}': {}"
|
||||
keyword = "{}score".format(word)
|
||||
|
||||
if " " in response:
|
||||
name = response.split(" ", 1)[1].strip()
|
||||
if keyword not in self.bot.memories["users"][name]:
|
||||
self.bot.memories["users"][name][keyword] = 0
|
||||
|
||||
if name not in self.bot.memories["users"]:
|
||||
current_score = self.bot.memories["users"][name][keyword]
|
||||
self.bot.memories["users"][name][keyword] = current_score + score
|
||||
|
||||
self.bot.thread(self.bot.save_memories)
|
||||
return wording
|
||||
|
||||
def wordscore(word):
|
||||
def scoring(self, name, source, response):
|
||||
botnick = self.bot.botnick
|
||||
score = 0
|
||||
score_format = "%s score for '{}': {}" % (capitalize(word))
|
||||
|
||||
if " " in response:
|
||||
name = response.split(" ", 1)[1].strip()
|
||||
|
||||
if name not in self.bot.memories["users"]:
|
||||
self.bot.send_message(source, score_format.format(name, score))
|
||||
return
|
||||
|
||||
keyword = "{}score".format(word)
|
||||
|
||||
if keyword not in self.bot.memories["users"][name]:
|
||||
self.bot.send_message(source, score_format.format(name, score))
|
||||
return
|
||||
|
||||
score = self.bot.memories["users"][name][keyword]
|
||||
self.bot.send_message(source, score_format.format(name, score))
|
||||
return
|
||||
return scoring
|
||||
|
||||
if "hmmscore" in self.bot.memories["users"][name]:
|
||||
score = self.bot.memories["users"][name]["hmmscore"]
|
||||
self.bot.send_message(source, score_format.format(name, score))
|
||||
return
|
||||
def wordscoreboard(word):
|
||||
def scoreboard(self, name, source, response):
|
||||
botnick = self.bot.botnick
|
||||
scores = list()
|
||||
|
||||
def hmmscoreboard(self, name, source, response):
|
||||
botnick = self.bot.botnick
|
||||
hmmscores = list()
|
||||
for user, values in self.bot.memories["users"].items():
|
||||
scores.append({
|
||||
"name": user,
|
||||
"score": values.get("{}score".format(word), 0)
|
||||
})
|
||||
|
||||
for user, values in self.bot.memories["users"].items():
|
||||
hmmscores.append({
|
||||
"name": user,
|
||||
"score": values.get("hmmscore", 0)
|
||||
})
|
||||
size = 3
|
||||
start = -size
|
||||
|
||||
size = 3
|
||||
start = -size
|
||||
sort_scores = sorted(scores, key=lambda k: k["score"])
|
||||
top_scores = sort_scores[start:][::-1]
|
||||
|
||||
sort_scores = sorted(hmmscores, key=lambda k: k["score"])
|
||||
top_scores = sort_scores[start:][::-1]
|
||||
leaders = " | ".join([
|
||||
"{} {}".format(ts["name"], ts["score"]) for ts in top_scores
|
||||
])
|
||||
|
||||
leaders = " | ".join([
|
||||
"{} {}".format(ts["name"], ts["score"]) for ts in top_scores
|
||||
])
|
||||
response = "{} Score Leaderboard: {}".format(capitalize(word), leaders)
|
||||
|
||||
self.bot.send_message(source, "Hmm Score Leaderboard: {}".format(leaders))
|
||||
self.bot.send_message(source, response)
|
||||
return scoreboard
|
|
@ -74,6 +74,11 @@ def summon(self, name, source, response):
|
|||
confirmation = "{}: You have summoned {}".format(name, user)
|
||||
self.bot.send_message(source, confirmation)
|
||||
|
||||
def how_dare_you(self, name, source, response):
|
||||
user = response.split("!summon ")[1]
|
||||
rude = "{}: You think you can just summon someone without a reason? Rude."
|
||||
self.bot.send_message(source, rude.format(user))
|
||||
|
||||
def whois(self, name, source, response):
|
||||
botnick = self.bot.botnick
|
||||
domain = response.split("!whois ")[1]
|
||||
|
@ -89,13 +94,14 @@ def whois(self, name, source, response):
|
|||
except HTTPError:
|
||||
self.bot.send_message(source, "{} cannot exist".format(domain))
|
||||
return
|
||||
|
||||
registered = data.get("registered", False)
|
||||
nameservers = len(data.get("nameservers", list())) > 0
|
||||
self.bot.logger.debug("WHOIS: {}".format(data))
|
||||
|
||||
registered = data.get("registered", None)
|
||||
if registered is not None:
|
||||
nameservers = len(data.get("nameservers", ""))
|
||||
registrar = data.get("registrar", dict())
|
||||
is_registered = "id" in registrar or nameservers > 0
|
||||
status = "registered" if is_registered else "available"
|
||||
self.bot.send_message(source, "{} is '{}'".format(domain, status))
|
||||
if registered and nameservers:
|
||||
self.bot.send_message(source, "{} is '{}'".format(domain, "registered"))
|
||||
elif not (registered or nameservers):
|
||||
self.bot.send_message(source, "{} is '{}'".format(domain, "available"))
|
||||
else:
|
||||
self.bot.send_message(source, "{} might be available".format(domain))
|
76
app.py
76
app.py
|
@ -1,34 +1,26 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from argparse import ArgumentParser
|
||||
from os.path import dirname, realpath
|
||||
|
||||
from bot import Bot, Tasks, Responses
|
||||
from actions import actions
|
||||
from coroutines import coroutines
|
||||
|
||||
debug = False
|
||||
kingme = [] if debug else ["#chaos"]
|
||||
channels = ["#bots", "#insane"]
|
||||
if not debug:
|
||||
channels.extend([
|
||||
"#meta",
|
||||
"#team",
|
||||
"#chaos",
|
||||
"#tildeverse"
|
||||
])
|
||||
parser = ArgumentParser(description="A meta bot for ~team")
|
||||
parser.add_argument(
|
||||
"-c",
|
||||
"--config",
|
||||
dest="config",
|
||||
default="settings.json",
|
||||
help="Load config file"
|
||||
)
|
||||
arguments = parser.parse_args()
|
||||
|
||||
bot = Bot("127.0.0.1", 6667, "BabiliBot", channels)
|
||||
bot = Bot("127.0.0.1", 6667)
|
||||
responses = Responses(bot)
|
||||
tasks = Tasks(bot)
|
||||
|
||||
for action in actions:
|
||||
if "type" in action and "pattern" in action and "callback" in action:
|
||||
responses.add_trigger(
|
||||
action["type"],
|
||||
action["pattern"],
|
||||
action["callback"]
|
||||
)
|
||||
|
||||
# for coro in coroutines:
|
||||
# worker = coro["worker"]
|
||||
# interval = coro["interval"]
|
||||
|
@ -37,6 +29,14 @@ for action in actions:
|
|||
# tasks.add_coroutine(worker, interval, coro_state)
|
||||
tasks.coroutines = coroutines
|
||||
|
||||
for action in actions:
|
||||
if "type" in action and "pattern" in action and "callback" in action:
|
||||
responses.add_trigger(
|
||||
action["type"],
|
||||
action["pattern"],
|
||||
action["callback"]
|
||||
)
|
||||
|
||||
def try_to_king_me(channel):
|
||||
bot.send_message("ChanServ", "REGISTER {}", channel)
|
||||
bot.send_message("ChanServ", "SET Successor {} {}", channel, bot.botnick)
|
||||
|
@ -50,17 +50,27 @@ def handle_mode(channel, mode):
|
|||
try_to_king_me(channel)
|
||||
|
||||
def handle_invite(channel, name):
|
||||
changed = False
|
||||
kingme = bot.settings.get("extras", dict()).get("kingme", [])
|
||||
|
||||
if channel in kingme:
|
||||
try_to_king_me(channel)
|
||||
|
||||
users = bot.memories["users"]
|
||||
if name not in users:
|
||||
bot.memories["users"][name] = dict()
|
||||
changed = True
|
||||
|
||||
if "invites" not in users[name]:
|
||||
bot.memories["users"][name]["invites"] = list()
|
||||
changed = True
|
||||
|
||||
bot.memories["users"][name]["invites"].append(channel)
|
||||
if channel not in bot.memories["users"][name]["invites"]:
|
||||
bot.memories["users"][name]["invites"].append(channel)
|
||||
changed = True
|
||||
|
||||
if changed:
|
||||
bot.thread(bot.save_memories)
|
||||
|
||||
def handle_kick(name):
|
||||
users = bot.memories["users"]
|
||||
|
@ -68,18 +78,38 @@ def handle_kick(name):
|
|||
bot.memories["users"][name] = dict()
|
||||
|
||||
bot.memories["users"][name]["kicker"] = True
|
||||
bot.thread(bot.save_memories)
|
||||
|
||||
def handle_message(name, source, response):
|
||||
responses.parse(name, source, response)
|
||||
if response == "!debug":
|
||||
print("::", bot.memories)
|
||||
bot.logger.debug(":: {}".format(bot.memories))
|
||||
|
||||
def handle_crashed():
|
||||
bot.logger.debug("Rebooting")
|
||||
bot.crashed = True
|
||||
bot.tasks.stop()
|
||||
|
||||
tasks = Tasks(bot)
|
||||
tasks.coroutines = coroutines
|
||||
|
||||
if __name__ == "__main__":
|
||||
bot.tasks = tasks
|
||||
bot.start(dirname(realpath(__file__)), {
|
||||
bot.start(arguments.config, dirname(realpath(__file__)), {
|
||||
"pm": handle_pm,
|
||||
"mode": handle_mode,
|
||||
"invite": handle_invite,
|
||||
"kick": handle_kick,
|
||||
"crashed": handle_crashed,
|
||||
"message": handle_message
|
||||
})
|
||||
|
||||
if __name__ == "__main__":
|
||||
bot.tasks = tasks
|
||||
bot.start(arguments.config, dirname(realpath(__file__)), {
|
||||
"pm": handle_pm,
|
||||
"mode": handle_mode,
|
||||
"invite": handle_invite,
|
||||
"kick": handle_kick,
|
||||
"crashed": handle_crashed,
|
||||
"message": handle_message
|
||||
})
|
137
bot/core.py
137
bot/core.py
|
@ -2,32 +2,57 @@ import re
|
|||
import json
|
||||
import socket
|
||||
import os.path
|
||||
import logging
|
||||
from threading import Thread
|
||||
from logging.handlers import TimedRotatingFileHandler
|
||||
|
||||
logging.basicConfig(
|
||||
level=logging.DEBUG,
|
||||
format="[%(levelname)s] [%(asctime)s] >> \n%(message)s",
|
||||
datefmt="%Y-%m-%d %H:%M:%S"
|
||||
)
|
||||
|
||||
class Bot:
|
||||
def __init__(self, server, port, botnick, channels):
|
||||
def __init__(self, server, port):
|
||||
self.ircsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.logger = logging.getLogger("")
|
||||
self.server = server
|
||||
self.port = port
|
||||
self.botnick = botnick
|
||||
self.channels = channels
|
||||
self.channels = []
|
||||
self.running = True
|
||||
self.crashed = False
|
||||
|
||||
self.settings = dict()
|
||||
self.places = list()
|
||||
self.tasks = None
|
||||
self.author = ""
|
||||
self.botnick = ""
|
||||
|
||||
self.recv_size = 2048
|
||||
self.splitter = "\n\r"
|
||||
self.splitter = "\r\n"
|
||||
|
||||
def send(self, message, *args):
|
||||
response = message.format(*args) + "\n"
|
||||
password = self.settings.get("password", None)
|
||||
|
||||
if password is not None:
|
||||
self.logger.info(response.replace(password, "*" * len(password)))
|
||||
else:
|
||||
self.logger.info(response)
|
||||
|
||||
print("DEBUG: ", response)
|
||||
self.ircsock.send(response.encode())
|
||||
|
||||
def send_message(self, target, message, *args):
|
||||
msg = message.format(*args)
|
||||
response = "PRIVMSG {0} :{1}".format(target, msg) + "\n"
|
||||
password = self.settings.get("password", None)
|
||||
|
||||
if password is not None:
|
||||
self.logger.info(response.replace(password, "*" * len(password)))
|
||||
else:
|
||||
self.logger.info(response)
|
||||
|
||||
print("DEBUG: ", response)
|
||||
self.ircsock.send(response.encode())
|
||||
|
||||
|
@ -42,17 +67,22 @@ class Bot:
|
|||
magic_string = "End of /NAMES list."
|
||||
while magic_string not in message:
|
||||
message = self.ircsock.recv(self.recv_size).decode()
|
||||
message = message.strip(self.splitter)
|
||||
# message = message.strip(self.splitter)
|
||||
print(message)
|
||||
self.logger.debug(message)
|
||||
|
||||
user_list = "= {} :".format(chan)
|
||||
raw_users = message.split(user_list)[1].split(" \r\n")[0].split(" ")
|
||||
prefix_filter = lambda u: u[1:] if "~" in u or "@" in u else u
|
||||
users = list(filter(prefix_filter, raw_users))
|
||||
list_pattern = re.compile("[@=] {} :".format(chan))
|
||||
user_listing = re.split(list_pattern, message)
|
||||
if len(user_listing) < 2:
|
||||
print("DEBUG: Skipping adding users from {}".format(chan))
|
||||
return
|
||||
|
||||
splitter = " {}".format(self.splitter)
|
||||
raw_users = user_listing[1].split(splitter)[0].split(" ")
|
||||
users = list(filter(self.parse_name, raw_users))
|
||||
remember = self.memories["users"]
|
||||
for user in users:
|
||||
if user[0] == "~" or user[0] == "@":
|
||||
user = user[1:]
|
||||
user = self.parse_name(user)
|
||||
|
||||
if user not in remember:
|
||||
self.memories["users"][user] = dict()
|
||||
|
@ -69,21 +99,31 @@ class Bot:
|
|||
def get_name(self, text):
|
||||
return text.split("!", 1)[0][1:]
|
||||
|
||||
def parse_name(self, name):
|
||||
if name[0] == "~" or name[0] == "@" or name[0] == "+":
|
||||
return name[1:]
|
||||
else:
|
||||
return name
|
||||
|
||||
def parse(self, message):
|
||||
before, after = message.split("PRIVMSG ", 1)
|
||||
name = self.get_name(before)
|
||||
name = self.parse_name(self.get_name(before))
|
||||
source, response = after.split(" :", 1)
|
||||
return name, source, response
|
||||
|
||||
def handle_mode(self, message):
|
||||
before, after = message.split("MODE ", 1)
|
||||
name = self.get_name(before)
|
||||
name = self.parse_name(self.get_name(before))
|
||||
channel, mode = after.split(" ")[:2]
|
||||
return channel, mode
|
||||
|
||||
def handle_rename(self, message):
|
||||
before, new_name = message.split("NICK ", 1)
|
||||
name = self.get_name(before)
|
||||
|
||||
new_name = self.parse_name(new_name)
|
||||
name = self.parse_name(name)
|
||||
|
||||
user = self.memories["users"][name]
|
||||
del self.memories["users"][name]
|
||||
self.memories["users"][new_name] = user
|
||||
|
@ -91,19 +131,19 @@ class Bot:
|
|||
|
||||
def handle_invite(self, message):
|
||||
before, after = message.split("INVITE ", 1)
|
||||
name = self.get_name(before)
|
||||
name = self.parse_name(self.get_name(before))
|
||||
channel = after.split(":", 1)[1]
|
||||
self.join(channel)
|
||||
return channel, name
|
||||
|
||||
def handle_kick(self, message):
|
||||
regex = "KICK #\S+ {} :".format(self.botnick)
|
||||
before, kicker = re.split(regex, message)
|
||||
return kicker
|
||||
before, after = message.split("KICK ", 1)
|
||||
name = self.parse_name(self.get_name(before))
|
||||
return name
|
||||
|
||||
def handle_join(self, message):
|
||||
before, after = message.split("JOIN ", 1)
|
||||
user = self.get_name(before)
|
||||
user = self.parse_name(self.get_name(before))
|
||||
|
||||
if user not in self.memories["users"]:
|
||||
self.memories["users"][user] = dict()
|
||||
|
@ -112,7 +152,7 @@ class Bot:
|
|||
|
||||
def handle_part(self, message):
|
||||
before, after = message.split("PART ", 1)
|
||||
user = self.get_name(before)
|
||||
user = self.parse_name(self.get_name(before))
|
||||
return user
|
||||
|
||||
def load_memories(self, location):
|
||||
|
@ -127,6 +167,11 @@ class Bot:
|
|||
with open(path, "r") as f:
|
||||
self.memories = json.loads(f.read())
|
||||
|
||||
def thread(self, fn, *args):
|
||||
print((self, *args))
|
||||
t = Thread(target=fn, args=args)
|
||||
t.start()
|
||||
|
||||
def save_memories(self):
|
||||
with open(self.memories_path, "w") as f:
|
||||
try:
|
||||
|
@ -136,7 +181,9 @@ class Bot:
|
|||
|
||||
def load_settings(self, location):
|
||||
set_vars = [
|
||||
"author"
|
||||
"author",
|
||||
"botnick",
|
||||
"channels"
|
||||
]
|
||||
|
||||
path = "{}/{}".format(self.location, location)
|
||||
|
@ -148,22 +195,30 @@ class Bot:
|
|||
setattr(self, name, attr)
|
||||
|
||||
def stop(self):
|
||||
self.send("QUIT :Overheating, powering down")
|
||||
self.running = False
|
||||
self.send("QUIT")
|
||||
|
||||
def start(self, location, callback):
|
||||
def start(self, config, location, callback):
|
||||
message = ""
|
||||
registered = False
|
||||
confirmed = True
|
||||
|
||||
self.location = location
|
||||
self.load_settings(config)
|
||||
self.load_memories("data/memories.json")
|
||||
|
||||
logfile = "{}/logs/{}.log".format(self.location, self.botnick)
|
||||
logfmt = "[%(levelname)s] [%(asctime)s] >> \n%(message)s"
|
||||
datefmt = "%Y-%m-%d %H:%M:%S"
|
||||
logger = TimedRotatingFileHandler(logfile, "midnight", 1)
|
||||
logger.setLevel(logging.DEBUG)
|
||||
logger.setFormatter(logging.Formatter(logfmt, datefmt))
|
||||
self.logger.addHandler(logger)
|
||||
|
||||
self.ircsock.connect((self.server, self.port))
|
||||
self.send("USER {0} {0} {0} {0}", self.botnick)
|
||||
self.send("NICK {0}", self.botnick)
|
||||
|
||||
self.location = location
|
||||
self.load_settings("settings.json")
|
||||
self.load_memories("data/memories.json")
|
||||
|
||||
password = self.settings["password"] or ""
|
||||
confirm = self.settings["confirm"] or ""
|
||||
email = self.settings["email"] or ""
|
||||
|
@ -178,7 +233,7 @@ class Bot:
|
|||
while magic_string not in message:
|
||||
message = self.ircsock.recv(self.recv_size).decode()
|
||||
message = message.strip(self.splitter)
|
||||
print(message)
|
||||
self.logger.debug(message)
|
||||
if not registered and magic_phrase["has_registered"] in message:
|
||||
registered = True
|
||||
if not registered and magic_phrase["needs_to_register"] in message:
|
||||
|
@ -201,9 +256,19 @@ class Bot:
|
|||
self.tasks.run()
|
||||
|
||||
while self.running:
|
||||
message = self.ircsock.recv(self.recv_size).decode()
|
||||
message = ""
|
||||
while self.splitter not in message:
|
||||
message = self.ircsock.recv(self.recv_size).decode()
|
||||
|
||||
message = message.strip(self.splitter)
|
||||
print(message)
|
||||
self.logger.debug("{}".format(message))
|
||||
|
||||
if ":Closing link:" in message:
|
||||
self.logger.warning(message)
|
||||
self.stop()
|
||||
if "crashed" in callback:
|
||||
callback["crashed"]()
|
||||
break
|
||||
|
||||
if "raw" in callback:
|
||||
callback["raw"](message)
|
||||
|
@ -212,6 +277,12 @@ class Bot:
|
|||
self.ping(message)
|
||||
if "ping" in callback:
|
||||
callback["ping"]()
|
||||
elif "PRIVMSG " in message:
|
||||
name, source, response = self.parse(message)
|
||||
if source == self.botnick and "pm" in callback:
|
||||
callback["pm"](name, response)
|
||||
elif "message" in callback:
|
||||
callback["message"](name, source, response)
|
||||
elif "MODE " in message:
|
||||
channel, mode = self.handle_mode(message)
|
||||
if "mode" in callback:
|
||||
|
@ -236,11 +307,5 @@ class Bot:
|
|||
channel, name = self.handle_invite(message)
|
||||
if "invite" in callback:
|
||||
callback["invite"](channel, name)
|
||||
elif "PRIVMSG " in message:
|
||||
name, source, response = self.parse(message)
|
||||
if source == self.botnick and "pm" in callback:
|
||||
callback["pm"](name, response)
|
||||
elif "message" in callback:
|
||||
callback["message"](name, source, response)
|
||||
elif "unhandled" in callback:
|
||||
callback["unhandled"](message)
|
||||
callback["unhandled"](message)
|
|
@ -48,24 +48,21 @@ class Responses:
|
|||
if name not in users:
|
||||
return False
|
||||
|
||||
response = response.lower().strip()
|
||||
check = {
|
||||
check = response.lower().strip()
|
||||
trig = {
|
||||
"name": name,
|
||||
"source": source,
|
||||
"response": response
|
||||
"response": response.lower().strip()
|
||||
}
|
||||
|
||||
marker = ";;"
|
||||
mlen = len(marker)
|
||||
|
||||
for trigger in list(self.triggers.keys()):
|
||||
for pattern, callback in self.triggers[trigger].items():
|
||||
if pattern[:mlen] != marker:
|
||||
if pattern == response and self.allowed(name, source):
|
||||
if pattern[0] != "/" and pattern[-1] != "/":
|
||||
if pattern == check and self.allowed(name, source):
|
||||
callback(self, name, source, response)
|
||||
else:
|
||||
regex = re.compile(pattern[mlen:])
|
||||
if regex.match(check[trigger]) is not None:
|
||||
regex = re.compile(pattern[1:-1])
|
||||
if regex.match(trig[trigger]) is not None:
|
||||
if self.allowed(name, source):
|
||||
callback(self, name, source, response)
|
||||
|
||||
|
|
|
@ -32,6 +32,10 @@ class Tasks:
|
|||
"state": state
|
||||
})
|
||||
|
||||
def stop(self):
|
||||
list(map(self.scheduler.cancel, self.scheduler.queue))
|
||||
self.thread.stop()
|
||||
|
||||
def run(self):
|
||||
self.thread.daemon = True
|
||||
self.thread.start()
|
|
@ -34,7 +34,7 @@ coroutines = [
|
|||
"state": {
|
||||
"alias": "links-comments",
|
||||
"source": "https://tilde.news/comments.rss",
|
||||
"use": "summary",
|
||||
"use": "description",
|
||||
"channels": ["#tildeverse"]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from xml.etree import ElementTree as etree
|
||||
from urllib.request import Request, urlopen
|
||||
from urllib.error import HTTPError
|
||||
from urllib.error import HTTPError, URLError
|
||||
from json import loads, dumps
|
||||
from re import sub
|
||||
|
||||
|
@ -49,7 +49,7 @@ class RSS:
|
|||
|
||||
self.memory["known"].append(guid)
|
||||
|
||||
use = sub(r"(<\/?[^>]+>)|\\n", "", item.findtext(self.use, ""))
|
||||
use = sub(r"(<\/?[^>]+>)|\n", "", item.findtext(self.use, ""))
|
||||
user = item.findtext("author", "").split("@")[0]
|
||||
post = "{} (posted by {}) <{}>".format(use, user, guid)
|
||||
response = "[{}] {}".format(self.alias, post)
|
||||
|
@ -62,8 +62,10 @@ class RSS:
|
|||
response = urlopen(req).read()
|
||||
except HTTPError:
|
||||
return
|
||||
except URLError:
|
||||
return
|
||||
|
||||
feed = etree.fromstring(response)
|
||||
items = feed.findall("channel/item")
|
||||
for item in items:
|
||||
callback(item)
|
||||
callback(item)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,395 @@
|
|||
[INFO] [2018-09-20 13:43:39] >>
|
||||
USER BabiliBot|py BabiliBot|py BabiliBot|py BabiliBot|py
|
||||
|
||||
[INFO] [2018-09-20 13:43:39] >>
|
||||
NICK BabiliBot|py
|
||||
|
||||
[DEBUG] [2018-09-20 13:43:39] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Looking up your hostname...
|
||||
[DEBUG] [2018-09-20 13:43:39] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Found your hostname (localhost) -- cached
|
||||
[DEBUG] [2018-09-20 13:43:40] >>
|
||||
:team.tilde.chat NOTICE Auth :Welcome to tilde.chat!
|
||||
:team.tilde.chat 001 BabiliBot|py :Welcome to the tilde.chat IRC Network BabiliBot|py!BabiliBot|p@localhost
|
||||
:team.tilde.chat 002 BabiliBot|py :Your host is team.tilde.chat, running version InspIRCd-2.0
|
||||
:team.tilde.chat 003 BabiliBot|py :This server was created 13:26:16 Jun 18 2018
|
||||
:team.tilde.chat 004 BabiliBot|py team.tilde.chat InspIRCd-2.0 BIRiorsw MRabfhiklmnopqrstvz abfhkloqv
|
||||
:team.tilde.chat 005 BabiliBot|py AWAYLEN=200 CASEMAPPING=rfc1459 CHANMODES=b,k,fl,MRimnprstz CHANNELLEN=64 CHANTYPES=# CHARSET=ascii ELIST=MU EXTBAN=,RUz FNC KICKLEN=255 MAP MAXBANS=60 MAXCHANNELS=100 :are supported by this server
|
||||
:team.tilde.chat 005 BabiliBot|py MAXPARA=32 MAXTARGETS=20 MODES=20 NETWORK=tilde.chat NICKLEN=31 PREFIX=(qaohv)~&@%+ SSL=[::]:6697 STATUSMSG=~&@%+ TOPICLEN=307 VBANLIST WALLCHOPS WALLVOICES :are supported by this server
|
||||
:team.tilde.chat 042 BabiliBot|py 674AAAWDE :your unique ID
|
||||
:team.tilde.chat 375 BabiliBot|py :team.tilde.chat message of the day
|
||||
:team.tilde.chat 372 BabiliBot|py :- __ __ _ __ __ __ __
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /____ ____ _____ ___ / /_(_) /___/ /__ _____/ /_ ____ _/ /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- / __/ _ \/ __ `/ __ `__ \ / __/ / / __ / _ \ / ___/ __ \/ __ `/ __/
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /_/ __/ /_/ / / / / / // /_/ / / /_/ / __// /__/ / / / /_/ / /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- \__/\___/\__,_/_/ /_/ /_(_)__/_/_/\__,_/\___(_)___/_/ /_/\__,_/\__/
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- welcome to tilde.chat (this node hosted on tilde.team)
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- check out the appropriate channel for your tilde:
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- - tilde.team => #team
|
||||
:team.ti
|
||||
[DEBUG] [2018-09-20 13:43:40] >>
|
||||
lde.chat 372 BabiliBot|py :- - tilde.town => #town
|
||||
:team.tilde.chat 372 BabiliBot|py :- - yourtilde => #your
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- the main lobby channel is #meta. check /list for the other channels
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- msg an oper if you need anything and
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- ~~ be excellent to each other ~~
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- connecting and chatting here implies agreement with the code of conduct:
|
||||
:team.tilde.chat 372 BabiliBot|py :- https://tilde.team/wiki/?page=code-of-conduct
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 376 BabiliBot|py :End of message of the day.
|
||||
:team.tilde.chat 251 BabiliBot|py :There are 98 users and 7 invisible on 4 servers
|
||||
:team.tilde.chat 252 BabiliBot|py 2 :operator(s) online
|
||||
:team.tilde.chat 254 BabiliBot|py 51 :channels formed
|
||||
:team.tilde.chat 255 BabiliBot|py :I have 77 clients and 3 servers
|
||||
:team.tilde.chat 265 BabiliBot|py :Current Local Users: 77 Max: 77
|
||||
:team.tilde.chat 266 BabiliBot|py :Current Global Users: 105 Max: 105
|
||||
:team.tilde.chat NOTICE BabiliBot|py :Setting your virtual host: tilde.team
|
||||
:team.tilde.chat 396 BabiliBot|py tilde.team :is now your displayed host
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :This nickname is registered and protected. If it is your
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :nick, type /msg NickServ IDENTIFY password. Otherwise,
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :please choose a different nick.
|
||||
[INFO] [2018-09-20 13:43:40] >>
|
||||
PRIVMSG NickServ :IDENTIFY ************************
|
||||
|
||||
[DEBUG] [2018-09-20 13:43:40] >>
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :Password accepted - you are now recognized.
|
||||
:team.tilde.chat 900 BabiliBot|py BabiliBot|py!BabiliBot|p@tilde.team BabiliBot|py :You are now logged in as BabiliBot|py
|
||||
[DEBUG] [2018-09-20 13:43:40] >>
|
||||
:NickServ!services@services.tilde.chat MODE BabiliBot|py +r
|
||||
[INFO] [2018-09-20 13:43:40] >>
|
||||
MODE BabiliBot|py +B
|
||||
|
||||
[INFO] [2018-09-20 13:43:40] >>
|
||||
JOIN #bots
|
||||
|
||||
[DEBUG] [2018-09-20 13:43:40] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team MODE BabiliBot|py +B
|
||||
[DEBUG] [2018-09-20 13:43:40] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#bots
|
||||
:team.tilde.chat 332 BabiliBot|py #bots :put your bots here thanks https://tilde.team/wiki/?page=irc-bots
|
||||
:team.tilde.chat 333 BabiliBot|py #bots ben 1534775838
|
||||
:team.tilde.chat 353 BabiliBot|py = #bots :endorphant rain1 aewens ~ben BabiliBot|py @khuxkm minerbot2 khuxkm|lounge slipyx jan6|teamweb sedbot freeappsw desvox_ TildeBot aewens|otg dustbot BabiliBot brendantcc_lounge dustboto zaphod-dev cirno midlow desvox Clefable
|
||||
:team.tilde.chat 366 BabiliBot|py #bots :End of /NAMES list.
|
||||
[INFO] [2018-09-20 13:43:40] >>
|
||||
JOIN #insane
|
||||
|
||||
[DEBUG] [2018-09-20 13:43:40] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#insane
|
||||
:team.tilde.chat 332 BabiliBot|py #insane :"BECAUSE SOMETIMES YOU WANT TO BE INSANE INSTEAD OF CHAOTIC"
|
||||
:team.tilde.chat 333 BabiliBot|py #insane aewens 1534047048
|
||||
:team.tilde.chat 353 BabiliBot|py @ #insane :~aewens BabiliBot|py aewens|otg BabiliBot
|
||||
:team.tilde.chat 366 BabiliBot|py #insane :End of /NAMES list.
|
||||
[INFO] [2018-09-20 14:41:24] >>
|
||||
USER BabiliBot|py BabiliBot|py BabiliBot|py BabiliBot|py
|
||||
|
||||
[INFO] [2018-09-20 14:41:24] >>
|
||||
NICK BabiliBot|py
|
||||
|
||||
[DEBUG] [2018-09-20 14:41:24] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Looking up your hostname...
|
||||
[DEBUG] [2018-09-20 14:41:24] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Found your hostname (localhost) -- cached
|
||||
[DEBUG] [2018-09-20 14:41:25] >>
|
||||
:team.tilde.chat NOTICE Auth :Welcome to tilde.chat!
|
||||
:team.tilde.chat 001 BabiliBot|py :Welcome to the tilde.chat IRC Network BabiliBot|py!BabiliBot|p@localhost
|
||||
:team.tilde.chat 002 BabiliBot|py :Your host is team.tilde.chat, running version InspIRCd-2.0
|
||||
:team.tilde.chat 003 BabiliBot|py :This server was created 13:26:16 Jun 18 2018
|
||||
:team.tilde.chat 004 BabiliBot|py team.tilde.chat InspIRCd-2.0 BIRiorsw MRabfhiklmnopqrstvz abfhkloqv
|
||||
:team.tilde.chat 005 BabiliBot|py AWAYLEN=200 CASEMAPPING=rfc1459 CHANMODES=b,k,fl,MRimnprstz CHANNELLEN=64 CHANTYPES=# CHARSET=ascii ELIST=MU EXTBAN=,RUz FNC KICKLEN=255 MAP MAXBANS=60 MAXCHANNELS=100 :are supported by this server
|
||||
:team.tilde.chat 005 BabiliBot|py MAXPARA=32 MAXTARGETS=20 MODES=20 NETWORK=tilde.chat NICKLEN=31 PREFIX=(qaohv)~&@%+ SSL=[::]:6697 STATUSMSG=~&@%+ TOPICLEN=307 VBANLIST WALLCHOPS WALLVOICES :are supported by this server
|
||||
:team.tilde.chat 042 BabiliBot|py 674AAAWDL :your unique ID
|
||||
:team.tilde.chat 375 BabiliBot|py :team.tilde.chat message of the day
|
||||
:team.tilde.chat 372 BabiliBot|py :- __ __ _ __ __ __ __
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /____ ____ _____ ___ / /_(_) /___/ /__ _____/ /_ ____ _/ /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- / __/ _ \/ __ `/ __ `__ \ / __/ / / __ / _ \ / ___/ __ \/ __ `/ __/
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /_/ __/ /_/ / / / / / // /_/ / / /_/ / __// /__/ / / / /_/ / /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- \__/\___/\__,_/_/ /_/ /_(_)__/_/_/\__,_/\___(_)___/_/ /_/\__,_/\__/
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- welcome to tilde.chat (this node hosted on tilde.team)
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- check out the appropriate channel for your tilde:
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- - tilde.team => #team
|
||||
:team.ti
|
||||
[DEBUG] [2018-09-20 14:41:25] >>
|
||||
lde.chat 372 BabiliBot|py :- - tilde.town => #town
|
||||
:team.tilde.chat 372 BabiliBot|py :- - yourtilde => #your
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- the main lobby channel is #meta. check /list for the other channels
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- msg an oper if you need anything and
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- ~~ be excellent to each other ~~
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- connecting and chatting here implies agreement with the code of conduct:
|
||||
:team.tilde.chat 372 BabiliBot|py :- https://tilde.team/wiki/?page=code-of-conduct
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 376 BabiliBot|py :End of message of the day.
|
||||
:team.tilde.chat 251 BabiliBot|py :There are 98 users and 7 invisible on 4 servers
|
||||
:team.tilde.chat 252 BabiliBot|py 2 :operator(s) online
|
||||
:team.tilde.chat 254 BabiliBot|py 51 :channels formed
|
||||
:team.tilde.chat 255 BabiliBot|py :I have 77 clients and 3 servers
|
||||
:team.tilde.chat 265 BabiliBot|py :Current Local Users: 77 Max: 77
|
||||
:team.tilde.chat 266 BabiliBot|py :Current Global Users: 105 Max: 105
|
||||
:team.tilde.chat NOTICE BabiliBot|py :Setting your virtual host: tilde.team
|
||||
:team.tilde.chat 396 BabiliBot|py tilde.team :is now your displayed host
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :This nickname is registered and protected. If it is your
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :nick, type /msg NickServ IDENTIFY password. Otherwise,
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :please choose a different nick.
|
||||
[INFO] [2018-09-20 14:41:25] >>
|
||||
PRIVMSG NickServ :IDENTIFY ************************
|
||||
|
||||
[DEBUG] [2018-09-20 14:41:25] >>
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :Password accepted - you are now recognized.
|
||||
:team.tilde.chat 900 BabiliBot|py BabiliBot|py!BabiliBot|p@tilde.team BabiliBot|py :You are now logged in as BabiliBot|py
|
||||
[DEBUG] [2018-09-20 14:41:25] >>
|
||||
:NickServ!services@services.tilde.chat MODE BabiliBot|py +r
|
||||
[INFO] [2018-09-20 14:41:25] >>
|
||||
MODE BabiliBot|py +B
|
||||
|
||||
[INFO] [2018-09-20 14:41:25] >>
|
||||
JOIN #bots
|
||||
|
||||
[DEBUG] [2018-09-20 14:41:25] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team MODE BabiliBot|py +B
|
||||
[DEBUG] [2018-09-20 14:41:25] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#bots
|
||||
:team.tilde.chat 332 BabiliBot|py #bots :put your bots here thanks https://tilde.team/wiki/?page=irc-bots
|
||||
:team.tilde.chat 333 BabiliBot|py #bots ben 1534775838
|
||||
:team.tilde.chat 353 BabiliBot|py = #bots :endorphant rain1 aewens ~ben BabiliBot|py @khuxkm minerbot2 khuxkm|lounge slipyx jan6|teamweb sedbot freeappsw desvox_ TildeBot aewens|otg dustbot BabiliBot brendantcc_lounge dustboto zaphod-dev cirno midlow desvox Clefable
|
||||
:team.tilde.chat 366 BabiliBot|py #bots :End of /NAMES list.
|
||||
[INFO] [2018-09-20 14:41:25] >>
|
||||
JOIN #insane
|
||||
|
||||
[DEBUG] [2018-09-20 14:41:25] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#insane
|
||||
:team.tilde.chat 332 BabiliBot|py #insane :"BECAUSE SOMETIMES YOU WANT TO BE INSANE INSTEAD OF CHAOTIC"
|
||||
:team.tilde.chat 333 BabiliBot|py #insane aewens 1534047048
|
||||
:team.tilde.chat 353 BabiliBot|py @ #insane :~aewens BabiliBot|py aewens|otg BabiliBot
|
||||
:team.tilde.chat 366 BabiliBot|py #insane :End of /NAMES list.
|
||||
[DEBUG] [2018-09-20 14:41:33] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :!hmmscore
|
||||
[INFO] [2018-09-20 14:41:33] >>
|
||||
PRIVMSG #bots :Hmm score for 'aewens': 207
|
||||
|
||||
[DEBUG] [2018-09-20 14:41:33] >>
|
||||
:BabiliBot!BabiliBot@tilde.team PRIVMSG #bots :Hmm score for 'aewens': 207
|
||||
[DEBUG] [2018-09-20 14:41:33] >>
|
||||
:BabiliBot!BabiliBot@tilde.team PRIVMSG #bots :ACTION is ignoring BabiliBot|py for reason 'Auto-banished'
|
||||
[DEBUG] [2018-09-20 14:41:37] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :Hmm
|
||||
[DEBUG] [2018-09-20 14:41:45] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :Also, interesting xD
|
||||
[DEBUG] [2018-09-20 14:41:52] >>
|
||||
:ben!ben@oper.tilde.chat PRIVMSG #bots :oh nice
|
||||
[DEBUG] [2018-09-20 14:42:08] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :!hmmscore
|
||||
[INFO] [2018-09-20 14:42:08] >>
|
||||
PRIVMSG #bots :Hmm score for 'aewens': 207
|
||||
|
||||
[DEBUG] [2018-09-20 14:42:08] >>
|
||||
:BabiliBot!BabiliBot@tilde.team PRIVMSG #bots :Hmm score for 'aewens': 207
|
||||
[DEBUG] [2018-09-20 14:42:08] >>
|
||||
:BabiliBot!BabiliBot@tilde.team PRIVMSG #bots :ACTION is ignoring BabiliBot|py for reason 'Auto-banished'
|
||||
[INFO] [2018-09-20 14:43:27] >>
|
||||
USER BabiliBot|py BabiliBot|py BabiliBot|py BabiliBot|py
|
||||
|
||||
[INFO] [2018-09-20 14:43:27] >>
|
||||
NICK BabiliBot|py
|
||||
|
||||
[DEBUG] [2018-09-20 14:43:27] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Looking up your hostname...
|
||||
[DEBUG] [2018-09-20 14:43:27] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Found your hostname (localhost) -- cached
|
||||
[DEBUG] [2018-09-20 14:43:28] >>
|
||||
:team.tilde.chat NOTICE Auth :Welcome to tilde.chat!
|
||||
:team.tilde.chat 001 BabiliBot|py :Welcome to the tilde.chat IRC Network BabiliBot|py!BabiliBot|p@localhost
|
||||
:team.tilde.chat 002 BabiliBot|py :Your host is team.tilde.chat, running version InspIRCd-2.0
|
||||
:team.tilde.chat 003 BabiliBot|py :This server was created 13:26:16 Jun 18 2018
|
||||
:team.tilde.chat 004 BabiliBot|py team.tilde.chat InspIRCd-2.0 BIRiorsw MRabfhiklmnopqrstvz abfhkloqv
|
||||
:team.tilde.chat 005 BabiliBot|py AWAYLEN=200 CASEMAPPING=rfc1459 CHANMODES=b,k,fl,MRimnprstz CHANNELLEN=64 CHANTYPES=# CHARSET=ascii ELIST=MU EXTBAN=,RUz FNC KICKLEN=255 MAP MAXBANS=60 MAXCHANNELS=100 :are supported by this server
|
||||
:team.tilde.chat 005 BabiliBot|py MAXPARA=32 MAXTARGETS=20 MODES=20 NETWORK=tilde.chat NICKLEN=31 PREFIX=(qaohv)~&@%+ SSL=[::]:6697 STATUSMSG=~&@%+ TOPICLEN=307 VBANLIST WALLCHOPS WALLVOICES :are supported by this server
|
||||
:team.tilde.chat 042 BabiliBot|py 674AAAWDM :your unique ID
|
||||
:team.tilde.chat 375 BabiliBot|py :team.tilde.chat message of the day
|
||||
:team.tilde.chat 372 BabiliBot|py :- __ __ _ __ __ __ __
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /____ ____ _____ ___ / /_(_) /___/ /__ _____/ /_ ____ _/ /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- / __/ _ \/ __ `/ __ `__ \ / __/ / / __ / _ \ / ___/ __ \/ __ `/ __/
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /_/ __/ /_/ / / / / / // /_/ / / /_/ / __// /__/ / / / /_/ / /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- \__/\___/\__,_/_/ /_/ /_(_)__/_/_/\__,_/\___(_)___/_/ /_/\__,_/\__/
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- welcome to tilde.chat (this node hosted on tilde.team)
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- check out the appropriate channel for your tilde:
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- - tilde.team => #team
|
||||
:team.ti
|
||||
[DEBUG] [2018-09-20 14:43:28] >>
|
||||
lde.chat 372 BabiliBot|py :- - tilde.town => #town
|
||||
:team.tilde.chat 372 BabiliBot|py :- - yourtilde => #your
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- the main lobby channel is #meta. check /list for the other channels
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- msg an oper if you need anything and
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- ~~ be excellent to each other ~~
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- connecting and chatting here implies agreement with the code of conduct:
|
||||
:team.tilde.chat 372 BabiliBot|py :- https://tilde.team/wiki/?page=code-of-conduct
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 376 BabiliBot|py :End of message of the day.
|
||||
:team.tilde.chat 251 BabiliBot|py :There are 98 users and 7 invisible on 4 servers
|
||||
:team.tilde.chat 252 BabiliBot|py 2 :operator(s) online
|
||||
:team.tilde.chat 254 BabiliBot|py 51 :channels formed
|
||||
:team.tilde.chat 255 BabiliBot|py :I have 77 clients and 3 servers
|
||||
:team.tilde.chat 265 BabiliBot|py :Current Local Users: 77 Max: 77
|
||||
:team.tilde.chat 266 BabiliBot|py :Current Global Users: 105 Max: 105
|
||||
:team.tilde.chat NOTICE BabiliBot|py :Setting your virtual host: tilde.team
|
||||
:team.tilde.chat 396 BabiliBot|py tilde.team :is now your displayed host
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :This nickname is registered and protected. If it is your
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :nick, type /msg NickServ IDENTIFY password. Otherwise,
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :please choose a different nick.
|
||||
[INFO] [2018-09-20 14:43:28] >>
|
||||
PRIVMSG NickServ :IDENTIFY ************************
|
||||
|
||||
[DEBUG] [2018-09-20 14:43:28] >>
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :Password accepted - you are now recognized.
|
||||
:team.tilde.chat 900 BabiliBot|py BabiliBot|py!BabiliBot|p@tilde.team BabiliBot|py :You are now logged in as BabiliBot|py
|
||||
[DEBUG] [2018-09-20 14:43:28] >>
|
||||
:NickServ!services@services.tilde.chat MODE BabiliBot|py +r
|
||||
[INFO] [2018-09-20 14:43:28] >>
|
||||
MODE BabiliBot|py +B
|
||||
|
||||
[INFO] [2018-09-20 14:43:28] >>
|
||||
JOIN #bots
|
||||
|
||||
[DEBUG] [2018-09-20 14:43:28] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team MODE BabiliBot|py +B
|
||||
[DEBUG] [2018-09-20 14:43:28] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#bots
|
||||
:team.tilde.chat 332 BabiliBot|py #bots :put your bots here thanks https://tilde.team/wiki/?page=irc-bots
|
||||
:team.tilde.chat 333 BabiliBot|py #bots ben 1534775838
|
||||
:team.tilde.chat 353 BabiliBot|py = #bots :endorphant rain1 aewens ~ben BabiliBot|py @khuxkm minerbot2 khuxkm|lounge slipyx jan6|teamweb sedbot freeappsw desvox_ TildeBot aewens|otg dustbot BabiliBot brendantcc_lounge dustboto zaphod-dev cirno midlow desvox Clefable
|
||||
:team.tilde.chat 366 BabiliBot|py #bots :End of /NAMES list.
|
||||
[INFO] [2018-09-20 14:43:28] >>
|
||||
JOIN #insane
|
||||
|
||||
[DEBUG] [2018-09-20 14:43:28] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#insane
|
||||
:team.tilde.chat 332 BabiliBot|py #insane :"BECAUSE SOMETIMES YOU WANT TO BE INSANE INSTEAD OF CHAOTIC"
|
||||
:team.tilde.chat 333 BabiliBot|py #insane aewens 1534047048
|
||||
:team.tilde.chat 353 BabiliBot|py @ #insane :~aewens BabiliBot|py aewens|otg BabiliBot
|
||||
:team.tilde.chat 366 BabiliBot|py #insane :End of /NAMES list.
|
||||
[DEBUG] [2018-09-20 14:43:33] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :Hmm
|
||||
[INFO] [2018-09-20 14:44:32] >>
|
||||
USER BabiliBot|py BabiliBot|py BabiliBot|py BabiliBot|py
|
||||
|
||||
[INFO] [2018-09-20 14:44:32] >>
|
||||
NICK BabiliBot|py
|
||||
|
||||
[DEBUG] [2018-09-20 14:44:32] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Looking up your hostname...
|
||||
[DEBUG] [2018-09-20 14:44:32] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Found your hostname (localhost)
|
||||
[DEBUG] [2018-09-20 14:44:33] >>
|
||||
:team.tilde.chat NOTICE Auth :Welcome to tilde.chat!
|
||||
:team.tilde.chat 001 BabiliBot|py :Welcome to the tilde.chat IRC Network BabiliBot|py!BabiliBot|p@localhost
|
||||
:team.tilde.chat 002 BabiliBot|py :Your host is team.tilde.chat, running version InspIRCd-2.0
|
||||
:team.tilde.chat 003 BabiliBot|py :This server was created 13:26:16 Jun 18 2018
|
||||
:team.tilde.chat 004 BabiliBot|py team.tilde.chat InspIRCd-2.0 BIRiorsw MRabfhiklmnopqrstvz abfhkloqv
|
||||
:team.tilde.chat 005 BabiliBot|py AWAYLEN=200 CASEMAPPING=rfc1459 CHANMODES=b,k,fl,MRimnprstz CHANNELLEN=64 CHANTYPES=# CHARSET=ascii ELIST=MU EXTBAN=,RUz FNC KICKLEN=255 MAP MAXBANS=60 MAXCHANNELS=100 :are supported by this server
|
||||
:team.tilde.chat 005 BabiliBot|py MAXPARA=32 MAXTARGETS=20 MODES=20 NETWORK=tilde.chat NICKLEN=31 PREFIX=(qaohv)~&@%+ SSL=[::]:6697 STATUSMSG=~&@%+ TOPICLEN=307 VBANLIST WALLCHOPS WALLVOICES :are supported by this server
|
||||
:team.tilde.chat 042 BabiliBot|py 674AAAWDN :your unique ID
|
||||
:team.tilde.chat 375 BabiliBot|py :team.tilde.chat message of the day
|
||||
:team.tilde.chat 372 BabiliBot|py :- __ __ _ __ __ __ __
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /____ ____ _____ ___ / /_(_) /___/ /__ _____/ /_ ____ _/ /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- / __/ _ \/ __ `/ __ `__ \ / __/ / / __ / _ \ / ___/ __ \/ __ `/ __/
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /_/ __/ /_/ / / / / / // /_/ / / /_/ / __// /__/ / / / /_/ / /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- \__/\___/\__,_/_/ /_/ /_(_)__/_/_/\__,_/\___(_)___/_/ /_/\__,_/\__/
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- welcome to tilde.chat (this node hosted on tilde.team)
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- check out the appropriate channel for your tilde:
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- - tilde.team => #team
|
||||
:team.ti
|
||||
[DEBUG] [2018-09-20 14:44:33] >>
|
||||
lde.chat 372 BabiliBot|py :- - tilde.town => #town
|
||||
:team.tilde.chat 372 BabiliBot|py :- - yourtilde => #your
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- the main lobby channel is #meta. check /list for the other channels
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- msg an oper if you need anything and
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- ~~ be excellent to each other ~~
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- connecting and chatting here implies agreement with the code of conduct:
|
||||
:team.tilde.chat 372 BabiliBot|py :- https://tilde.team/wiki/?page=code-of-conduct
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 376 BabiliBot|py :End of message of the day.
|
||||
:team.tilde.chat 251 BabiliBot|py :There are 98 users and 7 invisible on 4 servers
|
||||
:team.tilde.chat 252 BabiliBot|py 2 :operator(s) online
|
||||
:team.tilde.chat 254 BabiliBot|py 51 :channels formed
|
||||
:team.tilde.chat 255 BabiliBot|py :I have 77 clients and 3 servers
|
||||
:team.tilde.chat 265 BabiliBot|py :Current Local Users: 77 Max: 77
|
||||
:team.tilde.chat 266 BabiliBot|py :Current Global Users: 105 Max: 105
|
||||
:team.tilde.chat NOTICE BabiliBot|py :Setting your virtual host: tilde.team
|
||||
:team.tilde.chat 396 BabiliBot|py tilde.team :is now your displayed host
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :This nickname is registered and protected. If it is your
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :nick, type /msg NickServ IDENTIFY password. Otherwise,
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :please choose a different nick.
|
||||
[INFO] [2018-09-20 14:44:33] >>
|
||||
PRIVMSG NickServ :IDENTIFY ************************
|
||||
|
||||
[DEBUG] [2018-09-20 14:44:33] >>
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :Password accepted - you are now recognized.
|
||||
:team.tilde.chat 900 BabiliBot|py BabiliBot|py!BabiliBot|p@tilde.team BabiliBot|py :You are now logged in as BabiliBot|py
|
||||
[DEBUG] [2018-09-20 14:44:33] >>
|
||||
:NickServ!services@services.tilde.chat MODE BabiliBot|py +r
|
||||
[INFO] [2018-09-20 14:44:33] >>
|
||||
MODE BabiliBot|py +B
|
||||
|
||||
[INFO] [2018-09-20 14:44:33] >>
|
||||
JOIN #bots
|
||||
|
||||
[DEBUG] [2018-09-20 14:44:33] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team MODE BabiliBot|py +B
|
||||
[DEBUG] [2018-09-20 14:44:33] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#bots
|
||||
:team.tilde.chat 332 BabiliBot|py #bots :put your bots here thanks https://tilde.team/wiki/?page=irc-bots
|
||||
:team.tilde.chat 333 BabiliBot|py #bots ben 1534775838
|
||||
:team.tilde.chat 353 BabiliBot|py = #bots :endorphant rain1 aewens ~ben BabiliBot|py @khuxkm minerbot2 khuxkm|lounge slipyx jan6|teamweb sedbot freeappsw desvox_ TildeBot aewens|otg dustbot BabiliBot brendantcc_lounge dustboto zaphod-dev cirno midlow desvox Clefable
|
||||
:team.tilde.chat 366 BabiliBot|py #bots :End of /NAMES list.
|
||||
[INFO] [2018-09-20 14:44:33] >>
|
||||
JOIN #insane
|
||||
|
||||
[DEBUG] [2018-09-20 14:44:33] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#insane
|
||||
:team.tilde.chat 332 BabiliBot|py #insane :"BECAUSE SOMETIMES YOU WANT TO BE INSANE INSTEAD OF CHAOTIC"
|
||||
:team.tilde.chat 333 BabiliBot|py #insane aewens 1534047048
|
||||
:team.tilde.chat 353 BabiliBot|py @ #insane :~aewens BabiliBot|py aewens|otg BabiliBot
|
||||
:team.tilde.chat 366 BabiliBot|py #insane :End of /NAMES list.
|
||||
[DEBUG] [2018-09-20 14:44:36] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :Hmm
|
||||
[DEBUG] [2018-09-20 14:44:38] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :!hmmscore
|
||||
[INFO] [2018-09-20 14:44:38] >>
|
||||
PRIVMSG #bots :Hmm score for 'aewens': 208
|
||||
|
||||
[DEBUG] [2018-09-20 14:44:38] >>
|
||||
:BabiliBot!BabiliBot@tilde.team PRIVMSG #bots :Hmm score for 'aewens': 207
|
||||
[DEBUG] [2018-09-20 14:44:38] >>
|
||||
:BabiliBot!BabiliBot@tilde.team PRIVMSG #bots :ACTION is ignoring BabiliBot|py for reason 'Auto-banished'
|
||||
[DEBUG] [2018-09-20 14:44:42] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :There we go
|
|
@ -0,0 +1,292 @@
|
|||
[INFO] [2018-09-24 17:17:09] >>
|
||||
USER BabiliBot|py BabiliBot|py BabiliBot|py BabiliBot|py
|
||||
|
||||
[INFO] [2018-09-24 17:17:09] >>
|
||||
NICK BabiliBot|py
|
||||
|
||||
[DEBUG] [2018-09-24 17:17:09] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Looking up your hostname...
|
||||
[DEBUG] [2018-09-24 17:17:09] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Found your hostname (localhost) -- cached
|
||||
[DEBUG] [2018-09-24 17:17:10] >>
|
||||
:team.tilde.chat NOTICE Auth :Welcome to tilde.chat!
|
||||
:team.tilde.chat 001 BabiliBot|py :Welcome to the tilde.chat IRC Network BabiliBot|py!BabiliBot|p@localhost
|
||||
:team.tilde.chat 002 BabiliBot|py :Your host is team.tilde.chat, running version InspIRCd-2.0
|
||||
:team.tilde.chat 003 BabiliBot|py :This server was created 13:26:16 Jun 18 2018
|
||||
:team.tilde.chat 004 BabiliBot|py team.tilde.chat InspIRCd-2.0 BIRiorsw MRabfhiklmnopqrstvz abfhkloqv
|
||||
:team.tilde.chat 005 BabiliBot|py AWAYLEN=200 CASEMAPPING=rfc1459 CHANMODES=b,k,fl,MRimnprstz CHANNELLEN=64 CHANTYPES=# CHARSET=ascii ELIST=MU EXTBAN=,RUz FNC KICKLEN=255 MAP MAXBANS=60 MAXCHANNELS=100 :are supported by this server
|
||||
:team.tilde.chat 005 BabiliBot|py MAXPARA=32 MAXTARGETS=20 MODES=20 NETWORK=tilde.chat NICKLEN=31 PREFIX=(qaohv)~&@%+ SSL=[::]:6697 STATUSMSG=~&@%+ TOPICLEN=307 VBANLIST WALLCHOPS WALLVOICES :are supported by this server
|
||||
:team.tilde.chat 042 BabiliBot|py 674AAAWGK :your unique ID
|
||||
:team.tilde.chat 375 BabiliBot|py :team.tilde.chat message of the day
|
||||
:team.tilde.chat 372 BabiliBot|py :- __ __ _ __ __ __ __
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /____ ____ _____ ___ / /_(_) /___/ /__ _____/ /_ ____ _/ /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- / __/ _ \/ __ `/ __ `__ \ / __/ / / __ / _ \ / ___/ __ \/ __ `/ __/
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /_/ __/ /_/ / / / / / // /_/ / / /_/ / __// /__/ / / / /_/ / /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- \__/\___/\__,_/_/ /_/ /_(_)__/_/_/\__,_/\___(_)___/_/ /_/\__,_/\__/
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- welcome to tilde.chat (this node hosted on tilde.team)
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- check out the appropriate channel for your tilde:
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- - tilde.team => #team
|
||||
:team.ti
|
||||
[DEBUG] [2018-09-24 17:17:10] >>
|
||||
lde.chat 372 BabiliBot|py :- - tilde.town => #town
|
||||
:team.tilde.chat 372 BabiliBot|py :- - yourtilde => #your
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- the main lobby channel is #meta. check /list for the other channels
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- msg an oper if you need anything and
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- ~~ be excellent to each other ~~
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- connecting and chatting here implies agreement with the code of conduct:
|
||||
:team.tilde.chat 372 BabiliBot|py :- https://tilde.team/wiki/?page=code-of-conduct
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 376 BabiliBot|py :End of message of the day.
|
||||
:team.tilde.chat 251 BabiliBot|py :There are 97 users and 8 invisible on 4 servers
|
||||
:team.tilde.chat 252 BabiliBot|py 2 :operator(s) online
|
||||
:team.tilde.chat 254 BabiliBot|py 52 :channels formed
|
||||
:team.tilde.chat 255 BabiliBot|py :I have 77 clients and 3 servers
|
||||
:team.tilde.chat 265 BabiliBot|py :Current Local Users: 77 Max: 79
|
||||
:team.tilde.chat 266 BabiliBot|py :Current Global Users: 105 Max: 108
|
||||
:team.tilde.chat NOTICE BabiliBot|py :Setting your virtual host: tilde.team
|
||||
:team.tilde.chat 396 BabiliBot|py tilde.team :is now your displayed host
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :This nickname is registered and protected. If it is your
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :nick, type /msg NickServ IDENTIFY password. Otherwise,
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :please choose a different nick.
|
||||
[INFO] [2018-09-24 17:17:10] >>
|
||||
PRIVMSG NickServ :IDENTIFY ************************
|
||||
|
||||
[DEBUG] [2018-09-24 17:17:10] >>
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :Password accepted - you are now recognized.
|
||||
:team.tilde.chat 900 BabiliBot|py BabiliBot|py!BabiliBot|p@tilde.team BabiliBot|py :You are now logged in as BabiliBot|py
|
||||
[DEBUG] [2018-09-24 17:17:10] >>
|
||||
:NickServ!services@services.tilde.chat MODE BabiliBot|py +r
|
||||
[INFO] [2018-09-24 17:17:10] >>
|
||||
MODE BabiliBot|py +B
|
||||
|
||||
[INFO] [2018-09-24 17:17:10] >>
|
||||
JOIN #bots
|
||||
|
||||
[DEBUG] [2018-09-24 17:17:10] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team MODE BabiliBot|py +B
|
||||
[DEBUG] [2018-09-24 17:17:10] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#bots
|
||||
:team.tilde.chat 332 BabiliBot|py #bots :put your bots here thanks https://tilde.team/wiki/?page=irc-bots
|
||||
:team.tilde.chat 333 BabiliBot|py #bots ben 1534775838
|
||||
:team.tilde.chat 353 BabiliBot|py = #bots :endorphant rain1 aewens ~ben @khuxkm minerbot2 khuxkm|lounge slipyx jan6| sedbot freeappsw desvox_ TildeBot aewens|otg dustbot BabiliBot|py brendantcc_lounge dustboto zaphod-dev cirno midlow Clefable
|
||||
:team.tilde.chat 366 BabiliBot|py #bots :End of /NAMES list.
|
||||
[INFO] [2018-09-24 17:17:10] >>
|
||||
JOIN #insane
|
||||
|
||||
[DEBUG] [2018-09-24 17:17:10] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#insane
|
||||
:team.tilde.chat 332 BabiliBot|py #insane :"BECAUSE SOMETIMES YOU WANT TO BE INSANE INSTEAD OF CHAOTIC"
|
||||
:team.tilde.chat 333 BabiliBot|py #insane aewens 1534047048
|
||||
:team.tilde.chat 353 BabiliBot|py @ #insane :~aewens aewens|otg BabiliBot|py
|
||||
:team.tilde.chat 366 BabiliBot|py #insane :End of /NAMES list.
|
||||
[DEBUG] [2018-09-24 17:17:15] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :!hmmscore
|
||||
[INFO] [2018-09-24 17:17:24] >>
|
||||
USER BabiliBot|py BabiliBot|py BabiliBot|py BabiliBot|py
|
||||
|
||||
[INFO] [2018-09-24 17:17:24] >>
|
||||
NICK BabiliBot|py
|
||||
|
||||
[DEBUG] [2018-09-24 17:17:24] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Looking up your hostname...
|
||||
[DEBUG] [2018-09-24 17:17:24] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Found your hostname (localhost) -- cached
|
||||
[DEBUG] [2018-09-24 17:17:25] >>
|
||||
:team.tilde.chat NOTICE Auth :Welcome to tilde.chat!
|
||||
:team.tilde.chat 001 BabiliBot|py :Welcome to the tilde.chat IRC Network BabiliBot|py!BabiliBot|p@localhost
|
||||
:team.tilde.chat 002 BabiliBot|py :Your host is team.tilde.chat, running version InspIRCd-2.0
|
||||
:team.tilde.chat 003 BabiliBot|py :This server was created 13:26:16 Jun 18 2018
|
||||
:team.tilde.chat 004 BabiliBot|py team.tilde.chat InspIRCd-2.0 BIRiorsw MRabfhiklmnopqrstvz abfhkloqv
|
||||
:team.tilde.chat 005 BabiliBot|py AWAYLEN=200 CASEMAPPING=rfc1459 CHANMODES=b,k,fl,MRimnprstz CHANNELLEN=64 CHANTYPES=# CHARSET=ascii ELIST=MU EXTBAN=,RUz FNC KICKLEN=255 MAP MAXBANS=60 MAXCHANNELS=100 :are supported by this server
|
||||
:team.tilde.chat 005 BabiliBot|py MAXPARA=32 MAXTARGETS=20 MODES=20 NETWORK=tilde.chat NICKLEN=31 PREFIX=(qaohv)~&@%+ SSL=[::]:6697 STATUSMSG=~&@%+ TOPICLEN=307 VBANLIST WALLCHOPS WALLVOICES :are supported by this server
|
||||
:team.tilde.chat 042 BabiliBot|py 674AAAWGL :your unique ID
|
||||
:team.tilde.chat 375 BabiliBot|py :team.tilde.chat message of the day
|
||||
:team.tilde.chat 372 BabiliBot|py :- __ __ _ __ __ __ __
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /____ ____ _____ ___ / /_(_) /___/ /__ _____/ /_ ____ _/ /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- / __/ _ \/ __ `/ __ `__ \ / __/ / / __ / _ \ / ___/ __ \/ __ `/ __/
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /_/ __/ /_/ / / / / / // /_/ / / /_/ / __// /__/ / / / /_/ / /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- \__/\___/\__,_/_/ /_/ /_(_)__/_/_/\__,_/\___(_)___/_/ /_/\__,_/\__/
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- welcome to tilde.chat (this node hosted on tilde.team)
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- check out the appropriate channel for your tilde:
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- - tilde.team => #team
|
||||
:team.ti
|
||||
[DEBUG] [2018-09-24 17:17:25] >>
|
||||
lde.chat 372 BabiliBot|py :- - tilde.town => #town
|
||||
:team.tilde.chat 372 BabiliBot|py :- - yourtilde => #your
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- the main lobby channel is #meta. check /list for the other channels
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- msg an oper if you need anything and
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- ~~ be excellent to each other ~~
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- connecting and chatting here implies agreement with the code of conduct:
|
||||
:team.tilde.chat 372 BabiliBot|py :- https://tilde.team/wiki/?page=code-of-conduct
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 376 BabiliBot|py :End of message of the day.
|
||||
:team.tilde.chat 251 BabiliBot|py :There are 97 users and 8 invisible on 4 servers
|
||||
:team.tilde.chat 252 BabiliBot|py 2 :operator(s) online
|
||||
:team.tilde.chat 254 BabiliBot|py 52 :channels formed
|
||||
:team.tilde.chat 255 BabiliBot|py :I have 77 clients and 3 servers
|
||||
:team.tilde.chat 265 BabiliBot|py :Current Local Users: 77 Max: 79
|
||||
:team.tilde.chat 266 BabiliBot|py :Current Global Users: 105 Max: 108
|
||||
:team.tilde.chat NOTICE BabiliBot|py :Setting your virtual host: tilde.team
|
||||
:team.tilde.chat 396 BabiliBot|py tilde.team :is now your displayed host
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :This nickname is registered and protected. If it is your
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :nick, type /msg NickServ IDENTIFY password. Otherwise,
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :please choose a different nick.
|
||||
[INFO] [2018-09-24 17:17:25] >>
|
||||
PRIVMSG NickServ :IDENTIFY ************************
|
||||
|
||||
[DEBUG] [2018-09-24 17:17:25] >>
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :Password accepted - you are now recognized.
|
||||
:team.tilde.chat 900 BabiliBot|py BabiliBot|py!BabiliBot|p@tilde.team BabiliBot|py :You are now logged in as BabiliBot|py
|
||||
[DEBUG] [2018-09-24 17:17:25] >>
|
||||
:NickServ!services@services.tilde.chat MODE BabiliBot|py +r
|
||||
[INFO] [2018-09-24 17:17:25] >>
|
||||
MODE BabiliBot|py +B
|
||||
|
||||
[INFO] [2018-09-24 17:17:25] >>
|
||||
JOIN #bots
|
||||
|
||||
[DEBUG] [2018-09-24 17:17:25] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team MODE BabiliBot|py +B
|
||||
[DEBUG] [2018-09-24 17:17:25] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#bots
|
||||
:team.tilde.chat 332 BabiliBot|py #bots :put your bots here thanks https://tilde.team/wiki/?page=irc-bots
|
||||
:team.tilde.chat 333 BabiliBot|py #bots ben 1534775838
|
||||
:team.tilde.chat 353 BabiliBot|py = #bots :endorphant rain1 aewens ~ben @khuxkm minerbot2 khuxkm|lounge slipyx jan6| sedbot freeappsw desvox_ TildeBot aewens|otg dustbot BabiliBot|py brendantcc_lounge dustboto zaphod-dev cirno midlow Clefable
|
||||
:team.tilde.chat 366 BabiliBot|py #bots :End of /NAMES list.
|
||||
[INFO] [2018-09-24 17:17:25] >>
|
||||
JOIN #insane
|
||||
|
||||
[DEBUG] [2018-09-24 17:17:25] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#insane
|
||||
:team.tilde.chat 332 BabiliBot|py #insane :"BECAUSE SOMETIMES YOU WANT TO BE INSANE INSTEAD OF CHAOTIC"
|
||||
:team.tilde.chat 333 BabiliBot|py #insane aewens 1534047048
|
||||
:team.tilde.chat 353 BabiliBot|py @ #insane :~aewens aewens|otg BabiliBot|py
|
||||
:team.tilde.chat 366 BabiliBot|py #insane :End of /NAMES list.
|
||||
[DEBUG] [2018-09-24 17:17:27] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :!hmmscore
|
||||
[INFO] [2018-09-24 17:17:27] >>
|
||||
PRIVMSG #bots :Hmm score for 'aewens': 212
|
||||
|
||||
[DEBUG] [2018-09-24 17:17:30] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :!hmmscoreboard
|
||||
[INFO] [2018-09-24 17:17:30] >>
|
||||
PRIVMSG #bots :Hmm score for 'aewens': 212
|
||||
|
||||
[INFO] [2018-09-24 17:17:30] >>
|
||||
PRIVMSG #bots :Hmm Score Leaderboard: jan6 382 | ben 303 | aewens 212
|
||||
|
||||
[INFO] [2018-09-24 17:18:08] >>
|
||||
USER BabiliBot|py BabiliBot|py BabiliBot|py BabiliBot|py
|
||||
|
||||
[INFO] [2018-09-24 17:18:08] >>
|
||||
NICK BabiliBot|py
|
||||
|
||||
[DEBUG] [2018-09-24 17:18:08] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Looking up your hostname...
|
||||
[DEBUG] [2018-09-24 17:18:08] >>
|
||||
:team.tilde.chat NOTICE Auth :*** Found your hostname (localhost) -- cached
|
||||
[DEBUG] [2018-09-24 17:18:09] >>
|
||||
:team.tilde.chat NOTICE Auth :Welcome to tilde.chat!
|
||||
:team.tilde.chat 001 BabiliBot|py :Welcome to the tilde.chat IRC Network BabiliBot|py!BabiliBot|p@localhost
|
||||
:team.tilde.chat 002 BabiliBot|py :Your host is team.tilde.chat, running version InspIRCd-2.0
|
||||
:team.tilde.chat 003 BabiliBot|py :This server was created 13:26:16 Jun 18 2018
|
||||
:team.tilde.chat 004 BabiliBot|py team.tilde.chat InspIRCd-2.0 BIRiorsw MRabfhiklmnopqrstvz abfhkloqv
|
||||
:team.tilde.chat 005 BabiliBot|py AWAYLEN=200 CASEMAPPING=rfc1459 CHANMODES=b,k,fl,MRimnprstz CHANNELLEN=64 CHANTYPES=# CHARSET=ascii ELIST=MU EXTBAN=,RUz FNC KICKLEN=255 MAP MAXBANS=60 MAXCHANNELS=100 :are supported by this server
|
||||
:team.tilde.chat 005 BabiliBot|py MAXPARA=32 MAXTARGETS=20 MODES=20 NETWORK=tilde.chat NICKLEN=31 PREFIX=(qaohv)~&@%+ SSL=[::]:6697 STATUSMSG=~&@%+ TOPICLEN=307 VBANLIST WALLCHOPS WALLVOICES :are supported by this server
|
||||
:team.tilde.chat 042 BabiliBot|py 674AAAWGM :your unique ID
|
||||
:team.tilde.chat 375 BabiliBot|py :team.tilde.chat message of the day
|
||||
:team.tilde.chat 372 BabiliBot|py :- __ __ _ __ __ __ __
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /____ ____ _____ ___ / /_(_) /___/ /__ _____/ /_ ____ _/ /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- / __/ _ \/ __ `/ __ `__ \ / __/ / / __ / _ \ / ___/ __ \/ __ `/ __/
|
||||
:team.tilde.chat 372 BabiliBot|py :- / /_/ __/ /_/ / / / / / // /_/ / / /_/ / __// /__/ / / / /_/ / /_
|
||||
:team.tilde.chat 372 BabiliBot|py :- \__/\___/\__,_/_/ /_/ /_(_)__/_/_/\__,_/\___(_)___/_/ /_/\__,_/\__/
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- welcome to tilde.chat (this node hosted on tilde.team)
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- check out the appropriate channel for your tilde:
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- - tilde.team => #team
|
||||
:team.ti
|
||||
[DEBUG] [2018-09-24 17:18:09] >>
|
||||
lde.chat 372 BabiliBot|py :- - tilde.town => #town
|
||||
:team.tilde.chat 372 BabiliBot|py :- - yourtilde => #your
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- the main lobby channel is #meta. check /list for the other channels
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- msg an oper if you need anything and
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- ~~ be excellent to each other ~~
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 372 BabiliBot|py :- connecting and chatting here implies agreement with the code of conduct:
|
||||
:team.tilde.chat 372 BabiliBot|py :- https://tilde.team/wiki/?page=code-of-conduct
|
||||
:team.tilde.chat 372 BabiliBot|py :-
|
||||
:team.tilde.chat 376 BabiliBot|py :End of message of the day.
|
||||
:team.tilde.chat 251 BabiliBot|py :There are 97 users and 8 invisible on 4 servers
|
||||
:team.tilde.chat 252 BabiliBot|py 2 :operator(s) online
|
||||
:team.tilde.chat 254 BabiliBot|py 52 :channels formed
|
||||
:team.tilde.chat 255 BabiliBot|py :I have 77 clients and 3 servers
|
||||
:team.tilde.chat 265 BabiliBot|py :Current Local Users: 77 Max: 79
|
||||
:team.tilde.chat 266 BabiliBot|py :Current Global Users: 105 Max: 108
|
||||
:team.tilde.chat NOTICE BabiliBot|py :Setting your virtual host: tilde.team
|
||||
:team.tilde.chat 396 BabiliBot|py tilde.team :is now your displayed host
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :This nickname is registered and protected. If it is your
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :nick, type /msg NickServ IDENTIFY password. Otherwise,
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :please choose a different nick.
|
||||
[INFO] [2018-09-24 17:18:09] >>
|
||||
PRIVMSG NickServ :IDENTIFY ************************
|
||||
|
||||
[DEBUG] [2018-09-24 17:18:09] >>
|
||||
:NickServ!services@services.tilde.chat NOTICE BabiliBot|py :Password accepted - you are now recognized.
|
||||
:team.tilde.chat 900 BabiliBot|py BabiliBot|py!BabiliBot|p@tilde.team BabiliBot|py :You are now logged in as BabiliBot|py
|
||||
[DEBUG] [2018-09-24 17:18:09] >>
|
||||
:NickServ!services@services.tilde.chat MODE BabiliBot|py +r
|
||||
[INFO] [2018-09-24 17:18:09] >>
|
||||
MODE BabiliBot|py +B
|
||||
|
||||
[INFO] [2018-09-24 17:18:09] >>
|
||||
JOIN #bots
|
||||
|
||||
[DEBUG] [2018-09-24 17:18:09] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team MODE BabiliBot|py +B
|
||||
[DEBUG] [2018-09-24 17:18:09] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#bots
|
||||
:team.tilde.chat 332 BabiliBot|py #bots :put your bots here thanks https://tilde.team/wiki/?page=irc-bots
|
||||
:team.tilde.chat 333 BabiliBot|py #bots ben 1534775838
|
||||
:team.tilde.chat 353 BabiliBot|py = #bots :endorphant rain1 aewens ~ben @khuxkm minerbot2 khuxkm|lounge slipyx jan6| sedbot freeappsw desvox_ TildeBot aewens|otg dustbot BabiliBot|py brendantcc_lounge dustboto zaphod-dev cirno midlow Clefable
|
||||
:team.tilde.chat 366 BabiliBot|py #bots :End of /NAMES list.
|
||||
[INFO] [2018-09-24 17:18:09] >>
|
||||
JOIN #insane
|
||||
|
||||
[DEBUG] [2018-09-24 17:18:09] >>
|
||||
:BabiliBot|py!BabiliBot|p@tilde.team JOIN :#insane
|
||||
:team.tilde.chat 332 BabiliBot|py #insane :"BECAUSE SOMETIMES YOU WANT TO BE INSANE INSTEAD OF CHAOTIC"
|
||||
:team.tilde.chat 333 BabiliBot|py #insane aewens 1534047048
|
||||
:team.tilde.chat 353 BabiliBot|py @ #insane :~aewens aewens|otg BabiliBot|py
|
||||
:team.tilde.chat 366 BabiliBot|py #insane :End of /NAMES list.
|
||||
[DEBUG] [2018-09-24 17:18:12] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :!hmmscoreboard
|
||||
[INFO] [2018-09-24 17:18:12] >>
|
||||
PRIVMSG #bots :Hmm Score Leaderboard: jan6 382 | ben 303 | aewens 212
|
||||
|
||||
[DEBUG] [2018-09-24 17:18:14] >>
|
||||
:aewens!aewens@rightful.heir.to.chaos PRIVMSG #bots :!hmmscore
|
||||
[INFO] [2018-09-24 17:18:14] >>
|
||||
PRIVMSG #bots :Hmm score for 'aewens': 212
|
||||
|
|
@ -1,5 +1,9 @@
|
|||
{
|
||||
"botnick": "",
|
||||
"password": "",
|
||||
"email": "",
|
||||
"confirm": ""
|
||||
}
|
||||
"confirm": "",
|
||||
"author": "",
|
||||
"channels": [],
|
||||
"extras": {}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue