1
0
mirror of https://github.com/eternnoir/pyTelegramBotAPI.git synced 2023-08-10 21:12:57 +03:00

Remove rudiment json things, again!

Update: telebot/__init__.py
This commit is contained in:
Waffle 2018-05-27 01:23:20 +03:00
parent 13df7b5908
commit d61de35a32

View File

@ -31,23 +31,17 @@ Module : telebot
class Handler: class Handler:
def __init__(self, callback: {dict, 'function'}, *args, **kwargs): """
if type(callback) == dict: Class for (next step|reply) handlers
self.callback = getattr(sys.modules[callback["module"]], callback["name"]) """
else: def __init__(self, callback: 'function', *args, **kwargs):
self.callback = callback self.callback = callback
self.args = args self.args = args
self.kwargs = kwargs self.kwargs = kwargs
def __getitem__(self, item): def __getitem__(self, item):
return getattr(self, item) return getattr(self, item)
def copy_to_dump(self):
module_ = self.callback.__module__
name = self.callback.__name__
return Handler({"module": module_, "name": name}, *self.args, **self.kwargs)
class Saver: class Saver:
def __init__(self, handlers, filename, delay): def __init__(self, handlers, filename, delay):
@ -76,16 +70,9 @@ class Saver:
def dump_handlers(handlers, filename, file_mode="wb"): def dump_handlers(handlers, filename, file_mode="wb"):
dirs = filename.rsplit('/', maxsplit=1)[0] dirs = filename.rsplit('/', maxsplit=1)[0]
os.makedirs(dirs, exist_ok=True) os.makedirs(dirs, exist_ok=True)
to_dump = {}
with open(filename + ".tmp", file_mode) as file:
for id_, handlers_ in handlers.items():
for handler in handlers_:
if id_ in to_dump.keys():
to_dump[id_].append(handler.copy_to_dump())
else:
to_dump[id_] = [handler.copy_to_dump()]
pickle.dump(to_dump, file) with open(filename + ".tmp", file_mode) as file:
pickle.dump(handlers, file)
if os.path.isfile(filename): if os.path.isfile(filename):
os.remove(filename) os.remove(filename)
@ -97,20 +84,11 @@ class Saver:
if os.path.isfile(filename) and os.path.getsize(filename) > 0: if os.path.isfile(filename) and os.path.getsize(filename) > 0:
with open(filename, "rb") as file: with open(filename, "rb") as file:
handlers = pickle.load(file) handlers = pickle.load(file)
result = {}
for id_, handlers_ in handlers.items():
for handler in handlers_:
tmp = Handler(handler['callback'], *handler["args"], **handler["kwargs"])
if id_ in result.keys():
result[id_].append(tmp)
else:
result[id_] = [tmp]
if del_file_after_loading: if del_file_after_loading:
os.remove(filename) os.remove(filename)
return result
return handlers
class TeleBot: class TeleBot: