From 22c725045278d36694942d99129865e8d991509c Mon Sep 17 00:00:00 2001
From: mkaay <mkaay@mkaay.de>
Date: Fri, 13 Nov 2009 22:07:56 +0100
Subject: ddl-music.org container decryption

---
 module/plugins/DDLMusicOrg.py | 56 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)
 create mode 100644 module/plugins/DDLMusicOrg.py

(limited to 'module')

diff --git a/module/plugins/DDLMusicOrg.py b/module/plugins/DDLMusicOrg.py
new file mode 100644
index 000000000..06dbfb31c
--- /dev/null
+++ b/module/plugins/DDLMusicOrg.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import re
+from time import sleep
+
+from Plugin import Plugin
+
+class DDLMusicOrg(Plugin):
+
+    def __init__(self, parent):
+        Plugin.__init__(self, parent)
+        props = {}
+        props['name'] = "DDLMusicOrg"
+        props['type'] = "container"
+        props['pattern'] = r"http://[\w\.]*?ddl-music\.org/captcha/ddlm_cr\d\.php\?\d+\?\d+"
+        props['version'] = "0.1"
+        props['description'] = """ddl-music.org Container Plugin"""
+        props['author_name'] = ("mkaay")
+        props['author_mail'] = ("mkaay@mkaay.de")
+        self.props = props
+        self.parent = parent
+        self.html = None
+
+    def download_html(self):
+        url = self.parent.url
+        self.html = self.req.load(url, cookies=True)
+
+    def file_exists(self):
+        """ returns True or False
+        """
+        self.download_html()
+        if re.search(r"Wer dies nicht rechnen kann", self.html) != None:
+            return True
+        return False
+
+    def proceed(self, url, location):
+        for i in range(5):
+            self.download_html()
+            posturl = re.search(r"id=\"captcha\" action=\"(/captcha/ddlm_cr\d\.php)\"", self.html).group(1)
+            math = re.search(r"(\d+) ([\+-]) (\d+) =\s+<inp", self.html)
+            id = re.search(r"name=\"id\" value=\"(\d+)\"", self.html).group(1)
+            linknr = re.search(r"name=\"linknr\" value=\"(\d+)\"", self.html).group(1)
+            
+            solve = ""
+            if math.group(2) == "+":
+                solve = int(math.group(1)) + int(math.group(3))
+            else:
+                solve = int(math.group(1)) - int(math.group(3))
+            sleep(3)
+            htmlwithlink = self.req.load("http://ddl-music.org%s" % posturl, cookies=True, post={"calc0":solve, "send0":"Send", "id":id, "linknr":linknr})
+            m = re.search(r"<form id=\"ff\" action=\"(.*?)\" method=\"post\">", htmlwithlink)
+            if m:
+                self.links = [m.group(1)]
+                return
+        self.links = False
-- 
cgit v1.2.3