# Buggy code
def get_file_url(self):
    """returns the absolute downloadable filepath"""
    url = multiply = modulo = None

    found = re.search(self.DOWNLOAD_URL_PATTERN, self.html, re.S)
    if found:
        # Method #1: JS eval
        js = "\n".join(found.groups())
        d = re.search(r'span id="omg" class="(\d*)"', self.html).group(1)
        regex = r"document.getElementById\('omg'\).getAttribute\('class'\)"
        js = re.sub(regex, d, js)
        regex = r"document.getElementById\(\\*'dlbutton\\*'\).href = "
        js = re.sub(regex, "", js)
        url = self.js.eval(js)
    else:
        # Method #2: SWF eval
        seed_search = re.search(self.SEED_PATTERN, self.html)
        if seed_search:
            swf_url, file_seed = seed_search.groups()

            swf_sts = self.getStorage("swf_sts")
            swf_stamp = int(self.getStorage("swf_stamp") or 0)
            swf_version = self.getStorage("version")
            self.logDebug("SWF", swf_sts, swf_stamp, swf_version)

            if not swf_sts:
                self.logDebug("Using default values")
                multiply, modulo = self.LAST_KNOWN_VALUES
            elif swf_sts == "1":
                self.logDebug("Using stored values")
                multiply = self.getStorage("multiply")
                modulo = self.getStorage("modulo")
            elif swf_sts == "2":
                if swf_version < self.__version__:
                    self.logDebug("Reverting to default values")
                    self.setStorage("swf_sts", "")
                    self.setStorage("version", self.__version__)
                    multiply, modulo = self.LAST_KNOWN_VALUES
                elif (swf_stamp + 3600000) < timestamp():
                    swfdump = self.get_swfdump_path()
                    if swfdump:
                        multiply, modulo = self.get_swf_values(
                            self.file_info["HOST"] + swf_url, swfdump
                        )
                    else:
                        self.logWarning(
                            "Swfdump not found. Install swftools to bypass captcha."
                        )

            if multiply and modulo:
                self.logDebug("TIME = (%s * %s) %s" % (file_seed, multiply, modulo))
                url = "/download?key=%s&time=%d" % (
                    self.file_info["KEY"],
                    (int(file_seed) * int(multiply)) % int(modulo),
                )

        if not url:
            # Method #3: Captcha
            url = self.do_recaptcha()

    return self.file_info["HOST"] + url


# Traceback (AttributeError)
pyLoad 0.4.9 Debug Report of ZippyshareCom 0.40 

TRACEBACK:
 Traceback (most recent call last):
  File "C:\Users\Chris99\Desktop\pyload\dist\.\module\PluginThread.py", line 187, in run
  File "C:\Users\Chris99\Desktop\pyload\dist\.\module\plugins\Plugin.py", line 237, in preprocessing
  File "C:\Users\Chris99\Desktop\pyload\data\userplugins\internal\SimpleHoster.py", line 187, in process
  File "C:\Users\Chris99\Desktop\pyload\dist\.\module\plugins\hoster\ZippyshareCom.py", line 43, in handleFree
  File "C:\Users\Chris99\Desktop\pyload\dist\.\module\plugins\hoster\ZippyshareCom.py", line 72, in get_file_url
AttributeError: 'NoneType' object has no attribute 'group'
 

FRAMESTACK:

Frame preprocessing in C:\Users\Chris99\Desktop\pyload\dist\.\module\plugins\Plugin.py at line 237
	                self = <module.plugins.hoster.ZippyshareCom.ZippyshareCom object at 0x045C4350>
	              thread = <DownloadThread(Thread-2, started daemon 7176)>

Frame process in C:\Users\Chris99\Desktop\pyload\data\userplugins\internal\SimpleHoster.py at line 187
	              pyfile = PyFile 12: 21street%2c%20Kash%20Trivedi%20-%20Magik%20Globe%20%28Original%20Mix%29%20%5bexclusive-music-dj.com%5d.mp3@ZippyshareCom
	                self = <module.plugins.hoster.ZippyshareCom.ZippyshareCom object at 0x045C4350>

Frame handleFree in C:\Users\Chris99\Desktop\pyload\dist\.\module\plugins\hoster\ZippyshareCom.py at line 43
	                self = <module.plugins.hoster.ZippyshareCom.ZippyshareCom object at 0x045C4350>

Frame get_file_url in C:\Users\Chris99\Desktop\pyload\dist\.\module\plugins\hoster\ZippyshareCom.py at line 72
	              modulo = None
	                 url = None
	                self = <module.plugins.hoster.ZippyshareCom.ZippyshareCom object at 0x045C4350>
	                  js = u'\n    var a = 8;\n    document.getElementById(\'dlbutton\').omg = "asdasd".substr(0, 3);\n    var b = document.getElementById(\'dlbutton\').omg.length;\n    \ndocument.getElementById(\'dlbutton\').href = "/d/53458420/"+(Math.pow(a, 3)+b)+"/21street%2c%20Kash%20Trivedi%20-%20Magik%20Globe%20%28Original%20Mix%29%20%5bexclusive-music-dj.com%5d.mp3";'
	            multiply = None
	               found = <_sre.SRE_Match object at 0x025DFE30>


PLUGIN OBJECT DUMP: 

	CAPTCHA_DOWNLOAD_PATTERN = "document.location = '([^']+)'"
	 CAPTCHA_KEY_PATTERN = 'Recaptcha.create\\("([^"]+)"'
	CAPTCHA_SHORTENCODE_PATTERN = "shortencode: '([^']+)'"
	DOWNLOAD_URL_PATTERN = '<script type=\\"text/javascript\\">([^<]*?)(document\\.getElementById\\(\'dlbutton\'\\).href = [^;]+;)'
	   FILE_INFO_PATTERN = 'document\\.getElementById\\(\\\'dlbutton\\\'\\)\\.href = "[^;]*/(?P<N>[^"]+)";'
	   FILE_NAME_PATTERN = '>Name:</font>\\s*<font [^>]*>(?P<N>[^<]+)</font><br />'
	FILE_NAME_REPLACEMENTS = [('&#?\\w+;', <function fixup at 0x01F32330>)]
	FILE_OFFLINE_PATTERN = '>File does not exist on this server</div>'
	   FILE_SIZE_PATTERN = '>Size:</font>\\s*<font [^>]*>(?P<S>[0-9.,]+) (?P<U>[kKMG]+)i?B</font><br />'
	FILE_SIZE_REPLACEMENTS = []
	FILE_URL_REPLACEMENTS = []
	   LAST_KNOWN_VALUES = (9, 2374755)
	        SEED_PATTERN = 'swfobject.embedSWF\\("([^"]+)".*?seed: (\\d+)'
	  SH_BROKEN_ENCODING = False
	    SH_CHECK_TRAFFIC = False
	          SH_COOKIES = True
	             account = None
	               cTask = None
	          chunkLimit = 1
	              config = <module.ConfigParser.ConfigParser instance at 0x0246C058>
	                core = <__main__.Core object at 0x02467FB0>
	           file_info = {'HOST': u'http://www72.zippyshare.com',
 'KEY': u'53458420',
 'N': u'21street%2c%20Kash%20Trivedi%20-%20Magik%20Globe%20%28Original%20Mix%29%20%5bexclusive-music-dj.com%5d.mp3',
 'S': u'17.2',
 'U': u'M',
 'name': u'21street%2c%20Kash%20Trivedi%20-%20Magik%20Globe%20%28Original%20Mix%29%20%5bexclusive-music-dj.com%5d.mp3',
 'size': 18035507.2,
 'status': 2}
	                html = u'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n    <html xmlns:fb="http://ogp.me/ns/fb#">\n        <head>\n            <title>Zippyshare.com - 21street, Kash Trivedi - Magik Globe (Original Mix) [exclusive-music-dj.com].mp3</title>\n            <meta http-equiv="content-type" content="text/html; charset=utf-8">\n            <meta name="robots" content="index, follow, all">\n            <meta name="keywords" content="">\n            <meta name="description" content="">\n            <meta property="og:type" content="music.song" />\n                <meta property="og:image" content="http://api.zippyshare.com/api/playerthumb-3.png"/>\t\n                <meta property="og:video" content="http://api.zippyshare.com/api/player.swf?baseurl=http%3A%2F%2Fapi.zippyshare.com%2Fapi%2F&amp;file=53458420&amp;server=72&amp;autostart=true" />\n                <meta property="og:video:height" content="80" />\n                <meta property="og:video:type" content="application/x-shockwave-flash" />\t\n            <meta property="og:title" content="21street, Kash Trivedi - Magik Globe (Original Mix) [exclusive-music-dj.com].mp3 " />\n            <meta property="og:url" content="http://www72.zippyshare.com/v/53458420/file.html" />\n            <meta property="fb:app_id" content="186641184698333"/>\n            <meta property="og:description" content="Zippyshare.com - Free File Hosting" />\n            <link rel="shortcut icon" href="/images/favicon.ico">\n            <link rel="stylesheet" href="/css/main.css" type="text/css">\n            <link rel="stylesheet" href="/css/embed.css" type="text/css" media="screen">\n            <link rel="stylesheet" href="/css/colorpicker.css" type="text/css" media="screen">\n            <link rel="stylesheet" href="/css/layout.css" type="text/css" media="screen">\n            <link href="/css/jplayer.css" rel="stylesheet" type="text/css">\n            <!--[if lt IE 7]>\n            <link type="text/css" href="css/embed_ie.css" rel="stylesheet" media="screen" />\n            <![endif]-->\n            <script type="text/javascript" src="/js/jquery-1.4.4.min.js"></script>\n            <script type="text/javascript" src="/js/jquery.corner.js"></script>\n            <script type="text/javascript" src="/js/jquery.simplemodal.embed.js"></script>\n            <script type="text/javascript" src="/js/embed.js"></script>\n            <script type="text/javascript" src="/js/swfobject.js"></script>\n            <script type="text/javascript" src="/js/colorpicker.js"></script>\n            <script type=\'text/javascript\' src=\'/js/jquery.cookie.js\'></script>\n            <script type=\'text/javascript\' src=\'/js/json2.js\'></script>\n            <script type="text/javascript" src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>\n            <script type="text/javascript" src="/js/jquery.jplayer.min.js"></script>\n            <script type="text/javascript">\n                if (top!= self)\n                    if (location)\n                        top.location.replace(self.location.href);\n                else\n                    top.document.location.replace(self.document.location.href);\n                $(function(){\n                    $(\'div.inner_menu\').each(function() {\n                        var t = $(this).corner("round 4px").parent().css(\'padding\', \'2px\').corner("round 6px");\n                        eval(t);\n                    });\n                    $(\'div.inner_main\').each(function() {\n                        var t = $(this).corner("round 4px").parent().css(\'padding\', \'2px\').corner("round 6px");\n                        eval(t);\n                    });\n                });\n            </script>\n            <script type="text/javascript">\n                $(document).ready(function(){\n                    $("#lang-one li").hover(\n                    function(){ $("ul", this).fadeIn("fast"); },\n                    function() { }\n                );\n                    if (document.all) {\n                        $("#lang-one li").hoverClass ("sfHover");\n                    }\n                });\n\n                $.fn.hoverClass = function(c) {\n                    return this.each(function(){\n                        $(this).hover(\n                        function() { $(this).addClass(c);  },\n                        function() { $(this).removeClass(c); }\n                    );\n                    });\n                };\n\n                addFileToMyFiles = function(skey) {\n                    $.ajax({\n                        url: "/rest/file/addFileToMyFiles",\n                        type: "GET",\n                        data: {key: skey},\n                        dataType: "json",\n                        success: function(data) {\n                            if (data == 0) {\n                                alert(\'File has been added to your File Manager\');\n                            } else {\n                                alert(\'An error has occured\');\n                            }\n                        },\n                        error: function(date) {\n                            alert(\'An error has occured\');\n                        }\n                    });\n                }\n            </script>\n            <script type="text/javascript">\n\n                var _gaq = _gaq || [];\n                _gaq.push([\'_setAccount\', \'UA-28004937-1\']);\n                _gaq.push([\'_setDomainName\', \'zippyshare.com\']);\n                _gaq.push([\'_trackPageview\']);\n\n                (function() {\n                    var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true;\n                    ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';\n                    var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);\n                })();\n\n            </script>\n        </head>\n        <body>\n            <div class="container">\n\n                <div class="login">\n                    <form method="post" action="http://www.zippyshare.com/services/login" name="login">\n                            <span><img src="/images/icons/user.png" align="absmiddle" height="14px" style="padding-right: 2px;" />Username:</span>\n                            <input name="login" type="text" size="22" style="height:11px; margin-right: 4px; font-size: 9px; color: #15598D;" />\n                            <span><img src="/images/icons/key.png" align="absmiddle" height="14px" style="padding-right: 2px;" />Password:</span>\n                            <input name="pass" type="password" size="22" style="height:11px; font-size: 9px; color: #15598D;" />\n                            <input type="submit" class="przycisk" value="Login" style="height:17px; width: 60px; vertical-align: bottom;" /><br />\n                            <div style="float: right; margin-top: 4px;">\n                                <input type="checkbox" name="remember">\n                                <font style="color: #777; font-size: 9px; vertical-align: text-top;">Remember Me |</font>\n                                <a style="color: #777; text-decoration: none; font-size: 9px; vertical-align: text-top;" href="http://www.zippyshare.com/sites/forgot.jsp">Forgot Password?</a>\n                            </div>\n                        </form>\n                    </div>\n\n                <div style="text-align: center; margin: 0 auto;">\n                    <a href="http://www.zippyshare.com/" target="_self"><img src="/images/logo.png" alt="ZippyShare.com - Free File Hosting" style="border: 0pt; margin-left: 0px; margin-bottom: 10px;" /></a><br />\n                </div>\n                <div class="outer_menu">\n                    <div class="inner_menu">\n                        <span style="float: left;">\n                            <a href="http://www.zippyshare.com" class="menu">Upload Files</a> |\n                            <a href="#" class="menu">F.A.Q</a> |\n                            <a href="http://www.zippyshare.com/sites/uploader.jsp" class="menu">Upload Tools</a> |\n                            <a href="http://www.blog.zippyshare.com/" class="menu">Our Blog</a> |\n                            <a href="http://www.support.zippyshare.com/index.php?act=tickets&amp;code=open" target="_blank" class="menu">Contact Us</a>\n                        </span>\n                        <span style="float: right; margin-top: -2px;">\n                            <ul id="lang-one" class="lang">\n                                <li>\n                                    <a href="/view.jsp?locale=en&amp;key=53458420" class="flagen" title="English"><img src="/images/arrow_langs.gif" alt="" style="float: left; margin: 8px 5px 0px -5px;" />English</a>\n                                    <ul>\n                                        <li><a href="/view.jsp?locale=de&amp;key=53458420" class="flagde" title="Deutsch">Deutsch</a></li>\n                                        <li><a href="/view.jsp?locale=nl&amp;key=53458420" class="flagnl" title="Nederlands">Nederlands</a></li>\n                                        <li><a href="/view.jsp?locale=fr&amp;key=53458420" class="flagfr" title="Francais">Francais</a></li>\n                                        <li><a href="/view.jsp?locale=hu&amp;key=53458420" class="flaghu" title="Magyar">Magyar</a></li>\n                                        <li><a href="/view.jsp?locale=lt&amp;key=53458420" class="flaglt" title="Lietuvi\u0173">Lietuvi\u0173</a></li>\n                                        <li><a href="/view.jsp?locale=pl&amp;key=53458420" class="flagpl" title="Polski">Polski</a></li>\n                                        <li><a href="/view.jsp?locale=pt&amp;key=53458420" class="flagpt" title="Portugu\xeas">Portugu\xeas</a></li>\n                                        <li><a href="/view.jsp?locale=ro&amp;key=53458420" class="flagro" title="Rom\xe2n\u0103">Rom\xe2n\u0103</a></li>\n                                        <li><a href="/view.jsp?locale=ru&amp;key=53458420" class="flagru" title="\u0420\u0443\u0441\u0441\u043a\u0438\u0439">\u0420\u0443\u0441\u0441\u043a\u0438\u0439</a></li>\n                                        <li><a href="/view.jsp?locale=es&amp;key=53458420" class="flages" title="Espa\xf1ol">Espa\xf1ol</a></li>\n                                        <li><a href="/view.jsp?locale=sv&amp;key=53458420" class="flagse" title="Svenska">Svenska</a></li>\n                                        <li><a href="/view.jsp?locale=tr&amp;key=53458420" class="flagetr" title="T\xfcrk\xe7e">T\xfcrk\xe7e</a></li>\n                                        </ul>\n                                </li>\n                            </ul>\n                        </span>\n                        <span style="float: right; margin-top: 1px; font-size: 13px; font-weight: bolder; color: black;">Select Language:&nbsp;&nbsp;</span>\n                    </div>\n                </div>\n                <div class="outer_main">\n                    <div class="inner_main">\n                        <table cellspacing="0" cellpadding="0" width="984px;" style="background: transparent url(/images/folder_logo.jpg); background-repeat: no-repeat; background-position: right top;">\n                            <tr>\n                                <td>\n                                    <div id="lrbox">\n                                        \n\n\n\n\n\n\n\n\n\n\n\n    \n\n\n\n\n    <div class="left" style="width: 700px;">\n        <font style="line-height:20px ;font-size: 16px; color: #CC0000; font-weight: bolder;">You have requested the file:</font><br />\n        <font style="line-height:20px; font-size: 14px; font-weight: bolder;">Name: </font> <font style="line-height:20px; font-size: 14px;">21street, Kash Trivedi - Magik Globe (Original Mix) [exclusive-music-dj.com].mp3</font><br />\n        <font style="line-height:18px; font-size: 13px; font-weight: bold;">Size:</font>            <font style="line-height:18px; font-size: 13px;">17.2 MB</font><br />\n        <font style="line-height:18px; font-size: 13px; font-weight: bold;">Uploaded:</font>        <font style="line-height:18px; font-size: 13px;">28-09-2013 16:09</font><br />\n        <font style="line-height:18px; font-size: 13px; font-weight: bold;">Last download:</font> <font style="line-height:18px; font-size: 13px;">03-10-2013 09:46</font><br />\n        <div style="width: 700px; height: 25px; margin-top: 4px; margin-left: -2px;">\n            <!-- AddThis Button BEGIN -->\n            <script type="text/javascript">\n                var addthis_config = {\n                    ui_delay: 50\n                }\n            </script>\n            \n                <div class="addthis_toolbox addthis_default_style " addthis:url="http://www72.zippyshare.com/v/53458420/file.html" addthis:title="21street, Kash Trivedi - Magik Globe (Original Mix) [exclusive-music-dj.com].mp3" >\n                    <a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>\n                    \n                    <a class="addthis_button_tweet"></a>\n                    <a class="addthis_button_pinterest_pinit" pi:pinit:media="http://api.zippyshare.com/api/playerthumb-2.jpg" pi:pinit:layout="horizontal"></a>\n                    <a class="addthis_counter addthis_pill_style"></a>\n                    <span id="tumblr_button_abc123" style="margin-left: 30px;"></span>\n                </div>\n            \n            \n            <script type="text/javascript">var addthis_config = {"data_track_clickback":true};</script>\n            <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4d7009770839a69f"></script>\n            <!-- Put this tag wherever you want your button to appear -->\n\n        </div>\n    </div>\n    <div class="right" style="margin-top: 15px; width: 251px;">\n        \n            \n            \n                <a id="dlbutton" href="#"><img src="/images/download.png" alt="Download" border="0"></a>\n                    \n                    \n\n\n<script type="text/javascript">\n    var a = 8;\n    document.getElementById(\'dlbutton\').omg = "asdasd".substr(0, 3);\n    var b = document.getElementById(\'dlbutton\').omg.length;\n    document.getElementById(\'dlbutton\').href = "/d/53458420/"+(Math.pow(a, 3)+b)+"/21street%2c%20Kash%20Trivedi%20-%20Magik%20Globe%20%28Original%20Mix%29%20%5bexclusive-music-dj.com%5d.mp3";\n</script>\n                \n            \n    </div>\n    \n        <div class="center" style="text-align: center; padding: 5px 0px 9px 0px;">\n            <font style="font-size: 10px; letter-spacing: 3px; word-spacing: 2px; color: grey; width: 100%; margin-left: 93px;">Click the Play button to hear a sample of this MP3</font>\n            <span style="float: right; margin-bottom: 2px;" id=\'basic-modal\'><img src="/images/icons/embed.png" align="absmiddle" height="14px" style="padding-right: 2px;" /><a href="#" style="font-size: 10px; color: grey;" class=\'basic\'>embed player</a></span>\n            <div id="player"></div>\n            <!--        <script type="text/javascript">-->\n            \n                <!-- <object id="mpl"\n                         classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"\n                         width="954"\n                         height="20">\n                     <param name="flashvars" value="height=20&amp;width=954&amp;file=http://www72.zippyshare.com/downloadMusic%3Fkey%3D53458420%26time%3D1380787534&amp;volume=80&amp;autostart=false&amp;textcolor=0x000000&amp;backcolor=0xffffff&amp;playcolor=0x000000&amp;type=flv">\n                     <param name="src" value="/swf/player.swf">\n                     <param name="wmode" value="transparent" />\n                     <embed flashvars="height=20&amp;width=954&amp;file=http://www72.zippyshare.com/downloadMusic%3Fkey%3D53458420%26time%3D1380787534&amp;volume=80&amp;autostart=false&amp;textcolor=0x000000&amp;backcolor=0xffffff&amp;playcolor=0x000000&amp;type=flv"\n                            allowfullscreen="false"\n                            quality="high"\n                            name="mpl"\n                            id="mpl"\n                            style=""\n                            src="/swf/player.swf"\n                            type="application/x-shockwave-flash"\n                            width="954"\n                            wmode="transparent"\n                            height="20">\n                 </object> -->\n                <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="955" height="80" style="visibility: visible;"type="application/x-shockwave-flash" id="mpl">\n                    <param name="src" value="/swf/player_local.swf">\n                    <param value="false" name="allowfullscreen">\n                    <param value="transparent" name="wmode">\n                    <param value="width=955&amp;baseurl=http://www.zippyshare.com/api/&amp;file=53458420&amp;server=72&amp;availablequality=both&amp;autostart=false&amp;bordercolor=#cccccc&amp;forecolor=#000000&amp;backcolor=#f2f2f2&amp;darkcolor=#000000&amp;lightcolor=#ff6600" name="flashvars">\n                    <embed flashvars="width=955&amp;baseurl=http://www.zippyshare.com/api/&amp;file=53458420&amp;server=72&amp;availablequality=both&amp;autostart=false&amp;bordercolor=#cccccc&amp;forecolor=#000000&amp;backcolor=#f2f2f2&amp;darkcolor=#000000&amp;lightcolor=#ff6600"\n                           allowfullscreen="false"\n                           quality="high"\n                           name="mpl"\n                           id="mpl"\n                           style=""\n                           src="/swf/player_local.swf"\n                           type="application/x-shockwave-flash"\n                           width="955"\n                           wmode="transparent"\n                           height="80">\n                </object>\n                <!-- Set these variables wherever convenient -->\n                <script type="text/javascript">\n                    var tumblr_video_embed_code = \'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="955" height="150" style="visibility: visible;"type="application/x-shockwave-flash" id="mpl">                    <param name="src" value="http://api.zippyshare.com/api/player.swf">                    <param value="false" name="allowfullscreen">                    <param value="transparent" name="wmode">                    <param value="width=955&amp;baseurl=http://api.zippyshare.com/api/&amp;file=53458420&amp;server=72&amp;availablequality=both&amp;autostart=false&amp;bordercolor=#cccccc&amp;forecolor=#000000&amp;backcolor=#f2f2f2&amp;darkcolor=#000000&amp;lightcolor=#ff6600" name="flashvars">                    <embed flashvars="width=955&amp;baseurl=http://api.zippyshare.com/api/&amp;file=53458420&amp;server=72&amp;availablequality=both&amp;autostart=false&amp;bordercolor=#cccccc&amp;forecolor=#000000&amp;backcolor=#f2f2f2&amp;darkcolor=#000000&amp;lightcolor=#ff6600"                           allowfullscreen="false"                           quality="high"                           name="mpl"                           id="mpl"                           style=""                           src="http://api.zippyshare.com/api/player.swf"                           type="application/x-shockwave-flash"                           width="955"                           wmode="transparent"                           height="150">                </object>\';\n                    var tumblr_video_caption = \'21street, Kash Trivedi - Magik Globe (Original Mix) [exclusive-music-dj.com].mp3\';\n                    </script>\n            \n            \n            <!--        </script>-->\n        </div>\n    \n    \n    <div class="center" style="text-align: center;">\n        <font style="font-size: 10px; letter-spacing: 3px; word-spacing: 2px; line-height: 18px;">Advertisement</font>\n    </div>\n    <div class="center_reklamy">\n        <div style="float: left; width: 328px; height: 276px; background-image: url(/images/zs_small_tab.gif);">\n            <div style="margin-left: 14px; margin-top: 14px; height: 300px; width: 300px;">\n                <script type="text/javascript" src="http://www.adcash.com/script/java.php?option=rotateur&rotateur=132418"></script>\n                \n            </div>\n        </div>\n        <div style="float: left; width: 328px; height: 276px; background-image: url(/images/zs_small_tab.gif);">\n            <div style="margin-left: 14px; margin-top: 14px; height: 300px; width: 300px;">\n                <script type="text/javascript" src="http://www.adcash.com/script/java.php?option=rotateur&rotateur=146355"></script>\n            </div>\n        </div>\n        <div style="float: left; width: 328px; height: 276px; background-image: url(/images/zs_small_tab.gif);">\n            <div style="margin-left: 14px; margin-top: 14px; height: 300px; width: 300px;">\n                <script type="text/javascript" src="http://www.adcash.com/script/java.php?option=rotateur&rotateur=137046"></script>          \n            </div>\n        </div>\n    </div>\n\n    <div id="basic-modal-content">\n        <h1>Embed our Audio Player</h1>\n        <p>Feel free to embed our Audio Player anywhere You like. Just copy and paste the player code presented below.</p>\n        <p class="fat">Player Settings:</p>\n        <div id="customize-player-left">\n            <div class="custom-color-left">\n                <span>Play and Full Waveform Color</span>\n                <input style="background-color: #ffffff;" id="playcolor" class="colorSelector" size="6" value="ff6600" type="text">:\n            </div>\n            <div class="custom-color-left">\n                <span>Text and Waveform Progress Color</span>\n                <input style="background-color: #ffffff;" id="textcolor" class="colorSelector" size="6" value="000000" type="text">:\n            </div>\n            <div class="custom-color-left">\n                <span>Background Color</span>\n                <input style="background-color: #ffffff;" id="backcolor" class="colorSelector" size="6" value="e8e8e8" type="text">:\n            </div>\n            <div class="custom-color-left">\n                <span>Waveform Color</span>\n                <input style="background-color: #ffffff;" id="wavecolor" class="colorSelector" size="6" value="000000" type="text">:\n            </div>\n            <div class="custom-color-left">\n                <span>Border Color</span>\n                <input style="background-color: #ffffff;" id="bordercolor" class="colorSelector" size="6" value="cccccc" type="text">:\n            </div>\n        </div>\n        <div id="customize-player-right">\n            <div class="custom-color-right">\n                <span>Autostart:</span>\n                <input style="background-color: #ffffff; margin-left: 43px;" id="autostarty" value="1" type="radio" name="autostbtn"> Yes\n                <input style="background-color: #ffffff;" id="autostartn" value="0" type="radio" name="autostbtn" checked="checked"> No\n            </div>\n            <div class="custom-color-right">\n                <span>Width</span>\n                <input id="width" value="850" maxlength="4" size="4" type="text">(px):\n            </div>\n            <div class="custom-color-right">\n                <span>Volume</span>\n                <input style="background-color: #ffffff;" id="playervolume" class="colorSelector" size="6" value="80" type="text">(%):\n            </div>\n        </div>\n        <div style="clear: both;"></div>\n        <div id="player-preview" class="player-preview">\n            <p class="fat">Player Preview:</p>\n            <div id="player-preview2" class="player-preview">\n            </div>\n        </div>\n        <p class="fat">Embed Code:</p>\n        <div>\n            Copy and Paste: \n            <br>\n            <textarea id="embed-player" onclick="this.select();" cols="104" rows="4" readonly="true" ></textarea>\n        </div>\n    </div>\n\n    <script type="text/javascript">\n        $(function() {\n            $(\'#textcolor\').ColorPicker({\n                onSubmit: function(hsb, hex, rgb, el) {\n                    $(el).val(hex);\n                    $(el).ColorPickerHide();\n                    insertPreview();\n                },\n                onHide: function() {\n                    insertPreview();\n                },\n                onBeforeShow: function () {\n                    $(this).ColorPickerSetColor(this.value);\n                },\n                onChange: function (hsb, hex, rgb, el) {\n                    $(\'#textcolor\').val(hex);\n                    $(\'#textcolor\').css(\'backgroundColor\', \'#\' + hex);\n                }\n\n            })\n            .bind(\'keyup\', function(){\n                $(this).ColorPickerSetColor(this.value);\n            });\n            $(\'#backcolor\').ColorPicker({\n                onSubmit: function(hsb, hex, rgb, el) {\n                    $(el).val(hex);\n                    $(el).ColorPickerHide();\n                    insertPreview();\n                },\n                onHide: function() {\n                    insertPreview();\n                },\n                onBeforeShow: function () {\n                    $(this).ColorPickerSetColor(this.value);\n                },\n                onChange: function (hsb, hex, rgb, el) {\n                    $(\'#backcolor\').val(hex);\n                    $(\'#backcolor\').css(\'backgroundColor\', \'#\' + hex);\n                }\n\n            })\n            .bind(\'keyup\', function(){\n                $(this).ColorPickerSetColor(this.value);\n            });\n            $(\'#playcolor\').ColorPicker({\n                onSubmit: function(hsb, hex, rgb, el) {\n                    $(el).val(hex);\n                    $(el).ColorPickerHide();\n                    insertPreview();\n                },\n                onBeforeShow: function () {\n                    $(this).ColorPickerSetColor(this.value);\n                },\n                onHide: function() {\n                    insertPreview();\n                },\n                onChange: function (hsb, hex, rgb, el) {\n                    $(\'#playcolor\').val(hex);\n                    $(\'#playcolor\').css(\'backgroundColor\', \'#\' + hex);\n                }\n\n            })\n            .bind(\'keyup\', function(){\n                $(this).ColorPickerSetColor(this.value);\n            });\n            $(\'#wavecolor\').ColorPicker({\n                onSubmit: function(hsb, hex, rgb, el) {\n                    $(el).val(hex);\n                    $(el).ColorPickerHide();\n                    insertPreview();\n                },\n                onBeforeShow: function () {\n                    $(this).ColorPickerSetColor(this.value);\n                },\n                onHide: function() {\n                    insertPreview();\n                },\n                onChange: function (hsb, hex, rgb, el) {\n                    $(\'#wavecolor\').val(hex);\n                    $(\'#wavecolor\').css(\'backgroundColor\', \'#\' + hex);\n                }\n\n            })\n            .bind(\'keyup\', function(){\n                $(this).ColorPickerSetColor(this.value);\n            });\n            $(\'#bordercolor\').ColorPicker({\n                onSubmit: function(hsb, hex, rgb, el) {\n                    $(el).val(hex);\n                    $(el).ColorPickerHide();\n                    insertPreview();\n                },\n                onBeforeShow: function () {\n                    $(this).ColorPickerSetColor(this.value);\n                },\n                onHide: function() {\n                    insertPreview();\n                },\n                onChange: function (hsb, hex, rgb, el) {\n                    $(\'#bordercolor\').val(hex);\n                    $(\'#bordercolor\').css(\'backgroundColor\', \'#\' + hex);\n                }\n\n            })\n            .bind(\'keyup\', function(){\n                $(this).ColorPickerSetColor(this.value);\n            });\n\n            $(\'#width\').blur(function () {\n                insertPreview();\n            });\n            $(\'#autostarty\').click(function () {\n                insertPreview();\n            });\n            $(\'#autostartn\').click(function () {\n                insertPreview();\n            });\n            $(\'#playervolume\').blur(function () {\n                insertPreview();\n            });\n\n            var insertPreview = function() {\n                var zippytext = $(\'#textcolor\').val();\n                var zippyback = $(\'#backcolor\').val();\n                var zippyplay = $(\'#playcolor\').val();\n                var zippywave = $(\'#wavecolor\').val();\n                var zippyborder = $(\'#bordercolor\').val();\n                var zippywidth = $(\'#width\').val();\n                var zippyauto = false;\n                if ( $(\'#autostarty\').attr(\'checked\')) {\n                    zippyauto = true;\n                }\n                var zippyvol = $(\'#playervolume\').val();\n\n                $(\'#textcolor\').css(\'backgroundColor\', \'#\' + zippytext);\n                $(\'#backcolor\').css(\'backgroundColor\', \'#\' + zippyback);\n                $(\'#playcolor\').css(\'backgroundColor\', \'#\' + zippyplay);\n\n\n                $.cookie(\'embed-player-values-new\', JSON.stringify({front: zippytext, back: zippyback, light: zippyplay, width: zippywidth, auto: zippyauto, vol: zippyvol, border: zippyborder, dark: zippywave}), {expires:99999, domain: \'zippyshare.com\', path: \'/\'});\n                swfobject.embedSWF("/swf/player_local.swf", "player-preview2", zippywidth, "80", "9.0.0","expressInstall.swf", {width: zippywidth, baseurl: \'http://rbetav2.zippyshare.com/api/\', file: \'53458420\', server: \'72\', availablequality: \'both\', autostart: zippyauto, bordercolor: \'#\'+zippyborder, forecolor: \'#\'+zippytext, backcolor: \'#\'+zippyback, darkcolor: \'#\'+zippywave, lightcolor:  \'#\'+zippyplay}, {allowfullscreen: false, wmode: \'transparent\'});\n                $(\'#embed-player\').val(\'<scr\'+\'ipt type="text/javascript">var zippywww="72";var zippyfile="53458420";var zippytext="#\'+zippytext+\'";var zippyback="#\'+zippyback+\'";var zippyplay="#\'+zippyplay+\'";var zippywidth=\'+zippywidth+\';var zippyauto=\'+zippyauto+\';var zippyvol=\'+zippyvol+\';var zippywave = "#\'+zippywave+\'";var zippyborder = "#\'+zippyborder+\'";<\\/scr\'+\'ipt><scr\'+\'ipt type="text/javascript" src="http://api.zippyshare.com/api/embed_new.js"><\\/scr\'+\'ipt>\');\n            }\n\n            if ($.cookie(\'embed-player-values-new\')) {\n                var obj = JSON.parse($.cookie(\'embed-player-values-new\'));\n                $(\'#textcolor\').val(obj.front);\n                $(\'#backcolor\').val(obj.back);\n                $(\'#playcolor\').val(obj.light);\n                if (obj.dark) {\n                    $(\'#wavecolor\').val(obj.dark); \n                }\n                if (obj.border) {\n                    $(\'#bordercolor\').val(obj.border); \n                }\n                $(\'#width\').val(obj.width);\n                if (obj.auto) {\n                    $(\'#autostarty\').attr(\'checked\', true);\n                }\n                $(\'#playervolume\').val(obj.vol);\n\n            }\n            insertPreview();\n        });\n    </script>\n\n    <!-- Put this code at the bottom of your page -->\n    <script type="text/javascript">\n        var tumblr_button = document.createElement("a");\n        tumblr_button.setAttribute("href", "http://www.tumblr.com/share/video?embed=" + encodeURIComponent(tumblr_video_embed_code) + "&caption=" + encodeURIComponent(tumblr_video_caption));\n        tumblr_button.setAttribute("title", "Share on Tumblr");\n        tumblr_button.setAttribute("style", "display:inline-block; text-indent:-9999px; overflow:hidden; width:81px; height:20px; background:url(\'http://platform.tumblr.com/v1/share_1.png\') top left no-repeat transparent;");\n        tumblr_button.innerHTML = "Share on Tumblr";\n        document.getElementById("tumblr_button_abc123").appendChild(tumblr_button);\n    </script>\n\n<div class="slickbox">\n                                            <div class="center">\n                                                <div class="ramka_container" style="max-width: 1185px;padding:0 0 5px 0; margin-top:20px;">\n    <div class="belka" style="text-align: center;">\n        <img style="vertical-align: absmiddle;" src="/images/icons/newspaper.png"/>\n        <font style="font-size: 13px; font-weight: bolder; text-decoration: underline;">Zippyshare.com News:</font>\n    </div>\n    <div class="pojemnik">\n        <div>\n                <div>\n                    <img style="float: left;" align="middle" src="/images/icons/new.png" alt="new"/>\n                    <div style="float: left; margin-left: 5px; width:600px;">\n                        <strong><a style="font-size:12px; line-height: 18px;" href="http://blog.zippyshare.com/?p=579">Connectivity/Speed Issues</a></strong>\n                    </div>\n                    <br/>\n                    <div style="margin-left: 20px; font-size: 10px;">10 May 2013 21:43</div>\n                </div>\n                <div style="margin: 1px 0pt 0pt 20px; font-size:12px; line-height: 18px;">\n                    Hey Folks,\r\n\r\nFor the last 48h some of you may encountered ugly speed problems from part of our infrastructure. We fight with this all day, and we won. Our ISP had to switch whole our infrastructure o...\n                </div>\n                <br/>\n            </div>\n        <div>\n                <div>\n                    <img style="float: left;" align="middle" src="/images/icons/new.png" alt="new"/>\n                    <div style="float: left; margin-left: 5px; width:600px;">\n                        <strong><a style="font-size:12px; line-height: 18px;" href="http://blog.zippyshare.com/?p=531">Zippyshare technobabble once again. :-)</a></strong>\n                    </div>\n                    <br/>\n                    <div style="margin-left: 20px; font-size: 10px;">15 Oct 2012 16:32</div>\n                </div>\n                <div style="margin: 1px 0pt 0pt 20px; font-size:12px; line-height: 18px;">\n                    Hey Folks,\r\n\r\nWe owe You some information about any issues with our website You  might have encountered lately. We talk about the following:\r\n\r\n- slow speeds on  some of the servers\r\n\r\n- long waiting ...\n                </div>\n                <br/>\n            </div>\n        <div>\n                <div>\n                    <img style="float: left;" align="middle" src="/images/icons/new.png" alt="new"/>\n                    <div style="float: left; margin-left: 5px; width:600px;">\n                        <strong><a style="font-size:12px; line-height: 18px;" href="http://blog.zippyshare.com/?p=501">User registration</a></strong>\n                    </div>\n                    <br/>\n                    <div style="margin-left: 20px; font-size: 10px;">26 Jan 2012 11:28</div>\n                </div>\n                <div style="margin: 1px 0pt 0pt 20px; font-size:12px; line-height: 18px;">\n                    Due to the fact that the company which we send our email through has lately had some serious problems with the email delivery to some email providers (eg. hotmail) we have decided to make the account ...\n                </div>\n                <br/>\n            </div>\n        </div>\n</div></div>\n                                            <div class="left" style="padding-top: 10px; text-align: center;">\n                                                <font class="bold">To upload a file just follow these simple steps:</font>\n                                            </div>\n                                            <div class="right" style="padding-top: 10px; text-align: center;">\n                                                <font class="bold">Benefits of using Zippyshare:</font>\n                                            </div>\n                                            <div class="left">\n                                                <b>1)</b> Select a file to send by clicking the "Browse" button. You can then select photos, audio, video, documents or anything else you want to send. The maximum file size is 200 MB.<br><br><b>2)</b> Click the "Start Upload" button to start uploading the file. You will see the progress of the file transfer. Please don\'t close your browser window while uploading or it will cancel the upload.<br><br><b>3)</b> After a succesfull upload you\'ll receive a unique link to the download site, which you can place anywhere: on your homepage, blog, forum or send it via IM or e-mail to your friends.<br><br></div>\n                                            <div class="right" style="margin-top: -3px;">\n                                                <font class="list">\n                                                <img src="/images/icons/tick.png" alt="">Zippyshare.com is completely free, reliable and popular way to store &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; files online.<br>\n                                                <img src="/images/icons/tick.png" alt="">We offer fast download speeds.<br>\n                                                <img src="/images/icons/tick.png" alt="">The maximum filesize for a single file is 200 MB.<br>\n                                                <img src="/images/icons/tick.png" alt="">The file can be downloaded at any time and as often as you need it.<br>\n                                                <img src="/images/icons/tick.png" alt="">File Life: 30 days after no activity.<br>\n                                                <img src="/images/icons/tick.png" alt="">No ridiculous queues!<br>\n                                                <img src="/images/icons/tick.png" alt="">No limits!<br>\n                                                </font>\n                                            </div>\n                                        </div>\n                                        <div class="center" style="text-align: center; margin-bottom: 10px; margin-top: 15px;">\n                                            <font style="font-size: 10px; color: #000000; font-weight: bolder;">Report illegal files, please&nbsp;<a href="http://www.support.zippyshare.com/index.php?act=tickets&code=open" class="abuse">click here </a>and send full link to us!</font>\n                                        </div>\n                                    </div>\n                                </td>\n                            </tr>\n                        </table>\n                    </div>\n                </div>\n                <div id="bottom">\n                    <font style="font-size: 12px; color: #000000; font-weight: bolder;">&copy; 2006-2013 Zippyshare.com. All rights reserved.</font><br />\n                    <a target="_blank" href="../../terms_and_conditions_of_use.html" class="PPToS">Terms and Conditions</a> <font style="font-size: 10px; color: #000000;">|</font> <a target="_blank" href="../../dmca.html" class="PPToS">DMCA Policy</a>\n                    <script type="text/javascript" src="http://www.adcash.com/script/java.php?option=rotateur&rotateur=125524"></script>\n                            </div>\n            </div>\n            </body>\n    </html>\n'
	                  js = <module.common.JsEngine.JsEngine instance at 0x02678AA8>
	           lastCheck = None
	        lastDownload = ''
	             limitDL = 0
	                 log = <logging.Logger object at 0x0243D990>
	             multiDL = True
	                 ocr = None
	             premium = False
	              pyfile = PyFile 12: 21street%2c%20Kash%20Trivedi%20-%20Magik%20Globe%20%28Original%20Mix%29%20%5bexclusive-music-dj.com%5d.mp3@ZippyshareCom
	                 req = <module.network.Browser.Browser object at 0x044C3AE8>
	      resumeDownload = False
	             retries = 0
	              thread = <DownloadThread(Thread-2, started daemon 7176)>
	                user = None
	           waitUntil = 0
	             waiting = False
	       wantReconnect = False

PYFILE OBJECT DUMP: 

	               _size = 18035507
	               abort = False
	              active = False
	               error = "'NoneType' object has no attribute 'group'"
	                  id = 12
	                lock = <_RLock owner=None count=0>
	                   m = <module.database.FileDatabase.FileHandler instance at 0x0246C030>
	         maxprogress = 100
	                name = u'21street%2c%20Kash%20Trivedi%20-%20Magik%20Globe%20%28Original%20Mix%29%20%5bexclusive-music-dj.com%5d.mp3'
	               order = 0
	           packageid = 12
	              plugin = <module.plugins.hoster.ZippyshareCom.ZippyshareCom object at 0x045C4350>
	         pluginclass = <class 'module.plugins.hoster.ZippyshareCom.ZippyshareCom'>
	        pluginmodule = <module 'module.plugins.hoster.ZippyshareCom' from 'C:\Users\Chris99\Desktop\pyload\dist\.\module\plugins\hoster\ZippyshareCom.pyc'>
	          pluginname = u'ZippyshareCom'
	            progress = 0
	         reconnected = False
	                size = 18035507
	              status = 8
	          statusname = None
	                 url = u'http://www72.zippyshare.com/v/53458420/file.html'
	           waitUntil = 0


CONFIG: 

{'desc': 'ZippyshareCom',
 'outline': 'Zippyshare.com Download Hoster',
 'swfdump_path': {'desc': 'Path to swfdump',
                  'type': 'string',
                  'value': 'C:\\Program Files (x86)\\SWFTools'}}


# Fixed code
def get_file_url(self):
    """returns the absolute downloadable filepath"""
    url = None

    found = re.search(self.DOWNLOAD_URL_PATTERN, self.html, re.S)
    # Method #1: JS eval
    if found and re.search(r'span id="omg" class="(\d*)"', self.html):
        js = "\n".join(found.groups())
        d = re.search(r'span id="omg" class="(\d*)"', self.html).group(1)
        regex = r"document.getElementById\('omg'\).getAttribute\('class'\)"
        js = re.sub(regex, d, js)
        regex = r"document.getElementById\(\\*'dlbutton\\*'\).href = "
        js = re.sub(regex, "", js)
        url = self.js.eval(js)
    elif found and re.search(
        r"document.getElementById\(\\*'dlbutton\\*'\).omg", self.html
    ):
        js = "\n".join(found.groups())
        regex = r"document.getElementById\(\\*'dlbutton\\*'\).omg"
        omg = re.search(regex + r" = ([^;]+);", js).group(1)
        js = re.sub(regex + r" = ([^;]+);", "", js)
        js = re.sub(regex, omg, js)
        js = re.sub(r"document.getElementById\(\\*'dlbutton\\*'\).href = ", "", js)
        url = self.js.eval(js)
    else:
        # Method #2: SWF eval
        url = self.swf_eval()

        if not url:
            # Method #3: Captcha
            url = self.do_recaptcha()

    return self.file_info["HOST"] + url