Add Plugins sources and itunes
This commit is contained in:
39
beetsplug/sources.py
Normal file
39
beetsplug/sources.py
Normal file
@@ -0,0 +1,39 @@
|
||||
import re
|
||||
from beets import config
|
||||
from beets.autotag.hooks import AlbumInfo, TrackInfo, Distance
|
||||
from beets.plugins import BeetsPlugin
|
||||
|
||||
class SearchAPIPlugin(BeetsPlugin):
|
||||
"""A beets plugin that lets you set preferences for different metadata sources.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
super(SearchAPIPlugin, self).__init__()
|
||||
self.config.add({
|
||||
'auto': True, # Enables or disables the plugin
|
||||
'preferred': [ '*' ],
|
||||
})
|
||||
|
||||
@property
|
||||
def preferred_sources(self):
|
||||
"""Reads the user's preferred sources, parses
|
||||
them as regular expressions and returns a list
|
||||
of the resulting Patterns.
|
||||
"""
|
||||
preferences = self.config['preferred'].get()
|
||||
return [re.compile('.*') if item == '*' else re.compile(item) for item in preferences]
|
||||
|
||||
def album_distance(self, items, album_info, mapping):
|
||||
"""Returns the album distance.
|
||||
"""
|
||||
dist = Distance()
|
||||
dist.add_priority('source', album_info.data_source, self.preferred_sources)
|
||||
return dist
|
||||
|
||||
def track_distance(self, item, info):
|
||||
"""Returns the track distance.
|
||||
"""
|
||||
dist = Distance()
|
||||
dist.add_priority('source', info.data_source, self.preferred_sources)
|
||||
return dist
|
||||
|
||||
Reference in New Issue
Block a user