Code Monkey home page Code Monkey logo

lidarrapi.metadata's Introduction

Lidarr

Build Status Docker Pulls Github Downloads Backers on Open Collective Sponsors on Open Collective

Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.

Major Features Include:

  • Support for major platforms: Windows, Linux, macOS, Raspberry Pi, etc.
  • Automatically detects new tracks.
  • Can scan your existing library and download any missing tracks.
  • Can watch for better quality of the tracks you already have and do an automatic upgrade.
  • Automatic failed download handling will try another release if one fails
  • Manual search so you can pick any release or to see why a release was not downloaded automatically
  • Fully configurable track renaming
  • Full integration with SABnzbd and NZBGet
  • Full integration with Kodi, Plex (notification, library update, metadata)
  • Full support for specials and multi-album releases
  • And a beautiful UI

Support

Note: GitHub Issues are for Bugs and Feature Requests Only

Discord GitHub - Bugs and Feature Requests Only Wiki

Contributors

This project exists thanks to all the people who contribute. Contribute.

Backers

Thank you to all our backers! πŸ™ Become a backer

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. Become a sponsor

Mega Sponsors

JetBrains

Thank you to JetBrains JetBrains for providing us with free licenses to their great tools.

DigitalOcean

This project is also supported by DigitalOcean

License

lidarrapi.metadata's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lidarrapi.metadata's Issues

ProgrammingError: syntax error at or near "AND"

https://sentry.io/lidarr/metadata-api/issues/514008365/

ProgrammingError: syntax error at or near "AND"
LINE 36: ...ating_count * release_group_meta.rating) END DESC AND UPPER(...
                                                              ^

(5 additional frame(s) were not displayed)
...
  File "lidarrmetadata/api.py", line 211, in chart_route
    return jsonify(charts[key](count, **chart_kwargs))

ProgrammingError: syntax error at or near "AND"
LINE 36: ...ating_count * release_group_meta.rating) END DESC AND UPPER(...
                                                              ^

Caused by changes in #51.

MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk

Hi,

I'm currently running lidarr in a synology NAS using a docker image from linuxserver/lidarr. This has been working great until lately I've been hitting the following error when adding an artist or refreshing metadata

[v0.4.0.524] NzbDrone.Common.Http.HttpException: HTTP request failed: [500:InternalServerError] [GET] at [https://api.lidarr.audio/api/v0.3/album/28f24dc6-8fd8-3635-a1cb-5a394fcf542d?release=]
  at NzbDrone.Core.MetadataSource.SkyHook.SkyHookProxy.GetAlbumInfo (System.String foreignAlbumId, System.String releaseId) [0x000ce] in C:\projects\lidarr\src\NzbDrone.Core\MetadataSource\SkyHook\SkyHookProxy.cs:132 
  at NzbDrone.Core.Music.AddAlbumService.AddSkyhookData (NzbDrone.Core.Music.Album newAlbum) [0x00000] in C:\projects\lidarr\src\NzbDrone.Core\Music\AddAlbumService.cs:77 
  at NzbDrone.Core.Music.AddAlbumService.AddAlbums (System.Collections.Generic.List`1[T] newAlbums) [0x0001d] in C:\projects\lidarr\src\NzbDrone.Core\Music\AddAlbumService.cs:58 
  at NzbDrone.Core.Music.RefreshArtistService.RefreshArtistInfo (NzbDrone.Core.Music.Artist artist, System.Boolean forceAlbumRefresh) [0x0026e] in C:\projects\lidarr\src\NzbDrone.Core\Music\RefreshArtistService.cs:132 
  at NzbDrone.Core.Music.RefreshArtistService.Execute (NzbDrone.Core.Music.Commands.RefreshArtistCommand message) [0x00043] in C:\projects\lidarr\src\NzbDrone.Core\Music\RefreshArtistService.cs:178 
{"error":"MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error."}

Any idea on how to fix this?

Thanks

DataError: invalid input syntax for uuid: "e132d370-2a59-4437-8610-756df28a5a0"

Should validate UUID and return 4xx error if invalid.

https://sentry.io/lidarr/metadata-api/issues/355085931/

DataError: invalid input syntax for uuid: "e132d370-2a59-4437-8610-756df28a5a0"
LINE 9: WHERE artist.gid = 'e132d370-2a59-4437-8610-756df28a5a0'
                           ^

(5 additional frame(s) were not displayed)
...
  File "lidarrmetadata/api.py", line 67, in get_artist_info
    artist = artist_providers[0].get_artist_by_id(mbid)

DataError: invalid input syntax for uuid: "e132d370-2a59-4437-8610-756df28a5a0"
LINE 9: WHERE artist.gid = 'e132d370-2a59-4437-8610-756df28a5a0'
                           ^

ValueError: A string literal cannot contain NUL (0x00) characters.

Clean query string of illegal characters and add tests.

https://sentry.io/lidarr/metadata-api/issues/650086160/

ValueError: A string literal cannot contain NUL (0x00) characters.
(5 additional frame(s) were not displayed)
...
  File "lidarrmetadata/api.py", line 388, in search_route
    return search_artist()
  File "lidarrmetadata/api.py", line 326, in search_artist
    artists = search_providers[0].search_artist_name(query, limit=limit)

ValueError: A string literal cannot contain NUL (0x00) characters.

OperationalError: could not connect to server: Connection refused

https://sentry.io/lidarr/lidarr-api-metadata/issues/469515531/?referrer=github_plugin

OperationalError: could not connect to server: Connection refused
	Is the server running on host "musicbrainz" (172.255.0.20) and accepting
	TCP/IP connections on port 5432?

(9 additional frame(s) were not displayed)
...
  File "lidarrmetadata/api.py", line 101, in get_artist_info
    artist = artist_providers[0].get_artist_by_id(mbid)

OperationalError: could not connect to server: Connection refused
	Is the server running on host "musicbrainz" (172.255.0.20) and accepting
	TCP/IP connections on port 5432?

API caching doesn't care about version

API caching will cache the same key for different versions, so updates aren't reflected. In particular, testing responses can be given on production servers. Should be fixed once application roots are appropriately set.

SSLError: HTTPSConnectionPool(host='en.wikipedia.org', port=443): Max retries exceeded with url: /w/api.php...

https://sentry.io/lidarr/metadata-api/issues/436386164/

SSLError: HTTPSConnectionPool(host='en.wikipedia.org', port=443): Max retries exceeded with url: /w/api.php?inprop=url&redirects=&format=json&ppprop=disambiguation&prop=info%7Cpageprops&titles=Alesha_Dixon&action=query (Caused by SSLError(SSLEOFError(8, u'EOF occurred in violation of protocol (_ssl.c:590)'),))
(19 additional frame(s) were not displayed)
...
  File "lidarrmetadata/api.py", line 105, in get_artist_info
    wikipedia_links[0]['target'])

SSLError: HTTPSConnectionPool(host='en.wikipedia.org', port=443): Max retries exceeded with url: /w/api.php?inprop=url&redirects=&format=json&ppprop=disambiguation&prop=info%7Cpageprops&titles=Alesha_Dixon&action=query (Caused by SSLError(SSLEOFError(8, u'EOF occurred in violation of protocol (_ssl.c:590)'),))

Handle translation for special mb characters

Should handle and cross over characters that are special to musicbrainz, ex. "-" example

This bit from headphones may be helpful here:

_XLATE_SPECIAL = {
    # Translation table.
    # Cover additional special characters processing normalization.
    u"'": '',         # replace apostrophe with nothing
    u"’": '',         # replace musicbrainz style apostrophe with nothing
    u'&': ' and ',     # expand & to ' and '
}

_XLATE_MUSICBRAINZ = {
    # Translation table for Musicbrainz.
    u"…": '...',     # HORIZONTAL ELLIPSIS (U+2026)
    u"’": "'",       # APOSTROPHE (U+0027)
    u"‐": "-",       # EN DASH (U+2013)
    u'\u8208','-',   # HYPHEN (U+8208)
    u'\u8243','”',   # DOUBLE PRIME (U+8243)
}

ConnectionError: HTTPSConnectionPool(host='en.wikipedia.org', port=443): Max retries exceeded with url: /w/api.php...

https://sentry.io/lidarr/lidarr-api-metadata/issues/786046421/?referrer=github_plugin

ConnectionError: HTTPSConnectionPool(host='en.wikipedia.org', port=443): Max retries exceeded with url: /w/api.php?inprop=url&redirects=&format=json&prop=info%7Cpageprops&titles=Zatox&action=query (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f398b48dad0>: Failed to establish a new connection: [Errno 101] Network unreachable',))
(17 additional frame(s) were not displayed)
...
  File "lidarrmetadata/api.py", line 125, in get_artist_info
    wikipedia_links[0]['target'])

ConnectionError: HTTPSConnectionPool(host='en.wikipedia.org', port=443): Max retries exceeded with url: /w/api.php?inprop=url&redirects=&format=json&prop=info%7Cpageprops&titles=Zatox&action=query (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f398b48dad0>: Failed to establish a new connection: [Errno 101] Network unreachable',))

Cache expiration for new releases

Cached responses may be returned after an artist has had a new release. Purge cache of artist responses when there are updates. Maybe scheduled task?

Missing overviews

Missing overviews for artists with valid wikipedia links, such as 93bd1037-d736-42ca-93c3-c397f2cb1165 and 4f93401e-f3dd-4961-8b4e-708be531c3ce. Seems that MediaWikiAPI either doesn't like encoded names or doesn't like non en.wikipedia sites.

psycopg2 package name changing

UserWarning: The psycopg2 wheel package will be renamed from release 2.8;
in order to keep installing from binary please use "pip install psycopg2-binary" instead.
For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.

ConnectionError: HTTPSConnectionPool(host='webservice.fanart.tv', port=443): Max retries exceeded with url: /v3/mu...

https://sentry.io/lidarr/metadata-api/issues/565184550/

ConnectionError: HTTPSConnectionPool(host='webservice.fanart.tv', port=443): Max retries exceeded with url: /v3/music/9fda77e4-8235-4f5d-a05c-3657bb550971/?api_key=651421d4a26a950283600e66a2a727fe (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f2065728090>: Failed to establish a new connection: [Errno 110] Operation timed out',))
(12 additional frame(s) were not displayed)
...
  File "lidarrmetadata/api.py", line 390, in search_route
    return search_artist()
  File "lidarrmetadata/api.py", line 356, in search_artist
    artist['Images'] = artist_art_providers[0].get_artist_images(artist['Id'])

ConnectionError: HTTPSConnectionPool(host='webservice.fanart.tv', port=443): Max retries exceeded with url: /v3/music/9fda77e4-8235-4f5d-a05c-3657bb550971/?api_key=651421d4a26a950283600e66a2a727fe (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f2065728090>: Failed to establish a new connection: [Errno 110] Operation timed out',))

Config does not parse types correctly

Config setting for HTTP_PORT results in string, suggesting that config doesn't parse original type.

The config entry 'server.socket_port' in section 'server.socket_port' is of type 'str', which does not match the expected type 'int'.

[28/Feb/2018:23:10:36] ENGINE Started monitor thread 'Autoreloader'.
[28/Feb/2018:23:10:36] ENGINE Error in HTTP server: shutting down
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/cherrypy/process/servers.py", line 225, in _start_http_thread
    self.httpserver.start()
  File "/usr/local/lib/python2.7/site-packages/cheroot/server.py", line 1516, in start
    self.bind(af, socktype, proto)
  File "/usr/local/lib/python2.7/site-packages/cheroot/server.py", line 1602, in bind
    self.socket.bind(self.bind_addr)
  File "/usr/local/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
TypeError: an integer is required

IOError: [Errno 2] No such file or directory: '../sql/artist_search_name.sql'

https://sentry.io/lidarr/metadata-api/issues/347214986/

IOError: [Errno 2] No such file or directory: '../sql/artist_search_name.sql'
(5 additional frame(s) were not displayed)
...
  File "lidarrmetadata/api.py", line 208, in search_route
    return search_artist()
  File "lidarrmetadata/api.py", line 182, in search_artist
    artists = search_providers[0].search_artist_name(query)

IOError: [Errno 2] No such file or directory: '../sql/artist_search_name.sql'

Return Rating for Albums and Artists

Return a rating and number votes for album call and artist call. Possibly use metacritic or maybe store our own ratings from user ratings? Not sure whats best here.

Root URL path option

Allow configuration of root url so redirects don't go to / and so sentry can parse the path.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.