shrlok: init plugin
This commit is contained in:
parent
3be1fddd93
commit
4d7be3d9d8
36
edmond/plugins/shrlok.py
Normal file
36
edmond/plugins/shrlok.py
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
import socket
|
||||||
|
|
||||||
|
from edmond.plugin import Plugin
|
||||||
|
|
||||||
|
|
||||||
|
class ShrlokPlugin(Plugin):
|
||||||
|
"""Use an available shrlok server to allow sharing longer stuff."""
|
||||||
|
|
||||||
|
def __init__(self, bot):
|
||||||
|
super().__init__(bot)
|
||||||
|
self.socket = ""
|
||||||
|
self.file_root = ""
|
||||||
|
self.url_root = ""
|
||||||
|
|
||||||
|
def on_welcome(self, _):
|
||||||
|
if all(
|
||||||
|
conf in self.config
|
||||||
|
for conf in ("socket_path", "file_root", "url_root")
|
||||||
|
):
|
||||||
|
self.socket = self.config["socket_path"]
|
||||||
|
self.file_root = self.config["file_root"]
|
||||||
|
self.url_root = self.config["url_root"]
|
||||||
|
self.bot.log_d(f"shrlok socket path '{self.socket}'")
|
||||||
|
else:
|
||||||
|
self.bot.log_i("No socket path specified, shrlok plugin disabled.")
|
||||||
|
self.is_ready = False
|
||||||
|
|
||||||
|
def post_text(self, content):
|
||||||
|
try:
|
||||||
|
with socket.socket(socket.AF_UNIX, socket.SOCKET_STREAM) as sock:
|
||||||
|
sock.connect(self.socket)
|
||||||
|
sock.sendall(content.encode())
|
||||||
|
response = sock.recv(4096)
|
||||||
|
except OSError as exc:
|
||||||
|
self.bot.log_e(f"Can't write text file: {exc}")
|
||||||
|
self.bot.log_i("socket replied with: " + response.decode())
|
Loading…
Reference in a new issue