Searching doesn't always work
Opened this issue · 12 comments
https://forums.plex.tv/index.php/topic/107169-rel-spotify2/page-2#entry636557
Sometimes I instead get
"print 'unable to find node for "%s"' % key IOError: [Errno 9] Bad file descriptor"
2014-04-26 21:29:11,890 (5e4) : DEBUG (runtime:717) - Handling request GET /music/spotify/search?query=before%20the%20dawn
2014-04-26 21:29:11,890 (5e4) : DEBUG (runtime:814) - Found route matching /music/spotify/search
2014-04-26 21:29:11,890 (5e4) : INFO (logkit:16) - Search query: "before the dawn", type: all, limit: 7, plain: False
2014-04-26 21:29:11,890 (5e4) : DEBUG (logkit:13) - sent {"args":["before the dawn",15,7,0],"name":"sp/search","id":"21"}
2014-04-26 21:29:12,030 (1560) : DEBUG (logkit:13) - recv {"id":21,"result":"<?xml version='1.0' encoding='utf-8>"}
2014-04-26 21:29:12,108 (5e4) : CRITICAL (core:561) - Exception (most recent call last):
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\components\runtime.py", line 843, in handle_request
result = f(**d)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Spotify2.bundle\Contents\Code__init__.py", line 59, in search
return sp_search.run(**kwargs)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\code\sandbox.py", line 19, in _apply
return apply(f, args, kwargs)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Spotify2.bundle\Contents\Code\search.py", line 95, in run
media_append('Playlists', self.add_playlist, 'playlists')
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Spotify2.bundle\Contents\Code\search.py", line 70, in media_append
items = list(getattr(result, 'get%s' % key)())
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Spotify2.bundle\Contents\Libraries\Shared\spotify_web\search.py", line 105, in getObjects
yield self.parse(obj_type, item)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Spotify2.bundle\Contents\Libraries\Shared\spotify_web\search.py", line 95, in parse
return Playlist.parse(item)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Spotify2.bundle\Contents\Libraries\Shared\spotify_web\search.py", line 303, in parse
image_uri = cls.get_value(node, 'image')
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Spotify2.bundle\Contents\Libraries\Shared\spotify_web\search.py", line 123, in get_value
print 'unable to find node for "%s"' % key
IOError: [Errno 9] Bad file descriptor
Strange error, pretty sure I know what's happening here though.
Will include a fix for this in the next release.
This issue shouldn't exist in the beta release.
It does: "UnicodeDecodeError: 'utf8' codec can't decode byte 0xa0 in position 135: invalid start byte"...
2014-05-14 10:22:22,530 (1a30) : DEBUG (logkit:13) - [spotify.components.connection] send encoded: '{"args":["before the dawn",15,7,0],"name":"sp/search","id":"7"}'
2014-05-14 10:22:22,780 (74c) : DEBUG (logkit:13) - [pyemitter] emit(event: 'message', args: (), kwargs: {'message': '{"id":7,"result":"11de1c0f49967a4b72a73adedc76f79fcfBefore The Dawne0aea1bd2a57c5e5c203346d5b8415ee0dc73f8e300300ae86e6c393a67a3819a71541f6c2221e544b2d2b50accf8f675e92314173451d470f44a9a9e9debf0.31<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"BL,MF\"/>648c1a5c02462c43eea7c058680bb74162Rise Of The Phoenixde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbumf0ff51767849be967d4205ee5a97c0fdf15d132520645135c788b6665234c8768cf1e9bfdcfe39687c23ba0ca9ce3dd99e9210645842312f2655fa6a0.43<restriction catalogues=\"free,daypass,premium,shuffle\" allowed=\"AT,CH,CY,CZ,DE,DK,GR,HU,IT,MT,NO,PL,SE\"/><restriction catalogues=\"commercial\" allowed=\"\"/><external-id type=\"upc\" id=\"727361287863\"/>cadf2094d1eb446887565ceee4cbfe1dDeathstar Risingde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbum0b441dabfa2127fc2ac7f7c3fd5ca315a6da92f2fd994c47b0aa4388638466056643971b24c5dd4ca44cb3b79642c72538fd1452655a18babffe408a0.42<restriction catalogues=\"free,daypass,premium,shuffle\" allowed=\"AT,CH,CZ,DE,DK,GR,HU,IT,NO,PL,SE\"/><restriction catalogues=\"commercial\" allowed=\"\"/><external-id type=\"upc\" id=\"727361271565\"/>584d392117f24781b48205feb4522ce3Deadlightde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbume0aea1bd2a57c5e5c203346d5b8415ee0dc73f8eae86e6c393a67a3819a71541f6c2221e544b2d2b50accf8f675e92314173451d470f44a9a9e9debf0.49<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,BD,BL,BM,BN,BT,CA,CN,FM,GL,HK,ID,IN,JP,KG,KH,KP,KR,LA,LK,MF,MK,MM,MN,MO,MV,MY,NC,NP,NR,PG,PH,PK,PM,PS,SB,SG,TH,TW,VA,VN\"/><external-id type=\"upc\" id=\"05099923560055\"/>eea49cfc347e4a96acee145f6e1739f9Soundscape Of Silencede1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbum2c1ba3cfddeacc809749e09eac89f53c13783e64086bfc5622e51e684404d03d85c942efa27a95475f1b94f0e524716a260d4402b88066553f31ca0f0.48<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,BL,BM,GL,JP,KG,MF,MK,MM,PS,VA\"/><external-id type=\"upc\" id=\"05099926538259\"/>d71ec61c79b54a93a2fc0cadae7ea273The Ghostde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbum10d484798a41e4966e04c8e9fb7eb69bb9634c57a10f2b4eb433044cddfac64b41a708fc288fa062c303e9a4229a44eabf5e0d652224baf8cd9835ff0.42<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"BL,BQ,CW,ME,MF,RS,SX\"/><external-id type=\"upc\" id=\"885686060025\"/>f0f67e12d38b4e82b6d1ed9c51e9d8d3Faithlessde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnsinglebfa5388bf48d021949dd16427908924fb009d993b72f4909ca6ed34655092a274f2f535d5e3112616cccf518e1c83f4c5080b6418fdce7bbfa73b5340.38<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,AS,BD,BL,BM,BN,BT,CA,CN,FM,GL,GU,HK,ID,IN,JP,KG,KH,KP,KR,LA,LK,MF,MK,MM,MN,MO,MP,MV,MY,NC,NP,NR,PG,PH,PK,PM,PS,SB,SG,TH,TW,UM,US,VA,VI,VN\"/><external-id type=\"upc\" id=\"05099923566453\"/>83ef7f0fd8c4421ab3e6f7c7c87c7ce0My Darknessde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbum0ee58f3b476c0271c77db7409a09eeb9d7c0ed3658312b1c15ef420a5cb1bd4d111af3988bcf369e501910fbdd95bdf8de80731610bc613044609a5f0.37<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"BL,BQ,CW,ME,MF,RS,SX\"/><external-id type=\"upc\" id=\"885686060018\"/>11174465f4ebf57d4ed5b96d52851a0b2adc<title>Deadsong</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnDeadlight584d392117f24781b48205feb4522ce3Before The Dawnde1c0f49967a4b72a73adedc76f79fcf20076203053<file id=\"96a210d5f8b991843f9b3bcc1c356f362889794e\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"cc9e9d97259fa130bf669532609d864810f232b0\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"fa23e6c224ad71ceb394311b3bf7b3148631f7b0\" format=\"Ogg Vorbis,96000,1,32,4\"/>e0aea1bd2a57c5e5c203346d5b8415ee0dc73f8eae86e6c393a67a3819a71541f6c2221e544b2d2b50accf8f675e92314173451d470f44a9a9e9debf0.44<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,BD,BL,BM,BN,BT,CA,CN,FM,GL,HK,ID,IN,JP,KG,KH,KP,KR,LA,LK,MF,MK,MM,MN,MO,MV,MY,NC,NP,NR,PG,PH,PK,PM,PS,SB,SG,TH,TW,VA,VN\"/><external-id type=\"isrc\" id=\"FI3SY0700006\"/>e18344f15737481d8bede7244ba31c1c<title>Dying Sun</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnSoundscape Of Silenceeea49cfc347e4a96acee145f6e1739f9Before The Dawnde1c0f49967a4b72a73adedc76f79fcf20081191826<file id=\"0654bb983d1ab210155393127a6d4ceecac51b0c\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"a4b629842d4424b74d73dd42c98550e47a99f99c\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"485603af7265832a5023576e275578ec114e2f83\" format=\"Ogg Vorbis,96000,1,32,4\"/>2c1ba3cfddeacc809749e09eac89f53c13783e64086bfc5622e51e684404d03d85c942efa27a95475f1b94f0e524716a260d4402b88066553f31ca0f0.41<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,BL,BM,GL,JP,KG,MF,MK,MM,PS,VA\"/><external-id type=\"isrc\" id=\"FI3SY0800075\"/>4614fba641894f5f9cff583aef675b74<title>Before the Dawn</title>518a0af0215e4ca2a592efd01f7f4e44Judas PriestSingle Cutse5249acd0c474388b51161af3fb487c1Judas Priest518a0af0215e4ca2a592efd01f7f4e4420113201733<file id=\"69baaa312a731cd2261e9ac45b5ca0b0cd3cf5d2\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"9fbf1efa92528e95e6104fdcbbb012c2145b0aa1\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"47f736f2d667e48b3ee05305516d4c38a7c5e87d\" format=\"Ogg Vorbis,96000,1,32,4\"/>dfff1edb4ba05b8a4adfdca308d752b42dbfb8d5ee93f2429e1ca1f01ed1a3ececcfe0c8eef61b468c6c2468acb61143c1192db803b79ec52151f8260.31<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AS,AW,AX,BL,BQ,BV,CC,CW,CX,GG,GS,HM,IM,JE,JP,MF,NF,PR,SJ,SX,UM,US,VI\"/><external-id type=\"isrc\" id=\"GBBBN0102368\"/>62651530883a48f2b4e0e7bcd45c65b1<title>Faithless</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnFaithlessf0f67e12d38b4e82b6d1ed9c51e9d8d3Before The Dawnde1c0f49967a4b72a73adedc76f79fcf20071197093<file id=\"3439f3989920e2ce259047de7a074ea7ca519dfa\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"a8d4263a845964c1bbf190e3b939cda5b7fc7c3a\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"689d92b11c3bdffef5379a05786df0a6ecdf4933\" format=\"Ogg Vorbis,96000,1,32,4\"/>bfa5388bf48d021949dd16427908924fb009d993b72f4909ca6ed34655092a274f2f535d5e3112616cccf518e1c83f4c5080b6418fdce7bbfa73b5340.37<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,AS,BD,BL,BM,BN,BT,CA,CN,FM,GL,GU,HK,ID,IN,JP,KG,KH,KP,KR,LA,LK,MF,MK,MM,MN,MO,MP,MV,MY,NC,NP,NR,PG,PH,PK,PM,PS,SB,SG,TH,TW,UM,US,VA,VI,VN\"/><external-id type=\"isrc\" id=\"FI3SY0700002\"/>3ba21233e6344e4fb586f798daccb71c<title>Deathstar</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnDeathstar Risingcadf2094d1eb446887565ceee4cbfe1dBefore The Dawnde1c0f49967a4b72a73adedc76f79fcf20113211053<file id=\"e0b50765f4c04fa613b69cd385574deb9f398eb0\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"2726e7a8b119af9c7a85d176c93a2baf1c4a5bab\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"618bacbdce0f8f8f7aed2394e3724c0fcebae316\" format=\"Ogg Vorbis,96000,1,32,4\"/>0b441dabfa2127fc2ac7f7c3fd5ca315a6da92f2fd994c47b0aa4388638466056643971b24c5dd4ca44cb3b79642c72538fd1452655a18babffe408a0.33<restriction catalogues=\"free,daypass,premium,shuffle\" allowed=\"AT,CH,CZ,DE,DK,GR,HU,IT,NO,PL,SE\"/><restriction catalogues=\"commercial\" allowed=\"\"/><external-id type=\"isrc\" id=\"FI3SY1000014\"/>170d1069460049e3a98d0dd2ac0d343e<title>Phoenix Rising</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnRise Of The Phoenix8c1a5c02462c43eea7c058680bb74162Before The Dawnde1c0f49967a4b72a73adedc76f79fcf20123282986<file id=\"e9c335a40343e4f10ee5a1c6076d743367ea5a12\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"f76125833ca7ac26efddc3f6c7b43ba5cdf6cb27\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"b2bf62b71a0b148421db1a9d6f0dd690746b25f4\" format=\"Ogg Vorbis,96000,1,32,4\"/>f0ff51767849be967d4205ee5a97c0fdf15d132520645135c788b6665234c8768cf1e9bfdcfe39687c23ba0ca9ce3dd99e9210645842312f2655fa6a0.31<restriction catalogues=\"free,daypass,premium,shuffle\" allowed=\"AT,CH,CY,CZ,DE,DK,GR,HU,IT,MT,NO,PL,SE\"/><restriction catalogues=\"commercial\" allowed=\"\"/><external-id type=\"isrc\" id=\"FI3SY1200003\"/>f3a634f722084daaaf1a7c6738dac599<title>Monsters</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnSoundscape Of Silenceeea49cfc347e4a96acee145f6e1739f9Before The Dawnde1c0f49967a4b72a73adedc76f79fcf20088290800<file id=\"e8d1b069d6ce03d95d1a5e79c4dc33af7b8d846e\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"778c256837b6f5b12f04beb2d1381359f7487b3e\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"717528d2f0f2a3cb31fed086e721fc6331430205\" format=\"Ogg Vorbis,96000,1,32,4\"/>2c1ba3cfddeacc809749e09eac89f53c13783e64086bfc5622e51e684404d03d85c942efa27a95475f1b94f0e524716a260d4402b88066553f31ca0f0.36<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,BL,BM,GL,JP,KG,MF,MK,MM,PS,VA\"/><external-id type=\"isrc\" id=\"FI3SY0800080\"/>11spotify:user:asaric1994:playlist:0mNJ29IqPmA03NKYtCTErjBefore the Dawnspotify:mosaic:d586addf2450b2c9480397e1176393b371ea7480:2ad0a206dd23de786c971328795bbfbb3ccae105:8eaf16998617aea82ad9c79705a8f650b3d431f8:655ca18730ba79457d2db6e32224b3c74b890c58spotify:mosaic:392300e8bfbb3c3bfa2f5dbbcccaab3c4990a0fd:3757becb90040176ed799186a3208ba4a89c892f:a6d5f28a92a3491c1d7237e387bc05df196a1cd4:17df99c6b4ae7c690899b04eb2c0f6f329de2543spotify:mosaic:e1a2405ed5f06e61b74037f8910b91e8678d522e:35a162a947e905a997051acc881a87d277d363cb:28c495bac7b5b1daa8a321aabdb985692db2a897:45c388188db33a6b78c96cd6781089604664bda7spotify:user:musen27:playlist:5J7W6iDUc9bAN8VdmG52P9Before the dawn
spotify:mosaic:10d484798a41e4966e04c8e9fb7eb69bb9634c57:b39e1464c5b1051f0e64f86f6e31498a3409bcfc:b39e1464c5b1051f0e64f86f6e31498a3409bcfc:0ee58f3b476c0271c77db7409a09eeb9d7c0ed36spotify:mosaic:a10f2b4eb433044cddfac64b41a708fc288fa062:6a60abbbba19563f688ad0fdcf080d577d9bb330:6a60abbbba19563f688ad0fdcf080d577d9bb330:58312b1c15ef420a5cb1bd4d111af3988bcf369espotify:mosaic:c303e9a4229a44eabf5e0d652224baf8cd9835ff:73723d97144bcccc344a65a6d3856e260571ceba:73723d97144bcccc344a65a6d3856e260571ceba:501910fbdd95bdf8de80731610bc613044609a5fspotify:user:gliddy:playlist:5lepGQa2z2Enwj4ygWmDJrBefore the dawn
spotify:mosaic:f0ff51767849be967d4205ee5a97c0fdf15d1325:10d484798a41e4966e04c8e9fb7eb69bb9634c57:b39e1464c5b1051f0e64f86f6e31498a3409bcfc:f0ff51767849be967d4205ee5a97c0fdf15d1325spotify:mosaic:20645135c788b6665234c8768cf1e9bfdcfe3968:a10f2b4eb433044cddfac64b41a708fc288fa062:6a60abbbba19563f688ad0fdcf080d577d9bb330:20645135c788b6665234c8768cf1e9bfdcfe3968spotify:mosaic:7c23ba0ca9ce3dd99e9210645842312f2655fa6a:c303e9a4229a44eabf5e0d652224baf8cd9835ff:73723d97144bcccc344a65a6d3856e260571ceba:7c23ba0ca9ce3dd99e9210645842312f2655fa6aspotify:user:krlin02:playlist:2nJNmwFwTWuWsoAh5AcmaqBefore The Dawn \xe2\x80\x93 My Darkness
spotify:mosaic:0ee58f3b476c0271c77db7409a09eeb9d7c0ed36:0ee58f3b476c0271c77db7409a09eeb9d7c0ed36:0ee58f3b476c0271c77db7409a09eeb9d7c0ed36:0ee58f3b476c0271c77db7409a09eeb9d7c0ed36spotify:mosaic:58312b1c15ef420a5cb1bd4d111af3988bcf369e:58312b1c15ef420a5cb1bd4d111af3988bcf369e:58312b1c15ef420a5cb1bd4d111af3988bcf369e:58312b1c15ef420a5cb1bd4d111af3988bcf369espotify:mosaic:501910fbdd95bdf8de80731610bc613044609a5f:501910fbdd95bdf8de80731610bc613044609a5f:501910fbdd95bdf8de80731610bc613044609a5f:501910fbdd95bdf8de80731610bc613044609a5fspotify:user:seamusseamus:playlist:2sAAJa7eg3SsvAhM2OaNQaBefore the Dawn Heals Us
spotify:mosaic:4cce673eae34ab0fd789ca9d98ab302881c3f56d:0dc444b00d4b973e8fa731b7a45b3e90148bdaf8:71204fa1537ed64ee3ffb258d8bad26a07e6b312:8c416a97347a3de6ed508e5a1d079a62a506d566spotify:mosaic:17a236916d87dc2d3df6476d07316b6a0bc843d0:e94f7febb8d2acd1a82b547d4b850ab1cb7e4666:8749651f7bde2df7732d5d96c020c57726d0158d:8b8cd1d14fc512f1bb51701073c5cfb564466f30spotify:mosaic:79b5b6e62dbbd15dd280d7bfca74eeafc0d08865:3ed7d066f3c985840f3813b1d9e98e88193b2135:dea863f92a10e10220a5cc1084d926d006c98ae6:0379ba8ac1f5338189dd8b5be263e5cf03adb4e1spotify:user:verenicemurillo:playlist:6AhA6iYqlNVSuygszTdZKyDarkerst before the dawn
spotify:mosaic:dfddbfbe833050cc3482331e889656f2e40b2b10:1b30ac8739596f10751e4f312d304eb4927a496d:1fa64b7873864cb6d12207e16f9e0338c672ed50:c2da7a4125acfc1fd223a8409815d855ddcd7526spotify:mosaic:af11a8812ddd9579704d25d57226b4b1eee40646:f768c698de602de537f98f3ce9571b941df23460:74d9640334772d179684ed094c8a376f511aa667:25644806c8d1230ae85df23878dc7e34e91139daspotify:mosaic:be58690fead64e839b093c23a408ad38a8d29452:d3edddb29e31297b54c85f3db5d47bf6a8b3d69a:b730753f389d7fc17a41031e3387c756a7f95078:6b2ac76e90f997725bc66749e9c1666b86b1b19fspotify:user:courtpancakes:playlist:6hcMNkfN7X2Y8tMyvW9SXObefore the dawn
spotify:mosaic:bef52a6debb32f1d6f08f9d1c6c17ca972de23e1:761c2985458e6277993cf5d13837dc4940dcef6f:9fb3183033ce7d1be75059807e39e5de4f7ca0f9:c899df4d636381a978159b2d8b906d093d9e02adspotify:mosaic:95b404b8abd3cf1745ae1e6f157d40bfecfaf68a:b9edf5114a7a344ea4bd204adb03113439e1e903:822d6ba083675186e621bdd6ec325dc6752b37fb:aed2a1c79074379c3223df21d3c7e72818f47f29spotify:mosaic:eddd8a73c233ff65c2791c321c1502b46bd424b4:eceb4f00405742b16139cdd8e2d70ca6fa783b97:77c2d1c6812ccc01dc4f8fbc96912573acf1ffa0:3cfdcd60bf00d80b6c99e8d44d0a8df78c3ba1d2"}'})
2014-05-14 10:22:22,905 (13ac) : DEBUG (logkit:13) - [pyemitter] emit(event: 'success', args: (<spotify.core.search_response.SearchResponse object at 0x03EBB170>,), kwargs: {})
2014-05-14 10:22:23,421 (1a30) : CRITICAL (core:561) - Exception when constructing response (most recent call last):
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\components\runtime.py", line 945, in construct_response
el = result._to_xml()
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\api\objectkit.py", line 613, in _to_xml
el = Framework.modelling.objects.ModelInterfaceObjectContainer._to_xml(self)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\modelling\objects.py", line 382, in _to_xml
root = Container._to_xml(self)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\modelling\objects.py", line 139, in _to_xml
self._append_children(root, self._objects)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\modelling\objects.py", line 145, in _append_children
el = obj._to_xml()
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\api\objectkit.py", line 79, in to_xml
el = ObjectWithHTTPHeaders.to_xml(self)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\api\objectkit.py", line 58, in to_xml
el = Framework.modelling.objects.Object.to_xml(self)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\modelling\objects.py", line 84, in to_xml
self.set_attribute(root, name, self.attributes[name])
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\modelling\objects.py", line 73, in set_attribute
self.core.log_exception("Exception setting attribute '%s' of object %s to %s (type: %s)", name, str(self), str(value), str(type(value)))
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\core.py", line 561, in log_exception
self.log.critical(self.traceback(fmt % tuple(args)))
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 1194, in critical
self.log(CRITICAL, msg, args, **kwargs)
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 1268, in log
self.handle(record)
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 1278, in handle
self.callHandlers(record)
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 1318, in callHandlers
hdlr.handle(record)
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 749, in handle
self.emit(record)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\core.py", line 88, in emit
self.core.sandbox.context.log.append(self.format(record))
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 724, in format
return fmt.format(record)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\core.py", line 76, in format
record.dict[key] = uni(record.dict[key])
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\subsystem\ospathfix.py", line 51, in uni
return unicode(s.decode('utf-8'))
File "C:\Program Files\Plex\Plex Media Server\python27.zip\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa0 in position 135: invalid start byte
Couldn't find what is causing unicode/utf-8 to fail and wasn't able to reproduce the issue on a Windows XP VM (this issue seems to be Windows XP/NT specific).
I've decided to just normalize everything to ASCII instead (removing all the use of unicode/utf-8), could you grab the development version (develop.zip) and let me know if this fixes searching.
Is develop.zip ready for that? SInce when tried I still get
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa0 in position 135: invalid start byte
Just noticed there were some places where unicode was still used, try the latest develop version now.
If you still find it breaking, let me know which view it breaks on (search results, artist, album, playlist) and send the full error stack-trace (like what you did with the original issue).
I still get the same issue searching for e.g. "Before the dawn".
I can try to collect logs later on...
Heres the log
2014-05-23 13:52:41,546 (1730) : INFO (logkit:16) - Search query: "before the dawn", type: all, count: 7, plain: False
2014-05-23 13:52:41,546 (1730) : DEBUG (logkit:13) - [pyemitter] on(events: ['success'], func: <function on_search at 0x03EF8E70>)
2014-05-23 13:52:41,562 (1730) : DEBUG (logkit:13) - [spotify.components.connection] send encoded: '{"args":["before the dawn",15,7,0],"name":"sp/search","id":"11"}'
2014-05-23 13:52:41,717 (12b0) : DEBUG (logkit:13) - [pyemitter] emit(event: 'message', args: (), kwargs: {'message': '{"id":11,"result":"11de1c0f49967a4b72a73adedc76f79fcfBefore The Dawne0aea1bd2a57c5e5c203346d5b8415ee0dc73f8e300300ae86e6c393a67a3819a71541f6c2221e544b2d2b50accf8f675e92314173451d470f44a9a9e9debf0.31<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"BL,MF\"/>678c1a5c02462c43eea7c058680bb74162Rise Of The Phoenixde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbumf0ff51767849be967d4205ee5a97c0fdf15d132520645135c788b6665234c8768cf1e9bfdcfe39687c23ba0ca9ce3dd99e9210645842312f2655fa6a0.43<restriction catalogues=\"free,daypass,premium,shuffle\" allowed=\"AT,CH,CY,CZ,DE,DK,GR,HU,IT,MT,NO,PL,SE\"/><restriction catalogues=\"commercial\" allowed=\"\"/><external-id type=\"upc\" id=\"727361287863\"/>cadf2094d1eb446887565ceee4cbfe1dDeathstar Risingde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbum0b441dabfa2127fc2ac7f7c3fd5ca315a6da92f2fd994c47b0aa4388638466056643971b24c5dd4ca44cb3b79642c72538fd1452655a18babffe408a0.42<restriction catalogues=\"free,daypass,premium,shuffle\" allowed=\"AT,CH,CZ,DE,DK,GR,HU,IT,NO,PL,SE\"/><restriction catalogues=\"commercial\" allowed=\"\"/><external-id type=\"upc\" id=\"727361271565\"/>584d392117f24781b48205feb4522ce3Deadlightde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbume0aea1bd2a57c5e5c203346d5b8415ee0dc73f8eae86e6c393a67a3819a71541f6c2221e544b2d2b50accf8f675e92314173451d470f44a9a9e9debf0.49<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,BD,BL,BM,BN,BT,CA,CN,FM,GL,HK,ID,IN,JP,KG,KH,KP,KR,LA,LK,MF,MK,MM,MN,MO,MV,MY,NC,NP,NR,PG,PH,PK,PM,PS,SB,SG,TH,TW,VA,VN\"/><external-id type=\"upc\" id=\"05099923560055\"/>eea49cfc347e4a96acee145f6e1739f9Soundscape Of Silencede1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbum2c1ba3cfddeacc809749e09eac89f53c13783e64086bfc5622e51e684404d03d85c942efa27a95475f1b94f0e524716a260d4402b88066553f31ca0f0.48<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,BL,BM,GL,JP,KG,MF,MK,MM,PS,VA\"/><external-id type=\"upc\" id=\"05099926538259\"/>d71ec61c79b54a93a2fc0cadae7ea273The Ghostde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbum10d484798a41e4966e04c8e9fb7eb69bb9634c57a10f2b4eb433044cddfac64b41a708fc288fa062c303e9a4229a44eabf5e0d652224baf8cd9835ff0.41<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"BL,BQ,CW,ME,MF,RS,SX\"/><external-id type=\"upc\" id=\"885686060025\"/>f0f67e12d38b4e82b6d1ed9c51e9d8d3Faithlessde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnsinglebfa5388bf48d021949dd16427908924fb009d993b72f4909ca6ed34655092a274f2f535d5e3112616cccf518e1c83f4c5080b6418fdce7bbfa73b5340.38<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,AS,BD,BL,BM,BN,BT,CA,CN,FM,GL,GU,HK,ID,IN,JP,KG,KH,KP,KR,LA,LK,MF,MK,MM,MN,MO,MP,MV,MY,NC,NP,NR,PG,PH,PK,PM,PS,SB,SG,TH,TW,UM,US,VA,VI,VN\"/><external-id type=\"upc\" id=\"05099923566453\"/>83ef7f0fd8c4421ab3e6f7c7c87c7ce0My Darknessde1c0f49967a4b72a73adedc76f79fcfBefore The Dawnalbum0ee58f3b476c0271c77db7409a09eeb9d7c0ed3658312b1c15ef420a5cb1bd4d111af3988bcf369e501910fbdd95bdf8de80731610bc613044609a5f0.37<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"BL,BQ,CW,ME,MF,RS,SX\"/><external-id type=\"upc\" id=\"885686060018\"/>11484465f4ebf57d4ed5b96d52851a0b2adc<title>Deadsong</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnDeadlight584d392117f24781b48205feb4522ce3Before The Dawnde1c0f49967a4b72a73adedc76f79fcf20076203053<file id=\"96a210d5f8b991843f9b3bcc1c356f362889794e\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"cc9e9d97259fa130bf669532609d864810f232b0\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"fa23e6c224ad71ceb394311b3bf7b3148631f7b0\" format=\"Ogg Vorbis,96000,1,32,4\"/>e0aea1bd2a57c5e5c203346d5b8415ee0dc73f8eae86e6c393a67a3819a71541f6c2221e544b2d2b50accf8f675e92314173451d470f44a9a9e9debf0.44<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,BD,BL,BM,BN,BT,CA,CN,FM,GL,HK,ID,IN,JP,KG,KH,KP,KR,LA,LK,MF,MK,MM,MN,MO,MV,MY,NC,NP,NR,PG,PH,PK,PM,PS,SB,SG,TH,TW,VA,VN\"/><external-id type=\"isrc\" id=\"FI3SY0700006\"/>e18344f15737481d8bede7244ba31c1c<title>Dying Sun</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnSoundscape Of Silenceeea49cfc347e4a96acee145f6e1739f9Before The Dawnde1c0f49967a4b72a73adedc76f79fcf20081191826<file id=\"0654bb983d1ab210155393127a6d4ceecac51b0c\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"a4b629842d4424b74d73dd42c98550e47a99f99c\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"485603af7265832a5023576e275578ec114e2f83\" format=\"Ogg Vorbis,96000,1,32,4\"/>2c1ba3cfddeacc809749e09eac89f53c13783e64086bfc5622e51e684404d03d85c942efa27a95475f1b94f0e524716a260d4402b88066553f31ca0f0.41<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,BL,BM,GL,JP,KG,MF,MK,MM,PS,VA\"/><external-id type=\"isrc\" id=\"FI3SY0800075\"/>4614fba641894f5f9cff583aef675b74<title>Before the Dawn</title>518a0af0215e4ca2a592efd01f7f4e44Judas PriestSingle Cutse5249acd0c474388b51161af3fb487c1Judas Priest518a0af0215e4ca2a592efd01f7f4e4420113201733<file id=\"69baaa312a731cd2261e9ac45b5ca0b0cd3cf5d2\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"9fbf1efa92528e95e6104fdcbbb012c2145b0aa1\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"47f736f2d667e48b3ee05305516d4c38a7c5e87d\" format=\"Ogg Vorbis,96000,1,32,4\"/>dfff1edb4ba05b8a4adfdca308d752b42dbfb8d5ee93f2429e1ca1f01ed1a3ececcfe0c8eef61b468c6c2468acb61143c1192db803b79ec52151f8260.31<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AS,AW,AX,BL,BQ,BV,CC,CW,CX,GG,GS,HM,IM,JE,JP,MF,NF,PR,SJ,SX,UM,US,VI\"/><external-id type=\"isrc\" id=\"GBBBN0102368\"/>62651530883a48f2b4e0e7bcd45c65b1<title>Faithless</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnFaithlessf0f67e12d38b4e82b6d1ed9c51e9d8d3Before The Dawnde1c0f49967a4b72a73adedc76f79fcf20071197093<file id=\"3439f3989920e2ce259047de7a074ea7ca519dfa\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"a8d4263a845964c1bbf190e3b939cda5b7fc7c3a\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"689d92b11c3bdffef5379a05786df0a6ecdf4933\" format=\"Ogg Vorbis,96000,1,32,4\"/>bfa5388bf48d021949dd16427908924fb009d993b72f4909ca6ed34655092a274f2f535d5e3112616cccf518e1c83f4c5080b6418fdce7bbfa73b5340.37<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,AS,BD,BL,BM,BN,BT,CA,CN,FM,GL,GU,HK,ID,IN,JP,KG,KH,KP,KR,LA,LK,MF,MK,MM,MN,MO,MP,MV,MY,NC,NP,NR,PG,PH,PK,PM,PS,SB,SG,TH,TW,UM,US,VA,VI,VN\"/><external-id type=\"isrc\" id=\"FI3SY0700002\"/>3ba21233e6344e4fb586f798daccb71c<title>Deathstar</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnDeathstar Risingcadf2094d1eb446887565ceee4cbfe1dBefore The Dawnde1c0f49967a4b72a73adedc76f79fcf20113211053<file id=\"e0b50765f4c04fa613b69cd385574deb9f398eb0\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"2726e7a8b119af9c7a85d176c93a2baf1c4a5bab\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"618bacbdce0f8f8f7aed2394e3724c0fcebae316\" format=\"Ogg Vorbis,96000,1,32,4\"/>0b441dabfa2127fc2ac7f7c3fd5ca315a6da92f2fd994c47b0aa4388638466056643971b24c5dd4ca44cb3b79642c72538fd1452655a18babffe408a0.33<restriction catalogues=\"free,daypass,premium,shuffle\" allowed=\"AT,CH,CZ,DE,DK,GR,HU,IT,NO,PL,SE\"/><restriction catalogues=\"commercial\" allowed=\"\"/><external-id type=\"isrc\" id=\"FI3SY1000014\"/>170d1069460049e3a98d0dd2ac0d343e<title>Phoenix Rising</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnRise Of The Phoenix8c1a5c02462c43eea7c058680bb74162Before The Dawnde1c0f49967a4b72a73adedc76f79fcf20123282986<file id=\"e9c335a40343e4f10ee5a1c6076d743367ea5a12\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"f76125833ca7ac26efddc3f6c7b43ba5cdf6cb27\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"b2bf62b71a0b148421db1a9d6f0dd690746b25f4\" format=\"Ogg Vorbis,96000,1,32,4\"/>f0ff51767849be967d4205ee5a97c0fdf15d132520645135c788b6665234c8768cf1e9bfdcfe39687c23ba0ca9ce3dd99e9210645842312f2655fa6a0.3<restriction catalogues=\"free,daypass,premium,shuffle\" allowed=\"AT,CH,CY,CZ,DE,DK,GR,HU,IT,MT,NO,PL,SE\"/><restriction catalogues=\"commercial\" allowed=\"\"/><external-id type=\"isrc\" id=\"FI3SY1200003\"/>f3a634f722084daaaf1a7c6738dac599<title>Monsters</title>de1c0f49967a4b72a73adedc76f79fcfBefore The DawnSoundscape Of Silenceeea49cfc347e4a96acee145f6e1739f9Before The Dawnde1c0f49967a4b72a73adedc76f79fcf20088290800<file id=\"e8d1b069d6ce03d95d1a5e79c4dc33af7b8d846e\" format=\"Ogg Vorbis,320000,1,32,4\"/><file id=\"778c256837b6f5b12f04beb2d1381359f7487b3e\" format=\"Ogg Vorbis,160000,1,32,4\"/><file id=\"717528d2f0f2a3cb31fed086e721fc6331430205\" format=\"Ogg Vorbis,96000,1,32,4\"/>2c1ba3cfddeacc809749e09eac89f53c13783e64086bfc5622e51e684404d03d85c942efa27a95475f1b94f0e524716a260d4402b88066553f31ca0f0.36<restriction catalogues=\"free,daypass,premium,shuffle,commercial\" forbidden=\"AF,BL,BM,GL,JP,KG,MF,MK,MM,PS,VA\"/><external-id type=\"isrc\" id=\"FI3SY0800080\"/>6spotify:user:1164035136:playlist:4KbWJKza30LmcZuv7Sb1I9Before The Dawnspotify:mosaic:0ee58f3b476c0271c77db7409a09eeb9d7c0ed36:10d484798a41e4966e04c8e9fb7eb69bb9634c57:f0ff51767849be967d4205ee5a97c0fdf15d1325:b39e1464c5b1051f0e64f86f6e31498a3409bcfcspotify:mosaic:58312b1c15ef420a5cb1bd4d111af3988bcf369e:a10f2b4eb433044cddfac64b41a708fc288fa062:20645135c788b6665234c8768cf1e9bfdcfe3968:6a60abbbba19563f688ad0fdcf080d577d9bb330spotify:mosaic:501910fbdd95bdf8de80731610bc613044609a5f:c303e9a4229a44eabf5e0d652224baf8cd9835ff:7c23ba0ca9ce3dd99e9210645842312f2655fa6a:73723d97144bcccc344a65a6d3856e260571cebaspotify:user:1289344027:playlist:4bIBwquz6oMG2ZJixyomA9Before the dawn
spotify:mosaic:10d484798a41e4966e04c8e9fb7eb69bb9634c57:10d484798a41e4966e04c8e9fb7eb69bb9634c57:b39e1464c5b1051f0e64f86f6e31498a3409bcfc:3d84d117eabb740dd8da588a09bbad1bc6311660spotify:mosaic:a10f2b4eb433044cddfac64b41a708fc288fa062:a10f2b4eb433044cddfac64b41a708fc288fa062:6a60abbbba19563f688ad0fdcf080d577d9bb330:c3c5c70360d2258f763675824ef30590d4fab735spotify:mosaic:c303e9a4229a44eabf5e0d652224baf8cd9835ff:c303e9a4229a44eabf5e0d652224baf8cd9835ff:73723d97144bcccc344a65a6d3856e260571ceba:9a05cb961c28052fc0fb7d780368584ada5f9a36spotify:user:ninjapimp:playlist:5DGpWfvrBBWfoPcDpwVq4rbefore the dawn
spotify:mosaic:10d484798a41e4966e04c8e9fb7eb69bb9634c57:10d484798a41e4966e04c8e9fb7eb69bb9634c57:10d484798a41e4966e04c8e9fb7eb69bb9634c57:f0ff51767849be967d4205ee5a97c0fdf15d1325spotify:mosaic:a10f2b4eb433044cddfac64b41a708fc288fa062:a10f2b4eb433044cddfac64b41a708fc288fa062:a10f2b4eb433044cddfac64b41a708fc288fa062:20645135c788b6665234c8768cf1e9bfdcfe3968spotify:mosaic:c303e9a4229a44eabf5e0d652224baf8cd9835ff:c303e9a4229a44eabf5e0d652224baf8cd9835ff:c303e9a4229a44eabf5e0d652224baf8cd9835ff:7c23ba0ca9ce3dd99e9210645842312f2655fa6aspotify:user:1259837317:playlist:6YVPgZwkJ8F3Vt4r9od3IHBefore The Dawn
spotify:mosaic:10d484798a41e4966e04c8e9fb7eb69bb9634c57:b39e1464c5b1051f0e64f86f6e31498a3409bcfc:3d84d117eabb740dd8da588a09bbad1bc6311660:10d484798a41e4966e04c8e9fb7eb69bb9634c57spotify:mosaic:a10f2b4eb433044cddfac64b41a708fc288fa062:6a60abbbba19563f688ad0fdcf080d577d9bb330:c3c5c70360d2258f763675824ef30590d4fab735:a10f2b4eb433044cddfac64b41a708fc288fa062spotify:mosaic:c303e9a4229a44eabf5e0d652224baf8cd9835ff:73723d97144bcccc344a65a6d3856e260571ceba:9a05cb961c28052fc0fb7d780368584ada5f9a36:c303e9a4229a44eabf5e0d652224baf8cd9835ffspotify:user:1115908863:playlist:1pEnuZKOGUT2zUoQJe9GKHBefore the Dawn
spotify:mosaic:10d484798a41e4966e04c8e9fb7eb69bb9634c57:79fa025d1cf1b5c6ed986f7fafb399834c7de4d6:b39e1464c5b1051f0e64f86f6e31498a3409bcfc:0ee58f3b476c0271c77db7409a09eeb9d7c0ed36spotify:mosaic:a10f2b4eb433044cddfac64b41a708fc288fa062:ee300276a2ab14ce3d0f9a552ef5d69b70602725:6a60abbbba19563f688ad0fdcf080d577d9bb330:58312b1c15ef420a5cb1bd4d111af3988bcf369espotify:mosaic:c303e9a4229a44eabf5e0d652224baf8cd9835ff:aef135c36328f75ec20d463dcd70a04effe1a1e9:73723d97144bcccc344a65a6d3856e260571ceba:501910fbdd95bdf8de80731610bc613044609a5fspotify:user:1159643858:playlist:1CWL0XQbldMxs40rVQvkViBefore The Dawn \xe2\x80\x93 Deathstar Rising
spotify:mosaic:0b441dabfa2127fc2ac7f7c3fd5ca315a6da92f2:f0ff51767849be967d4205ee5a97c0fdf15d1325:10d484798a41e4966e04c8e9fb7eb69bb9634c57:f0ff51767849be967d4205ee5a97c0fdf15d1325spotify:mosaic:fd994c47b0aa4388638466056643971b24c5dd4c:20645135c788b6665234c8768cf1e9bfdcfe3968:a10f2b4eb433044cddfac64b41a708fc288fa062:20645135c788b6665234c8768cf1e9bfdcfe3968spotify:mosaic:a44cb3b79642c72538fd1452655a18babffe408a:7c23ba0ca9ce3dd99e9210645842312f2655fa6a:c303e9a4229a44eabf5e0d652224baf8cd9835ff:7c23ba0ca9ce3dd99e9210645842312f2655fa6a"}'})
2014-05-23 13:52:41,750 (330) : DEBUG (logkit:13) - [pyemitter] emit(event: 'success', args: (<spotify.core.search_response.SearchResponse object at 0x03DC9E10>,), kwargs: {})
2014-05-23 13:52:42,000 (1730) : CRITICAL (core:561) - Exception when constructing response (most recent call last):
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\components\runtime.py", line 945, in construct_response
el = result._to_xml()
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\api\objectkit.py", line 613, in _to_xml
el = Framework.modelling.objects.ModelInterfaceObjectContainer._to_xml(self)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\modelling\objects.py", line 382, in _to_xml
root = Container._to_xml(self)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\modelling\objects.py", line 139, in _to_xml
self._append_children(root, self._objects)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\modelling\objects.py", line 145, in _append_children
el = obj._to_xml()
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\api\objectkit.py", line 79, in to_xml
el = ObjectWithHTTPHeaders.to_xml(self)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\api\objectkit.py", line 58, in to_xml
el = Framework.modelling.objects.Object.to_xml(self)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\modelling\objects.py", line 84, in to_xml
self.set_attribute(root, name, self.attributes[name])
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\modelling\objects.py", line 73, in set_attribute
self.core.log_exception("Exception setting attribute '%s' of object %s to %s (type: %s)", name, str(self), str(value), str(type(value)))
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\core.py", line 561, in log_exception
self.log.critical(self.traceback(fmt % tuple(args)))
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 1194, in critical
self.log(CRITICAL, msg, args, **kwargs)
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 1268, in log
self.handle(record)
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 1278, in handle
self.callHandlers(record)
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 1318, in callHandlers
hdlr.handle(record)
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 749, in handle
self.emit(record)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\core.py", line 88, in emit
self.core.sandbox.context.log.append(self.format(record))
File "C:\Program Files\Plex\Plex Media Server\python27.zip\logging__init.py", line 724, in format
return fmt.format(record)
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\core.py", line 76, in format
record.dict[key] = uni(record.dict[key])
File "C:\Documents and Settings\Owner\Local Settings\Application Data\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\subsystem\ospathfix.py", line 51, in uni
return unicode(s.decode('utf-8'))
File "C:\Program Files\Plex\Plex Media Server\python27.zip\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa0 in position 135: invalid start byte
It must be this that fails or?
xml = etree.fromstring(data['result'].encode('utf-8'))
in
Contents\Libraries\Shared\spotify\core\search_response.py
In the latest version I changed a %s to a %r in search.py to get searching to work, Sometimes the number of songs is shown incorrectly - but at least I get a usable result
title = '%s (%r)' % (
cls.get_title(type, True),
locale.format('%d', total, grouping=True)
)
it seems there are some unicode spaces or similar that mess things up '\xa0' - i.e. when hitting more than e.g. 1000 tracks.
This variant also seems to work (if you import re):
title = '%s (%s)' % (
cls.get_title(type, True),
re.sub("\xa0", "", locale.format('%d', total, grouping=True))
)
locale.format
is used to format numbers to your locale (e.g. 1000
= 1,000
in NZ), looks like the \xa0
(non-breaking space) character is used in some locales as the grouping separator though.
I'll need to look at why "%r" is needed here, but will get this fixed in the main branch later today.