学習の演習として、現在使用している (明らかに) デフォルトのLast Name, First Name形式とは対照的に、albumartistsort
toalbumartist
およびartistsort
toに一致する MusicBrainz 用のプラグインを作成しようとしています。artist
私はPythonについて学んでいるので、別のプラグインをガイドとして使用しようとしていますが、いくつかの重要な変更を行う必要があり、おそらく失敗した場所です.
プラグインをインストールしようとすると、プラグイン フォルダにコピーされますが、プラグイン リストに表示されません。.pyo
ファイルは生成されません。これはコンパイルエラーが原因だと推測していますが、必要なものを含めることができなかったので、picard
モジュールを使用できます(どこで見つけられるか、インポートするかわからない)ので、Pythonインタープリターでテストできます.
これは私が持っているコードです:
PLUGIN_NAME = "Sort Artist and Album Artist"
PLUGIN_AUTHOR = "Kevin Hernandez"
PLUGIN_DESCRIPTION = "Sorts artist/album artist by name as in Artist/Album Artist field instead of Last, First"
PLUGIN_VERSION = "0.1"
PLUGIN_API_VERSIONS = ["0.9.0", "0.10", "0.15", "0.16"]
from picard.metadata import register_album_metadata_processor
import re
def copy_albumartist_to_albumartistsort(tagger, metadata, release):
match = re.search($not($eq(metadata["albumartistsort"],metadata["albumartist"])))
if match:
metadata["albumartistsort"] = metadata["albumartist"]
def copy_artist_to_artistsort(tagger, metadata, release):
match = re.search($not($eq(metadata["artistsort"],metadata["artist"])))
if match:
metadata["artistsort"] = metadata["artist"]
register_album_metadata_processor(copy_albumartist_to_albumartistsort)
register_album_metadata_processor(copy_artist_to_artistsort)
また、関数を次のように定義しようとしました。
def copy_albumartist_to_albumartistsort(tagger, metadata, release):
metadata["albumartistsort"] = metadata["albumartist"]
def copy_artist_to_artistsort(tagger, metadata, release):
metadata["artistsort"] = metadata["artist"]
これらがいつ呼び出されるかを完全には理解していないことを指摘しなければなりません。プラグインのドキュメントhere、here、およびhereは、そこにあるプラグインをたどるのに十分ではないと思います (たとえば、さまざまなプラグインで使用するsearch
およびmatch
メソッドはre
、私が参照しているドキュメント リンクでは説明されていません。
より完全なドキュメントがある場合は、コードで間違っていることを特定するか、picard
モジュールをインタープリターに含める方法 (モジュールを見つける場所と含める方法) を知ることができます。コメントは大歓迎です。この質問に対する有効な回答。