scakemyer / plugin.video.quasar

Quasar add-on for Kodi
https://quasar.surge.sh/
346 stars 94 forks source link

Percent sign in torrent filename causes "Internal server error" #748

Open ORGaniZMo opened 7 years ago

ORGaniZMo commented 7 years ago

When I try to play any of the TV Shows, getting errors after buffering or file selection.

Steps to Reproduce (for bugs)

  1. Quasar -> TV Shows -> Search -> TV Show with a percent sign in its name -> any season -> any episode -> torrent file with percent sign
  2. Wait for buffering 100%
  3. "Internal server error"

Your Environment

Environment name and version: Kodi 17 Operating System and version: Windows 7 SP1 Pro x64 Link to Kodi debug log: http://paste.ubuntu.com/24032321/

ORGaniZMo commented 7 years ago
10:40:22.804 T:4360  NOTICE: [plugin.video.quasar] ERRO  libtorrent   ▶ logAlerts        tracker_error_alert: 3% (Season 01) BaibaKo (udp://tracker.istole.it:80) (-1) Этот хост неизвестен "" (3)
10:40:24.143 T:4360  NOTICE: [plugin.video.quasar] INFO  btplayer     ▶ playerLoop       Waiting for playback...
10:40:24.158 T:4360  NOTICE: [plugin.video.quasar]
10:40:24.159 T:4360  NOTICE: Previous line repeats 1 times.
10:40:24.159 T:4360  NOTICE: [plugin.video.quasar] 2017/02/20 10:40:24 [Recovery] panic recovered:
10:40:24.159 T:4360  NOTICE: [plugin.video.quasar] GET /play?tmdb=1236192&type=episode&uri=D%3A%5CKodi%5Cportable_data%5Ccache%5Cquasar%5C4062f954487b31975156cfc49e5b8192f5cdb560.torrent HTTP/1.1
10:40:24.159 T:4360  NOTICE: [plugin.video.quasar] Host: localhost:65251
10:40:24.160 T:4360  NOTICE: [plugin.video.quasar] Connection: close
10:40:24.160 T:4360  NOTICE: [plugin.video.quasar] Accept-Encoding: identity
10:40:24.160 T:4360  NOTICE: [plugin.video.quasar] Connection: close
10:40:24.160 T:4360  NOTICE: [plugin.video.quasar] User-Agent: Python-urllib/2.7
10:40:24.160 T:4360  NOTICE: [plugin.video.quasar]
10:40:24.160 T:8560  NOTICE: Previous line repeats 1 times.
10:40:24.160 T:8560   ERROR: [plugin.video.quasar] Traceback (most recent call last):
10:40:24.160 T:4360  NOTICE: [plugin.video.quasar] runtime error: invalid memory address or nil pointer dereference
10:40:24.160 T:8560   ERROR: [plugin.video.quasar]   File "D:\Kodi\portable_data\addons\plugin.video.quasar\resources\site-packages\quasar\navigation.py", line 130, in run
10:40:24.161 T:4360  NOTICE: [plugin.video.quasar] /usr/local/go/src/runtime/panic.go:489 (0x42c1dd)
10:40:24.161 T:8560   ERROR: [plugin.video.quasar]     data = _json(url)
10:40:24.161 T:4360  NOTICE: [plugin.video.quasar] /usr/local/go/src/runtime/panic.go:63 (0x42b035)
10:40:24.161 T:8560   ERROR: [plugin.video.quasar]   File "D:\Kodi\portable_data\addons\plugin.video.quasar\resources\site-packages\quasar\navigation.py", line 47, in _json
10:40:24.161 T:4360  NOTICE: [plugin.video.quasar] /usr/local/go/src/runtime/signal_windows.go:161 (0x43fd0b)
10:40:24.161 T:8560   ERROR: [plugin.video.quasar]     with closing(urllib2.urlopen(url)) as response:
10:40:24.161 T:4360  NOTICE: [plugin.video.quasar] /usr/local/go/src/net/url/url.go:726 (0x5e6777)
10:40:24.161 T:8560   ERROR: [plugin.video.quasar]   File "D:\Kodi\system\python\Lib\urllib2.py", line 154, in urlopen
10:40:24.161 T:4360  NOTICE: [plugin.video.quasar] /go/src/github.com/scakemyer/quasar/api/play.go:64 (0x9ec695)
10:40:24.161 T:8560   ERROR: [plugin.video.quasar]     return opener.open(url, data, timeout)
10:40:24.161 T:4360  NOTICE: [plugin.video.quasar] /go/src/github.com/gin-gonic/gin/context.go:97 (0x78bc81)
10:40:24.161 T:8560   ERROR: [plugin.video.quasar]   File "D:\Kodi\system\python\Lib\urllib2.py", line 437, in open
10:40:24.161 T:4360  NOTICE: [plugin.video.quasar] /go/src/github.com/gin-gonic/gin/logger.go:72 (0x79a616)
10:40:24.162 T:8560   ERROR: [plugin.video.quasar]     response = meth(req, response)
10:40:24.162 T:8560   ERROR: [plugin.video.quasar]   File "D:\Kodi\system\python\Lib\urllib2.py", line 550, in http_response
10:40:24.162 T:4360  NOTICE: [plugin.video.quasar] /go/src/github.com/gin-gonic/gin/context.go:97 (0x78bc81)
10:40:24.162 T:8560   ERROR: [plugin.video.quasar]     'http', request, response, code, msg, hdrs)
10:40:24.162 T:4360  NOTICE: [plugin.video.quasar] /go/src/github.com/gin-gonic/gin/recovery.go:45 (0x79b361)
10:40:24.162 T:8560   ERROR: [plugin.video.quasar]   File "D:\Kodi\system\python\Lib\urllib2.py", line 475, in error
10:40:24.162 T:4360  NOTICE: [plugin.video.quasar] /go/src/github.com/gin-gonic/gin/context.go:97 (0x78bc81)
10:40:24.162 T:8560   ERROR: [plugin.video.quasar]     return self._call_chain(*args)
10:40:24.162 T:4360  NOTICE: [plugin.video.quasar] /go/src/github.com/gin-gonic/gin/gin.go:284 (0x792007)
10:40:24.162 T:8560   ERROR: [plugin.video.quasar]   File "D:\Kodi\system\python\Lib\urllib2.py", line 409, in _call_chain
10:40:24.162 T:4360  NOTICE: [plugin.video.quasar] /go/src/github.com/gin-gonic/gin/gin.go:265 (0x791912)
10:40:24.162 T:8560   ERROR: [plugin.video.quasar]     result = func(*args)
10:40:24.162 T:4360  NOTICE: [plugin.video.quasar] /usr/local/go/src/net/http/server.go:2238 (0x677017)
10:40:24.163 T:8560   ERROR: [plugin.video.quasar]   File "D:\Kodi\system\python\Lib\urllib2.py", line 558, in http_error_default
10:40:24.163 T:4360  NOTICE: [plugin.video.quasar] /usr/local/go/src/net/http/server.go:2568 (0x678479)
10:40:24.163 T:8560   ERROR: [plugin.video.quasar]     raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
10:40:24.163 T:4360  NOTICE: [plugin.video.quasar] /usr/local/go/src/net/http/server.go:1825 (0x6745c9)
10:40:24.163 T:8560   ERROR: [plugin.video.quasar] HTTPError: HTTP Error 500: Internal Server Error
10:40:24.163 T:4360  NOTICE: [plugin.video.quasar] /usr/local/go/src/runtime/asm_amd64.s:2197 (0x456be1)
10:40:24.163 T:8560   ERROR: [plugin.video.quasar]
10:40:24.198 T:4360  NOTICE: [plugin.video.quasar] 
10:40:24.224 T:740   ERROR: Playlist Player: skipping unplayable item: 0, path [plugin://plugin.video.quasar/show/68467/season/1/episode/1/links]
elgatito commented 7 years ago

Is it possible quasar treats "3%" query as a printf operator or something like that?

scakemyer commented 7 years ago

Looks more like an escaping issue when using url.Parse in play.go