| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import configparser
- import os
- from pathlib import Path
- from helper import console
- class Settings:
- # Collect all the setting instances
- __list__ = []
- __config__ = None
- __file__ = Path('settings.ini')
- def initialize():
- from .settingsentry import SettingEntry
- # Directory to permanently save the file (ENV: MD_SAVEDIR)
- Settings.SaveDir = SettingEntry('saveDir', 'MD_SAVEDIR', '~/Downloads', 'music-downloader', os.path.expanduser)
- # Directory to temporary download the file (ENV: MD_TMP)
- Settings.tmpDir = SettingEntry('tmpDir', 'MD_TMP', '~/tmp', 'music-downloader', os.path.expanduser)
- # Minimal debug level (ENV: MD_LOGGING)
- Settings.Debuglvl = SettingEntry('debuglvl', 'MD_LOGGING', 0, 'music-downloader', int)
- # Minimal bitrate to auto download the file (ENV: MD_QUALITY)
- Settings.MinQuality = SettingEntry('minQuality', 'MD_QUALITY', 300, 'music-downloader', int)
- # Format for downloaded file ID3 comment
- Settings.CommentFormat = SettingEntry('commentFormat', 'MD_COMMENT', '', 'music-downloader')
- def write():
- for entry in Settings.__list__:
- entry.push_config()
- console.output('Writing settings to \'{0}\''.format(Settings.__file__.absolute()), console.DBG_INFO)
- Settings.__config__.write(Settings.__file__.open('w'))
- def read():
- _config = configparser.ConfigParser()
- if Settings.__file__.exists():
- console.output('Reading settings from \'{0}\''.format(Settings.__file__.absolute()), console.DBG_INFO)
- _config.read(Settings.__file__)
- Settings.__config__ = _config
- else:
- console.output('Settings not found at \'{0}\''.format(Settings.__file__.absolute()), console.DBG_INFO)
- SaveDir = None
- tmpDir = None
- Debuglvl = None
- MinQuality = None
- CommentFormat = None
|