37 """ |
37 """ |
38 super(GreaseMonkeyDownloader, self).__init__() |
38 super(GreaseMonkeyDownloader, self).__init__() |
39 |
39 |
40 self.__manager = manager |
40 self.__manager = manager |
41 |
41 |
42 self.__reply = FollowRedirectReply(request.url(), |
42 self.__reply = FollowRedirectReply( |
|
43 request.url(), |
43 Helpviewer.HelpWindow.HelpWindow.networkAccessManager()) |
44 Helpviewer.HelpWindow.HelpWindow.networkAccessManager()) |
44 self.__reply.finished.connect(self.__scriptDownloaded) |
45 self.__reply.finished.connect(self.__scriptDownloaded) |
45 |
46 |
46 self.__fileName = "" |
47 self.__fileName = "" |
47 self.__requireUrls = [] |
48 self.__requireUrls = [] |
57 response = bytes(self.__reply.readAll()).decode() |
58 response = bytes(self.__reply.readAll()).decode() |
58 |
59 |
59 if self.__reply.error() == QNetworkReply.NoError and \ |
60 if self.__reply.error() == QNetworkReply.NoError and \ |
60 "// ==UserScript==" in response: |
61 "// ==UserScript==" in response: |
61 from Helpviewer import HelpUtilities |
62 from Helpviewer import HelpUtilities |
62 filePath = os.path.join(self.__manager.scriptsDirectory(), |
63 filePath = os.path.join( |
|
64 self.__manager.scriptsDirectory(), |
63 HelpUtilities.getFileNameFromUrl(self.__reply.url())) |
65 HelpUtilities.getFileNameFromUrl(self.__reply.url())) |
64 self.__fileName = HelpUtilities.ensureUniqueFilename(filePath) |
66 self.__fileName = HelpUtilities.ensureUniqueFilename(filePath) |
65 |
67 |
66 try: |
68 try: |
67 f = open(self.__fileName, "w", encoding="utf-8") |
69 f = open(self.__fileName, "w", encoding="utf-8") |
68 except (IOError, OSError) as err: |
70 except (IOError, OSError) as err: |
69 E5MessageBox.critical(None, |
71 E5MessageBox.critical( |
|
72 None, |
70 self.trUtf8("GreaseMonkey Download"), |
73 self.trUtf8("GreaseMonkey Download"), |
71 self.trUtf8( |
74 self.trUtf8( |
72 """<p>The file <b>{0}</b> could not be opened""" |
75 """<p>The file <b>{0}</b> could not be opened""" |
73 """ for writing.<br/>Reason: {1}</p>""").format( |
76 """ for writing.<br/>Reason: {1}</p>""").format( |
74 self.__fileName, str(err))) |
77 self.__fileName, str(err))) |
114 fileName = HelpUtilities.ensureUniqueFilename(filePath, "{0}") |
117 fileName = HelpUtilities.ensureUniqueFilename(filePath, "{0}") |
115 |
118 |
116 try: |
119 try: |
117 f = open(fileName, "w", encoding="utf-8") |
120 f = open(fileName, "w", encoding="utf-8") |
118 except (IOError, OSError) as err: |
121 except (IOError, OSError) as err: |
119 E5MessageBox.critical(None, |
122 E5MessageBox.critical( |
|
123 None, |
120 self.trUtf8("GreaseMonkey Download"), |
124 self.trUtf8("GreaseMonkey Download"), |
121 self.trUtf8( |
125 self.trUtf8( |
122 """<p>The file <b>{0}</b> could not be opened""" |
126 """<p>The file <b>{0}</b> could not be opened""" |
123 """ for writing.<br/>Reason: {1}</p>""").format( |
127 """ for writing.<br/>Reason: {1}</p>""").format( |
124 fileName, str(err))) |
128 fileName, str(err))) |
142 def __downloadRequires(self): |
146 def __downloadRequires(self): |
143 """ |
147 """ |
144 Private slot to initiate the download of required scripts. |
148 Private slot to initiate the download of required scripts. |
145 """ |
149 """ |
146 if self.__requireUrls: |
150 if self.__requireUrls: |
147 self.__reply = FollowRedirectReply(self.__requireUrls.pop(0), |
151 self.__reply = FollowRedirectReply( |
|
152 self.__requireUrls.pop(0), |
148 Helpviewer.HelpWindow.HelpWindow.networkAccessManager()) |
153 Helpviewer.HelpWindow.HelpWindow.networkAccessManager()) |
149 self.__reply.finished.connect(self.__requireDownloaded) |
154 self.__reply.finished.connect(self.__requireDownloaded) |
150 else: |
155 else: |
151 from .GreaseMonkeyScript import GreaseMonkeyScript |
156 from .GreaseMonkeyScript import GreaseMonkeyScript |
152 deleteScript = True |
157 deleteScript = True |
157 from .GreaseMonkeyAddScriptDialog import \ |
162 from .GreaseMonkeyAddScriptDialog import \ |
158 GreaseMonkeyAddScriptDialog |
163 GreaseMonkeyAddScriptDialog |
159 dlg = GreaseMonkeyAddScriptDialog(self.__manager, script) |
164 dlg = GreaseMonkeyAddScriptDialog(self.__manager, script) |
160 deleteScript = dlg.exec_() != QDialog.Accepted |
165 deleteScript = dlg.exec_() != QDialog.Accepted |
161 else: |
166 else: |
162 E5MessageBox.information(None, |
167 E5MessageBox.information( |
|
168 None, |
163 self.trUtf8("GreaseMonkey Download"), |
169 self.trUtf8("GreaseMonkey Download"), |
164 self.trUtf8( |
170 self.trUtf8( |
165 """<p><b>{0}</b> is already installed.</p>""") |
171 """<p><b>{0}</b> is already installed.</p>""") |
166 .format(script.name())) |
172 .format(script.name())) |
167 |
173 |