# -*- 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'))