HOZHENWAI / Beets-Plugin_VGMdb

A small plugin to collect metadata from VGMdb and manage a VGMdb collection
13 stars 2 forks source link

AttributeError #2

Closed u2716 closed 2 years ago

u2716 commented 2 years ago

try this query, it crashes for me: edit: better log

Enter release query: WONDER EGG PRIORITY
VGMplug: Found 3 albums on VGMdb for query: WONDER EGG PRIORITY
VGMplug: Querying VgmDB for release 107574
VGMplug: Querying VgmDB for release 107572
VGMplug: Querying VgmDB for release 107573
Candidate: ('',) - WÓNDER EGG PRIÓRITY ORIGINAL DRAMA CD: WONDÉR ÉGG ANNIVERSARY (vgmdb-107574)
Computing track assignment...
...done.
Traceback (most recent call last):
  File "/data/data/com.termux/files/usr/bin/beet", line 8, in <module>
    sys.exit(main())
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/__init__.py", line 1304, in main
    _raw_main(args)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/__init__.py", line 1291, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/commands.py", line 1034, in import_func
    import_files(lib, paths, query)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/commands.py", line 974, in import_files
    session.run()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 340, in run
    pl.run_parallel(QUEUE_SIZE)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 446, in run_parallel
    raise exc_info[1].with_traceback(exc_info[2])
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 311, in run
    out = self.coro.send(msg)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 170, in coro
    task = func(*(args + (task,)))
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 1400, in user_query
    task.choose_match(session)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 859, in choose_match
    choice = session.choose_match(self)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/commands.py", line 780, in choose_match
    post_choice = choice.callback(self, task)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beetsplug/VGMplug.py", line 64, in custom_query
    _add_candidate(task.items, candidates, self._search_vgmdbinfo(query)[0]) # TODO add error handling
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/match.py", line 375, in _add_candidate
    dist = distance(items, info, mapping)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/match.py", line 175, in distance
    dist.add_string('artist', likelies['artist'], album_info.artist)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/hooks.py", line 539, in add_string
    dist = string_dist(str1, str2)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/hooks.py", line 260, in string_dist
    str2 = str2.lower()
AttributeError: 'tuple' object has no attribute 'lower'
u2716 commented 2 years ago

both these albums crash the same: https://vgmdb.info/album/107573 https://vgmdb.info/album/107572

VGMplug: Searching for candidate in VGMdb for WONDER EGG PRIORITY
VGMplug: Title satinize: WONDER EGG PRIORITY -> WONDER EGG PRIORITY
VGMplug: Title satinize: WONDER EGG PRIORITY -> WONDER EGG PRIORITY
VGMplug: Found 3 albums on VGMdb for query: WONDER EGG PRIORITY
VGMplug: Querying VgmDB for release 107574
VGMplug: Querying VgmDB for release 107572
VGMplug: Querying VgmDB for release 107573
Sending event: albuminfo_received
Candidate: ('',) - WÓNDER EGG PRIÓRITY ORIGINAL DRAMA CD: WONDÉR ÉGG ANNIVERSARY (vgmdb-107574)
Computing track assignment...
...done.
Traceback (most recent call last):
  File "/data/data/com.termux/files/usr/bin/beet", line 8, in <module>
    sys.exit(main())
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/__init__.py", line 1304, in main
    _raw_main(args)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/__init__.py", line 1291, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/commands.py", line 1034, in import_func
    import_files(lib, paths, query)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/commands.py", line 974, in import_files
    session.run()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 340, in run
    pl.run_parallel(QUEUE_SIZE)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 446, in run_parallel
    raise exc_info[1].with_traceback(exc_info[2])
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 311, in run
    out = self.coro.send(msg)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 193, in coro
    func(*(args + (task,)))
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 1376, in lookup_candidates
    task.lookup_candidates()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 660, in lookup_candidates
    autotag.tag_album(self.items, search_ids=self.search_ids)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/match.py", line 466, in tag_album
    _add_candidate(items, candidates, matched_candidate)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/match.py", line 375, in _add_candidate
    dist = distance(items, info, mapping)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/match.py", line 175, in distance
    dist.add_string('artist', likelies['artist'], album_info.artist)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/hooks.py", line 539, in add_string
    dist = string_dist(str1, str2)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/hooks.py", line 260, in string_dist
    str2 = str2.lower()
AttributeError: 'tuple' object has no attribute 'lower'

edit: better log

u2716 commented 2 years ago

maybe it's because they have only arrangers (?).if I set "WONDER EGG PRIORITY" as album metadata, it will crash before even reaching the manual id/query/ecc prompt.

Traceback (most recent call last):
  File "/data/data/com.termux/files/usr/bin/beet", line 8, in <module>
    sys.exit(main())
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/__init__.py", line 1304, in main
    _raw_main(args)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/__init__.py", line 1291, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/commands.py", line 1034, in import_func
    import_files(lib, paths, query)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/commands.py", line 974, in import_files
    session.run()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 340, in run
    pl.run_parallel(QUEUE_SIZE)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 446, in run_parallel
    raise exc_info[1].with_traceback(exc_info[2])
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 311, in run
    out = self.coro.send(msg)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 193, in coro
    func(*(args + (task,)))
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 1376, in lookup_candidates
    task.lookup_candidates()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 660, in lookup_candidates
    autotag.tag_album(self.items, search_ids=self.search_ids)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/match.py", line 466, in tag_album
    _add_candidate(items, candidates, matched_candidate)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/match.py", line 375, in _add_candidate
    dist = distance(items, info, mapping)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/match.py", line 175, in distance
    dist.add_string('artist', likelies['artist'], album_info.artist)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/hooks.py", line 539, in add_string
    dist = string_dist(str1, str2)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/hooks.py", line 260, in string_dist
    str2 = str2.lower()
AttributeError: 'tuple' object has no attribute 'lower'
HOZHENWAI commented 2 years ago

Ok, I'll look it up, I should have updated this repo anyway.

u2716 commented 2 years ago

another crash probably related

VGMplug: Searching for candidate in VGMdb for 炎
VGMplug: Title satinize: 炎 -> 炎
VGMplug: Title satinize: 炎 -> 炎
VGMplug: Found 209 albums on VGMdb for query: 炎
VGMplug: Querying VgmDB for release 53260
VGMplug: Querying VgmDB for release 11971
VGMplug: Querying VgmDB for release 11970
VGMplug: Querying VgmDB for release 11972
VGMplug: Querying VgmDB for release 52824
VGMplug: Too many result on VGMDB, breaking
Sending event: albuminfo_received
Candidate: Electro.muster - AIRI, Enro Yakou (vgmdb-53260)
Computing track assignment...
...done.
Success. Distance: 0.65
Sending event: albuminfo_received
Candidate: ('',) - Angelique Radio Talk 1 ~Honoo to Yume to, Soshite Ai~ (vgmdb-11971)
Computing track assignment...
...done.
Traceback (most recent call last):
  File "/data/data/com.termux/files/usr/bin/beet", line 8, in <module>
    sys.exit(main())
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/__init__.py", line 1304, in main
    _raw_main(args)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/__init__.py", line 1291, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/commands.py", line 1034, in import_func
    import_files(lib, paths, query)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/ui/commands.py", line 974, in import_files
    session.run()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 340, in run
    pl.run_parallel(QUEUE_SIZE)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 446, in run_parallel
    raise exc_info[1].with_traceback(exc_info[2])
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 311, in run
    out = self.coro.send(msg)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/util/pipeline.py", line 193, in coro
    func(*(args + (task,)))
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 1376, in lookup_candidates
    task.lookup_candidates()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/importer.py", line 660, in lookup_candidates
    autotag.tag_album(self.items, search_ids=self.search_ids)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/match.py", line 466, in tag_album
    _add_candidate(items, candidates, matched_candidate)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/match.py", line 375, in _add_candidate
    dist = distance(items, info, mapping)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/match.py", line 175, in distance
    dist.add_string('artist', likelies['artist'], album_info.artist)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/hooks.py", line 539, in add_string
    dist = string_dist(str1, str2)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/beets/autotag/hooks.py", line 260, in string_dist
    str2 = str2.lower()
AttributeError: 'tuple' object has no attribute 'lower'
HOZHENWAI commented 2 years ago

Ok, it's fixed on master. Basically, there was a comma that shouldn't have been there.

u2716 commented 2 years ago

ok thanks, now seems fine.query succeeds. though I have still a problem. if I remember correctly the plugin search for the first composer, if not present the first performer, if not present the first arranger,right? well those 2 albums, the artist metadata field remains blank after tagging even though arrengers are present in vgmdb.info. https://vgmdb.info/album/107572 https://vgmdb.info/album/107573

HOZHENWAI commented 2 years ago

You should create a new issue or I won't get notification next time. It wasn't the case actually but now it is. Even better, the priority is now configurable and any metadata that is parsable by the api is a possible choice. See readme for an example config.