summaryrefslogtreecommitdiffstats
path: root/module/plugins/internal/Hoster.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/internal/Hoster.py')
-rw-r--r--module/plugins/internal/Hoster.py40
1 files changed, 37 insertions, 3 deletions
diff --git a/module/plugins/internal/Hoster.py b/module/plugins/internal/Hoster.py
index 722fae2e0..9a9e61e46 100644
--- a/module/plugins/internal/Hoster.py
+++ b/module/plugins/internal/Hoster.py
@@ -6,25 +6,47 @@ import inspect
import os
import random
import time
+import urllib
import urlparse
if os.name != "nt":
import grp
import pwd
-from module.plugins.internal.Plugin import Plugin, Abort, Fail, Reconnect, Retry, Skip, parse_html_form
+from module.plugins.internal.Plugin import (Plugin, Abort, Fail, Reconnect, Retry, Skip
+ chunks, replace_patterns, seconds_to_midnight,
+ set_cookies, parse_html_form, parse_html_tag_attr_value,
+ timestamp)
from module.utils import fs_decode, fs_encode, save_join as fs_join
-def get_info(urls):
+#@TODO: Remove in 0.4.10
+def parse_fileInfo(klass, url="", html=""):
+ info = klass.get_info(url, html)
+ return info['name'], info['size'], info['status'], info['url']
+
+
+#@TODO: Remove in 0.4.10
+def getInfo(urls):
# result = [ .. (name, size, status, url) .. ]
pass
+#@TODO: Remove in 0.4.10
+def create_getInfo(klass):
+ def get_info(urls):
+ for url in urls:
+ if hasattr(klass, "URL_REPLACEMENTS"):
+ url = replace_patterns(url, klass.URL_REPLACEMENTS)
+ yield parse_fileInfo(klass, url)
+
+ return get_info
+
+
class Hoster(Plugin):
__name__ = "Hoster"
__type__ = "hoster"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'^unmatchable$'
__config__ = [] #: [("name", "type", "desc", "default")]
@@ -111,6 +133,18 @@ class Hoster(Plugin):
self.init()
+ @classmethod
+ def get_info(cls, url="", html=""):
+ url = urllib.unquote(url)
+ url_p = urlparse.urlparse(url)
+ return {'name' : (url_p.path.split('/')[-1]
+ or url_p.query.split('=', 1)[::-1][0].split('&', 1)[0]
+ or url_p.netloc.split('.', 1)[0]),
+ 'size' : 0,
+ 'status': 3 if url else 8,
+ 'url' : url}
+
+
def init(self):
"""
Initialize the plugin (in addition to `__init__`)