14 from PyQt4.QtNetwork import QNetworkReply |
14 from PyQt4.QtNetwork import QNetworkReply |
15 |
15 |
16 from E5Gui import E5MessageBox |
16 from E5Gui import E5MessageBox |
17 |
17 |
18 import Helpviewer.HelpWindow |
18 import Helpviewer.HelpWindow |
19 from Helpviewer import HelpUtilities |
|
20 from Helpviewer.Network.FollowRedirectReply import FollowRedirectReply |
19 from Helpviewer.Network.FollowRedirectReply import FollowRedirectReply |
21 |
|
22 from .GreaseMonkeyScript import GreaseMonkeyScript |
|
23 from .GreaseMonkeyAddScriptDialog import GreaseMonkeyAddScriptDialog |
|
24 |
20 |
25 |
21 |
26 class GreaseMonkeyDownloader(QObject): |
22 class GreaseMonkeyDownloader(QObject): |
27 """ |
23 """ |
28 Class implementing the downloader for GreaseMonkey scripts. |
24 Class implementing the downloader for GreaseMonkey scripts. |
57 |
53 |
58 response = bytes(self.__reply.readAll()).decode() |
54 response = bytes(self.__reply.readAll()).decode() |
59 |
55 |
60 if self.__reply.error() == QNetworkReply.NoError and \ |
56 if self.__reply.error() == QNetworkReply.NoError and \ |
61 "// ==UserScript==" in response: |
57 "// ==UserScript==" in response: |
|
58 from Helpviewer import HelpUtilities |
62 filePath = os.path.join(self.__manager.scriptsDirectory(), |
59 filePath = os.path.join(self.__manager.scriptsDirectory(), |
63 HelpUtilities.getFileNameFromUrl(self.__reply.url())) |
60 HelpUtilities.getFileNameFromUrl(self.__reply.url())) |
64 self.__fileName = HelpUtilities.ensureUniqueFilename(filePath) |
61 self.__fileName = HelpUtilities.ensureUniqueFilename(filePath) |
65 |
62 |
66 try: |
63 try: |
104 return |
101 return |
105 |
102 |
106 response = bytes(self.__reply.readAll()).decode() |
103 response = bytes(self.__reply.readAll()).decode() |
107 |
104 |
108 if self.__reply.error() == QNetworkReply.NoError and response: |
105 if self.__reply.error() == QNetworkReply.NoError and response: |
|
106 from Helpviewer import HelpUtilities |
109 filePath = os.path.join(self.__manager.requireScriptsDirectory(), |
107 filePath = os.path.join(self.__manager.requireScriptsDirectory(), |
110 "require.js") |
108 "require.js") |
111 fileName = HelpUtilities.ensureUniqueFilename(filePath, "{0}") |
109 fileName = HelpUtilities.ensureUniqueFilename(filePath, "{0}") |
112 |
110 |
113 try: |
111 try: |
141 if self.__requireUrls: |
139 if self.__requireUrls: |
142 self.__reply = FollowRedirectReply(self.__requireUrls.pop(0), |
140 self.__reply = FollowRedirectReply(self.__requireUrls.pop(0), |
143 Helpviewer.HelpWindow.HelpWindow.networkAccessManager()) |
141 Helpviewer.HelpWindow.HelpWindow.networkAccessManager()) |
144 self.__reply.finished.connect(self.__requireDownloaded) |
142 self.__reply.finished.connect(self.__requireDownloaded) |
145 else: |
143 else: |
|
144 from .GreaseMonkeyScript import GreaseMonkeyScript |
146 deleteScript = True |
145 deleteScript = True |
147 script = GreaseMonkeyScript(self.__manager, self.__fileName) |
146 script = GreaseMonkeyScript(self.__manager, self.__fileName) |
148 |
147 |
149 if script.isValid(): |
148 if script.isValid(): |
150 if not self.__manager.containsScript(script.fullName()): |
149 if not self.__manager.containsScript(script.fullName()): |
|
150 from .GreaseMonkeyAddScriptDialog import GreaseMonkeyAddScriptDialog |
151 dlg = GreaseMonkeyAddScriptDialog(self.__manager, script) |
151 dlg = GreaseMonkeyAddScriptDialog(self.__manager, script) |
152 deleteScript = dlg.exec_() != QDialog.Accepted |
152 deleteScript = dlg.exec_() != QDialog.Accepted |
153 else: |
153 else: |
154 E5MessageBox.information(None, |
154 E5MessageBox.information(None, |
155 self.trUtf8("GreaseMonkey Download"), |
155 self.trUtf8("GreaseMonkey Download"), |