summaryrefslogtreecommitdiffstats
path: root/module/plugins
diff options
context:
space:
mode:
authorGravatar Stefano <l.stickell@yahoo.it> 2013-09-28 16:59:28 +0200
committerGravatar Stefano <l.stickell@yahoo.it> 2013-09-28 16:59:28 +0200
commit8e518664bd90467639369cede063e1b7146f1a49 (patch)
tree38e5a8ec588fdd1549fd814a5d5cb67c21ded049 /module/plugins
parentShareRapidCom: rewritten most of the plugin (diff)
downloadpyload-8e518664bd90467639369cede063e1b7146f1a49.tar.xz
New crypter: TurbobitNetFolder
Diffstat (limited to 'module/plugins')
-rw-r--r--module/plugins/crypter/TurbobitNetFolder.py60
-rw-r--r--module/plugins/hoster/TurbobitNet.py4
2 files changed, 62 insertions, 2 deletions
diff --git a/module/plugins/crypter/TurbobitNetFolder.py b/module/plugins/crypter/TurbobitNetFolder.py
new file mode 100644
index 000000000..e172f8037
--- /dev/null
+++ b/module/plugins/crypter/TurbobitNetFolder.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+
+############################################################################
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU Affero General Public License as #
+# published by the Free Software Foundation, either version 3 of the #
+# License, or (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU Affero General Public License for more details. #
+# #
+# You should have received a copy of the GNU Affero General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+############################################################################
+
+import math
+import re
+
+from module.plugins.internal.SimpleCrypter import SimpleCrypter
+from module.common.json_layer import json_loads
+
+
+def format_links(fid):
+ return 'http://turbobit.net/%s.html' % fid
+
+
+class TurbobitNetFolder(SimpleCrypter):
+ __name__ = "TurbobitNetFolder"
+ __type__ = "crypter"
+ __pattern__ = r"http://(?:w{3}.)?turbobit\.net/download/folder/(?P<id>\w+)"
+ __version__ = "0.01"
+ __description__ = """Turbobit.net Folder Plugin"""
+ __author_name__ = ("stickell")
+ __author_mail__ = ("l.stickell@yahoo.it")
+
+ TITLE_PATTERN = r"<img src='/js/lib/grid/icon/folder.png'>(?P<title>.+)</div>"
+
+ def getLinks(self):
+ folder_id = re.search(self.__pattern__, self.pyfile.url).group('id')
+ grid = self.load('http://turbobit.net/downloadfolder/gridFile',
+ get={'id_folder': folder_id, 'rows': 200}, decode=True)
+ grid = json_loads(grid)
+
+ links_count = grid["records"]
+ pages = int(math.ceil(links_count / 200.0))
+
+ ids = list()
+ for i in grid['rows']:
+ ids.append(i['id'])
+
+ for p in range(2, pages + 1):
+ grid = self.load('http://turbobit.net/downloadfolder/gridFile',
+ get={'id_folder': folder_id, 'rows': 200, 'page': p}, decode=True)
+ grid = json_loads(grid)
+ for i in grid['rows']:
+ ids.append(i['id'])
+
+ return map(format_links, ids)
diff --git a/module/plugins/hoster/TurbobitNet.py b/module/plugins/hoster/TurbobitNet.py
index 5fe42bba7..d574d1fa7 100644
--- a/module/plugins/hoster/TurbobitNet.py
+++ b/module/plugins/hoster/TurbobitNet.py
@@ -35,8 +35,8 @@ from module.plugins.internal.CaptchaService import ReCaptcha
class TurbobitNet(SimpleHoster):
__name__ = "TurbobitNet"
__type__ = "hoster"
- __pattern__ = r"http://(?:\w*\.)?(turbobit.net|unextfiles.com)/(?:download/free/)?(?P<ID>\w+).*"
- __version__ = "0.09"
+ __pattern__ = r"http://(?:\w*\.)?(turbobit.net|unextfiles.com)/(?!download/folder/)(?:download/free/)?(?P<ID>\w+).*"
+ __version__ = "0.10"
__description__ = """Turbobit.net plugin"""
__author_name__ = ("zoidberg")
__author_mail__ = ("zoidberg@mujmail.cz")