From 5eb1729ab45fcdb4862f2b4e54bdb79d7f59a6a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jens=20H=C3=B6rnlein?= <jens.hoernlein@googlemail.com>
Date: Sun, 1 Mar 2015 14:14:32 +0100
Subject: [JustPremium] Include hoster to remove

---
 module/plugins/hooks/JustPremium.py | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/module/plugins/hooks/JustPremium.py b/module/plugins/hooks/JustPremium.py
index 30a72c70f..daefbc30f 100644
--- a/module/plugins/hooks/JustPremium.py
+++ b/module/plugins/hooks/JustPremium.py
@@ -8,9 +8,10 @@ from module.plugins.Hook import Hook
 class JustPremium(Hook):
     __name__    = "JustPremium"
     __type__    = "hook"
-    __version__ = "0.21"
+    __version__ = "0.22"
 
-    __config__ = [("excluded", "str", "Exclude hosters (comma separated)", "")]
+    __config__ = [("excluded", "str", "Exclude hosters (comma separated)", ""),
+                  ("included", "str", "Include hosters (comma separated)", "")]
 
     __description__ = """Remove not-premium links from added urls"""
     __license__     = "GPLv3"
@@ -32,14 +33,18 @@ class JustPremium(Hook):
                              if 'new_name' in hosterdict[hoster] \
                              and hosterdict[hoster]['new_name'] in premiumplugins)
 
-        #: Found at least one hoster with account or multihoster
-        if not any(True for pluginname in linkdict if pluginname in premiumplugins | multihosters):
-            return
-
         excluded = map(lambda domain: "".join(part.capitalize() for part in re.split(r'(\.|\d+)', domain) if part != '.'),
                        self.getConfig('excluded').replace(' ', '').replace(',', '|').replace(';', '|').split('|'))
+        included = map(lambda domain: "".join(part.capitalize() for part in re.split(r'(\.|\d+)', domain) if part != '.'),
+                       self.getConfig('included').replace(' ', '').replace(',', '|').replace(';', '|').split('|'))
+
+        hosterlist = (premiumplugins | multihosters).union(excluded).difference(included)
+
+        #: Found at least one hoster with account or multihoster
+        if not any( True for pluginname in linkdict if pluginname in hosterlist ):
+            return
 
-        for pluginname in set(linkdict.keys()) - (premiumplugins | multihosters).union(excluded):
+        for pluginname in set(linkdict.keys()) - hosterlist:
             self.logInfo(_("Remove links of plugin: %s") % pluginname)
             for link in linkdict[pluginname]:
                 self.logDebug("Remove link: %s" % link)
-- 
cgit v1.2.3