Giter Club home page Giter Club logo

Comments (2)

plmcgrn avatar plmcgrn commented on June 11, 2024

Adding on, since I'm hitting this too. This is on a fresh git clone, as well.

Manual search

2023-03-18 00:57:27,083 (7ff8a945db38) :  INFO (sandbox:19) - Custom album search for: Fracture
2023-03-18 00:57:27,083 (7ff8a945db38) :  CRITICAL (agentkit:1018) - Exception in the search function of agent named 'Audnexus Agent', called with keyword arguments {'parentID': '11070', 'year': None, 'id': '17153', 'name': 'Fracture', 'parentGUID': 'com.plexapp.agents.audnexus://B005NE2K7E?lang=en'} (most recent call last):
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-a607d384f/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/agentkit.py", line 1011, in _search
    agent.search(*f_args, **f_kwargs)
  File "/config/Library/Application Support/Plex Media Server/Plug-ins/Audnexus.bundle/Contents/Code/__init__.py", line 265, in search
    quick_match_asin = search_helper.check_for_asin()
  File "/config/Library/Application Support/Plex Media Server/Plug-ins/Audnexus.bundle/Contents/Code/search_tools.py", line 50, in check_for_asin
    self.media.filename).decode('utf8')
  File "/usr/lib/plexmediaserver/Resources/Python/python27.zip/urllib.py", line 1235, in unquote
    bits = s.split('%')
AttributeError: 'NoneType' object has no attribute 'split'

Auto search (I noticed this is ignoring my manually-set album/sort album, and using the audio metadata in teh file itself, even though I have "Prefer Local Metadata" disabled.

2023-03-18 01:04:15,080 (7ff8a945db38) :  DEBUG (runtime:88) - Sending packed state data (108 bytes)
2023-03-18 01:04:15,080 (7ff8a945db38) :  DEBUG (runtime:924) - Response: [200] str, 16 bytes
2023-03-18 01:04:26,830 (7ff8a945db38) :  DEBUG (runtime:717) - Handling request GET /:/plugins/com.plexapp.agents.audnexus/messaging/function/X0FnZW50S2l0OlNlYXJjaA__/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoyCmRpY3QKZGljdAo2CnMyCmVuczQKbGFuZ2IxczYKbWFudWFsYjFzNwpwcmltYXJ5aTAKczcKdmVyc2lvbnIxCnM2Cmt3YXJnc3M1CkFsYnVtczEwCm1lZGlhX3R5cGUxMQpzMTMKRnJhY3R1cmUgQmsgMXM1CmFsYnVtczEKMXM1CmluZGV4czE2CjlhZWE1YzllNTEyZTg5NWJzMTcKb3BlblN1YnRpdGxlc0hhc2hzMTMKTWVnYW4gTWlyYW5kYXM2CmFydGlzdHM0MAo2ZTc4NTM2Y2RiMTc5YWEzNmUxYmNhMzcxNDA2ZWM3ODA1NjZiNzljczgKcGxleEhhc2hzMTA4CiUyRm1lZGlhJTJGYXVkaW9ib29rcyUyRk1lZ2FuJTIwTWlyYW5kYSUyRkZyYWN0dXJlJTJGTWVnYW4lMjBNaXJhbmRhJTIwLSUyMEZyYWN0dXJlJTIwMSUyMC0lMjBGcmFjdHVyZSUyRW1wM3M4CmZpbGVuYW1lczQ4CmNvbS5wbGV4YXBwLmFnZW50cy5hdWRuZXh1czovL0IwMDVORTJLN0U%40bGFuZz1lbnMxMApwYXJlbnRHVUlEczUKMTEwNzBzOApwYXJlbnRJRHM4CjI3MjM1NjA0czgKZHVyYXRpb25uczUKdGl0bGVzNQoxNzE1M3MyCmlkcjAK
2023-03-18 01:04:26,831 (7ff8a945db38) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2023-03-18 01:04:26,832 (7ff8a945db38) :  DEBUG (runtime:814) - Found route matching /:/plugins/com.plexapp.agents.audnexus/messaging/function/X0FnZW50S2l0OlNlYXJjaA__/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoyCmRpY3QKZGljdAo2CnMyCmVuczQKbGFuZ2IxczYKbWFudWFsYjFzNwpwcmltYXJ5aTAKczcKdmVyc2lvbnIxCnM2Cmt3YXJnc3M1CkFsYnVtczEwCm1lZGlhX3R5cGUxMQpzMTMKRnJhY3R1cmUgQmsgMXM1CmFsYnVtczEKMXM1CmluZGV4czE2CjlhZWE1YzllNTEyZTg5NWJzMTcKb3BlblN1YnRpdGxlc0hhc2hzMTMKTWVnYW4gTWlyYW5kYXM2CmFydGlzdHM0MAo2ZTc4NTM2Y2RiMTc5YWEzNmUxYmNhMzcxNDA2ZWM3ODA1NjZiNzljczgKcGxleEhhc2hzMTA4CiUyRm1lZGlhJTJGYXVkaW9ib29rcyUyRk1lZ2FuJTIwTWlyYW5kYSUyRkZyYWN0dXJlJTJGTWVnYW4lMjBNaXJhbmRhJTIwLSUyMEZyYWN0dXJlJTIwMSUyMC0lMjBGcmFjdHVyZSUyRW1wM3M4CmZpbGVuYW1lczQ4CmNvbS5wbGV4YXBwLmFnZW50cy5hdWRuZXh1czovL0IwMDVORTJLN0U@bGFuZz1lbnMxMApwYXJlbnRHVUlEczUKMTEwNzBzOApwYXJlbnRJRHM4CjI3MjM1NjA0czgKZHVyYXRpb25uczUKdGl0bGVzNQoxNzE1M3MyCmlkcjAK
2023-03-18 01:04:26,833 (7ff8a945db38) :  INFO (agentkit:961) - Searching for matches for {'album': 'Fracture Bk 1', 'index': '1', 'openSubtitlesHash': '9aea5c9e512e895b', 'artist': 'Megan Miranda', 'parentID': '11070', 'filename': '%2Fmedia%2Faudiobooks%2FMegan%20Miranda%2FFracture%2FMegan%20Miranda%20-%20Fracture%201%20-%20Fracture%2Emp3', 'parentGUID': 'com.plexapp.agents.audnexus://B005NE2K7E?lang=en', 'plexHash': '6e78536cdb179aa36e1bca371406ec780566b79c', 'duration': '27235604', 'title': None, 'id': '17153'}
2023-03-18 01:04:26,833 (7ff8a945db38) :  DEBUG (networking:143) - Requesting 'http://127.0.0.1:32400/library/metadata/17153/tree'
2023-03-18 01:04:26,838 (7ff8a945db38) :  DEBUG (model:32) - Loading model with GUID com.plexapp.agents.audnexus://B005NE2K7E?lang=en
2023-03-18 01:04:26,838 (7ff8a945db38) :  DEBUG (model:234) - Deserializing from /config/Library/Application Support/Plex Media Server/Metadata/Artists/3/4e57b8be7a114d2928d00249a06731b22cd735b.bundle/Contents/com.plexapp.agents.audnexus/Info.xml
2023-03-18 01:04:26,839 (7ff8a945db38) :  INFO (sandbox:19) - -----------------------------------ALBUM SEARCH-----------------------------------
2023-03-18 01:04:26,839 (7ff8a945db38) :  INFO (sandbox:19) - ID                  B005NE2K7E_us
2023-03-18 01:04:26,840 (7ff8a945db38) :  INFO (sandbox:19) - Title               Fracture
2023-03-18 01:04:26,840 (7ff8a945db38) :  INFO (sandbox:19) - Album               Fracture Bk 1
2023-03-18 01:04:26,840 (7ff8a945db38) :  INFO (sandbox:19) - Artist              Megan Miranda
2023-03-18 01:04:26,841 (7ff8a945db38) :  INFO (sandbox:19) - ----------------------------------------------------------------------
2023-03-18 01:04:26,841 (7ff8a945db38) :  INFO (sandbox:19) - Region Override: us
2023-03-18 01:04:26,843 (7ff8a945db38) :  DEBUG (networking:138) - Fetching 'https://api.audible.com/1.0/catalog/products?response_groups=contributors,product_desc,product_attrs&num_results=25&products_sort_by=Relevance&title=Fracture%20Bk%201&author=Megan%20Miranda' from the HTTP cache
2023-03-18 01:04:26,844 (7ff8a945db38) :  INFO (sandbox:19) - No results found for query "Fracture Bk 1"
2023-03-18 01:04:26,845 (7ff8a945db38) :  DEBUG (runtime:88) - Sending packed state data (108 bytes)
2023-03-18 01:04:26,845 (7ff8a945db38) :  DEBUG (runtime:924) - Response: [200] str, 320 bytes

The book does exist on Audible, but I can replicate the API "miss" due to it ignoring my preference to use embedded metadata and the manual search failing hard means I can't match it at all.
https://www.audible.com/pd/Fracture-Audiobook/B00HM8YUTA

Edit:
I figured out what's happening, but I don't have the skills to fix it. When auto search happens, the newer version of search_tools.py uses self.media.filename to look for an ASIN in the filename. This works for auto search, but not manual search. When running manual search, self.media.filename is empty, so it throws this exception.

As a quick workaround, I put and additional check on the relevant if statement, and this worked to allow manual search to work properly.

        log.debug('self.media.filename: %s', self.media.filename) #added this, and that's how I found this was "None" on manual search
        if self.content_type == 'books' and self.media.filename:

where original was

 if self.content_type == 'books' 

This is clearly just a hack for missing source data, so I didn't want to submit a PR for it. I don't know the source data structure/flow enough to determine if this would be a good permanent fix or just a hack to keep us going while waiting for one.

self.media.filename when using auto search

2023-03-18 02:13:12,012 (7fbd2cc17b38) :  DEBUG (sandbox:19) - self.media.filename: %2Fmedia%2Faudiobooks%2FMegan%20Miranda%2FFracture%2FMegan%20Miranda%20-%20Fracture%201%20-%20Fracture%2Emp3

self.media.filename when using manual search

2023-03-18 02:13:15,928 (7fbd2cc17b38) :  DEBUG (sandbox:19) - self.media.filename: None

from audnexus.bundle.

djdembeck avatar djdembeck commented on June 11, 2024

@plmcgrn thanks for taking the time to look into this. Yes, manual matching doesn't receive the filename from plex (just how their system works).

As for local/prefer embedded, that I believe is a scanner setting, and not controllable via the agent.

from audnexus.bundle.

Related Issues (20)

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.