Kodi Community Forum

Full Version: [WIP] HTPC-Manager Beta, Manage XBMC, Sabnzbd, SickBeard with one app
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Anyone installed this on a Synology NAS?
(2013-05-16, 16:52)styxit Wrote: [ -> ]
(2013-05-16, 16:49)tmiland Wrote: [ -> ]I did try different PIL's, but none of them worked...

You are using readyNas? I don't have readyNas so can't really test it.

Yes i am, but running Debian Squeeze in a chroot, so it's like a normal debian install. :-)

I have added the latest git version today, and i still get no images or thumbs...

Image

XBMC tab:

Image

Image opened in a new tab:

Image

Address of the image is:
Code:
http://192.168.2.5:8014/xbmc/GetThumb?w=100&h=150&thumb=image%3A%2F%2Fnfs%253a%252f%252f192.168.2.5%252fc%252fmedia%252fFilmer%252fA.Good.Day.To.Die.Hard.2013.1080p.EXTENDED.Bluray.X264-BARC0DE%252fA.Good.Day.To.Die.Hard.2013.1080p.EXTENDED.Bluray.X264-BARC0DE.tbn%2F

Any help is much appreciated! Smile
I have the thumb issue too on an ubuntu server x64 box, any pointers (if anyone knows any) would be fantastic, if not thanks anyway, its a minor issue for me.
About the missing thumbnails: is it because my XMBC machine is on a different machine?
Great job with the website styxit. Sorry i never got back to you. RL stuff.

@tmiland

I have the same problem with my install now. Seemed to be a problem with the PIL package.
Try renaming the PIL folder in /libs/ to PIL-old.
Make sure you have the python-imaging package installed (sudo apt-get install python-imaging).

If it still isnt working you can try the version from my repo.

I submitted a pull request to styxit, but I havent tested it on anything other than my own system.
(2013-06-09, 18:21)mbw2001 Wrote: [ -> ]Great job with the website styxit. Sorry i never got back to you. RL stuff.

@tmiland

I have the same problem with my install now. Seemed to be a problem with the PIL package.
Try renaming the PIL folder in /libs/ to PIL-old.
Make sure you have the python-imaging package installed (sudo apt-get install python-imaging).

If it still isnt working you can try the version from my repo.

I submitted a pull request to styxit, but I havent tested it on anything other than my own system.

Thanks for the update, but i am still having the same issue, are there any special permissions that needs to be set?(chmod)

I still get "500 Internal Server Error" on the images... Confused
Are you getting the error with the proxy file from my repo?

I only did a pull request. Styxit's repo wont change untill he approves it.

You can try overwriting the htpc/proxy.py with the version in my repo.
(2013-06-09, 20:26)mbw2001 Wrote: [ -> ]Are you getting the error with the proxy file from my repo?

I only did a pull request. Styxit's repo wont change untill he approves it.

You can try overwriting the htpc/proxy.py with the version in my repo.

If this: https://github.com/mbw2001/HTPC-Manager/...c/proxy.py is your repo, then yes. Smile
Oh i forgot. You need to delete the /userdata/images/ folder aswell.
(2013-06-10, 08:12)mbw2001 Wrote: [ -> ]Oh i forgot. You need to delete the /userdata/images/ folder aswell.

I have tried that one too... Really weird! Undecided
I merged the commit from mbw2001 into the master. Keep in mind, this will not simply fix the images for everyone.

I am really cracking my head over this because images are what makes htpcManager look good. But it relies strongly on PIL and because PIL is difficult to install on various systems, i am considering using/creating an external image resize api service (api) and store the response in the userdata dir. This would resize images for every platform without a problem, but requires an internet connection from the device running htpc manager. The downside of this all is that htpc Manager would no longer be a stand-alone application, because it uses an api.

I can not find a decent image resize api wich met my requirements, so creating one myself might be the best option.

Things to consider:
- users depend on 3rd party (image resize service)
- Requires internet connection
- User upload speed
- Bandwidth usage

Is there anyone who thinks this is a good or bad idea, and why? Or any other solutions?


A (temporarily) fix could also be; serving the un-scaled image if PIL can not be found.

Or maybe combine these two options:
- use Pil if available
- no PIL? Use external api to resize
- No PIL and no internet connection? use fullsize image. You are probably running on a local environmet so serving big images is probably not an issue.
Serving un-scaled images seems the best solution in my opinion.

Main problem i see will be XBMC movie details where the image is brightened and resized for background. This will look way off with an original image.

A 3rd party service would mean expenses which is always a bad thing for an open source project.
I have done some debugging now, so here it goes:

With pillow:
Code:
192.168.2.2 - ****** [11/Jun/2013:07:08:14] "GET /xbmc/GetThumb?w=100&h=150&thumb=image%3A%2F%2Fhttp%253a%252f%252fcf2.imgobject.com%252ft%252fp%252foriginal%252fn8ob0xjLIjnvqgWY57rPQYOw7t.jpg%2F HTTP/1.1" 500 1815 "http://192.168.2.5:8014/xbmc/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"
[11/Jun/2013:07:08:14] HTTP
Request Headers:
  AUTHORIZATION: Digest username="******", realm="HTPC Manager", nonce="1370934388:2ea5243218022edc23b96b2c2ba3ef6a", uri="/xbmc/GetThumb?w=100&h=150&thumb=image%3A%2F%2Fhttp%253a%252f%252fcf2.imgobject.com%252ft%252fp%252foriginal%252fkJQPygYB8aNEevZZHRifyYrAdU9.jpg%2F", algorithm=MD5, response="2843249b5319ee4512d52d62fd7a5610", qop=auth, nc=00000082, cnonce="ec0537c4a7183fbc"
  REFERER: http://192.168.2.5:8014/xbmc/
  HOST: 192.168.2.5:8014
  CONNECTION: keep-alive
  Remote-Addr: 192.168.2.2
  ACCEPT: */*
  USER-AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36
  COOKIE: active_tab=%23movies; plushQueuePerPage=10; plushHistPerPage=20; sdmenu_my_menu=0000000001; wanted_view2=details; advanced_toggle_checked=0; manage_view2=details; plushContainerWidth=100%25; plushNoTopMenu=0; snatched_view2=list; soon_view2=thumbs; late_view2=list; SpryMedia_DataTables_artist_table_home=%7B%22iCreate%22%3A1370932865769%2C%22iStart%22%3A0%2C%22iEnd%22%3A0%2C%22iLength%22%3A50%2C%22aaSorting%22%3A%5B%5B0%2C%22asc%22%2C0%5D%5D%2C%22oSearch%22%3A%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%2C%22aoSearchCols%22%3A%5B%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%2C%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%2C%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%2C%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%2C%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%5D%2C%22abVisCols%22%3A%5Btrue%2Ctrue%2Ctrue%2Ctrue%2Ctrue%5D%7D
  ACCEPT-LANGUAGE: nb,en-US;q=0.8,en;q=0.6,no;q=0.4,nn;q=0.2
  DNT: 1
  ACCEPT-ENCODING: gzip,deflate,sdch
[11/Jun/2013:07:08:14] HTTP Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/_cpdispatch.py", line 34, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/home/.htpc-manager/modules/xbmc.py", line 181, in GetThumb
    return get_image(url, h, w, o, self.auth())
  File "/home/.htpc-manager/htpc/proxy.py", line 30, in get_image
    download_image(url, image, auth)
  File "/home/.htpc-manager/htpc/proxy.py", line 52, in download_image
    im = Image.open(data)
  File "/usr/local/lib/python2.6/dist-packages/PIL/Image.py", line 2020, in open
    raise IOError("cannot identify image file")
IOError: cannot identify image file

Debug with the PIL package that comes with the installation:

Code:
=%7B%22iCreate%22%3A1370932865769%2C%22iStart%22%3A0%2C%22iEnd%22%3A0%2C%22iLength%22%3A50%2C%22aaSorting%22%3A%5B%5B0%2C%22asc%22%2C0%5D%5D%2C%22oSearch%22%3A%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%2C%22aoSearchCols%22%3A%5B%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%2C%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%2C%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%2C%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%2C%7B%22bCaseInsensitive%22%3Atrue%2C%22sSearch%22%3A%22%22%2C%22bRegex%22%3Afalse%2C%22bSmart%22%3Atrue%7D%5D%2C%22abVisCols%22%3A%5Btrue%2Ctrue%2Ctrue%2Ctrue%2Ctrue%5D%7D
  ACCEPT-LANGUAGE: nb,en-US;q=0.8,en;q=0.6,no;q=0.4,nn;q=0.2
  DNT: 1
  ACCEPT-ENCODING: gzip,deflate,sdch
[11/Jun/2013:07:18:58] HTTP Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/_cpdispatch.py", line 34, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/home/.htpc-manager/modules/xbmc.py", line 181, in GetThumb
    return get_image(url, h, w, o, self.auth())
  File "/home/.htpc-manager/htpc/proxy.py", line 30, in get_image
    download_image(url, image, auth)
  File "/home/.htpc-manager/htpc/proxy.py", line 53, in download_image
    im.save(dest + '.png', 'PNG')
  File "/home/.htpc-manager/libs/PIL/Image.py", line 1439, in save
    save_handler(self, fp, filename)
  File "/home/.htpc-manager/libs/PIL/PngImagePlugin.py", line 572, in _save
    ImageFile._save(im, _idat(fp, chunk), [("zip", (0,0)+im.size, 0, rawmode)])
  File "/home/.htpc-manager/libs/PIL/ImageFile.py", line 481, in _save
    e = Image._getencoder(im.mode, e, a, im.encoderconfig)
  File "/home/.htpc-manager/libs/PIL/Image.py", line 399, in _getencoder
    return apply(encoder, (mode,) + args + extra)
TypeError: an integer is required

[11/Jun/2013:07:18:58] HTTP Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/_cpdispatch.py", line 34, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/home/.htpc-manager/modules/xbmc.py", line 181, in GetThumb
    return get_image(url, h, w, o, self.auth())
  File "/home/.htpc-manager/htpc/proxy.py", line 30, in get_image
    download_image(url, image, auth)
  File "/home/.htpc-manager/htpc/proxy.py", line 53, in download_image
    im.save(dest + '.png', 'PNG')
  File "/home/.htpc-manager/libs/PIL/Image.py", line 1439, in save
    save_handler(self, fp, filename)
  File "/home/.htpc-manager/libs/PIL/PngImagePlugin.py", line 572, in _save
    ImageFile._save(im, _idat(fp, chunk), [("zip", (0,0)+im.size, 0, rawmode)])
  File "/home/.htpc-manager/libs/PIL/ImageFile.py", line 481, in _save
    e = Image._getencoder(im.mode, e, a, im.encoderconfig)
  File "/home/.htpc-manager/libs/PIL/Image.py", line 399, in _getencoder
    return apply(encoder, (mode,) + args + extra)
TypeError: an integer is required

Hope this will tell you anything Smile
I have seen your second error message before. There is probably no image decoder available on your system. Try installing libjpeg-dev and libpng-dev on your system, and re-install PIL.

Code:
sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev

Then re-install PIL

Follow this guide: http://stackoverflow.com/questions/89152...ilable-pil

Hope this helps you!
(2013-06-12, 10:44)styxit Wrote: [ -> ]I have seen your second error message before. There is probably no image decoder available on your system. Try installing libjpeg-dev and libpng-dev on your system, and re-install PIL.

Code:
sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev

Then re-install PIL

Follow this guide: http://stackoverflow.com/questions/89152...ilable-pil

Hope this helps you!

Hi, thanks for the info, i tried it just now, and this error comes up on the images:
Code:
500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request.

Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/usr/local/lib/python2.6/dist-packages/CherryPy-3.2.2-py2.6.egg/cherrypy/_cpdispatch.py", line 34, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/home/.htpc-manager/modules/xbmc.py", line 181, in GetThumb
    return get_image(url, h, w, o, self.auth())
  File "/home/.htpc-manager/htpc/proxy.py", line 30, in get_image
    download_image(url, image, auth)
  File "/home/.htpc-manager/htpc/proxy.py", line 52, in download_image
    im = Image.open(data)
  File "/usr/local/lib/python2.6/dist-packages/PIL/Image.py", line 2020, in open
    raise IOError("cannot identify image file")
IOError: cannot identify image file