示例#1
0
def get_data() -> Tuple[dict, dict]:
    """ Main """
    datafile = CompressingFile(compressor_cls=DataCompressor,
                               path=get_cf('files').data,
                               default=get_cf('defaults').data)
    cur, diff = DataDifference(DataCollectorYandex(), datafile).data
    datafile.write(cur)
    return cur, diff
示例#2
0
文件: app.py 项目: ibrag8998/recovid
 def _token(self) -> str:
     try:
         with open(get_cf('files').token) as f:
             return f.read().strip()
     except FileNotFoundError:
         raise FileNotFoundError("You should write your token in"
                                 " `base_dir`/token file as plain text")
示例#3
0
def setup_datafiles():
    files = get_cf('files')

    try:
        os.makedirs(files.datafiles_dir)
    except OSError:
        print(
            f"{files.datafiles_dir} already exists, no need to overwrite ...")
        return

    os.chdir(files.datafiles_dir)
    os.system(f'touch {files.data} {files.chats} {files.offset}')
示例#4
0
from typing import Any

from cf import get_cf

globs = get_cf('globals')


class _Compressor:
    """ Compressor class.

    Implement `compressed_data` and `decompressed_data`. You have access to
    `self.data` - data which you should compress or decompress.
    """
    def __init__(self, data: Any):
        self.data = data

    @property
    def compressed_data(self):
        raise NotImplementedError

    @property
    def decompressed_data(self):
        raise NotImplementedError


class OffsetCompressor(_Compressor):
    @property
    def compressed_data(self) -> str:
        return str(self.data)

    @property
示例#5
0
文件: bot.py 项目: ibrag8998/recovid
from datetime import datetime
from typing import NoReturn

import httpx

from filework import CompressingFile
from compressors import ChatsCompressor, OffsetCompressor
from cf import get_cf

files = get_cf('files')  # Idk how to do in better way
defaults = get_cf('defaults')
bot_config = get_cf('bot')


class Bot:
    chatsfile = CompressingFile(compressor_cls=ChatsCompressor,
                                path=files.chats,
                                default=defaults.chats)
    offsetfile = CompressingFile(compressor_cls=OffsetCompressor,
                                 path=files.offset,
                                 default=defaults.offset)

    message_text = bot_config.message_text

    def __init__(self, token: str, debug: bool = False, proxy: str = None):
        self.url = f'https://api.telegram.org/bot{token}'
        self.debug = debug
        self.proxies = {'https': proxy} if proxy else None

    def send_messages(self, data: dict, diff: dict) -> NoReturn:
        self._update_chats()