diff --git a/.gitignore b/.gitignore index e61bca2..4fe0d89 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,9 @@ +# Application specific +abots-git/ +abots/ +abots +*.log + # ---> Python # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/README.md b/README.md index 59f5f3f..74df92a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,20 @@ # irc -The IRC component \ No newline at end of file +The IRC component + +## Dependencies + +* abots + +## Setup + +Install abots using: + +```bash + +$ git clone https://tildegit.org/aewens/abots _abots +$ mv _abots/abots . +$ rm -rf _abots + + +``` diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/client.py b/client.py new file mode 100755 index 0000000..8b22245 --- /dev/null +++ b/client.py @@ -0,0 +1,72 @@ +#!/opt/abots/env/bin/python3 + +from abots.net import IRCSocketClient +from abots.helpers import Logger, infinitedict, isnumeric +from time import sleep +from os import remove as delete_file +from os.path import isfile + +logname = "babili_irc_client" +logfile = f"{logname}.log" +if isfile(logfile): + delete_file(logfile) +settings = infinitedict() +settings["file"]["formatter"] = "%(message)s" +settings["stream"]["formatter"] = "%(message)s" +logger = Logger(logname, settings=settings) +logger.start() + +irc_host = "localhost" +irc_port = 6667 +irc_timeout = 3 + +irc_client = IRCSocketClient(irc_host, irc_port, daemon=True)#, timeout=irc_timeout) +irc_client.start() +inbox = irc_client.queues.get("inbox") +outbox = irc_client.queues.get("outbox") +events = irc_client.queues.get("events") + +#sleep(2) +irc_client.ready.wait() + +""" + +:center.tilde.chat NOTICE * :*** Looking up your hostname... +:center.tilde.chat NOTICE * :*** Could not resolve your hostname: Domain not found; using your IP address (127.0.0.1) instead. +:center.tilde.chat CAP * LS :account-notify account-tag away-notify batch cap-notify chghost echo-message extended-join invite-notify message-tags sasl server-time +:center.tilde.chat 001 babili|test :Welcome to the tilde.chat IRC Network babili|test!babili|test@127.0.0.1 +:center.tilde.chat 002 babili|test :Your host is center.tilde.chat, running version InspIRCd-3 +:center.tilde.chat 003 babili|test :This server was created 17:19:44 May 06 2019 + +""" + +def parse(message): + prefix, command, params = message.lstrip(":").rstrip("\r\n").split(" ", 2) + meta = dict() + meta["source"] = "nick" if "!" in prefix else "server" + meta["type"] = "numeric" if isnumeric(command) else "alpha" + return meta + +name = "babili" +first = False +server = None +irc_client.send("CAP LS") +irc_client.send("CAP END") +irc_client.send(f"USER {name} - - -") +irc_client.send(f"NICK {name}") +while True: + for letter in irc_client.recv(): + if letter is not None:# or len(letter) > 0: + #meta = parse(letter) + #print(meta) + #source = meta["source"] + #if not first and source == "server": + # server = source + # first = True + #elif context == server and command == "CAP": + logger.debug(letter) + sleep(1) +#for letter in irc_client.recv(): +# if letter is not None: +# logger.debug(letter) +irc_client.stop()