astrXbian/.install/.kodi/addons/script.module.xbmcswift2/lib/xbmcswift2/request.py

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))