feat(init): Repository init
[plugin.video.netflix.git] / resources / lib / MSLHttpRequestHandler.py
1 import BaseHTTPServer
2 import base64
3 from urlparse import urlparse, parse_qs
4
5 from MSL import MSL
6 from lib import ADDON
7 email = ADDON.getSetting('email')
8 password = ADDON.getSetting('password')
9 msl = MSL(email, password)
10
11 class MSLHttpRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
12
13     def do_HEAD(self):
14         self.send_response(200)
15
16     def do_POST(self):
17         length = int(self.headers['content-length'])
18         post = self.rfile.read(length)
19         print post
20         data = post.split('!')
21         if len(data) is 2:
22             challenge = data[0]
23             sid = base64.standard_b64decode(data[1])
24             b64license = msl.get_license(challenge, sid)
25             if b64license is not '':
26                 self.send_response(200)
27                 self.end_headers()
28                 self.wfile.write(base64.standard_b64decode(b64license))
29                 self.finish()
30             else:
31                 self.send_response(400)
32         else:
33             self.send_response(400)
34
35     def do_GET(self):
36         url = urlparse(self.path)
37         params = parse_qs(url.query)
38         if 'id' not in params:
39             self.send_response(400, 'No id')
40         else:
41             # Get the manifest with the given id
42             data = msl.load_manifest(int(params['id'][0]))
43             self.send_response(200)
44             self.send_header('Content-type', 'application/xml')
45             self.end_headers()
46             self.wfile.write(data)