From 88aeebbebe1104c202a0b98aed7ce3c3c8d17f10 Mon Sep 17 00:00:00 2001 From: z00nx 0 Date: Sun, 26 Oct 2014 15:16:01 +1100 Subject: Initial DodanePl plugin --- module/plugins/hoster/DodanePl.py | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 module/plugins/hoster/DodanePl.py diff --git a/module/plugins/hoster/DodanePl.py b/module/plugins/hoster/DodanePl.py new file mode 100644 index 000000000..f8e5a22e4 --- /dev/null +++ b/module/plugins/hoster/DodanePl.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- + +from module.plugins.internal.SimpleHoster import SimpleHoster, parseFileInfo +from module.network.RequestFactory import getURL +from random import randrange +from module.common.json_layer import json_loads + + +def getInfo(urls): + for url in urls: + headers = getURL(url, just_header=True) + if 'HTTP/1.1 404 Not Found' in headers: + file_info = (url, 0, 1, url) + else: + file_info = parseFileInfo(DodanePl, url, getURL(url)) + print(file_info) + yield file_info + + +class DodanePl(SimpleHoster): + __name__ = "DodanePl" + __type__ = "hoster" + __version__ = "0.01" + + __pattern__ = r'http://(www\.)?dodane\.pl/file/(?P\d+)/\S+' + + __description__ = """Dodane.pl hoster plugin""" + __license__ = "GPLv3" + __authors__ = [("z00nx", "z00nx0@gmail.com")] + + FILE_NAME_PATTERN = r'\s+

\s+(?P[^<]+)

\s+' + FILE_SIZE_PATTERN = r'Wielkość: (?P[^<]+)' + OFFLINE_PATTERN = r'Plik o podanym adresie nie został odnaleziony' + + def handleFree(self): + # NOTE: Adapted from http://dodane.pl/static/js/Download.js's downloadFile function + rand_str = '%030x' % randrange(16 ** 30) + json = self.load('http://dodane.pl/transfer/create_session/%s/%s' % (self.file_info['ID'], rand_str)) + json = json_loads(json) + self.download('http://%s/download/%s/%s/%s' % (json['downloadServerAddr'], self.file_info['ID'], json['id'], json['sessionToken'])) -- cgit v1.2.3