• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

feeluown / FeelUOwn / 3748551611

pending completion
3748551611

Pull #641

github

GitHub
Merge bda69ba11 into 710c95638
Pull Request #641: config: validate the value of each config field

12 of 12 new or added lines in 3 files covered. (100.0%)

7803 of 12872 relevant lines covered (60.62%)

0.61 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

36.17
/feeluown/local/__init__.py
1
# -*- coding: utf-8 -*-
2
import os
1✔
3
import logging
1✔
4
from functools import partial
1✔
5

6
from feeluown.utils import aio  # noqa
1✔
7
from .provider import provider  # noqa
1✔
8

9
DEFAULT_MUSIC_FOLDER = os.path.expanduser('~') + '/Music'
1✔
10
DEFAULT_MUSIC_EXTS = ['mp3', 'ogg', 'wma', 'm4a', 'm4v', 'mp4', 'flac', 'ape', 'wav']
1✔
11

12
__alias__ = '本地音乐'
1✔
13
__feeluown_version__ = '1.1.0'
1✔
14
__version__ = '0.1a0'
1✔
15
__desc__ = '本地音乐'
1✔
16

17
logger = logging.getLogger(__name__)
1✔
18

19

20
def init_config(config):
1✔
21
    config.deffield('MUSIC_FOLDERS', type_=list, default=[DEFAULT_MUSIC_FOLDER],
×
22
                    desc='支持的音乐文件夹列表')
23
    config.deffield('MUSIC_FORMATS', type_=list, default=DEFAULT_MUSIC_EXTS,
×
24
                    desc='支持的音乐格式列表')
25
    config.deffield('CORE_LANGUAGE', type_=str, default='auto',
×
26
                    desc='默认显示的语言')
27
    config.deffield('IDENTIFIER_DELIMITER', type_=str, default='',
×
28
                    desc='生成identifier时的连接符')
29
    config.deffield('EXPAND_ARTIST_SONGS', type_=bool, default=False,
×
30
                    desc='将专辑艺术家的专辑中歌曲加入到该艺术家的歌曲中')
31
    config.deffield('ARTIST_SPLITTER', type_=list, default=[',', '&'],
×
32
                    desc='歌曲艺术家的分隔符')
33
    config.deffield('ARTIST_SPLITTER_IGNORANCE', type_=list, default=[],
×
34
                    desc='对艺术家信息使用分隔符时需要进行保护的字符串')
35
    config.deffield('SPLIT_ALBUM_ARTIST_NAME', type_=bool, default=False,
×
36
                    desc='支持使用分隔符分隔专辑艺术家')
37

38

39
async def autoload(app):
1✔
40
    await aio.run_fn(provider.scan,
×
41
                     app.config.local,
42
                     app.config.local.MUSIC_FOLDERS)
43

44
    app.show_msg('本地音乐扫描完毕')
×
45
    if app.mode & app.GuiMode:
×
46
        app.coll_uimgr.refresh()
×
47

48

49
def show_provider(req):
1✔
50
    from .ui import LibraryRenderer
×
51
    if hasattr(req, 'ctx'):
×
52
        app = req.ctx['app']
×
53
    else:
54
        app = req  # 兼容老版本
×
55
    app.pl_uimgr.clear()
×
56
    # app.playlists.add(provider.playlists)
57

58
    app.ui.left_panel.my_music_con.hide()
×
59
    app.ui.left_panel.playlists_con.hide()
×
60

61
    aio.run_afn(
×
62
        app.ui.table_container.set_renderer,
63
        LibraryRenderer(provider.songs, provider.albums, provider.artists))
64

65

66
def enable(app):
1✔
67
    logger.info('Register provider: %s', provider)
×
68
    app.library.register(provider)
×
69
    provider.initialize(app)
×
70

71
    app.initialized.connect(lambda *args: aio.create_task(autoload(*args)),
×
72
                            weak=False, aioqueue=False)
73
    if app.mode & app.GuiMode:
×
74
        app.browser.route('/local')(show_provider)
×
75
        pm = app.pvd_uimgr.create_item(
×
76
            name=provider.identifier,
77
            text='本地音乐',
78
            symbol='♪ ',
79
            desc='点击显示所有本地音乐',
80
        )
81
        pm.clicked.connect(partial(app.browser.goto, uri='/local'), weak=False)
×
82
        app.pvd_uimgr.add_item(pm)
×
83

84

85
def disable(app):
1✔
86
    logger.info('唔,不要禁用我')
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc