5 |
5 |
6 """ |
6 """ |
7 Module implementing the downloader for GreaseMonkey scripts. |
7 Module implementing the downloader for GreaseMonkey scripts. |
8 """ |
8 """ |
9 |
9 |
|
10 import enum |
10 import os |
11 import os |
11 import pathlib |
12 import pathlib |
12 |
13 |
13 from PyQt6.QtCore import QObject, QSettings, pyqtSignal, pyqtSlot |
14 from PyQt6.QtCore import QObject, QSettings, pyqtSignal, pyqtSlot |
14 from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest |
15 from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest |
15 |
16 |
16 from eric7.WebBrowser.Tools import WebBrowserTools |
17 from eric7.WebBrowser.Tools import WebBrowserTools |
17 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow |
18 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow |
|
19 |
|
20 |
|
21 class GreaseMonkeyDownloadType(enum.Enum): |
|
22 """ |
|
23 Class defining the download types. |
|
24 """ |
|
25 |
|
26 MainScript = 1 |
|
27 RequireScript = 2 |
18 |
28 |
19 |
29 |
20 class GreaseMonkeyDownloader(QObject): |
30 class GreaseMonkeyDownloader(QObject): |
21 """ |
31 """ |
22 Class implementing the downloader for GreaseMonkey scripts. |
32 Class implementing the downloader for GreaseMonkey scripts. |
27 """ |
37 """ |
28 |
38 |
29 finished = pyqtSignal(str) |
39 finished = pyqtSignal(str) |
30 error = pyqtSignal() |
40 error = pyqtSignal() |
31 |
41 |
32 # TODO: change this to an enum |
|
33 DownloadMainScript = 1 |
|
34 DownloadRequireScript = 2 |
|
35 |
|
36 def __init__(self, url, manager, mode): |
42 def __init__(self, url, manager, mode): |
37 """ |
43 """ |
38 Constructor |
44 Constructor |
39 |
45 |
40 @param url URL to download script from |
46 @param url URL to download script from |
41 @type QUrl |
47 @type QUrl |
42 @param manager reference to the GreaseMonkey manager |
48 @param manager reference to the GreaseMonkey manager |
43 @type GreaseMonkeyManager |
49 @type GreaseMonkeyManager |
44 @param mode download mode |
50 @param mode download mode |
45 @type int (one of DownloadMainScript, DownloadRequireScript) |
51 @type GreaseMonkeyDownloadType |
46 """ |
52 """ |
47 super().__init__() |
53 super().__init__() |
48 |
54 |
49 self.__manager = manager |
55 self.__manager = manager |
50 |
56 |
51 self.__reply = WebBrowserWindow.networkManager().get(QNetworkRequest(url)) |
57 self.__reply = WebBrowserWindow.networkManager().get(QNetworkRequest(url)) |
52 if mode == GreaseMonkeyDownloader.DownloadMainScript: |
58 if mode == GreaseMonkeyDownloadType.MainScript: |
53 self.__reply.finished.connect(self.__scriptDownloaded) |
59 self.__reply.finished.connect(self.__scriptDownloaded) |
54 else: |
60 else: |
55 self.__reply.finished.connect(self.__requireDownloaded) |
61 self.__reply.finished.connect(self.__requireDownloaded) |
56 |
62 |
57 self.__fileName = "" |
63 self.__fileName = "" |