diff options
Diffstat (limited to 'pyload/plugin/addon/UserAgentSwitcher.py')
-rw-r--r-- | pyload/plugin/addon/UserAgentSwitcher.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/pyload/plugin/addon/UserAgentSwitcher.py b/pyload/plugin/addon/UserAgentSwitcher.py new file mode 100644 index 000000000..ec1640e63 --- /dev/null +++ b/pyload/plugin/addon/UserAgentSwitcher.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- + +from __future__ import with_statement + +import os +import pycurl +import random + +from pyload.plugin.Addon import Addon +from pyload.utils import fs_encode + + +class UserAgentSwitcher(Addon): + __name = "UserAgentSwitcher" + __type = "addon" + __version = "0.04" + + __config = [("activated", "bool", "Activated" , True ), + ("uaf" , "file", "Random user-agents file" , "" ), + ("uar" , "bool", "Random user-agent" , False ), + ("uas" , "str" , "Custom user-agent string", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0")] + + __description = """Custom user-agent""" + __license = "GPLv3" + __authors = [("Walter Purcaro", "vuolter@gmail.com")] + + + def setup(self): + self.info = {} #@TODO: Remove in 0.4.10 + + + def downloadPreparing(self, pyfile): + uar = self.getConfig('uar') + uaf = fs_encode(self.getConfig('uaf')) + + if uar and os.path.isfile(uaf): + with open(uaf) as f: + uas = random.choice([ua for ua in f.read().splitlines()]) + else: + uas = self.getConfig('uas') + + if uas: + self.logDebug("Use custom user-agent string: " + uas) + pyfile.plugin.req.http.c.setopt(pycurl.USERAGENT, uas.encode('utf-8')) |