Helpviewer/AdBlock/AdBlockNetwork.py

changeset 0
de9c2efb9d02
child 12
1d8dd9706f46
equal deleted inserted replaced
-1:000000000000 0:de9c2efb9d02
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2009 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing the network block class.
8 """
9
10 from PyQt4.QtCore import *
11
12 import Helpviewer.HelpWindow
13
14 from AdBlockBlockedNetworkReply import AdBlockBlockedNetworkReply
15
16 class AdBlockNetwork(QObject):
17 """
18 Class implementing a network block.
19 """
20 def block(self, request):
21 """
22 Public method to check for a network block.
23
24 @return reply object (QNetworkReply) or None
25 """
26 url = request.url()
27
28 if url.scheme() in ["data", "pyrc", "qthelp"]:
29 return None
30
31 manager = Helpviewer.HelpWindow.HelpWindow.adblockManager()
32 if not manager.isEnabled():
33 return None
34
35 urlString = unicode(url.toEncoded())
36 blockedRule = None
37 blockingSubscription = None
38
39 for subscription in manager.subscriptions():
40 if subscription.allow(urlString):
41 return None
42
43 rule = subscription.block(urlString)
44 if rule is not None:
45 blockedRule = rule
46 blockingSubscription = subscription
47 break
48
49 if blockedRule is not None:
50 reply = AdBlockBlockedNetworkReply(request, blockedRule, self)
51 return reply
52
53 return None

eric ide

mercurial