summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--demonetarisiert/__init__.py20
-rw-r--r--demonetarisiert/__main__.py4
-rw-r--r--demonetarisiert/config.py10
-rw-r--r--demonetarisiert/irc.py39
-rw-r--r--requirements.txt2
6 files changed, 77 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f2c4ddd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+config/
+venv/
diff --git a/demonetarisiert/__init__.py b/demonetarisiert/__init__.py
new file mode 100644
index 0000000..7e203c6
--- /dev/null
+++ b/demonetarisiert/__init__.py
@@ -0,0 +1,20 @@
+from threading import Thread
+from time import sleep
+
+from .config import config
+from .irc import Client
+
+connection = Client()
+
+
+def send_msg():
+ connection.ready.wait()
+ while True:
+ connection.connection.privmsg("#" + config.channel, "#familyfriendly, bitte!")
+ sleep(300)
+
+
+def main():
+ t = Thread(target=send_msg)
+ t.start()
+ connection.setup()
diff --git a/demonetarisiert/__main__.py b/demonetarisiert/__main__.py
new file mode 100644
index 0000000..c7c70d0
--- /dev/null
+++ b/demonetarisiert/__main__.py
@@ -0,0 +1,4 @@
+from . import main
+
+if __name__ == '__main__':
+ main()
diff --git a/demonetarisiert/config.py b/demonetarisiert/config.py
new file mode 100644
index 0000000..b6e7fbd
--- /dev/null
+++ b/demonetarisiert/config.py
@@ -0,0 +1,10 @@
+from configlib import BaseConfig
+
+
+class Config(BaseConfig):
+ name: str
+ password: str
+ channel: str
+
+
+config = Config.get_instance()
diff --git a/demonetarisiert/irc.py b/demonetarisiert/irc.py
new file mode 100644
index 0000000..b1c24ad
--- /dev/null
+++ b/demonetarisiert/irc.py
@@ -0,0 +1,39 @@
+from threading import Event as TEvent
+
+from irc.client import SimpleIRCClient, ServerConnection, Event
+
+from .config import config
+
+SERVER = "irc.chat.twitch.tv"
+PORT = 6667
+CHANNEL = "#" + config.channel
+NICK = config.name
+
+
+class Client(SimpleIRCClient):
+ def __init__(self):
+ super().__init__()
+ self.ready = TEvent()
+
+ def setup(self):
+ self.connect(SERVER, PORT, NICK, password=config.password)
+ self.start()
+
+ def on_endofmotd(self, conn: ServerConnection, event: Event):
+ print('Well, we are done here.')
+ conn.join(CHANNEL)
+
+ def on_motd(self, conn: ServerConnection, event: Event):
+ print("Motd: " + event.arguments[0])
+
+ def on_pubmsg(self, conn: ServerConnection, event: Event):
+ if event.arguments[0] == 'test123':
+ conn.privmsg(CHANNEL, '#familyfriendly, bitte!')
+
+ def on_endofnames(self, conn: ServerConnection, event: Event):
+ self.ready.set()
+
+ def _dispatcher(self, conn: ServerConnection, event: Event):
+ if event.type != 'all_raw_messages':
+ print(event)
+ super(Client, self)._dispatcher(conn, event)
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..62ba3b9
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,2 @@
+irc
+https://github.com/romangraef/configlib/archive/master.zip