mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2025-12-13 02:23:18 +00:00
Update webservice with cherrypy
Fix playback issues that was causing Kodi to hang up
This commit is contained in:
parent
b2bc90cb06
commit
158a736360
164 changed files with 42855 additions and 174 deletions
63
libraries/cherrypy/scaffold/__init__.py
Normal file
63
libraries/cherrypy/scaffold/__init__.py
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
"""<MyProject>, a CherryPy application.
|
||||
|
||||
Use this as a base for creating new CherryPy applications. When you want
|
||||
to make a new app, copy and paste this folder to some other location
|
||||
(maybe site-packages) and rename it to the name of your project,
|
||||
then tweak as desired.
|
||||
|
||||
Even before any tweaking, this should serve a few demonstration pages.
|
||||
Change to this directory and run:
|
||||
|
||||
cherryd -c site.conf
|
||||
|
||||
"""
|
||||
|
||||
import cherrypy
|
||||
from cherrypy import tools, url
|
||||
|
||||
import os
|
||||
local_dir = os.path.join(os.getcwd(), os.path.dirname(__file__))
|
||||
|
||||
|
||||
@cherrypy.config(**{'tools.log_tracebacks.on': True})
|
||||
class Root:
|
||||
"""Declaration of the CherryPy app URI structure."""
|
||||
|
||||
@cherrypy.expose
|
||||
def index(self):
|
||||
"""Render HTML-template at the root path of the web-app."""
|
||||
return """<html>
|
||||
<body>Try some <a href='%s?a=7'>other</a> path,
|
||||
or a <a href='%s?n=14'>default</a> path.<br />
|
||||
Or, just look at the pretty picture:<br />
|
||||
<img src='%s' />
|
||||
</body></html>""" % (url('other'), url('else'),
|
||||
url('files/made_with_cherrypy_small.png'))
|
||||
|
||||
@cherrypy.expose
|
||||
def default(self, *args, **kwargs):
|
||||
"""Render catch-all args and kwargs."""
|
||||
return 'args: %s kwargs: %s' % (args, kwargs)
|
||||
|
||||
@cherrypy.expose
|
||||
def other(self, a=2, b='bananas', c=None):
|
||||
"""Render number of fruits based on third argument."""
|
||||
cherrypy.response.headers['Content-Type'] = 'text/plain'
|
||||
if c is None:
|
||||
return 'Have %d %s.' % (int(a), b)
|
||||
else:
|
||||
return 'Have %d %s, %s.' % (int(a), b, c)
|
||||
|
||||
files = tools.staticdir.handler(
|
||||
section='/files',
|
||||
dir=os.path.join(local_dir, 'static'),
|
||||
# Ignore .php files, etc.
|
||||
match=r'\.(css|gif|html?|ico|jpe?g|js|png|swf|xml)$',
|
||||
)
|
||||
|
||||
|
||||
root = Root()
|
||||
|
||||
# Uncomment the following to use your own favicon instead of CP's default.
|
||||
# favicon_path = os.path.join(local_dir, "favicon.ico")
|
||||
# root.favicon_ico = tools.staticfile.handler(filename=favicon_path)
|
||||
22
libraries/cherrypy/scaffold/apache-fcgi.conf
Normal file
22
libraries/cherrypy/scaffold/apache-fcgi.conf
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# Apache2 server conf file for using CherryPy with mod_fcgid.
|
||||
|
||||
# This doesn't have to be "C:/", but it has to be a directory somewhere, and
|
||||
# MUST match the directory used in the FastCgiExternalServer directive, below.
|
||||
DocumentRoot "C:/"
|
||||
|
||||
ServerName 127.0.0.1
|
||||
Listen 80
|
||||
LoadModule fastcgi_module modules/mod_fastcgi.dll
|
||||
LoadModule rewrite_module modules/mod_rewrite.so
|
||||
|
||||
Options ExecCGI
|
||||
SetHandler fastcgi-script
|
||||
RewriteEngine On
|
||||
# Send requests for any URI to our fastcgi handler.
|
||||
RewriteRule ^(.*)$ /fastcgi.pyc [L]
|
||||
|
||||
# The FastCgiExternalServer directive defines filename as an external FastCGI application.
|
||||
# If filename does not begin with a slash (/) then it is assumed to be relative to the ServerRoot.
|
||||
# The filename does not have to exist in the local filesystem. URIs that Apache resolves to this
|
||||
# filename will be handled by this external FastCGI application.
|
||||
FastCgiExternalServer "C:/fastcgi.pyc" -host 127.0.0.1:8088
|
||||
3
libraries/cherrypy/scaffold/example.conf
Normal file
3
libraries/cherrypy/scaffold/example.conf
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[/]
|
||||
log.error_file: "error.log"
|
||||
log.access_file: "access.log"
|
||||
14
libraries/cherrypy/scaffold/site.conf
Normal file
14
libraries/cherrypy/scaffold/site.conf
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
[global]
|
||||
# Uncomment this when you're done developing
|
||||
#environment: "production"
|
||||
|
||||
server.socket_host: "0.0.0.0"
|
||||
server.socket_port: 8088
|
||||
|
||||
# Uncomment the following lines to run on HTTPS at the same time
|
||||
#server.2.socket_host: "0.0.0.0"
|
||||
#server.2.socket_port: 8433
|
||||
#server.2.ssl_certificate: '../test/test.pem'
|
||||
#server.2.ssl_private_key: '../test/test.pem'
|
||||
|
||||
tree.myapp: cherrypy.Application(scaffold.root, "/", "example.conf")
|
||||
BIN
libraries/cherrypy/scaffold/static/made_with_cherrypy_small.png
Normal file
BIN
libraries/cherrypy/scaffold/static/made_with_cherrypy_small.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
Loading…
Add table
Add a link
Reference in a new issue