Source code for musicdb.lib.cfg.extern

# MusicDB,  a music manager with web-bases UI that focus on music.
# Copyright (C) 2017 - 2021  Ralf Stemmer <ralf.stemmer@gmx.net>
# 
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU 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 General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

"""
This class reads the configuration of an external music storage.
All sections and options can be accessed by their names: ``ExternConfig(...).section.option``.
If values get changed, they will not be stored!

Example:

    .. code-block:: ini

        [meta]
        version = 1

    .. code-block:: python

        cfg = ExternConfig("test.ini")
        print(cfg.meta.version)
"""

from musicdb.lib.cfg.config import Config

class META:
    pass
class CONSTRAINTS:
    pass
class PATHS:
    pass
class MP3TAGS:
    pass
class M4ATAGS:
    pass

[docs]class ExternConfig(Config): def __init__(self, filename): Config.__init__(self, filename) self.meta = META() self.constraints = CONSTRAINTS() self.mp3tags = MP3TAGS() self.m4atags = M4ATAGS() self.paths = PATHS() self.meta.version = self.Get(int, "meta", "version", 0) # 0 = inf self.constraints.pathlen = self.Get(int, "constraints", "pathlen", 0) # 0 = inf self.constraints.charset = self.Get(str, "constraints", "charset", "default") self.constraints.forcemp3 = self.Get(bool, "constraints", "forcemp3", False) self.mp3tags.optimize = self.Get(bool, "mp3tags", "optimize", False) self.paths.musicdir = self.Get(str, "paths", "musicdir", "/") # remove leading / because it is interpreted as "start at root" by join if self.paths.musicdir[0] == "/": self.paths.musicdir = self.paths.musicdir[1:] self.mp3tags.prescale = self.Get(str, "mp3tags", "prescale", "None") if self.mp3tags.prescale.lower() == "none": self.mp3tags.prescale = None elif self.mp3tags.prescale.lower() == "false": self.mp3tags.prescale = None self.mp3tags.noartwork = self.Get(bool, "mp3tags", "noartwork", "False") self.mp3tags.forceid3v230= self.Get(bool, "mp3tags", "forceID3v230", "False") self.m4atags.optimize = self.Get(bool, "m4atags", "optimize", False)
# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4