diff --git a/modules/default_config.json b/modules/default_config.json deleted file mode 100644 index 692e452..0000000 --- a/modules/default_config.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "locale": "en", - "locale_log": "en", - "locale_fallback": "en", - "owner": 0, - "admins": [], - "bot": { - "api_id": 0, - "api_hash": "", - "bot_token": "" - }, - "database": { - "user": null, - "password": null, - "host": "127.0.0.1", - "port": 27017, - "name": "tgposter" - }, - "mode": { - "post": true, - "submit": true - }, - "reports": { - "sent": false, - "error": true, - "startup": true, - "shutdown": true - }, - "logging": { - "size": 512, - "location": "logs" - }, - "locations": { - "tmp": "tmp", - "data": "data", - "cache": "cache", - "sent": "data/sent", - "queue": "data/queue", - "index": "data/index.json", - "locale": "locale" - }, - "posting": { - "channel": 0, - "silent": false, - "move_sent": false, - "use_interval": false, - "interval": "1h30m", - "page_size": 300, - "submitted_caption": { - "enabled": true, - "ignore_admins": true, - "text": "#submitted" - }, - "extensions": { - "photo": [ - "jpg", - "png", - "gif", - "jpeg" - ], - "video": [ - "mp4", - "avi", - "mkv", - "webm", - "mov" - ] - }, - "time": [ - "08:00", - "10:00", - "12:00", - "14:00", - "16:00", - "18:00", - "20:00", - "22:00" - ], - "api": { - "address": "http://localhost:8054", - "address_external": "https://photos.domain.com", - "username": "", - "password": "", - "album": "" - } - }, - "caption": { - "enabled": false, - "link": null, - "text": [ - "sample text" - ] - }, - "submission": { - "timeout": 30, - "file_size": 15728640, - "tmp_size": 15728640, - "allow_duplicates": false, - "send_uploaded_id": false, - "require_confirmation": { - "users": true, - "admins": true - }, - "mime_types": [ - "image/png", - "image/gif", - "image/jpeg", - "video/mp4", - "video/quicktime" - ] - }, - "commands": [ - "start", - "rules" - ], - "commands_admin": [ - "import", - "export", - "reboot" - ] -} \ No newline at end of file diff --git a/modules/utils.py b/modules/utils.py index 9c863f4..9ba6585 100644 --- a/modules/utils.py +++ b/modules/utils.py @@ -9,6 +9,86 @@ from ujson import JSONDecodeError, dumps, loads from modules.logger import logWrite +default_config = { + "locale": "en", + "locale_log": "en", + "locale_fallback": "en", + "owner": 0, + "admins": [], + "bot": {"api_id": 0, "api_hash": "", "bot_token": ""}, + "database": { + "user": None, + "password": None, + "host": "127.0.0.1", + "port": 27017, + "name": "tgposter", + }, + "mode": {"post": True, "submit": True}, + "reports": {"sent": False, "error": True, "startup": True, "shutdown": True}, + "logging": {"size": 512, "location": "logs"}, + "locations": { + "tmp": "tmp", + "data": "data", + "cache": "cache", + "sent": "data/sent", + "queue": "data/queue", + "index": "data/index.json", + "locale": "locale", + }, + "posting": { + "channel": 0, + "silent": False, + "move_sent": False, + "use_interval": False, + "interval": "1h30m", + "page_size": 300, + "submitted_caption": { + "enabled": True, + "ignore_admins": True, + "text": "#submitted", + }, + "extensions": { + "photo": ["jpg", "png", "gif", "jpeg"], + "video": ["mp4", "avi", "mkv", "webm", "mov"], + }, + "time": [ + "08:00", + "10:00", + "12:00", + "14:00", + "16:00", + "18:00", + "20:00", + "22:00", + ], + "api": { + "address": "http://localhost:8054", + "address_external": "https://photos.domain.com", + "username": "", + "password": "", + "album": "", + }, + }, + "caption": {"enabled": False, "link": None, "text": ["sample text"]}, + "submission": { + "timeout": 30, + "file_size": 15728640, + "tmp_size": 15728640, + "allow_duplicates": False, + "send_uploaded_id": False, + "require_confirmation": {"users": True, "admins": True}, + "mime_types": [ + "image/png", + "image/gif", + "image/jpeg", + "video/mp4", + "video/quicktime", + ], + }, + "commands": ["start", "rules"], + "commands_admin": ["import", "export", "reboot"], +} + def jsonLoad(filename: str) -> Any: """Loads arg1 as json and returns its contents""" @@ -77,16 +157,16 @@ def configGet(key: str, *args: str): this_key = this_dict for dict_key in args: this_key = this_key[dict_key] + this_key[key] except KeyError: print( f"Could not find config key '{key}' under path {args}: falling back to default config", flush=True, ) - fallback_dict = jsonLoad(path.join("modules", "default_config.json")) - this_key = fallback_dict + this_key = default_config for dict_key in args: this_key = this_key[dict_key] - configSet(key, this_key[key], args) + configSet(key, this_key[key], *args) return this_key[key]