eric6/Helpviewer/AdBlock/AdBlockAccessHandler.py

changeset 6942
2602857055c5
parent 6645
ad476851d7e0
equal deleted inserted replaced
6941:f99d60d6b59b 6942:2602857055c5
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing a scheme access handler for AdBlock URLs.
8 """
9
10 from __future__ import unicode_literals
11
12 from PyQt5.QtCore import QByteArray
13 from PyQt5.QtNetwork import QNetworkAccessManager
14
15 from E5Gui import E5MessageBox
16
17 from Helpviewer.Network.SchemeAccessHandler import SchemeAccessHandler
18 from Helpviewer.Network.EmptyNetworkReply import EmptyNetworkReply
19
20 from Globals import qVersionTuple
21
22
23 class AdBlockAccessHandler(SchemeAccessHandler):
24 """
25 Class implementing a scheme access handler for AdBlock URLs.
26 """
27 def createRequest(self, op, request, outgoingData=None):
28 """
29 Public method to create a request.
30
31 @param op the operation to be performed
32 (QNetworkAccessManager.Operation)
33 @param request reference to the request object (QNetworkRequest)
34 @param outgoingData reference to an IODevice containing data to be sent
35 (QIODevice)
36 @return reference to the created reply object (QNetworkReply)
37 """
38 if op != QNetworkAccessManager.GetOperation:
39 return None
40
41 url = request.url()
42 if url.path() != "subscribe":
43 return None
44
45 if qVersionTuple() >= (5, 0, 0):
46 from PyQt5.QtCore import QUrlQuery, QUrl
47 title = QUrl.fromPercentEncoding(
48 QByteArray(QUrlQuery(url).queryItemValue("title").encode()))
49 else:
50 from PyQt5.QtCore import QUrl
51 title = QUrl.fromPercentEncoding(
52 url.encodedQueryItemValue(b"title"))
53 if not title:
54 return None
55 res = E5MessageBox.yesNo(
56 None,
57 self.tr("Subscribe?"),
58 self.tr(
59 """<p>Subscribe to this AdBlock subscription?</p>"""
60 """<p>{0}</p>""").format(title))
61 if res:
62 from .AdBlockSubscription import AdBlockSubscription
63 import Helpviewer.HelpWindow
64
65 dlg = Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
66 .showDialog()
67 subscription = AdBlockSubscription(
68 url, False,
69 Helpviewer.HelpWindow.HelpWindow.adBlockManager())
70 Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
71 .addSubscription(subscription)
72 dlg.addSubscription(subscription, False)
73 dlg.setFocus()
74 dlg.raise_()
75
76 return EmptyNetworkReply(self.parent())

eric ide

mercurial