This commit is contained in:
udf 2018-06-10 19:55:14 +00:00
commit b6b262f93d
7 changed files with 20 additions and 26 deletions

View File

@ -1,16 +1,14 @@
# This Source Code Form is subject to the terms of the Mozilla Public # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this # License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
from telethon import events, utils
from telethon.tl import types, functions
import re import re
import asyncio
import random import random
import json import json
import urllib.request import urllib.request
import urllib.parse import urllib.parse
from telethon import events
pats = [] pats = []
oops = "OOPSIE WOOPSIE!! Uwu We madea fucky wucky!! A wittle fucko boingo! " \ oops = "OOPSIE WOOPSIE!! Uwu We madea fucky wucky!! A wittle fucko boingo! " \
"The code monkeys at our headquarters are working VEWY HAWD to fix " \ "The code monkeys at our headquarters are working VEWY HAWD to fix " \
@ -33,7 +31,7 @@ async def on_pat(event):
pats = json.loads(urllib.request.urlopen(urllib.request.Request( pats = json.loads(urllib.request.urlopen(urllib.request.Request(
"http://headp.at/js/pats.json", "http://headp.at/js/pats.json",
headers={"User-Agent": "Mozilla/5.0 (X11; U; Linux i686) " headers={"User-Agent": "Mozilla/5.0 (X11; U; Linux i686) "
"Gecko/20071127 Firefox/2.0.0.11"} "Gecko/20071127 Firefox/2.0.0.11"}
)).read().decode("utf-8")) )).read().decode("utf-8"))
except Exception as e: except Exception as e:
print(e) print(e)

View File

@ -109,7 +109,7 @@ async def reparse(event):
message, msg_entities = await borg._parse_message_text(event.text, parse) message, msg_entities = await borg._parse_message_text(event.text, parse)
# filter out entities that we don't generate # filter out entities that we don't generate
old_entities = [] old_entities = []
for entity in (event.message.entities or []): for entity in event.message.entities or []:
if isinstance(entity, PARSED_ENTITIES): if isinstance(entity, PARSED_ENTITIES):
old_entities.append(entity) old_entities.append(entity)

View File

@ -1,11 +1,8 @@
# This Source Code Form is subject to the terms of the Mozilla Public # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this # License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
import os
import sys
import uuid
from telethon import events, utils from telethon import events, utils
from telethon.tl import types, functions from telethon.tl import types
TYPE_TEXT = 0 TYPE_TEXT = 0

View File

@ -21,7 +21,7 @@ async def load_reload(event):
borg.load_plugin(shortname) borg.load_plugin(shortname)
msg = await event.respond( msg = await event.respond(
f"Successfully (re)loaded plugin {shortname}") f"Successfully (re)loaded plugin {shortname}")
await asyncio.sleep(DELETE_TIMEOUT) await asyncio.sleep(DELETE_TIMEOUT)
await borg.delete_messages(msg.to_id, msg) await borg.delete_messages(msg.to_id, msg)

View File

@ -1,8 +1,8 @@
# This Source Code Form is subject to the terms of the Mozilla Public # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this # License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
import os
import json import json
from pathlib import Path
FILE_NAME = 'data.json' FILE_NAME = 'data.json'
@ -21,11 +21,11 @@ class Storage:
self._storage._save() self._storage._save()
def __init__(self, root): def __init__(self, root):
self._root = root self._root = Path(root)
self._autosave = True self._autosave = True
self._guard = self._Guard(self) self._guard = self._Guard(self)
if os.path.isfile(os.path.join(self._root, FILE_NAME)): if (self._root / FILE_NAME).is_file():
with open(os.path.join(self._root, FILE_NAME)) as fp: with open(self._root / FILE_NAME) as fp:
self._data = json.load(fp) self._data = json.load(fp)
else: else:
self._data = {} self._data = {}
@ -47,7 +47,7 @@ class Storage:
self._save() self._save()
def _save(self): def _save(self):
if not os.path.isdir(self._root): if not self._root.is_dir():
os.makedirs(self._root, exist_ok=True) self._root(parents=True, exist_ok=True)
with open(os.path.join(self._root, FILE_NAME), 'w') as fp: with open(self._root / FILE_NAME, 'w') as fp:
json.dump(self._data, fp) json.dump(self._data, fp)

View File

@ -1,7 +1,6 @@
# This Source Code Form is subject to the terms of the Mozilla Public # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this # License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
import os
import asyncio import asyncio
import importlib.util import importlib.util
import logging import logging
@ -24,15 +23,15 @@ class Uniborg(TelegramClient):
# storage should be a callable accepting plugin name -> Storage object. # storage should be a callable accepting plugin name -> Storage object.
# This means that using the Storage type as a storage would work too. # This means that using the Storage type as a storage would work too.
self._name = session self._name = session
self.storage = storage or (lambda n: Storage(os.path.join('data', n))) self.storage = storage or (lambda n: Storage(Path("data") / n))
self._logger = logging.getLogger(session) self._logger = logging.getLogger(session)
self._plugins = {} self._plugins = {}
self._plugin_path = plugin_path self._plugin_path = plugin_path
super().__init__( kwargs = {
session, "api_id": 6, "api_hash": "eb06d4abfb49dc3eeb1aeb98ae0f581e",
6, "eb06d4abfb49dc3eeb1aeb98ae0f581e", # yarr **kwargs}
**kwargs) super().__init__(session, **kwargs)
# This is a hack, please avert your eyes # This is a hack, please avert your eyes
# We want this in order for the most recently added handler to take # We want this in order for the most recently added handler to take
@ -99,6 +98,6 @@ class Uniborg(TelegramClient):
raise raise
fut.add_done_callback( fut.add_done_callback(
lambda _: self.remove_event_handler(cb, event_matcher)) lambda _: self.remove_event_handler(cb, event_matcher))
return fut return fut

View File

@ -20,7 +20,7 @@ async def is_read(borg, entity, message, is_out=None):
is_out = getattr(message, "out", is_out) is_out = getattr(message, "out", is_out)
if not isinstance(is_out, bool): if not isinstance(is_out, bool):
raise ValueError( raise ValueError(
"Message was id but is_out not provided or not a bool") "Message was id but is_out not provided or not a bool")
message_id = getattr(message, "id", message) message_id = getattr(message, "id", message)
if not isinstance(message_id, int): if not isinstance(message_id, int):
raise ValueError("Failed to extract id from message") raise ValueError("Failed to extract id from message")