コード例 #1
0
ファイル: app.py プロジェクト: BruceZhang1993/FeelUOwn
    def __init__(self, args, config):

        self.mode = config.MODE  # DEPRECATED: use app.config.MODE instead
        self.config = config
        self.args = args
        self.initialized = Signal()
        self.about_to_shutdown = Signal()

        self.plugin_mgr = PluginsManager(self)
        self.request = Request()  # TODO: rename request to http
        self.version_mgr = VersionManager(self)
        self.task_mgr = TaskManager(self)

        # Library.
        self.library = Library(config.PROVIDERS_STANDBY)
        # TODO: initialization should be moved into initialize
        Resolver.library = self.library

        # Player.
        self.player = Player(
            audio_device=bytes(config.MPV_AUDIO_DEVICE, 'utf-8'))
        self.playlist = Playlist(
            self, audio_select_policy=config.AUDIO_SELECT_POLICY)
        self.live_lyric = LiveLyric(self)
        self.fm = FM(self)

        # TODO: initialization should be moved into initialize
        self.player.set_playlist(self.playlist)

        self.about_to_shutdown.connect(lambda _: self.dump_state(), weak=False)
コード例 #2
0
def attach_attrs(app):
    """初始化 app 属性"""
    loop = asyncio.get_event_loop()
    app.library = Library(app.config.PROVIDERS_STANDBY)
    app.live_lyric = LiveLyric(app)
    player_kwargs = dict(
        audio_device=bytes(app.config.MPV_AUDIO_DEVICE, 'utf-8'))
    app.playlist = Playlist(app,
                            audio_select_policy=app.config.AUDIO_SELECT_POLICY)
    app.player = Player(app.playlist, **(player_kwargs or {}))
    app.plugin_mgr = PluginsManager(app)
    app.request = Request()
    app.task_mgr = TaskManager(app, loop)
    app.fm = FM(app)

    if app.mode & (app.DaemonMode | app.GuiMode):
        app.version_mgr = VersionManager(app)

    if app.mode & app.DaemonMode:
        app.server = FuoServer(app)
        app.pubsub_gateway = PubsubGateway()
        app._ll_publisher = LiveLyricPublisher(app.pubsub_gateway)

    if app.mode & app.GuiMode:
        from feeluown.uimodels.provider import ProviderUiManager
        from feeluown.uimodels.playlist import PlaylistUiManager
        from feeluown.uimodels.my_music import MyMusicUiManager
        from feeluown.uimodels.collection import CollectionUiManager
        from feeluown.collection import CollectionManager

        from .gui.browser import Browser
        from .gui.hotkey import HotkeyManager
        from .gui.image import ImgManager
        from .gui.theme import ThemeManager
        from .gui.tips import TipsManager
        from .gui.ui import Ui
        from .gui.tray import Tray

        # GUI 的一些辅助管理模块
        app.coll_mgr = CollectionManager(app)
        app.theme_mgr = ThemeManager(app)
        app.tips_mgr = TipsManager(app)
        app.hotkey_mgr = HotkeyManager(app)
        app.img_mgr = ImgManager(app)

        # GUI 组件的数据管理模块
        app.pvd_uimgr = ProviderUiManager(app)
        app.pl_uimgr = PlaylistUiManager(app)
        app.mymusic_uimgr = MyMusicUiManager(app)
        app.coll_uimgr = CollectionUiManager(app)

        app.browser = Browser(app)
        app.ui = Ui(app)
        if app.config.ENABLE_TRAY:
            app.tray = Tray(app)
        app.show_msg = app.ui.toolbar.status_line.get_item(
            'notify').widget.show_msg
コード例 #3
0
1. fuo-netease
2. fuo-xiami
"""

import logging
from feeluown.library import Library

from fuo_xiami import provider as xp
from fuo_netease import provider as np

logging.basicConfig()
logger = logging.getLogger('feeluown')
logger.setLevel(logging.DEBUG)

lib = Library()
lib.register(xp)
lib.register(np)


def test_list_song_standby():
    """
    使用 library.list_song_standby 接口
    """
    result = xp.search('小小恋歌 新垣结衣', limit=2)
    song = result.songs[0]  # 虾米音乐没有这首歌的资源
    assert song.url == ''

    standby_songs = lib.list_song_standby(song)
    for index, ss in enumerate(standby_songs):  # pylint: disable=all
        print(index, ss.source, ss.title, ss.artists_name, ss.url)
コード例 #4
0
async def test_library_a_list_songs_standby_with_specified_providers(song):
    library = Library(providers_standby=['xxx'])
    song.source = 'dummy-1'
    songs = await library.a_list_song_standby(song)
    assert len(songs) == 0
コード例 #5
0
ファイル: conftest.py プロジェクト: BruceZhang1993/FeelUOwn
def library(provider, ekaf_provider):
    library = Library()
    library.register(provider)
    library.register(ekaf_provider)
    return library