forked from axiom-team/astrXbian
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
'''
|
|
xbmcswift2.request
|
|
------------------
|
|
|
|
This module contains the Request class. This class represents an incoming
|
|
request from XBMC.
|
|
|
|
:copyright: (c) 2012 by Jonathan Beluch
|
|
:license: GPLv3, see LICENSE for more details.
|
|
'''
|
|
from xbmcswift2.common import unpickle_args
|
|
|
|
from urlparse import urlparse
|
|
try:
|
|
from urlparse import parse_qs
|
|
except ImportError:
|
|
from cgi import parse_qs
|
|
|
|
|
|
class Request(object):
|
|
'''The request objects contains all the arguments passed to the plugin via
|
|
the command line.
|
|
|
|
:param url: The complete plugin URL being requested. Since XBMC typically
|
|
passes the URL query string in a separate argument from the
|
|
base URL, they must be joined into a single string before being
|
|
provided.
|
|
:param handle: The handle associated with the current request.
|
|
'''
|
|
|
|
def __init__(self, url, handle):
|
|
#: The entire request url.
|
|
self.url = url
|
|
|
|
#: The current request's handle, an integer.
|
|
self.handle = int(handle)
|
|
|
|
# urlparse doesn't like the 'plugin' scheme, so pass a protocol
|
|
# relative url, e.g. //plugin.video.helloxbmc/path
|
|
self.scheme, remainder = url.split(':', 1)
|
|
parts = urlparse(remainder)
|
|
self.netloc, self.path, self.query_string = (
|
|
parts[1], parts[2], parts[4])
|
|
self.args = unpickle_args(parse_qs(self.query_string))
|