# (C) 2021 lifegpc # This file is part of rssbot. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . from typing import List from getopt import getopt class settings: def __init__(self, fn: str = None): if fn is not None: self.parse(fn) def parse(self, fn: str): d = {} with open(fn, 'r', encoding='utf8') as f: t = f.read() for i in t.splitlines(False): l = i.split('=', 2) if len(l) == 2: d[l[0]] = l[1] self._token = d['token'] if 'token' in d else None self._maxCount = int( d['maxCount']) if 'maxCount' in d and d['maxCount'].isnumeric() else 100 self._minTTL = int(d['minTTL']) if 'minTTL' in d and d['minTTL'].isnumeric( ) and int(d['minTTL']) >= 1 else 5 self._maxTTL = int(d['maxTTL']) if 'maxTTL' in d and d['maxTTL'].isnumeric( ) and int(d['maxTTL']) >= self._minTTL else max(1440, self._minTTL) self._maxRetryCount = int(d['maxRetryCount']) if 'maxRetryCount' in d and d['maxRetryCount'].isnumeric( ) and int(d['maxRetryCount']) >= 0 else 3 self._telegramBotApiServer = d['telegramBotApiServer'] if 'telegramBotApiServer' in d else 'https://api.telegram.org' class commandline: def __init__(self, commandline: List[str] = None): self._rebuildHashlist = False self._exitAfterRebuild = False if commandline is not None: self.parse(commandline) def parse(self, commandline: List[str]): cml = getopt(commandline, '', [ 'rebuild-hashlist', 'exit-after-rebuild']) for i in cml[0]: if i[0] == '--rebuild-hashlist': self._rebuildHashlist = True if i[0] == '--exit-after-rebuild': self._exitAfterRebuild = True