Helpviewer/AdBlock/AdBlockNetwork.py

Fri, 31 Dec 2010 15:49:50 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 31 Dec 2010 15:49:50 +0100
changeset 791
9ec2ac20e54e
parent 96
9624a110667d
child 945
8cd4d08fa9f6
child 1510
e75ecf2bd9dd
permissions
-rw-r--r--

Updated copyright notice.

# -*- coding: utf-8 -*-

# Copyright (c) 2009 - 2011 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Module implementing the network block class.
"""

from PyQt4.QtCore import *

import Helpviewer.HelpWindow

from .AdBlockBlockedNetworkReply import AdBlockBlockedNetworkReply

class AdBlockNetwork(QObject):
    """
    Class implementing a network block.
    """
    def block(self, request):
        """
        Public method to check for a network block.
        
        @return reply object (QNetworkReply) or None
        """
        url = request.url()
        
        if url.scheme() in ["data", "pyrc", "qthelp"]:
            return None
        
        manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
        if not manager.isEnabled():
            return None
        
        urlString = bytes(url.toEncoded()).decode()
        blockedRule = None
        
        for subscription in manager.subscriptions():
            if subscription.allow(urlString):
                return None
            
            rule = subscription.block(urlString)
            if rule is not None:
                blockedRule = rule
                break
        
        if blockedRule is not None:
            reply = AdBlockBlockedNetworkReply(request, blockedRule, self)
            return reply
        
        return None

eric ide

mercurial