7
7
from lib import timeprofiler
8
8
from lib import logger
9
9
from lib import systemload
10
from data import languages
11
from data import statuscodes
12
10
from auth import Authentication
13
11
from lib.validate import Validation
14
from guess_language import guess_language
16
13
from couchdbkit import *
29
26
# allowed useragents
30
27
self.useragents = ["flubdownloader"]
32
def GetStatusCodes(self, token):
34
Returns all existing status codes and their corresponding status texts
40
if self.auth.session_exists(token):
41
reply['statusCode'] = 200
42
reply['statusText'] = statuscodes.statuscodes['200']
43
reply['data'] = statuscodes.statuscodes
44
reply['time'] = self.profiler.elapsed()
45
reply['serverLoad'] = systemload.getLoad()
48
reply['statusCode'] = "406"
49
reply['statusText'] = statuscodes.statuscodes['406']
50
reply['time'] = self.profiler.elapsed()
55
def DetectLanguage(self, token, *text ):
59
if self.auth.session_exists(token):
61
for base64_data in text:
62
compressed_data = base64.b64decode(base64_data)
63
data = zlib.decompress(compressed_data)
66
md5_data = md5.hexdigest()
67
languages[md5_data] = guess_language.guessLanguageInfo(data)[0]
69
reply['statusCode'] = "200"
70
reply['statusText'] = statuscodes.statuscodes['200']
71
reply['time'] = self.profiler.elapsed()
72
reply['languages'] = languages
75
reply['statusCode'] = "406"
76
reply['statusText'] = statuscodes.statuscodes['406']
77
reply['time'] = self.profiler.elapsed()
81
def GetSubtitleLanguages(self, token):
84
if self.auth.session_exists(token):
85
reply['statusCode'] = "200"
86
reply['statusText'] = statuscodes.statuscodes['200']
87
reply['time'] = self.profiler.elapsed()
88
reply['languages'] = languages.iso_codes
90
reply['statusCode'] = "406"
91
reply['statusText'] = statuscodes.statuscodes['406']
92
reply['time'] = self.profiler.elapsed()
95
29
def DownloadSubtitles(self, token, *subhash):
96
30
self.profiler.mark()