From 02cce55db13353d9153705b6fdc688a12abaa385 Mon Sep 17 00:00:00 2001 From: BotoX Date: Wed, 2 Aug 2017 23:41:02 +0200 Subject: [PATCH] Initial commit. --- .gitignore | 3 + README.md | 25 ++ Torchlight/AccessManager.py | 43 ++ Torchlight/AsyncClient.py | 97 +++++ Torchlight/AudioManager.py | 271 ++++++++++++ Torchlight/CommandHandler.py | 111 +++++ Torchlight/Commands.py | 730 ++++++++++++++++++++++++++++++++ Torchlight/Config.py | 24 ++ Torchlight/Constants.py | 26 ++ Torchlight/FFmpegAudioPlayer.py | 178 ++++++++ Torchlight/GameEvents.py | 142 +++++++ Torchlight/PlayerManager.py | 188 ++++++++ Torchlight/SourceModAPI.py | 27 ++ Torchlight/SourceRCONServer.py | 105 +++++ Torchlight/Torchlight.py | 125 ++++++ Torchlight/Utils.py | 94 ++++ Torchlight/__init__.py | 2 + access.json | 6 + config.json | 48 +++ main.py | 33 ++ requirements.txt | 21 + sounds/Tutturuu_v1.wav | Bin 0 -> 269100 bytes triggers.json | 3 + 23 files changed, 2302 insertions(+) create mode 100755 .gitignore create mode 100644 README.md create mode 100644 Torchlight/AccessManager.py create mode 100644 Torchlight/AsyncClient.py create mode 100644 Torchlight/AudioManager.py create mode 100644 Torchlight/CommandHandler.py create mode 100644 Torchlight/Commands.py create mode 100644 Torchlight/Config.py create mode 100644 Torchlight/Constants.py create mode 100644 Torchlight/FFmpegAudioPlayer.py create mode 100644 Torchlight/GameEvents.py create mode 100644 Torchlight/PlayerManager.py create mode 100644 Torchlight/SourceModAPI.py create mode 100644 Torchlight/SourceRCONServer.py create mode 100644 Torchlight/Torchlight.py create mode 100644 Torchlight/Utils.py create mode 100644 Torchlight/__init__.py create mode 100644 access.json create mode 100644 config.json create mode 100755 main.py create mode 100644 requirements.txt create mode 100644 sounds/Tutturuu_v1.wav create mode 100644 triggers.json diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..70ca3b2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +__pycache__ +*.pyc +venv diff --git a/README.md b/README.md new file mode 100644 index 0000000..1fd3c22 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Torchlight3 + +## 0. Requirements + * Python3.6 + * FFMPEG + * youtube-dl + * On game server: + * custom sourcemod + * sm-ext-AsyncSocket extension + * smjansson extension + * SMJSONAPI plugin + * sm-ext-Voice extension + +## 1. Install + * Install python3 and python-virtualenv + * Create a virtualenv: `virtualenv venv` + * Activate the virtualenv: `. venv/bin/activate` + * Install all dependencies: `pip install -r requirements.txt` + +## 2. Usage +Set up game server stuff. +Adapt config.json. + +##### Make sure you are in the virtualenv! (`. venv/bin/activate`) +Run: `python main.py` diff --git a/Torchlight/AccessManager.py b/Torchlight/AccessManager.py new file mode 100644 index 0000000..55622ec --- /dev/null +++ b/Torchlight/AccessManager.py @@ -0,0 +1,43 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import logging +import json +from collections import OrderedDict + +class AccessManager(): + ACCESS_FILE = "access.json" + def __init__(self): + self.Logger = logging.getLogger(__class__.__name__) + self.AccessDict = OrderedDict() + + def Load(self): + self.Logger.info("Loading access from {0}".format(self.ACCESS_FILE)) + + with open(self.ACCESS_FILE, "r") as fp: + self.AccessDict = json.load(fp, object_pairs_hook = OrderedDict) + + def Save(self): + self.Logger.info("Saving access to {0}".format(self.ACCESS_FILE)) + + self.AccessDict = OrderedDict( + sorted(self.AccessDict.items(), key = lambda x: x[1]["level"], reverse = True)) + + with open(self.ACCESS_FILE, "w") as fp: + json.dump(self.AccessDict, fp, indent = '\t') + + def __len__(self): + return len(self.AccessDict) + + def __getitem__(self, key): + if key in self.AccessDict: + return self.AccessDict[key] + + def __setitem__(self, key, value): + self.AccessDict[key] = value + + def __delitem__(self, key): + if key in self.AccessDict: + del self.AccessDict[key] + + def __iter__(self): + return self.AccessDict.items().__iter__() diff --git a/Torchlight/AsyncClient.py b/Torchlight/AsyncClient.py new file mode 100644 index 0000000..ae736e1 --- /dev/null +++ b/Torchlight/AsyncClient.py @@ -0,0 +1,97 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import asyncio +import logging +import json + +class ClientProtocol(asyncio.Protocol): + def __init__(self, loop, master): + self.Loop = loop + self.Master = master + self.Transport = None + self.Buffer = bytearray() + + def connection_made(self, transport): + self.Transport = transport + + def data_received(self, data): + self.Buffer += data + + chunks = self.Buffer.split(b'\0') + if data[-1] == b'\0': + chunks = chunks[:-1] + self.Buffer = bytearray() + else: + self.Buffer = bytearray(chunks[-1]) + chunks = chunks[:-1] + + for chunk in chunks: + self.Master.OnReceive(chunk) + + def connection_lost(self, exc): + self.Transport.close() + self.Transport = None + self.Master.OnDisconnect(exc) + + def Send(self, data): + if self.Transport: + self.Transport.write(data) + +class AsyncClient(): + def __init__(self, loop, host, port, master): + self.Logger = logging.getLogger(__class__.__name__) + self.Loop = loop + self.Host = host + self.Port = port + self.Master = master + + self.Protocol = None + self.SendLock = asyncio.Lock() + self.RecvFuture = None + + async def Connect(self): + while True: + self.Logger.warn("Connecting...") + try: + _, self.Protocol = await self.Loop.create_connection( + lambda: ClientProtocol(self.Loop, self), host = self.Host, port = self.Port) + break + except: + await asyncio.sleep(1.0) + + def OnReceive(self, data): + Obj = json.loads(data) + + if "method" in Obj and Obj["method"] == "publish": + self.Master.OnPublish(Obj) + else: + if self.RecvFuture: + self.RecvFuture.set_result(Obj) + + def OnDisconnect(self, exc): + self.Protocol = None + if self.RecvFuture: + self.RecvFuture.cancel() + self.Master.OnDisconnect(exc) + + async def Send(self, obj): + if not self.Protocol: + return None + + Data = json.dumps(obj, ensure_ascii = False, separators = (',', ':')).encode("UTF-8") + + with (await self.SendLock): + if not self.Protocol: + return None + + self.RecvFuture = asyncio.Future() + self.Protocol.Send(Data) + await self.RecvFuture + + if self.RecvFuture.done(): + Obj = self.RecvFuture.result() + else: + Obj = None + + self.RecvFuture = None + return Obj diff --git a/Torchlight/AudioManager.py b/Torchlight/AudioManager.py new file mode 100644 index 0000000..7e182d8 --- /dev/null +++ b/Torchlight/AudioManager.py @@ -0,0 +1,271 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import logging +import sys +import io +import math +from .FFmpegAudioPlayer import FFmpegAudioPlayerFactory + +class AudioPlayerFactory(): + AUDIOPLAYER_FFMPEG = 1 + + def __init__(self, master): + self.Logger = logging.getLogger(__class__.__name__) + self.Master = master + self.Torchlight = self.Master.Torchlight + + self.FFmpegAudioPlayerFactory = FFmpegAudioPlayerFactory(self) + + def __del__(self): + self.Logger.info("~AudioPlayerFactory()") + + def NewPlayer(self, _type): + if _type == self.AUDIOPLAYER_FFMPEG: + return self.FFmpegAudioPlayerFactory.NewPlayer() + +class AntiSpam(): + def __init__(self, master): + self.Logger = logging.getLogger(__class__.__name__) + self.Master = master + self.Torchlight = self.Master.Torchlight + + self.LastClips = dict() + self.DisabledTime = None + + def CheckAntiSpam(self, player): + if self.DisabledTime and self.DisabledTime > self.Torchlight().Master.Loop.time() and \ + not (player.Access and player.Access["level"] >= self.Torchlight().Config["AntiSpam"]["ImmunityLevel"]): + + self.Torchlight().SayPrivate(player, "Torchlight is currently on cooldown! ({0} seconds left)".format( + math.ceil(self.DisabledTime - self.Torchlight().Master.Loop.time()))) + return False + + return True + + def RegisterClip(self, clip): + self.LastClips[hash(clip)] = dict({"timestamp": None, "duration": 0.0, "dominant": False, "active": True}) + + def SpamCheck(self): + Now = self.Torchlight().Master.Loop.time() + Duration = 0.0 + + for Key, Clip in list(self.LastClips.items()): + if not Clip["timestamp"]: + continue + + if Clip["timestamp"] + self.Torchlight().Config["AntiSpam"]["MaxUsageSpan"] < Now: + if not Clip["active"]: + del self.LastClips[Key] + continue + + Duration += Clip["duration"] + + if Duration > self.Torchlight().Config["AntiSpam"]["MaxUsageTime"]: + self.DisabledTime = self.Torchlight().Master.Loop.time() + self.Torchlight().Config["AntiSpam"]["PunishDelay"] + self.Torchlight().SayChat("Blocked voice commands for the next {0} seconds. Used {1} seconds within {2} seconds.".format( + self.Torchlight().Config["AntiSpam"]["PunishDelay"], self.Torchlight().Config["AntiSpam"]["MaxUsageTime"], self.Torchlight().Config["AntiSpam"]["MaxUsageSpan"])) + + # Make a copy of the list since AudioClip.Stop() will change the list + for AudioClip in self.Master.AudioClips[:]: + if AudioClip.Level < self.Torchlight().Config["AntiSpam"]["ImmunityLevel"]: + AudioClip.Stop() + + self.LastClips.clear() + + def OnPlay(self, clip): + self.LastClips[hash(clip)]["timestamp"] = self.Torchlight().Master.Loop.time() + + HasDominant = False + for Key, Clip in self.LastClips.items(): + if Clip["dominant"]: + HasDominant = True + break + + self.LastClips[hash(clip)]["dominant"] = not HasDominant + + def OnStop(self, clip): + self.LastClips[hash(clip)]["active"] = False + + if self.LastClips[hash(clip)]["dominant"]: + for Key, Clip in self.LastClips.items(): + if Clip["active"]: + Clip["dominant"] = True + break + + self.LastClips[hash(clip)]["dominant"] = False + + def OnUpdate(self, clip, old_position, new_position): + Delta = new_position - old_position + Clip = self.LastClips[hash(clip)] + + if not Clip["dominant"]: + return + + Clip["duration"] += Delta + self.SpamCheck() + + +class AudioManager(): + def __init__(self, torchlight): + self.Logger = logging.getLogger(__class__.__name__) + self.Torchlight = torchlight + self.AntiSpam = AntiSpam(self) + self.AudioPlayerFactory = AudioPlayerFactory(self) + self.AudioClips = [] + + def __del__(self): + self.Logger.info("~AudioManager()") + + def CheckLimits(self, player): + Level = 0 + if player.Access: + Level = player.Access["level"] + + if str(Level) in self.Torchlight().Config["AudioLimits"]: + if self.Torchlight().Config["AudioLimits"][str(Level)]["Uses"] >= 0 and \ + player.Storage["Audio"]["Uses"] >= self.Torchlight().Config["AudioLimits"][str(Level)]["Uses"]: + + self.Torchlight().SayPrivate(player, "You have used up all of your free uses! ({0} uses)".format( + self.Torchlight().Config["AudioLimits"][str(Level)]["Uses"])) + return False + + if player.Storage["Audio"]["TimeUsed"] >= self.Torchlight().Config["AudioLimits"][str(Level)]["TotalTime"]: + self.Torchlight().SayPrivate(player, "You have used up all of your free time! ({0} seconds)".format( + self.Torchlight().Config["AudioLimits"][str(Level)]["TotalTime"])) + return False + + TimeElapsed = self.Torchlight().Master.Loop.time() - player.Storage["Audio"]["LastUse"] + UseDelay = player.Storage["Audio"]["LastUseLength"] * self.Torchlight().Config["AudioLimits"][str(Level)]["DelayFactor"] + + if TimeElapsed < UseDelay: + self.Torchlight().SayPrivate(player, "You are currently on cooldown! ({0} seconds left)".format( + round(UseDelay - TimeElapsed))) + return False + + return True + + def Stop(self, player, extra): + Level = 0 + if player.Access: + Level = player.Access["level"] + + for AudioClip in self.AudioClips[:]: + if extra and not extra.lower() in AudioClip.Player.Name.lower(): + continue + + if not Level or Level < AudioClip.Level: + AudioClip.Stops.add(player.UserID) + + if len(AudioClip.Stops) >= 3: + AudioClip.Stop() + self.Torchlight().SayPrivate(AudioClip.Player, "Your audio clip was stopped.") + if player != AudioClip.Player: + self.Torchlight().SayPrivate(player, "Stopped \"{0}\"({1}) audio clip.".format(AudioClip.Player.Name, AudioClip.Player.UserID)) + else: + self.Torchlight().SayPrivate(player, "This audio clip needs {0} more !stop's.".format(3 - len(AudioClip.Stops))) + else: + AudioClip.Stop() + self.Torchlight().SayPrivate(AudioClip.Player, "Your audio clip was stopped.") + if player != AudioClip.Player: + self.Torchlight().SayPrivate(player, "Stopped \"{0}\"({1}) audio clip.".format(AudioClip.Player.Name, AudioClip.Player.UserID)) + + def AudioClip(self, player, uri, _type = AudioPlayerFactory.AUDIOPLAYER_FFMPEG): + Level = 0 + if player.Access: + Level = player.Access["level"] + + if self.Torchlight().Disabled and self.Torchlight().Disabled > Level: + self.Torchlight().SayPrivate(player, "Torchlight is currently disabled!") + return None + + if not self.AntiSpam.CheckAntiSpam(player): + return None + + if not self.CheckLimits(player): + return None + + Clip = AudioClip(self, player, uri, _type) + self.AudioClips.append(Clip) + + if not player.Access or player.Access["level"] < self.Torchlight().Config["AntiSpam"]["ImmunityLevel"]: + self.AntiSpam.RegisterClip(Clip) + Clip.AudioPlayer.AddCallback("Play", lambda *args: self.AntiSpam.OnPlay(Clip, *args)) + Clip.AudioPlayer.AddCallback("Stop", lambda *args: self.AntiSpam.OnStop(Clip, *args)) + Clip.AudioPlayer.AddCallback("Update", lambda *args: self.AntiSpam.OnUpdate(Clip, *args)) + + return Clip + + def OnDisconnect(self, player): + for AudioClip in self.AudioClips[:]: + if AudioClip.Player == player: + AudioClip.Stop() + + +class AudioClip(): + def __init__(self, master, player, uri, _type): + self.Logger = logging.getLogger(__class__.__name__) + self.Master = master + self.Torchlight = self.Master.Torchlight + self.Player = player + self.Type = _type + self.URI = uri + self.LastPosition = None + self.Stops = set() + + self.Level = 0 + if self.Player.Access: + self.Level = self.Player.Access["level"] + + self.AudioPlayer = self.Master.AudioPlayerFactory.NewPlayer(self.Type) + self.AudioPlayer.AddCallback("Play", self.OnPlay) + self.AudioPlayer.AddCallback("Stop", self.OnStop) + self.AudioPlayer.AddCallback("Update", self.OnUpdate) + + def __del__(self): + self.Logger.info("~AudioClip()") + + def Play(self, seconds = None): + return self.AudioPlayer.PlayURI(self.URI, seconds) + + def Stop(self): + return self.AudioPlayer.Stop() + + def OnPlay(self): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + self.URI) + + self.Player.Storage["Audio"]["Uses"] += 1 + self.Player.Storage["Audio"]["LastUse"] = self.Torchlight().Master.Loop.time() + self.Player.Storage["Audio"]["LastUseLength"] = 0.0 + + def OnStop(self): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + self.URI) + self.Master.AudioClips.remove(self) + + if self.AudioPlayer.Playing: + Delta = self.AudioPlayer.Position - self.LastPosition + self.Player.Storage["Audio"]["TimeUsed"] += Delta + self.Player.Storage["Audio"]["LastUseLength"] += Delta + + if str(self.Level) in self.Torchlight().Config["AudioLimits"]: + if self.Player.Storage["Audio"]["TimeUsed"] >= self.Torchlight().Config["AudioLimits"][str(self.Level)]["TotalTime"]: + self.Torchlight().SayPrivate(self.Player, "You have used up all of your free time! ({0} seconds)".format( + self.Torchlight().Config["AudioLimits"][str(self.Level)]["TotalTime"])) + elif self.Player.Storage["Audio"]["LastUseLength"] >= self.Torchlight().Config["AudioLimits"][str(self.Level)]["MaxLength"]: + self.Torchlight().SayPrivate(self.Player, "Your audio clip exceeded the maximum length! ({0} seconds)".format( + self.Torchlight().Config["AudioLimits"][str(self.Level)]["MaxLength"])) + + del self.AudioPlayer + + def OnUpdate(self, old_position, new_position): + Delta = new_position - old_position + self.LastPosition = new_position + + self.Player.Storage["Audio"]["TimeUsed"] += Delta + self.Player.Storage["Audio"]["LastUseLength"] += Delta + + if not str(self.Level) in self.Torchlight().Config["AudioLimits"]: + return + + if (self.Player.Storage["Audio"]["TimeUsed"] >= self.Torchlight().Config["AudioLimits"][str(self.Level)]["TotalTime"] or + self.Player.Storage["Audio"]["LastUseLength"] >= self.Torchlight().Config["AudioLimits"][str(self.Level)]["MaxLength"]): + self.Stop() diff --git a/Torchlight/CommandHandler.py b/Torchlight/CommandHandler.py new file mode 100644 index 0000000..ee6fd03 --- /dev/null +++ b/Torchlight/CommandHandler.py @@ -0,0 +1,111 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import logging +import asyncio +import sys +import re +import traceback +import math +from importlib import reload +from . import Commands + +class CommandHandler(): + def __init__(self, Torchlight): + self.Logger = logging.getLogger(__class__.__name__) + self.Torchlight = Torchlight + self.Commands = [] + self.NeedsReload = False + + def Setup(self): + Counter = len(self.Commands) + self.Commands.clear() + if Counter: + self.Logger.info(sys._getframe().f_code.co_name + " Unloaded {0} commands!".format(Counter)) + + Counter = 0 + for subklass in sorted(Commands.BaseCommand.__subclasses__(), key = lambda x: x.Order, reverse = True): + try: + Command = subklass(self.Torchlight) + if hasattr(Command, "_setup"): + Command._setup() + except Exception as e: + self.Logger.error(traceback.format_exc()) + else: + self.Commands.append(Command) + Counter += 1 + + self.Logger.info(sys._getframe().f_code.co_name + " Loaded {0} commands!".format(Counter)) + + def Reload(self): + try: + reload(Commands) + except Exception as e: + self.Logger.error(traceback.format_exc()) + else: + self.Setup() + + async def HandleCommand(self, line, player): + Message = line.split(sep = ' ', maxsplit = 1) + if len(Message) < 2: + Message.append("") + Message[1] = Message[1].strip() + + Level = 0 + if player.Access: + Level = player.Access["level"] + + RetMessage = None + Ret = None + for Command in self.Commands: + for Trigger in Command.Triggers: + Match = False + RMatch = None + if isinstance(Trigger, tuple): + if Message[0].lower().startswith(Trigger[0], 0, Trigger[1]): + Match = True + elif isinstance(Trigger, str): + if Message[0].lower() == Trigger.lower(): + Match = True + else: # compiled regex + RMatch = Trigger.search(line) + if RMatch: + Match = True + + if not Match: + continue + + self.Logger.debug(sys._getframe().f_code.co_name + " \"{0}\" Match -> {1} | {2}".format(player.Name, Command.__class__.__name__, Trigger)) + + if Level < Command.Level: + RetMessage = "You do not have access to this command! (You: {0} | Required: {1})".format(Level, Command.Level) + continue + + try: + if RMatch: + Ret = await Command._rfunc(line, RMatch, player) + else: + Ret = await Command._func(Message, player) + except Exception as e: + self.Logger.error(traceback.format_exc()) + self.Torchlight().SayChat("Error: {0}".format(str(e))) + + RetMessage = None + + if isinstance(Ret, str): + Message = Ret.split(sep = ' ', maxsplit = 1) + Ret = None + + if Ret != None and Ret > 0: + break + + if Ret != None and Ret >= 0: + break + + if RetMessage: + self.Torchlight().SayPrivate(player, RetMessage) + + if self.NeedsReload: + self.NeedsReload = False + self.Reload() + + return Ret diff --git a/Torchlight/Commands.py b/Torchlight/Commands.py new file mode 100644 index 0000000..4cdc144 --- /dev/null +++ b/Torchlight/Commands.py @@ -0,0 +1,730 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import asyncio +import os +import sys +import logging +import math +from .Utils import Utils, DataHolder +import traceback + +class BaseCommand(): + Order = 0 + def __init__(self, torchlight): + self.Logger = logging.getLogger(__class__.__name__) + self.Torchlight = torchlight + self.Triggers = [] + self.Level = 0 + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name) + +### FILTER COMMANDS ### +class URLFilter(BaseCommand): + Order = 1 + import re + import aiohttp + import magic + import datetime + import json + import io + from bs4 import BeautifulSoup + from PIL import Image + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = [self.re.compile(r'''(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))''', self.re.IGNORECASE)] + self.Level = -1 + self.re_youtube = self.re.compile(r'.*?(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\?(?:\S*?&?v\=))|youtu\.be\/)([a-zA-Z0-9_-]{6,11}).*?') + + async def URLInfo(self, url, yt = False): + Info = None + match = self.re_youtube.search(url) + if match or yt: + Temp = DataHolder() + Time = None + + if Temp(url.find("&t=")) != -1 or Temp(url.find("?t=")) != -1 or Temp(url.find("#t=")) != -1: + TimeStr = url[Temp.value + 3:].split('&')[0].split('?')[0].split('#')[0] + if TimeStr: + Time = Utils.ParseTime(TimeStr) + + Proc = await asyncio.create_subprocess_exec("youtube-dl", "--dump-json", "-xg", url, + stdout = asyncio.subprocess.PIPE) + Out, _ = await Proc.communicate() + + url, Info = Out.split(b'\n', maxsplit = 1) + url = url.strip().decode("ascii") + Info = self.json.loads(Info) + + if Info["extractor_key"] == "Youtube": + self.Torchlight().SayChat("\x07E52D27[YouTube]\x01 {0} | {1} | {2}/5.00 | {3:,}".format( + Info["title"], str(self.datetime.timedelta(seconds = Info["duration"])), round(Info["average_rating"], 2), int(Info["view_count"]))) + else: + match = None + + url += "#t={0}".format(Time) + + else: + try: + async with self.aiohttp.ClientSession() as session: + Response = await asyncio.wait_for(session.get(url), 5) + if Response: + ContentType = Response.headers.get("Content-Type") + ContentLength = Response.headers.get("Content-Length") + Content = await asyncio.wait_for(Response.content.read(65536), 5) + + if not ContentLength: + ContentLength = -1 + + if ContentType.startswith("text") and not ContentType.startswith("text/plain"): + Soup = self.BeautifulSoup(Content.decode("utf-8", errors = "ignore"), "lxml") + if Soup.title: + self.Torchlight().SayChat("[URL] {0}".format(Soup.title.string)) + elif ContentType.startswith("image"): + fp = self.io.BytesIO(Content) + im = self.Image.open(fp) + self.Torchlight().SayChat("[IMAGE] {0} | Width: {1} | Height: {2} | Size: {3}".format(im.format, im.size[0], im.size[1], Utils.HumanSize(ContentLength))) + fp.close() + else: + Filetype = self.magic.from_buffer(bytes(Content)) + self.Torchlight().SayChat("[FILE] {0} | Size: {1}".format(Filetype, Utils.HumanSize(ContentLength))) + + Response.close() + except Exception as e: + self.Torchlight().SayChat("Error: {0}".format(str(e))) + self.Logger.error(traceback.format_exc()) + + self.Torchlight().LastUrl = url + return url + + async def _rfunc(self, line, match, player): + Url = match.groups()[0] + if not Url.startswith("http") and not Url.startswith("ftp"): + Url = "http://" + Url + + if line.startswith("!yt "): + URL = await self.URLInfo(Url, True) + return "!yt " + URL + + asyncio.ensure_future(self.URLInfo(Url)) + return -1 + +### FILTER COMMANDS ### + +### LEVEL 0 COMMANDS ### +class Access(BaseCommand): + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!access", "!who", "!whois"] + self.Level = 0 + + def FormatAccess(self, player): + Answer = "#{0} \"{1}\"({2}) is ".format(player.UserID, player.Name, player.UniqueID) + Level = str(0) + if player.Access: + Level = str(player.Access["level"]) + Answer += "level {0!s} as {1}.".format(Level, player.Access["name"]) + else: + Answer += "not authenticated." + + if Level in self.Torchlight().Config["AudioLimits"]: + Uses = self.Torchlight().Config["AudioLimits"][Level]["Uses"] + TotalTime = self.Torchlight().Config["AudioLimits"][Level]["TotalTime"] + + if Uses >= 0: + Answer += " Uses: {0}/{1}".format(player.Storage["Audio"]["Uses"], Uses) + if TotalTime >= 0: + Answer += " Time: {0}/{1}".format(round(player.Storage["Audio"]["TimeUsed"], 2), round(TotalTime, 2)) + + return Answer + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + + Count = 0 + if message[0] == "!access": + if message[1]: + return -1 + + self.Torchlight().SayChat(self.FormatAccess(player)) + + elif message[0] == "!who": + for Player in self.Torchlight().Players: + if Player.Name.lower().find(message[1].lower()) != -1: + self.Torchlight().SayChat(self.FormatAccess(Player)) + + Count += 1 + if Count >= 3: + break + + elif message[0] == "!whois": + for UniqueID, Access in self.Torchlight().Access: + if Access["name"].lower().find(message[1].lower()) != -1: + Player = self.Torchlight().Players.FindUniqueID(UniqueID) + if Player: + self.Torchlight().SayChat(self.FormatAccess(Player)) + else: + self.Torchlight().SayChat("#? \"{0}\"({1}) is level {2!s} is currently offline.".format(Access["name"], UniqueID, Access["level"])) + + Count += 1 + if Count >= 3: + break + return 0 + +class Calculate(BaseCommand): + import urllib.parse + import aiohttp + import json + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!c"] + self.Level = 0 + + async def Calculate(self, Params): + async with self.aiohttp.ClientSession() as session: + Response = await asyncio.wait_for(session.get("http://math.leftforliving.com/query", params=Params), 5) + if not Response: + return 1 + + Data = await asyncio.wait_for(Response.json(content_type = "text/json"), 5) + if not Data: + return 2 + + if not Data["error"]: + self.Torchlight().SayChat(Data["answer"]) + return 0 + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + Params = dict({"question": message[1]}) + Ret = await self.Calculate(Params) + return Ret + +class WolframAlpha(BaseCommand): + import urllib.parse + import aiohttp + import xml.etree.ElementTree as etree + import re + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!cc"] + self.Level = 0 + + def Clean(self, Text): + return self.re.sub("[ ]{2,}", " ", Text.replace(' | ', ': ').replace('\n', ' | ').replace('~~', ' ≈ ')).strip() + + async def Calculate(self, Params): + async with self.aiohttp.ClientSession() as session: + Response = await asyncio.wait_for(session.get("http://api.wolframalpha.com/v2/query", params=Params), 10) + if not Response: + return 1 + + Data = await asyncio.wait_for(Response.text(), 5) + if not Data: + return 2 + + Root = self.etree.fromstring(Data) + + + # Find all pods with plaintext answers + # Filter out None -answers, strip strings and filter out the empty ones + Pods = list(filter(None, [p.text.strip() for p in Root.findall('.//subpod/plaintext') if p is not None and p.text is not None])) + + # no answer pods found, check if there are didyoumeans-elements + if not Pods: + Didyoumeans = Root.find("didyoumeans") + # no support for future stuff yet, TODO? + if not Didyoumeans: + # If there's no pods, the question clearly wasn't understood + self.Torchlight().SayChat("Sorry, couldn't understand the question.") + return 3 + + Options = [] + for Didyoumean in Didyoumeans: + Options.append("\"{0}\"".format(Didyoumean.text)) + Line = " or ".join(Options) + Line = "Did you mean {0}?".format(Line) + self.Torchlight().SayChat(Line) + return 0 + + # If there's only one pod with text, it's probably the answer + # example: "integral x²" + if len(Pods) == 1: + Answer = self.Clean(Pods[0]) + self.Torchlight().SayChat(Answer) + return 0 + + # If there's multiple pods, first is the question interpretation + Question = self.Clean(Pods[0].replace(' | ', ' ').replace('\n', ' ')) + # and second is the best answer + Answer = self.Clean(Pods[1]) + self.Torchlight().SayChat("{0} = {1}".format(Question, Answer)) + return 0 + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + Params = dict({"input": message[1], "appid": self.Torchlight().Config["WolframAPIKey"]}) + Ret = await self.Calculate(Params) + return Ret + +class WUnderground(BaseCommand): + import aiohttp + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!w"] + self.Level = 0 + + async def _func(self, message, player): + if not message[1]: + # Use IP address + Search = "autoip" + Additional = "?geo_ip={0}".format(player.Address.split(":")[0]) + else: + async with self.aiohttp.ClientSession() as session: + Response = await asyncio.wait_for(session.get("http://autocomplete.wunderground.com/aq?format=JSON&query={0}".format(message[1])), 5) + if not Response: + return 2 + + Data = await asyncio.wait_for(Response.json(), 5) + if not Data: + return 3 + + if not Data["RESULTS"]: + self.Torchlight().SayPrivate(player, "[WU] No cities match your search query.") + return 4 + + Search = Data["RESULTS"][0]["name"] + Additional = "" + + async with self.aiohttp.ClientSession() as session: + Response = await asyncio.wait_for(session.get("http://api.wunderground.com/api/{0}/conditions/q/{1}.json{2}".format( + self.Torchlight().Config["WundergroundAPIKey"], Search, Additional)), 5) + if not Response: + return 2 + + Data = await asyncio.wait_for(Response.json(), 5) + if not Data: + return 3 + + if "error" in Data["response"]: + self.Torchlight().SayPrivate(player, "[WU] {0}.".format(Data["response"]["error"]["description"])) + return 5 + + if not "current_observation" in Data: + Choices = str() + NumResults = len(Data["response"]["results"]) + for i, Result in enumerate(Data["response"]["results"]): + Choices += "{0}, {1}".format(Result["city"], + Result["state"] if Result["state"] else Result ["country_iso3166"]) + + if i < NumResults - 1: + Choices += " | " + + self.Torchlight().SayPrivate(player, "[WU] Did you mean: {0}".format(Choices)) + return 6 + + Observation = Data["current_observation"] + + self.Torchlight().SayChat("[{0}, {1}] {2}°C ({3}F) {4} | Wind {5} {6}kph ({7}mph) | Humidity: {8}".format(Observation["display_location"]["city"], + Observation["display_location"]["state"] if Observation["display_location"]["state"] else Observation["display_location"]["country_iso3166"], + Observation["temp_c"], Observation["temp_f"], Observation["weather"], + Observation["wind_dir"], Observation["wind_kph"], Observation["wind_mph"], + Observation["relative_humidity"])) + + return 0 + +### LEVEL 0 COMMANDS ### + +### LIMITED LEVEL 0 COMMANDS ### +class VoiceCommands(BaseCommand): + import json + import random + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!random"] + self.Level = 0 + + def LoadTriggers(self): + try: + with open("triggers.json", "r") as fp: + self.VoiceTriggers = self.json.load(fp) + except ValueError as e: + self.Logger.error(sys._getframe().f_code.co_name + ' ' + str(e)) + self.Torchlight().SayChat(str(e)) + + def _setup(self): + self.Logger.debug(sys._getframe().f_code.co_name) + self.LoadTriggers() + for Triggers in self.VoiceTriggers: + for Trigger in Triggers["names"]: + self.Triggers.append(Trigger) + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + + Level = 0 + if player.Access: + Level = player.Access["level"] + + Disabled = self.Torchlight().Disabled + if Disabled and (Disabled > Level or Disabled == Level and Level < self.Torchlight().Config["AntiSpam"]["ImmunityLevel"]): + self.Torchlight().SayPrivate(player, "Torchlight is currently disabled!") + return 1 + + if message[0][0] == '_' and Level < 2: + return 1 + + if message[0].lower() == "!random": + Trigger = self.random.choice(self.VoiceTriggers) + if isinstance(Trigger["sound"], list): + Sound = self.random.choice(Trigger["sound"]) + else: + Sound = Trigger["sound"] + else: + for Trigger in self.VoiceTriggers: + for Name in Trigger["names"]: + if message[0].lower() == Name: + Num = Utils.GetNum(message[1]) + if Num: + Num = int(Num) + + if isinstance(Trigger["sound"], list): + if Num and Num > 0 and Num <= len(Trigger["sound"]): + Sound = Trigger["sound"][Num - 1] + else: + Sound = self.random.choice(Trigger["sound"]) + else: + Sound = Trigger["sound"] + + break + + Path = os.path.abspath(os.path.join("sounds", Sound)) + AudioClip = self.Torchlight().AudioManager.AudioClip(player, "file://" + Path) + if not AudioClip: + return 1 + + return AudioClip.Play() + +class YouTube(BaseCommand): + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!yt"] + self.Level = 0 + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + + Level = 0 + if player.Access: + Level = player.Access["level"] + + Disabled = self.Torchlight().Disabled + if Disabled and (Disabled > Level or Disabled == Level and Level < self.Torchlight().Config["AntiSpam"]["ImmunityLevel"]): + self.Torchlight().SayPrivate(player, "Torchlight is currently disabled!") + return 1 + + if self.Torchlight().LastUrl: + message[1] = message[1].replace("!last", self.Torchlight().LastUrl) + + Temp = DataHolder() + Time = None + + if Temp(message[1].find("&t=")) != -1 or Temp(message[1].find("?t=")) != -1 or Temp(message[1].find("#t=")) != -1: + TimeStr = message[1][Temp.value + 3:].split('&')[0].split('?')[0].split('#')[0] + if TimeStr: + Time = Utils.ParseTime(TimeStr) + + AudioClip = self.Torchlight().AudioManager.AudioClip(player, message[1]) + if not AudioClip: + return 1 + + return AudioClip.Play(Time) + +class YouTubeSearch(BaseCommand): + import json + import datetime + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!yts"] + self.Level = 0 + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + + Level = 0 + if player.Access: + Level = player.Access["level"] + + Disabled = self.Torchlight().Disabled + if Disabled and (Disabled > Level or Disabled == Level and Level < self.Torchlight().Config["AntiSpam"]["ImmunityLevel"]): + self.Torchlight().SayPrivate(player, "Torchlight is currently disabled!") + return 1 + + Temp = DataHolder() + Time = None + + if Temp(message[1].find("&t=")) != -1 or Temp(message[1].find("?t=")) != -1 or Temp(message[1].find("#t=")) != -1: + TimeStr = message[1][Temp.value + 3:].split('&')[0].split('?')[0].split('#')[0] + if TimeStr: + Time = Utils.ParseTime(TimeStr) + message[1] = message[1][:Temp.value] + + Proc = await asyncio.create_subprocess_exec("youtube-dl", "--dump-json", "-xg", "ytsearch:" + message[1], + stdout = asyncio.subprocess.PIPE) + Out, _ = await Proc.communicate() + + url, Info = Out.split(b'\n', maxsplit = 1) + url = url.strip().decode("ascii") + Info = self.json.loads(Info) + + if Info["extractor_key"] == "Youtube": + self.Torchlight().SayChat("\x07E52D27[YouTube]\x01 {0} | {1} | {2}/5.00 | {3:,}".format( + Info["title"], str(self.datetime.timedelta(seconds = Info["duration"])), round(Info["average_rating"], 2), int(Info["view_count"]))) + + AudioClip = self.Torchlight().AudioManager.AudioClip(player, url) + if not AudioClip: + return 1 + + self.Torchlight().LastUrl = url + + return AudioClip.Play(Time) + +class Say(BaseCommand): + import gtts + import tempfile + VALID_LANGUAGES = [lang for lang in gtts.gTTS.LANGUAGES.keys()] + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = [("!say", 4)] + self.Level = 0 + + async def Say(self, player, language, message): + GTTS = self.gtts.gTTS(text = message, lang = language, debug = False) + + TempFile = self.tempfile.NamedTemporaryFile(delete = False) + GTTS.write_to_fp(TempFile) + TempFile.close() + + AudioClip = self.Torchlight().AudioManager.AudioClip(player, "file://" + TempFile.name) + if not AudioClip: + os.unlink(TempFile.name) + return 1 + + if AudioClip.Play(): + AudioClip.AudioPlayer.AddCallback("Stop", lambda: os.unlink(TempFile.name)) + return 0 + else: + os.unlink(TempFile.name) + return 1 + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + + Level = 0 + if player.Access: + Level = player.Access["level"] + + Disabled = self.Torchlight().Disabled + if Disabled and (Disabled > Level or Disabled == Level and Level < self.Torchlight().Config["AntiSpam"]["ImmunityLevel"]): + self.Torchlight().SayPrivate(player, "Torchlight is currently disabled!") + return 1 + + if not message[1]: + return 1 + + Language = "en" + if len(message[0]) > 4: + Language = message[0][4:] + + if not Language in self.VALID_LANGUAGES: + return 1 + + asyncio.ensure_future(self.Say(player, Language, message[1])) + return 0 + +class Stop(BaseCommand): + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!stop"] + self.Level = 0 + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + + self.Torchlight().AudioManager.Stop(player, message[1]) + return True + +### LIMITED LEVEL 0 COMMANDS ### + + +### LEVEL 1 COMMANDS ### +### LEVEL 1 COMMANDS ### + + +### LEVEL 2 COMMANDS ### +### LEVEL 2 COMMANDS ### + + +### LEVEL 3 COMMANDS ### +class EnableDisable(BaseCommand): + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!enable", "!disable"] + self.Level = 3 + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + if message[0] == "!enable": + if self.Torchlight().Disabled: + if self.Torchlight().Disabled > player.Access["level"]: + self.Torchlight().SayPrivate(player, "You don't have access to enable torchlight since it was disabled by a higher level user.") + return 1 + self.Torchlight().SayChat("Torchlight has been enabled for the duration of this map - Type !disable to disable it again.") + + self.Torchlight().Disabled = False + + elif message[0] == "!disable": + if not self.Torchlight().Disabled: + self.Torchlight().SayChat("Torchlight has been disabled for the duration of this map - Type !enable to enable it again.") + + self.Torchlight().Disabled = player.Access["level"] +### LEVEL 3 COMMANDS ### + + +### LEVEL 4 COMMANDS ### +class AdminAccess(BaseCommand): + from collections import OrderedDict + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!access"] + self.Level = 4 + + def ReloadValidUsers(self): + self.Torchlight().Access.Load() + for Player in self.Torchlight().Players: + Access = self.Torchlight().Access[Player.UniqueID] + Player.Access = Access + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + if not message[1]: + return -1 + + if message[1].lower() == "reload": + self.ReloadValidUsers() + self.Torchlight().SayChat("Loaded access list with {0} users".format(len(self.Torchlight().Access))) + + elif message[1].lower() == "save": + self.Torchlight().Access.Save() + self.Torchlight().SayChat("Saved access list with {0} users".format(len(self.Torchlight().Access))) + + # Modify access + else: + Player = None + Buf = message[1] + Temp = Buf.find(" as ") + if Temp != -1: + try: + Regname, Level = Buf[Temp + 4:].rsplit(' ', 1) + except ValueError as e: + self.Torchlight().SayChat(str(e)) + return 1 + + Regname = Regname.strip() + Level = Level.strip() + Buf = Buf[:Temp].strip() + else: + try: + Buf, Level = Buf.rsplit(' ', 1) + except ValueError as e: + self.Torchlight().SayChat(str(e)) + return 2 + + Buf = Buf.strip() + Level = Level.strip() + + # Find user by User ID + if Buf[0] == '#' and Buf[1:].isnumeric(): + Player = self.Torchlight().Players.FindUserID(int(Buf[1:])) + # Search user by name + else: + for Player_ in self.Torchlight().Players: + if Player_.Name.lower().find(Buf.lower()) != -1: + Player = Player_ + break + + if not Player: + self.Torchlight().SayChat("Couldn't find user: {0}".format(Buf)) + return 3 + + if Level.isnumeric() or (Level.startswith('-') and Level[1:].isdigit()): + Level = int(Level) + + if Level >= player.Access["level"] and player.Access["level"] < 10: + self.Torchlight().SayChat("Trying to assign level {0}, which is higher or equal than your level ({1})".format(Level, player.Access["level"])) + return 4 + + if Player.Access: + if Player.Access["level"] >= player.Access["level"] and player.Access["level"] < 10: + self.Torchlight().SayChat("Trying to modify level {0}, which is higher or equal than your level ({1})".format(Player.Access["level"], player.Access["level"])) + return 5 + + if "Regname" in locals(): + self.Torchlight().SayChat("Changed \"{0}\"({1}) as {2} level/name from {3} to {4} as {5}".format( + Player.Name, Player.UniqueID, Player.Access["name"], Player.Access["level"], Level, Regname)) + Player.Access["name"] = Regname + else: + self.Torchlight().SayChat("Changed \"{0}\"({1}) as {2} level from {3} to {4}".format( + Player.Name, Player.UniqueID, Player.Access["name"], Player.Access["level"], Level)) + + Player.Access["level"] = Level + self.Torchlight().Access[Player.UniqueID] = Player.Access + else: + if not "Regname" in locals(): + Regname = Player.Name + + self.Torchlight().Access[Player.UniqueID] = self.OrderedDict([("name", Regname), ("level", Level)]) + Player.Access = self.Torchlight().Access[Player.UniqueID] + self.Torchlight().SayChat("Added \"{0}\"({1}) to access list as {2} with level {3}".format(Player.Name, Player.UniqueID, Regname, Level)) + else: + if Level == "revoke" and Player.Access: + if Player.Access["level"] >= player.Access["level"] and player.Access["level"] < 10: + self.Torchlight().SayChat("Trying to revoke level {0}, which is higher or equal than your level ({1})".format(Player.Access["level"], player.Access["level"])) + return 6 + + self.Torchlight().SayChat("Removed \"{0}\"({1}) from access list (was {2} with level {3})".format( + Player.Name, Player.UniqueID, Player.Access["name"], Player.Access["level"])) + del self.Torchlight().Access[Player.UniqueID] + Player.Access = None + return 0 +### LEVEL 4 COMMANDS ### + + +### LEVEL X COMMANDS ### +class Exec(BaseCommand): + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!exec"] + self.Level = 9 + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + try: + Response = eval(message[1]) + except Exception as e: + self.Torchlight().SayChat("Error: {0}".format(str(e))) + return 1 + self.Torchlight().SayChat(str(Response)) + return 0 + +class Reload(BaseCommand): + def __init__(self, torchlight): + super().__init__(torchlight) + self.Triggers = ["!reload"] + self.Level = 6 + + async def _func(self, message, player): + self.Logger.debug(sys._getframe().f_code.co_name + ' ' + str(message)) + self.Torchlight().Reload() + return 0 +### LEVEL X COMMANDS ### diff --git a/Torchlight/Config.py b/Torchlight/Config.py new file mode 100644 index 0000000..dc0fbd7 --- /dev/null +++ b/Torchlight/Config.py @@ -0,0 +1,24 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import logging +import json + +class Config(): + def __init__(self): + self.Logger = logging.getLogger(__class__.__name__) + self.Config = dict() + self.Load() + + def Load(self): + try: + with open("config.json", "r") as fp: + self.Config = json.load(fp) + except ValueError as e: + self.Logger.error(sys._getframe().f_code.co_name + ' ' + str(e)) + return 1 + return 0 + + def __getitem__(self, key): + if key in self.Config: + return self.Config[key] + return None diff --git a/Torchlight/Constants.py b/Torchlight/Constants.py new file mode 100644 index 0000000..f631276 --- /dev/null +++ b/Torchlight/Constants.py @@ -0,0 +1,26 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +MAXPLAYERS = 65 + +ADMFLAG_RESERVATION = (1<<0) +ADMFLAG_GENERIC = (1<<1) +ADMFLAG_KICK = (1<<2) +ADMFLAG_BAN = (1<<3) +ADMFLAG_UNBAN = (1<<4) +ADMFLAG_SLAY = (1<<5) +ADMFLAG_CHANGEMAP = (1<<6) +ADMFLAG_CONVARS = (1<<7) +ADMFLAG_CONFIG = (1<<8) +ADMFLAG_CHAT = (1<<9) +ADMFLAG_VOTE = (1<<10) +ADMFLAG_PASSWORD = (1<<11) +ADMFLAG_RCON = (1<<12) +ADMFLAG_CHEATS = (1<<13) +ADMFLAG_ROOT = (1<<14) +ADMFLAG_CUSTOM1 = (1<<15) +ADMFLAG_CUSTOM2 = (1<<16) +ADMFLAG_CUSTOM3 = (1<<17) +ADMFLAG_CUSTOM4 = (1<<18) +ADMFLAG_CUSTOM5 = (1<<19) +ADMFLAG_CUSTOM6 = (1<<20) diff --git a/Torchlight/FFmpegAudioPlayer.py b/Torchlight/FFmpegAudioPlayer.py new file mode 100644 index 0000000..82d75b8 --- /dev/null +++ b/Torchlight/FFmpegAudioPlayer.py @@ -0,0 +1,178 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import logging +import traceback +import asyncio +import datetime +import time +import socket +import struct +import sys + +SAMPLEBYTES = 2 + +class FFmpegAudioPlayerFactory(): + VALID_CALLBACKS = ["Play", "Stop", "Update"] + + def __init__(self, master): + self.Logger = logging.getLogger(__class__.__name__) + self.Master = master + self.Torchlight = self.Master.Torchlight + + def __del__(self): + self.Master.Logger.info("~FFmpegAudioPlayerFactory()") + self.Quit() + + def NewPlayer(self): + self.Logger.debug(sys._getframe().f_code.co_name) + Player = FFmpegAudioPlayer(self) + return Player + + def Quit(self): + self.Master.Logger.info("FFmpegAudioPlayerFactory->Quit()") + + +class FFmpegAudioPlayer(): + def __init__(self, master): + self.Master = master + self.Torchlight = self.Master.Torchlight + self.Playing = False + + self.Host = ( + self.Torchlight().Config["VoiceServer"]["Host"], + self.Torchlight().Config["VoiceServer"]["Port"] + ) + self.SampleRate = float(self.Torchlight().Config["VoiceServer"]["SampleRate"]) + + self.StartedPlaying = None + self.StoppedPlaying = None + self.Seconds = 0.0 + + self.Writer = None + self.Process = None + + self.Callbacks = [] + + def __del__(self): + self.Master.Logger.debug("~FFmpegAudioPlayer()") + self.Stop() + + def PlayURI(self, uri, position = None): + if position: + PosStr = str(datetime.timedelta(seconds = position)) + Command = ["/usr/bin/ffmpeg", "-ss", PosStr, "-i", uri, "-acodec", "pcm_s16le", "-ac", "1", "-ar", str(int(self.SampleRate)), "-f", "s16le", "-"] + else: + Command = ["/usr/bin/ffmpeg", "-i", uri, "-acodec", "pcm_s16le", "-ac", "1", "-ar", str(int(self.SampleRate)), "-f", "s16le", "-"] + + self.Playing = True + asyncio.ensure_future(self._stream_subprocess(Command)) + return True + + def Stop(self, force = True): + if not self.Playing: + return False + + if self.Process: + try: + self.Process.terminate() + self.Process.kill() + self.Process = None + except ProcessLookupError: + pass + + if self.Writer: + if force: + Socket = self.Writer.transport.get_extra_info("socket") + if Socket: + Socket.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, + struct.pack("ii", 1, 0)) + + self.Writer.transport.abort() + + self.Writer.close() + + self.Playing = False + + self.Callback("Stop") + del self.Callbacks + + return True + + def AddCallback(self, cbtype, cbfunc): + if not cbtype in FFmpegAudioPlayerFactory.VALID_CALLBACKS: + return False + + self.Callbacks.append((cbtype, cbfunc)) + return True + + def Callback(self, cbtype, *args, **kwargs): + for Callback in self.Callbacks: + if Callback[0] == cbtype: + try: + Callback[1](*args, **kwargs) + except Exception as e: + self.Master.Logger.error(traceback.format_exc()) + + async def _updater(self): + LastSecondsElapsed = 0.0 + + while self.Playing: + SecondsElapsed = time.time() - self.StartedPlaying + + if SecondsElapsed > self.Seconds: + SecondsElapsed = self.Seconds + + self.Callback("Update", LastSecondsElapsed, SecondsElapsed) + + if SecondsElapsed >= self.Seconds: + if not self.StoppedPlaying: + print("BUFFER UNDERRUN!") + self.Stop(False) + return + + LastSecondsElapsed = SecondsElapsed + + await asyncio.sleep(0.1) + + async def _read_stream(self, stream, writer): + Started = False + + while stream and self.Playing: + Data = await stream.read(65536) + + if Data: + writer.write(Data) + await writer.drain() + + Bytes = len(Data) + Samples = Bytes / SAMPLEBYTES + Seconds = Samples / self.SampleRate + + self.Seconds += Seconds + + if not Started: + Started = True + self.Callback("Play") + self.StartedPlaying = time.time() + asyncio.ensure_future(self._updater()) + else: + self.Process = None + break + + self.StoppedPlaying = time.time() + + async def _stream_subprocess(self, cmd): + if not self.Playing: + return + + _, self.Writer = await asyncio.open_connection(self.Host[0], self.Host[1]) + + Process = await asyncio.create_subprocess_exec(*cmd, + stdout = asyncio.subprocess.PIPE, stderr = asyncio.subprocess.DEVNULL) + self.Process = Process + + await self._read_stream(Process.stdout, self.Writer) + await Process.wait() + + if self.Seconds == 0.0: + self.Stop() diff --git a/Torchlight/GameEvents.py b/Torchlight/GameEvents.py new file mode 100644 index 0000000..699d18c --- /dev/null +++ b/Torchlight/GameEvents.py @@ -0,0 +1,142 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import asyncio + +class GameEvents(): + def __init__(self, master): + self.Torchlight = master + + self.Callbacks = {} + + def __del__(self): + if not len(self.Callbacks) or not self.Torchlight(): + return + + Obj = { + "method": "unsubscribe", + "module": "gameevents", + "events": self.Callbacks.keys() + } + + asyncio.ensure_future(self.Torchlight().Send(Obj)) + + async def _Register(self, events): + if type(events) is not list: + events = [ events ] + + Obj = { + "method": "subscribe", + "module": "gameevents", + "events": events + } + + Res = await self.Torchlight().Send(Obj) + + Ret = [] + for i, ret in enumerate(Res["events"]): + if ret >= 0: + Ret.append(True) + if not events[i] in self.Callbacks: + self.Callbacks[events[i]] = set() + else: + Ret.append(False) + + if len(Ret) == 1: + Ret = Ret[0] + return Ret + + async def _Unregister(self, events): + if type(events) is not list: + events = [ events ] + + Obj = { + "method": "unsubscribe", + "module": "gameevents", + "events": events + } + + Res = await self.Torchlight().Send(Obj) + + Ret = [] + for i, ret in enumerate(Res["events"]): + if ret >= 0: + Ret.append(True) + if events[i] in self.Callbacks: + del self.Callbacks[events[i]] + else: + Ret.append(False) + + if len(Ret) == 1: + Ret = Ret[0] + return Ret + + def HookEx(self, event, callback): + asyncio.ensure_future(self.Hook(event, callback)) + + def UnhookEx(self, event, callback): + asyncio.ensure_future(self.Unhook(event, callback)) + + def ReplayEx(self, events): + asyncio.ensure_future(self.Replay(events)) + + async def Hook(self, event, callback): + if not event in self.Callbacks: + if not await self._Register(event): + return False + + self.Callbacks[event].add(callback) + return True + + async def Unhook(self, event, callback): + if not event in self.Callbacks: + return True + + if not callback in self.Callbacks[event]: + return True + + self.Callbacks[event].discard(callback) + + if len(a) == 0: + return await self._Unregister(event) + + return True + + async def Replay(self, events): + if type(events) is not list: + events = [ events ] + + for event in events[:]: + if not event in self.Callbacks: + events.remove(event) + + Obj = { + "method": "replay", + "module": "gameevents", + "events": events + } + + Res = await self.Torchlight().Send(Obj) + + Ret = [] + for i, ret in enumerate(Res["events"]): + if ret >= 0: + Ret.append(True) + else: + Ret.append(False) + + if len(Ret) == 1: + Ret = Ret[0] + return Ret + + def OnPublish(self, obj): + Event = obj["event"] + + if not Event["name"] in self.Callbacks: + return False + + Callbacks = self.Callbacks[Event["name"]] + + for Callback in Callbacks: + Callback(**Event["data"]) + + return True diff --git a/Torchlight/PlayerManager.py b/Torchlight/PlayerManager.py new file mode 100644 index 0000000..033fd2e --- /dev/null +++ b/Torchlight/PlayerManager.py @@ -0,0 +1,188 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import asyncio +import logging +import numpy +from .Constants import * + +class PlayerManager(): + def __init__(self, master): + self.Logger = logging.getLogger(__class__.__name__) + self.Torchlight = master + + self.Players = numpy.empty(MAXPLAYERS + 1, dtype = object) + self.Storage = self.StorageManager(self) + + self.Torchlight().GameEvents.HookEx("player_connect", self.Event_PlayerConnect) + self.Torchlight().GameEvents.HookEx("player_activate", self.Event_PlayerActivate) + self.Torchlight().GameEvents.HookEx("player_info", self.Event_PlayerInfo) + self.Torchlight().GameEvents.HookEx("player_disconnect", self.Event_PlayerDisconnect) + self.Torchlight().GameEvents.HookEx("server_spawn", self.Event_ServerSpawn) + + def Event_PlayerConnect(self, name, index, userid, networkid, address, bot): + index += 1 + self.Logger.info("OnConnect(name={0}, index={1}, userid={2}, networkid={3}, address={4}, bot={5})" + .format(name, index, userid, networkid, address, bot)) + assert self.Players[index] == None + + self.Players[index] = self.Player(self, index, userid, networkid, address, name) + self.Players[index].OnConnect() + + def Event_PlayerActivate(self, userid): + self.Logger.info("Pre_OnActivate(userid={0})".format(userid)) + index = self.FindUserID(userid).Index + self.Logger.info("OnActivate(index={0}, userid={1})".format(index, userid)) + + self.Players[index].OnActivate() + + def Event_PlayerInfo(self, name, index, userid, networkid, bot): + index += 1 + self.Logger.info("OnInfo(name={0}, index={1}, userid={2}, networkid={3}, bot={4})" + .format(name, index, userid, networkid, bot)) + + # We've connected to the server and receive info events about the already connected players + # Emulate connect message + if not self.Players[index]: + self.Event_PlayerConnect(name, index - 1, userid, networkid, bot) + else: + self.Players[index].OnInfo(name) + + def Event_PlayerDisconnect(self, userid, reason, name, networkid, bot): + index = self.FindUserID(userid).Index + self.Logger.info("OnDisconnect(index={0}, userid={1}, reason={2}, name={3}, networkid={4}, bot={5})" + .format(index, userid, reason, name, networkid, bot)) + + self.Players[index].OnDisconnect(reason) + self.Players[index] = None + + def Event_ServerSpawn(self, hostname, address, ip, port, game, mapname, maxplayers, os, dedicated, password): + self.Logger.info("ServerSpawn(mapname={0})" + .format(mapname)) + + self.Storage.Reset() + + for i in range(1, self.Players.size): + if self.Players[i]: + self.Players[i].OnDisconnect("mapchange") + self.Players[i].OnConnect() + + def FindUniqueID(self, uniqueid): + for Player in self.Players: + if Player and Player.UniqueID == uniqueid: + return Player + + def FindUserID(self, userid): + for Player in self.Players: + if Player and Player.UserID == userid: + return Player + + def FindName(self, name): + for Player in self.Players: + if Player and Player.Name == name: + return Player + + def __len__(self): + Count = 0 + for i in range(1, self.Players.size): + if self.Players[i]: + Count += 1 + return Count + + def __setitem__(self, key, value): + if key > 0 and key <= MAXPLAYERS: + self.Players[key] = value + + def __getitem__(self, key): + if key > 0 and key <= MAXPLAYERS: + return self.Players[key] + + def __iter__(self): + for i in range(1, self.Players.size): + if self.Players[i]: + yield self.Players[i] + + class StorageManager(): + def __init__(self, master): + self.PlayerManager = master + self.Storage = dict() + + def Reset(self): + self.Storage = dict() + + def __getitem__(self, key): + if not key in self.Storage: + self.Storage[key] = dict() + + return self.Storage[key] + + class Admin(): + def __init__(self): + self._FlagBits = 0 + + def FlagBits(self): + return self._FlagBits + + def Reservation(self): return (self._FlagBits & ADMFLAG_RESERVATION) + def Generic(self): return (self._FlagBits & ADMFLAG_GENERIC) + def Kick(self): return (self._FlagBits & ADMFLAG_KICK) + def Ban(self): return (self._FlagBits & ADMFLAG_BAN) + def Unban(self): return (self._FlagBits & ADMFLAG_UNBAN) + def Slay(self): return (self._FlagBits & ADMFLAG_SLAY) + def Changemap(self): return (self._FlagBits & ADMFLAG_CHANGEMAP) + def Convars(self): return (self._FlagBits & ADMFLAG_CONVARS) + def Config(self): return (self._FlagBits & ADMFLAG_CONFIG) + def Chat(self): return (self._FlagBits & ADMFLAG_CHAT) + def Vote(self): return (self._FlagBits & ADMFLAG_VOTE) + def Password(self): return (self._FlagBits & ADMFLAG_PASSWORD) + def RCON(self): return (self._FlagBits & ADMFLAG_RCON) + def Cheats(self): return (self._FlagBits & ADMFLAG_CHEATS) + def Root(self): return (self._FlagBits & ADMFLAG_ROOT) + def Custom1(self): return (self._FlagBits & ADMFLAG_CUSTOM1) + def Custom2(self): return (self._FlagBits & ADMFLAG_CUSTOM2) + def Custom3(self): return (self._FlagBits & ADMFLAG_CUSTOM3) + def Custom4(self): return (self._FlagBits & ADMFLAG_CUSTOM4) + def Custom5(self): return (self._FlagBits & ADMFLAG_CUSTOM5) + def Custom6(self): return (self._FlagBits & ADMFLAG_CUSTOM6) + + class Player(): + def __init__(self, master, index, userid, uniqueid, address, name): + self.PlayerManager = master + self.Torchlight = self.PlayerManager.Torchlight + self.Index = index + self.UserID = userid + self.UniqueID = uniqueid + self.Address = address + self.Name = name + self.Access = None + self.Admin = self.PlayerManager.Admin() + self.Storage = None + self.Active = False + + def OnConnect(self): + self.Storage = self.PlayerManager.Storage[self.UniqueID] + + if not "Audio" in self.Storage: + self.Storage["Audio"] = dict({"Uses": 0, "LastUse": 0.0, "LastUseLength": 0.0, "TimeUsed": 0.0}) + + self.Access = self.Torchlight().Access[self.UniqueID] + + def OnActivate(self): + self.Active = True + asyncio.ensure_future(self.OnPostActivate()) + + async def OnPostActivate(self): + self.Admin._FlagBits = (await self.Torchlight().API.GetUserFlagBits(self.Index))["result"] + self.PlayerManager.Logger.info("#{0} \"{1}\"({2}) FlagBits: {3}".format(self.UserID, self.Name, self.UniqueID, self.Admin._FlagBits)) + if not self.Access: + if self.Admin.Generic(): + self.Access = dict({"level": 3, "name": "Admin"}) + elif self.Admin.Custom1(): + self.Access = dict({"level": 1, "name": "VIP"}) + + def OnInfo(self, name): + self.Name = name + + def OnDisconnect(self, message): + self.Active = False + self.Storage = None + self.Torchlight().AudioManager.OnDisconnect(self) diff --git a/Torchlight/SourceModAPI.py b/Torchlight/SourceModAPI.py new file mode 100644 index 0000000..8c00e9f --- /dev/null +++ b/Torchlight/SourceModAPI.py @@ -0,0 +1,27 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import functools + +class SourceModAPI: + def __init__(self, master): + self.Torchlight = master + + def __getattr__(self, attr): + try: + return super(SourceModAPI, self).__getattr__(attr) + except AttributeError: + return functools.partial(self._MakeCall, attr) + + async def _MakeCall(self, function, *args, **kwargs): + Obj = { + "method": "function", + "function": function, + "args": args + } + + Res = await self.Torchlight().Send(Obj) + + if Res["error"]: + raise Exception("{0}({1})\n{2}".format(function, args, Res["error"])) + + return Res diff --git a/Torchlight/SourceRCONServer.py b/Torchlight/SourceRCONServer.py new file mode 100644 index 0000000..1467830 --- /dev/null +++ b/Torchlight/SourceRCONServer.py @@ -0,0 +1,105 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import logging +import asyncio +import sys +import socket +import struct +import time +import traceback +from importlib import reload +from .PlayerManager import PlayerManager + +class SourceRCONServer(): + class SourceRCONClient(): + def __init__(self, Server, Socket, Name): + self.Loop = Server.Loop + self.Server = Server + self._sock = Socket + self.Name = Name + self.Authenticated = False + asyncio.Task(self._peer_handler()) + + def send(self, data): + return self.Loop.sock_sendall(self._sock, data) + + @asyncio.coroutine + def _peer_handler(self): + try: + yield from self._peer_loop() + except IOError: + pass + finally: + self.Server.Remove(self) + + @asyncio.coroutine + def _peer_loop(self): + while True: + Data = yield from self.Loop.sock_recv(self._sock, 1024) + if Data == b'': + break + + while Data: + p_size = struct.unpack(" 976: + message = message[:973] + "..." + lines = textwrap.wrap(message, 244, break_long_words = True) + for line in lines: + asyncio.ensure_future(self.API.PrintToChatAll(line)) + + def SayPrivate(self, player, message): + asyncio.ensure_future(self.API.PrintToChat(player.Index, "\x0700FFFA[Torchlight]: \x01{0}".format(message))) + + def Reload(self): + self.Config.Load() + self.CommandHandler.NeedsReload = True + + async def Send(self, data): + return await self.Master.Send(data) + + def OnPublish(self, obj): + if obj["module"] == "gameevents": + self.GameEvents.OnPublish(obj) + + def Event_ServerSpawn(self, hostname, address, ip, port, game, mapname, maxplayers, os, dedicated, password): + self.Disabled = 0 + + def Event_PlayerSay(self, userid, text): + if userid == 0: + return + + Player = self.Players.FindUserID(userid) + asyncio.ensure_future(self.CommandHandler.HandleCommand(text, Player)) + + def __del__(self): + self.Logger.debug("~Torchlight()") + + +class TorchlightHandler(): + def __init__(self, loop): + self.Logger = logging.getLogger(__class__.__name__) + self.Loop = loop if loop else asyncio.get_event_loop() + self._Client = None + self.Torchlight = None + self.Config = Config() + + asyncio.ensure_future(self._Connect(), loop = self.Loop) + + async def _Connect(self): + # Connect to API + self._Client = AsyncClient(self.Loop, self.Config["SMAPIServer"]["Host"], self.Config["SMAPIServer"]["Port"], self) + await self._Client.Connect() + + self.Torchlight = Torchlight(self) + + # Pre Hook for late load + await self.Torchlight.GameEvents._Register(["player_connect", "player_activate"]) + + self.Torchlight.InitModules() + + # Late load + await self.Torchlight.GameEvents.Replay(["player_connect", "player_activate"]) + + async def Send(self, data): + return await self._Client.Send(data) + + def OnPublish(self, obj): + self.Torchlight.OnPublish(obj) + + def OnDisconnect(self, exc): + self.Logger.info("OnDisconnect({0})".format(exc)) + self.Torchlight = None + + asyncio.ensure_future(self._Connect(), loop = self.Loop) + + def __del__(self): + self.Logger.debug("~TorchlightHandler()") diff --git a/Torchlight/Utils.py b/Torchlight/Utils.py new file mode 100644 index 0000000..047e972 --- /dev/null +++ b/Torchlight/Utils.py @@ -0,0 +1,94 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import math + +class DataHolder: + def __init__(self, value=None, attr_name='value'): + self._attr_name = attr_name + self.set(value) + def __call__(self, value): + return self.set(value) + def set(self, value): + setattr(self, self._attr_name, value) + return value + def get(self): + return getattr(self, self._attr_name) + +class Utils(): + @staticmethod + def GetNum(Text): + Ret = '' + for c in Text: + if c.isdigit(): + Ret += c + elif Ret: + break + elif c == '-': + Ret += c + + return Ret + + @staticmethod + def ParseTime(TimeStr): + Negative = False + Time = 0 + + while TimeStr: + Val = Utils.GetNum(TimeStr) + if not Val: + break + + Val = int(Val) + if not Val: + break + + if Val < 0: + TimeStr = TimeStr[1:] + if Time == 0: + Negative = True + Val = abs(Val) + + ValLen = int(math.log10(Val)) + 1 + if len(TimeStr) > ValLen: + Mult = TimeStr[ValLen].lower() + TimeStr = TimeStr[ValLen + 1:] + if Mult == 'h': + Val *= 3600 + elif Mult == 'm': + Val *= 60 + else: + TimeStr = None + + Time += Val + + if Negative: + return -Time + else: + return Time + + + @staticmethod + def HumanSize(size_bytes): + """ + format a size in bytes into a 'human' file size, e.g. bytes, KB, MB, GB, TB, PB + Note that bytes/KB will be reported in whole numbers but MB and above will have greater precision + e.g. 1 byte, 43 bytes, 443 KB, 4.3 MB, 4.43 GB, etc + """ + if size_bytes == 1: + # because I really hate unnecessary plurals + return "1 byte" + + suffixes_table = [('bytes', 0),('KB', 0),('MB', 1),('GB', 2),('TB', 2), ('PB', 2)] + + num = float(size_bytes) + for suffix, precision in suffixes_table: + if num < 1024.0: + break + num /= 1024.0 + + if precision == 0: + formatted_size = str(int(num)) + else: + formatted_size = str(round(num, ndigits=precision)) + + return "{0}{1}".format(formatted_size, suffix) diff --git a/Torchlight/__init__.py b/Torchlight/__init__.py new file mode 100644 index 0000000..f966456 --- /dev/null +++ b/Torchlight/__init__.py @@ -0,0 +1,2 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- diff --git a/access.json b/access.json new file mode 100644 index 0000000..2119d42 --- /dev/null +++ b/access.json @@ -0,0 +1,6 @@ +{ + "[U:1:51174697]": { + "name": "BotoX", + "level": 10 + } +} \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..0df485e --- /dev/null +++ b/config.json @@ -0,0 +1,48 @@ +{ + "VoiceServer": + { + "Host": "10.0.0.101", + "Port": 27020, + "SampleRate": 48000 + }, + "SMAPIServer": + { + "Host": "10.0.0.101", + "Port": 27021 + }, + + "AudioLimits": + { + "0": + { + "Uses": -1, + "TotalTime": 12.5, + "MaxLength": 5.0, + "DelayFactor": 10.0 + }, + "1": + { + "Uses": -1, + "TotalTime": 17.5, + "MaxLength": 5.0, + "DelayFactor": 5.0 + } + }, + "AntiSpam": + { + "MaxUsageSpan": 60, + "MaxUsageTime": 10, + "PunishDelay": 60, + "ImmunityLevel": 4 + }, + + "TorchRCON": + { + "Host": "0.0.0.0", + "Port": 27015, + "Password": "***" + }, + + "WolframAPIKey": "***", + "WundergroundAPIKey": "***" +} diff --git a/main.py b/main.py new file mode 100755 index 0000000..c02cd05 --- /dev/null +++ b/main.py @@ -0,0 +1,33 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import logging +import asyncio +import os +import sys +import threading +import traceback +import gc +from importlib import reload + +global TorchMaster + +import Torchlight.Torchlight +from Torchlight.SourceRCONServer import SourceRCONServer + +if __name__ == '__main__': + logging.basicConfig(level = logging.DEBUG) + + Loop = asyncio.get_event_loop() + + global TorchMaster + TorchMaster = Torchlight.Torchlight.TorchlightHandler(Loop) + + # Handles new connections on 0.0.0.0:27015 + RCONConfig = TorchMaster.Config["TorchRCON"] + RCONServer = SourceRCONServer(Loop, TorchMaster, + Host = RCONConfig["Host"], + Port = RCONConfig["Port"], + Password = RCONConfig["Password"]) + + # Run! + Loop.run_forever() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5bf5fe2 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,21 @@ +aiohttp +appdirs +async-timeout +beautifulsoup4 +certifi +chardet +gTTS +gTTS-token +idna +lxml +multidict +numpy +olefile +packaging +Pillow +pyparsing +python-magic +requests +six +urllib3 +yarl \ No newline at end of file diff --git a/sounds/Tutturuu_v1.wav b/sounds/Tutturuu_v1.wav new file mode 100644 index 0000000000000000000000000000000000000000..6c6e17d2d19754a5525160d2c527e5818d1e1070 GIT binary patch literal 269100 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

&Eei(bRN}Hx!&|XnAO?-+U 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 bE2~p0(~EImSm}^MCsa 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ĵ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