def __init__(self, threads=None, delete=False, debug=False): MusaThreadManager.__init__(self, 'sync', threads) self.delete = delete self.debug = debug if not debug: self.log = SoundforestLogger('sync').register_file_handler( 'sync', MUSA_USER_DIR) SoundforestLogger('sync').set_level('INFO') else: self.log = SoundforestLogger().default_stream
def __init__(self, name=None, description=None, epilog=None, debug_flag=True): self.db = ConfigDB() self.name = os.path.basename(sys.argv[0]) reload(sys) sys.setdefaultencoding('utf-8') setproctitle('%s %s' % (self.name, ' '.join(sys.argv[1:]))) signal.signal(signal.SIGINT, self.SIGINT) if name is None: name = self.name self.logger = SoundforestLogger() self.log = self.logger.default_stream self.parser = argparse.ArgumentParser( prog=name, description=description, epilog=epilog, add_help=True, conflict_handler='resolve', ) self.subcommand_parser = None self.subcommands = None if debug_flag: self.parser.add_argument('--debug', action='store_true', help='Show debug messages')
def __init__(self, name, threads=None): self.log = SoundforestLogger().default_stream self.db = ConfigDB() if threads is None: threads = self.db.get('threads') if threads is None: threads = 1 else: threads = int(threads) self.threads = threads
def __init__(self, name, description='', epilog='', mode_flags=[]): self.script = None self.name = name self.description = description self.epilog = epilog self.logger = SoundforestLogger() self.log = self.logger.default_stream if not isinstance(mode_flags, list): raise ScriptError('Mode flags must be a list') self.mode_flags = mode_flags self.selected_mode_flags = []
def __init__(self, path): self.log = SoundforestLogger().default_stream models.SoundforestDB.__init__(self, path=path) treetypes = self.session.query(models.TreeTypeModel).all() if not treetypes: treetypes = [] for name, description in DEFAULT_TREE_TYPES.items(): treetypes.append( models.TreeTypeModel(name=name, description=description)) self.add(treetypes) self.commit() self.codecs = CodecConfiguration(db=self) self.sync = SyncConfiguration(db=self)
def __init__(self, path, extensions=[]): self.log = SoundforestLogger().default_stream self.path = path.rstrip(os.sep) if not isinstance(extensions, list): raise PrefixError('Extensions must be a list') self.extensions = [] for ext in extensions: if hasattr(ext, 'extension'): ext = ext.extension elif not isinstance(ext, basestring): raise PrefixError('Extensions must be a list of strings') if not isinstance(ext, unicode): ext = unicode(ext, 'utf-8') if self.extensions.count(ext)==0: self.extensions.append(ext)
def __init__(self): self.log = SoundforestLogger().default_stream list.__init__(self) self.db = ConfigDB() common_prefixes = set(DEFAULT_PATHS + [prefix.path for prefix in self.db.prefixes]) for path in common_prefixes: for name, codec in self.db.codecs.items(): prefix_path = os.path.join(path, name) prefix = MusicTreePrefix(prefix_path, [codec.name] + codec.extensions) self.register_prefix(prefix) if 'm4a' in self.db.codecs.keys(): prefix_path = os.path.join(path, 'm4a') prefix = MusicTreePrefix(prefix_path, self.db.codecs.extensions('m4a')) self.register_prefix(prefix) itunes_prefix = MusicTreePrefix(ITUNES_MUSIC, self.db.codecs.extensions('m4a')) self.register_prefix(itunes_prefix) self.load_user_config()
def __init__(self, path): self.log = SoundforestLogger().default_stream self.path = path_string(path) self.codec = None self.description = None self.is_metadata = False self.codec = match_codec(path) if self.codec is not None: self.description = self.codec.description.lower() else: m = match_metadata(path) if m: self.is_metadata = True self.description = m.description.lower() elif os.path.isdir(path): self.description = 'unknown directory' else: self.description = 'unknown file format'
def __init__(self, name): threading.Thread.__init__(self) self.log = SoundforestLogger().default_stream self.status = 'not running' self.setDaemon(True) self.setName(name)
Guessing of supported file formats and codecs based on extensions """ import os import tempfile from subprocess import Popen, PIPE from soundforest import normalized, SoundforestError, CommandPathCache from soundforest.config import ConfigDB from soundforest.defaults import SOUNDFOREST_CACHE_DIR from soundforest.log import SoundforestLogger from soundforest.metadata import Metadata logger = SoundforestLogger().default_stream TAG_PARSERS = { 'm4a': 'soundforest.tags.formats.aac.aac', 'm4r': 'soundforest.tags.formats.aac.aac', 'mp3': 'soundforest.tags.formats.mp3.mp3', 'flac': 'soundforest.tags.formats.flac.flac', 'vorbis': 'soundforest.tags.formats.vorbis.vorbis', } PATH_CACHE = CommandPathCache() PATH_CACHE.update() db = ConfigDB() def filter_available_command_list(commands):
def __init__(self, db): self.log = SoundforestLogger().default_stream self.db = db