snejus / beetcamp

Bandcamp autotagger source for beets (https://beets.io)
GNU General Public License v2.0
68 stars 12 forks source link

import errors parsing invalid ID #9

Closed arogl closed 3 years ago

arogl commented 3 years ago

I am passing in a discogs URL and beetcamp is trying to interpret the URL/ID

beet imp -s /mnt/i/musica/singles/
Import of the directory:
/mnt/i/musica/singles
was interrupted. Resume (Y/n)?
Resuming interrupted import of /mnt/i/musica/singles

/mnt/i/musica/singles/00 - Christina Grimmie - Titanium.mp3
Correcting track tags from:
    Christina Grimmie - Titanium
To:
    ProphetGirl - Titanium
URL:
    https://prophetgirl.bandcamp.com/track/titanium
(Similarity: 76.8%) (artist) (bandcamp)
[A]pply, More candidates, Skip, Use as-is, Enter search, enter Id, aBort? i
Enter recording ID: https://www.discogs.com/Christina-Grimmie-Titanium-Cover-Chirurgicals-Waveforms-Remix/release/14328389
Traceback (most recent call last):
  File "/home/arogl/.local/bin/beet", line 33, in <module>
    sys.exit(load_entry_point('beets', 'console_scripts', 'beet')())
  File "/mnt/h/Git/beets/beets/ui/__init__.py", line 1278, in main
    _raw_main(args)
  File "/mnt/h/Git/beets/beets/ui/__init__.py", line 1265, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "/mnt/h/Git/beets/beets/ui/commands.py", line 960, in import_func
    import_files(lib, paths, query)
  File "/mnt/h/Git/beets/beets/ui/commands.py", line 930, in import_files
    session.run()
  File "/mnt/h/Git/beets/beets/importer.py", line 343, in run
    pl.run_sequential()
  File "/mnt/h/Git/beets/beets/util/pipeline.py", line 386, in run_sequential
    list(self.pull())
  File "/mnt/h/Git/beets/beets/util/pipeline.py", line 463, in pull
    out = coro.send(msg)
  File "/mnt/h/Git/beets/beets/util/pipeline.py", line 171, in coro
    task = func(*(args + (task,)))
  File "/mnt/h/Git/beets/beets/importer.py", line 1389, in user_query
    task.choose_match(session)
  File "/mnt/h/Git/beets/beets/importer.py", line 942, in choose_match
    choice = session.choose_item(self)
  File "/mnt/h/Git/beets/beets/ui/commands.py", line 772, in choose_item
    post_choice = choice.callback(self, task)
  File "/mnt/h/Git/beets/beets/ui/commands.py", line 679, in manual_id
    return autotag.tag_item(task.item, search_ids=search_id.split())
  File "/mnt/h/Git/beets/beets/autotag/match.py", line 496, in tag_item
    for track_info in hooks.tracks_for_id(trackid):
  File "/mnt/h/Git/beets/beets/autotag/hooks.py", line 595, in tracks_for_id
    for t in plugins.track_for_id(track_id):
  File "/mnt/h/Git/beets/beets/plugins.py", line 417, in track_for_id
    track = plugin.track_for_id(track_id)
  File "/home/arogl/.local/lib/python3.8/site-packages/beetsplug/bandcamp/__init__.py", line 203, in track_for_id
    return self.get_track_info(track_id)
  File "/home/arogl/.local/lib/python3.8/site-packages/beetsplug/bandcamp/__init__.py", line 221, in get_track_info
    return Metaguru(html, self.media).singleton if html else None
  File "/home/arogl/.local/lib/python3.8/site-packages/beetsplug/bandcamp/_metaguru.py", line 141, in __init__
    self.meta = json.loads(match.group())
  File "/usr/lib/python3.8/json/__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.8/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
snejus commented 3 years ago

This should be fixed in 0.5.7 :)