summaryrefslogtreecommitdiffstats
path: root/pyload/plugins/addons
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/plugins/addons')
-rw-r--r--pyload/plugins/addons/BypassCaptcha.py4
-rw-r--r--pyload/plugins/addons/CaptchaTrader.py4
-rw-r--r--pyload/plugins/addons/DebridItaliaCom.py5
-rw-r--r--pyload/plugins/addons/DeleteFinished.py61
-rw-r--r--pyload/plugins/addons/ExtractArchive.py4
-rw-r--r--pyload/plugins/addons/ImageTyperz.py4
-rw-r--r--pyload/plugins/addons/LinkdecrypterCom.py4
-rw-r--r--pyload/plugins/addons/Premium4Me.py12
-rw-r--r--pyload/plugins/addons/RestartFailed.py137
-rw-r--r--pyload/plugins/addons/SkipRev.py46
-rw-r--r--pyload/plugins/addons/UnrestrictLi.py44
-rw-r--r--pyload/plugins/addons/XFileSharingPro.py46
12 files changed, 188 insertions, 183 deletions
diff --git a/pyload/plugins/addons/BypassCaptcha.py b/pyload/plugins/addons/BypassCaptcha.py
index 24ad17dd8..e24a439af 100644
--- a/pyload/plugins/addons/BypassCaptcha.py
+++ b/pyload/plugins/addons/BypassCaptcha.py
@@ -41,9 +41,9 @@ class BypassCaptchaException(Exception):
class BypassCaptcha(Hook):
__name__ = "BypassCaptcha"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """send captchas to BypassCaptcha.com"""
- __config__ = [("activated", "bool", "Activated", True),
+ __config__ = [("activated", "bool", "Activated", False),
("force", "bool", "Force BC even if client is connected", False),
("passkey", "password", "Passkey", "")]
__author_name__ = ("RaNaN", "Godofdream", "zoidberg")
diff --git a/pyload/plugins/addons/CaptchaTrader.py b/pyload/plugins/addons/CaptchaTrader.py
index 889fa38ef..82dd2383a 100644
--- a/pyload/plugins/addons/CaptchaTrader.py
+++ b/pyload/plugins/addons/CaptchaTrader.py
@@ -46,9 +46,9 @@ class CaptchaTraderException(Exception):
class CaptchaTrader(Addon):
__name__ = "CaptchaTrader"
- __version__ = "0.14"
+ __version__ = "0.15"
__description__ = """send captchas to captchatrader.com"""
- __config__ = [("activated", "bool", "Activated", True),
+ __config__ = [("activated", "bool", "Activated", False),
("username", "str", "Username", ""),
("force", "bool", "Force CT even if client is connected", False),
("passkey", "password", "Password", ""),]
diff --git a/pyload/plugins/addons/DebridItaliaCom.py b/pyload/plugins/addons/DebridItaliaCom.py
index 80cdc45f6..99b2dd626 100644
--- a/pyload/plugins/addons/DebridItaliaCom.py
+++ b/pyload/plugins/addons/DebridItaliaCom.py
@@ -20,7 +20,7 @@ from module.plugins.internal.MultiHoster import MultiHoster
class DebridItaliaCom(MultiHoster):
__name__ = "DebridItaliaCom"
- __version__ = "0.05"
+ __version__ = "0.06"
__type__ = "hook"
__config__ = [("activated", "bool", "Activated", "False"),
("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"),
@@ -38,4 +38,5 @@ class DebridItaliaCom(MultiHoster):
"bitshare.com", "share-links.biz", "putlocker.com", "uploaded.to",
"speedload.org", "rapidgator.net", "likeupload.net", "cyberlocker.ch",
"depositfiles.com", "extabit.com", "filefactory.com", "sharefiles.co",
- "ryushare.com", "tusfiles.net", "nowvideo.co", "cloudzer.net", "letitbit.net"]
+ "ryushare.com", "tusfiles.net", "nowvideo.co", "cloudzer.net", "letitbit.net",
+ "easybytez.com"]
diff --git a/pyload/plugins/addons/DeleteFinished.py b/pyload/plugins/addons/DeleteFinished.py
index e0df69eef..01cb1b8e1 100644
--- a/pyload/plugins/addons/DeleteFinished.py
+++ b/pyload/plugins/addons/DeleteFinished.py
@@ -17,13 +17,13 @@
@author: Walter Purcaro
"""
+from module.database import style
from module.plugins.Hook import Hook
-from time import time
class DeleteFinished(Hook):
__name__ = "DeleteFinished"
- __version__ = "0.5"
+ __version__ = "1.02"
__description__ = "Automatically delete finished packages from queue"
__config__ = [
("activated", "bool", "Activated", "False"),
@@ -32,19 +32,44 @@ class DeleteFinished(Hook):
__author_name__ = ("Walter Purcaro")
__author_mail__ = ("vuolter@gmail.com")
- def wakeup(self, pypack):
- # self.logDebug("self.wakeup")
- self.removeEvent("packageFinished", self.wakeup)
- self.info["sleep"] = False
-
+ ## overwritten methods ##
def periodical(self):
# self.logDebug("self.periodical")
if not self.info["sleep"]:
- self.core.api.deleteFinished()
- self.logDebug("called self.core.api.deleteFinished")
+ self.logInfo("self.deleteFinished")
+ self.deleteFinished()
self.info["sleep"] = True
self.addEvent("packageFinished", self.wakeup)
+ def pluginConfigChanged(self, plugin, name, value):
+ # self.logDebug("self.pluginConfigChanged")
+ if name == "interval" and value != self.interval:
+ self.interval = value
+ self.initPeriodical()
+
+ def unload(self):
+ # self.logDebug("self.unload")
+ self.removeEvent("packageFinished", self.wakeup)
+
+ def coreReady(self):
+ # self.logDebug("self.coreReady")
+ self.info = {"sleep": True}
+ interval = self.getConfig("interval") * 3600
+ self.pluginConfigChanged("DeleteFinished", "interval", interval)
+ self.addEvent("packageFinished", self.wakeup)
+
+ ## own methods ##
+ @style.queue
+ def deleteFinished(self):
+ self.c.execute("DELETE FROM packages WHERE NOT EXISTS(SELECT 1 FROM links WHERE package=packages.id AND status NOT IN (0,4))")
+ self.c.execute("DELETE FROM links WHERE NOT EXISTS(SELECT 1 FROM packages WHERE id=links.package)")
+
+ def wakeup(self, pypack):
+ # self.logDebug("self.wakeup")
+ self.removeEvent("packageFinished", self.wakeup)
+ self.info["sleep"] = False
+
+ ## event managing ##
def addEvent(self, event, handler):
if event in self.manager.events:
if handler not in self.manager.events[event]:
@@ -66,21 +91,3 @@ class DeleteFinished(Hook):
else:
# self.logDebug("self.removeEvent: " + event + ": NOT removed handler")
return False
-
- def configEvents(self, plugin=None, name=None, value=None):
- # self.logDebug("self.configEvents")
- interval = self.getConfig("interval") * 3600
- if interval != self.interval:
- self.interval = interval
-
- def unload(self):
- # self.logDebug("self.unload")
- self.removeEvent("pluginConfigChanged", self.configEvents)
- self.removeEvent("packageFinished", self.wakeup)
-
- def coreReady(self):
- # self.logDebug("self.coreReady")
- self.info = {"sleep": True}
- self.addEvent("pluginConfigChanged", self.configEvents)
- self.configEvents()
- self.addEvent("packageFinished", self.wakeup)
diff --git a/pyload/plugins/addons/ExtractArchive.py b/pyload/plugins/addons/ExtractArchive.py
index 369b20ba9..587903fbe 100644
--- a/pyload/plugins/addons/ExtractArchive.py
+++ b/pyload/plugins/addons/ExtractArchive.py
@@ -57,7 +57,7 @@ class ExtractArchive(Addon):
Provides: unrarFinished (folder, filename)
"""
__name__ = "ExtractArchive"
- __version__ = "0.12"
+ __version__ = "0.13"
__description__ = "Extract different kind of archives"
__config__ = [("activated", "bool", "Activated", True),
("fullpath", "bool", "Extract full path", True),
@@ -152,7 +152,7 @@ class ExtractArchive(Addon):
out = save_join(dl, p.folder, self.getConfig("destination"), "")
#relative to package folder if destination is relative, otherwise absolute path overwrites them
- if self.getConf("subfolder"):
+ if self.getConfig("subfolder"):
out = join(out, fs_encode(p.folder))
if not exists(out):
diff --git a/pyload/plugins/addons/ImageTyperz.py b/pyload/plugins/addons/ImageTyperz.py
index 59b6334a7..f8f515113 100644
--- a/pyload/plugins/addons/ImageTyperz.py
+++ b/pyload/plugins/addons/ImageTyperz.py
@@ -42,9 +42,9 @@ class ImageTyperzException(Exception):
class ImageTyperz(Hook):
__name__ = "ImageTyperz"
- __version__ = "0.03"
+ __version__ = "0.04"
__description__ = """send captchas to ImageTyperz.com"""
- __config__ = [("activated", "bool", "Activated", True),
+ __config__ = [("activated", "bool", "Activated", False),
("username", "str", "Username", ""),
("passkey", "password", "Password", ""),
("force", "bool", "Force IT even if client is connected", False)]
diff --git a/pyload/plugins/addons/LinkdecrypterCom.py b/pyload/plugins/addons/LinkdecrypterCom.py
index d3d6bce68..c117cafb9 100644
--- a/pyload/plugins/addons/LinkdecrypterCom.py
+++ b/pyload/plugins/addons/LinkdecrypterCom.py
@@ -24,9 +24,9 @@ from module.utils import remove_chars
class LinkdecrypterCom(Hook):
__name__ = "LinkdecrypterCom"
- __version__ = "0.17"
+ __version__ = "0.18"
__description__ = """linkdecrypter.com - regexp loader"""
- __config__ = [ ("activated", "bool", "Activated" , "True") ]
+ __config__ = [ ("activated", "bool", "Activated" , "False") ]
__author_name__ = ("zoidberg")
def coreReady(self):
diff --git a/pyload/plugins/addons/Premium4Me.py b/pyload/plugins/addons/Premium4Me.py
index b4e4f822f..edbdfbdb9 100644
--- a/pyload/plugins/addons/Premium4Me.py
+++ b/pyload/plugins/addons/Premium4Me.py
@@ -5,19 +5,19 @@ from module.plugins.internal.MultiHoster import MultiHoster
class Premium4Me(MultiHoster):
__name__ = "Premium4Me"
- __version__ = "0.02"
+ __version__ = "0.03"
__type__ = "hook"
__config__ = [("activated", "bool", "Activated", "False"),
("hosterListMode", "all;listed;unlisted", "Use for downloads from supported hosters:", "all"),
("hosterList", "str", "Hoster list (comma separated)", "")]
- __description__ = """premium4.me hook plugin"""
- __author_name__ = ("RaNaN", "zoidberg")
- __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz")
+ __description__ = """Premium.to hook plugin"""
+ __author_name__ = ("RaNaN", "zoidberg", "stickell")
+ __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it")
def getHoster(self):
- page = getURL("http://premium4.me/api/hosters.php?authcode=%s" % self.account.authcode)
+ page = getURL("http://premium.to/api/hosters.php?authcode=%s" % self.account.authcode)
return [x.strip() for x in page.replace("\"", "").split(";")]
def coreReady(self):
@@ -27,7 +27,7 @@ class Premium4Me(MultiHoster):
user = self.account.selectAccount()[0]
if not user:
- self.logError(_("Please add your premium4.me account first and restart pyLoad"))
+ self.logError(_("Please add your premium.to account first and restart pyLoad"))
return
return MultiHoster.coreReady(self) \ No newline at end of file
diff --git a/pyload/plugins/addons/RestartFailed.py b/pyload/plugins/addons/RestartFailed.py
index 7ee53deb9..c78ccf96c 100644
--- a/pyload/plugins/addons/RestartFailed.py
+++ b/pyload/plugins/addons/RestartFailed.py
@@ -1,124 +1,31 @@
- # -*- coding: utf-8 -*-
-
-"""
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>.
-
- @author: Walter Purcaro
-"""
+# -*- coding: utf-8 -*-
from module.plugins.Hook import Hook
-from time import time
-
class RestartFailed(Hook):
__name__ = "RestartFailed"
- __version__ = "1.5"
- __description__ = "Automatically restart failed/aborted downloads"
- __config__ = [
- ("activated", "bool", "Activated", "True"),
- ("dlFail", "bool", "Restart when download fail", "True"),
- ("dlFail_n", "int", "Only when failed downloads are at least", "5"),
- ("dlFail_i", "int", "Only when elapsed time since last restart is (min)", "10"),
- ("dlPrcs", "bool", "Restart after all downloads are processed", "True"),
- ("recnt", "bool", "Restart after reconnecting", "True"),
- ("rsLoad", "bool", "Restart on plugin activation", "False")
- ]
- __author_name__ = ("Walter Purcaro")
- __author_mail__ = ("vuolter@gmail.com")
-
- def restart(self, arg=None):
- # self.logDebug("self.restart")
- self.info["timerflag"] = False
- self.info["dlfailed"] = 0
- self.core.api.restartFailed()
- self.logDebug("self.restart: self.core.api.restartFailed")
- self.info["lastrstime"] = time()
-
- def periodical(self):
- # self.logDebug("self.periodical")
- if self.info["timerflag"]:
- self.restart()
-
- def checkInterval(self, arg=None):
- # self.logDebug("self.checkInterval")
- now = time()
- lastrstime = self.info["lastrstime"]
- interval = self.getConfig("dlFail_i") * 60
- if now < lastrstime + interval:
- self.info["timerflag"] = True
- else:
- self.restart()
-
- def checkFailed(self, pyfile):
- # self.logDebug("self.checkFailed")
- self.info["dlfailed"] += 1
- curr = self.info["dlfailed"]
- max = self.getConfig("dlFail_n")
- if curr >= max:
- self.checkInterval()
-
- def addEvent(self, event, handler):
- if event in self.manager.events:
- if handler not in self.manager.events[event]:
- self.manager.events[event].append(handler)
- # self.logDebug("self.addEvent: " + event + ": added handler")
- else:
- # self.logDebug("self.addEvent: " + event + ": NOT added handler")
- return False
- else:
- self.manager.events[event] = [handler]
- # self.logDebug("self.addEvent: " + event + ": added event and handler")
- return True
+ __version__ = "1.52"
+ __description__ = "restartedFailed Packages after defined time"
+ __config__ = [("activated", "bool", "Activated" , "False"),
+ ("interval", "int", "Interval in Minutes", "15") ]
+
+ __author_name__ = ("bambie")
+ __author_mail__ = ("bambie@gulli.com")
- def removeEvent(self, event, handler):
- if event in self.manager.events and handler in self.manager.events[event]:
- self.manager.events[event].remove(handler)
- # self.logDebug("self.removeEvent: " + event + ": removed handler")
- return True
- else:
- # self.logDebug("self.removeEvent: " + event + ": NOT removed handler")
- return False
+ interval = 300
- def configEvents(self, plugin=None, name=None, value=None):
- # self.logDebug("self.configEvents")
- self.interval = self.getConfig("dlFail_i") * 60
- dlFail = self.getConfig("dlFail")
- dlPrcs = self.getConfig("dlPrcs")
- recnt = self.getConfig("recnt")
- if dlPrcs:
- self.addEvent("allDownloadsProcessed", self.checkInterval)
- else:
- self.removeEvent("allDownloadsProcessed", self.checkInterval)
- if not dlFail:
- self.info["timerflag"] = False
- if recnt:
- self.addEvent("afterReconnecting", self.restart)
- else:
- self.removeEvent("afterReconnecting", self.restart)
-
- def unload(self):
- # self.logDebug("self.unload")
- self.removeEvent("pluginConfigChanged", self.configEvents)
- self.removeEvent("downloadFailed", self.checkFailed)
- self.removeEvent("allDownloadsProcessed", self.checkInterval)
- self.removeEvent("afterReconnecting", self.restart)
+ def setup(self):
+ self.info = {"running": False}
def coreReady(self):
- # self.logDebug("self.coreReady")
- self.info = {"dlfailed": 0, "lastrstime": 0, "timerflag": False}
- if self.getConfig("rsLoad"):
- self.restart()
- self.addEvent("downloadFailed", self.checkFailed)
- self.addEvent("pluginConfigChanged", self.configEvents)
- self.configEvents()
+ self.info["running"] = True
+ self.logInfo("loaded")
+ self.interval = self.getConfig("interval") * 60
+ self.logDebug("interval is set to %s" % self.interval)
+
+ def periodical(self):
+ self.logDebug("periodical called")
+ if self.getConfig("interval") * 60 != self.interval:
+ self.interval = self.getConfig("interval") * 60
+ self.logDebug("interval is set to %s" % self.interval)
+ self.core.api.restartFailed()
diff --git a/pyload/plugins/addons/SkipRev.py b/pyload/plugins/addons/SkipRev.py
new file mode 100644
index 000000000..561329122
--- /dev/null
+++ b/pyload/plugins/addons/SkipRev.py
@@ -0,0 +1,46 @@
+ # -*- coding: utf-8 -*-
+
+"""
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see <http://www.gnu.org/licenses/>.
+
+ @author: Walter Purcaro
+"""
+
+from module.plugins.Hook import Hook
+from os.path import basename
+from re import search
+
+
+class SkipRev(Hook):
+ __name__ = "SkipRev"
+ __version__ = "0.07"
+ __description__ = "Skip download when filename has rev extension"
+ __config__ = [
+ ("activated", "bool", "Activated", "False"),
+ ("number", "int", "Do not skip until rev part", "1")
+ ]
+ __author_name__ = ("Walter Purcaro")
+ __author_mail__ = ("vuolter@gmail.com")
+
+ def downloadPreparing(self, pyfile):
+ # self.logDebug("self.downloadPreparing")
+ name = basename(pyfile.name)
+ if not name.endswith(".rev"):
+ return
+ number = self.getConfig("number")
+ part = search(r'\.part(\d+)\.rev$', name)
+ if not part or int(part.group(1)) <= number:
+ return
+ self.logInfo("Skipping " + name)
+ pyfile.setStatus("skipped")
diff --git a/pyload/plugins/addons/UnrestrictLi.py b/pyload/plugins/addons/UnrestrictLi.py
new file mode 100644
index 000000000..0810a22d5
--- /dev/null
+++ b/pyload/plugins/addons/UnrestrictLi.py
@@ -0,0 +1,44 @@
+# -*- 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/>. #
+############################################################################
+
+from module.plugins.internal.MultiHoster import MultiHoster
+from module.network.RequestFactory import getURL
+from module.common.json_layer import json_loads
+
+
+class UnrestrictLi(MultiHoster):
+ __name__ = "UnrestrictLi"
+ __version__ = "0.02"
+ __type__ = "hook"
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"),
+ ("hosterList", "str", "Hoster list (comma separated)", ""),
+ ("unloadFailing", "bool", "Revert to standard download if download fails", "False"),
+ ("interval", "int", "Reload interval in hours (0 to disable)", "24"),
+ ("history", "bool", "Delete History", "False")]
+
+ __description__ = """Unrestrict.li hook plugin"""
+ __author_name__ = ("stickell")
+ __author_mail__ = ("l.stickell@yahoo.it")
+
+ def getHoster(self):
+ json_data = getURL('http://unrestrict.li/api/jdownloader/hosts.php?format=json')
+ json_data = json_loads(json_data)
+
+ host_list = [element['host'] for element in json_data['result']]
+
+ return host_list
diff --git a/pyload/plugins/addons/XFileSharingPro.py b/pyload/plugins/addons/XFileSharingPro.py
index 105c70113..f14ba7eb7 100644
--- a/pyload/plugins/addons/XFileSharingPro.py
+++ b/pyload/plugins/addons/XFileSharingPro.py
@@ -5,7 +5,7 @@ import re
class XFileSharingPro(Hook):
__name__ = "XFileSharingPro"
- __version__ = "0.04"
+ __version__ = "0.05"
__type__ = "hook"
__config__ = [ ("activated" , "bool" , "Activated" , "True"),
("loadDefault", "bool", "Include default (built-in) hoster list" , "True"),
@@ -14,57 +14,57 @@ class XFileSharingPro(Hook):
__description__ = """Hoster URL pattern loader for the generic XFileSharingPro plugin"""
__author_name__ = ("zoidberg")
__author_mail__ = ("zoidberg@mujmail.cz")
-
+
def coreReady(self):
self.loadPattern()
-
- def loadPattern(self):
+
+ def loadPattern(self):
hosterList = self.getConfigSet('includeList')
- excludeList = self.getConfigSet('excludeList')
-
- if self.getConfig('loadDefault'):
+ excludeList = self.getConfigSet('excludeList')
+
+ if self.getConfig('loadDefault'):
hosterList |= set((
#WORKING HOSTERS:
"aieshare.com", "asixfiles.com", "banashare.com", "cyberlocker.ch", "eyesfile.co", "eyesfile.com",
- "fileband.com", "filedwon.com", "filedownloads.org", "hipfile.com", "kingsupload.com", "mlfat4arab.com",
- "netuploaded.com", "odsiebie.pl", "q4share.com", "ravishare.com", "uptobox.com", "verzend.be",
- #NOT TESTED:
- "bebasupload.com", "boosterking.com", "divxme.com", "filevelocity.com", "glumbouploads.com", "grupload.com", "heftyfile.com",
+ "fileband.com", "filedwon.com", "filedownloads.org", "hipfile.com", "kingsupload.com", "mlfat4arab.com",
+ "netuploaded.com", "odsiebie.pl", "q4share.com", "ravishare.com", "uptobox.com", "verzend.be", "xvidstage.com",
+ #NOT TESTED:
+ "bebasupload.com", "boosterking.com", "divxme.com", "filevelocity.com", "glumbouploads.com", "grupload.com", "heftyfile.com",
"host4desi.com", "laoupload.com", "linkzhost.com", "movreel.com", "rockdizfile.com", "limfile.com"
- "share76.com", "sharebeast.com", "sharehut.com", "sharerun.com", "shareswift.com", "sharingonline.com", "6ybh-upload.com",
- "skipfile.com", "spaadyshare.com", "space4file.com", "uploadbaz.com", "uploadc.com",
- "uploaddot.com", "uploadfloor.com", "uploadic.com", "uploadville.com", "vidbull.com", "zalaa.com",
+ "share76.com", "sharebeast.com", "sharehut.com", "sharerun.com", "shareswift.com", "sharingonline.com", "6ybh-upload.com",
+ "skipfile.com", "spaadyshare.com", "space4file.com", "uploadbaz.com", "uploadc.com",
+ "uploaddot.com", "uploadfloor.com", "uploadic.com", "uploadville.com", "vidbull.com", "zalaa.com",
"zomgupload.com", "kupload.org", "movbay.org", "multishare.org", "omegave.org", "toucansharing.org", "uflinq.org",
"banicrazy.info", "flowhot.info", "upbrasil.info", "shareyourfilez.biz", "bzlink.us", "cloudcache.cc", "fileserver.cc"
"farshare.to", "filemaze.ws", "filehost.ws", "filestock.ru", "moidisk.ru", "4up.im", "100shared.com",
#WRONG FILE NAME:
- "sendmyway.com", "upchi.co.il", "180upload.com",
+ "sendmyway.com", "upchi.co.il",
#NOT WORKING:
"amonshare.com", "imageporter.com", "file4safe.com",
#DOWN OR BROKEN:
"ddlanime.com", "fileforth.com", "loombo.com", "goldfile.eu", "putshare.com"
- ))
-
+ ))
+
hosterList -= (excludeList)
hosterList -= set(('', u''))
-
+
if not hosterList:
self.unload()
return
-
+
regexp = r"http://(?:[^/]*\.)?(%s)/\w{12}" % ("|".join(sorted(hosterList)).replace('.','\.'))
#self.logDebug(regexp)
-
+
dict = self.core.pluginManager.hosterPlugins['XFileSharingPro']
dict["pattern"] = regexp
dict["re"] = re.compile(regexp)
self.logDebug("Pattern loaded - handling %d hosters" % len(hosterList))
-
+
def getConfigSet(self, option):
s = self.getConfig(option).lower().replace('|',',').replace(';',',')
return set([x.strip() for x in s.split(',')])
-
+
def unload(self):
dict = self.core.pluginManager.hosterPlugins['XFileSharingPro']
dict["pattern"] = r"^unmatchable$"
- dict["re"] = re.compile(r"^unmatchable$") \ No newline at end of file
+ dict["re"] = re.compile(r"^unmatchable$")