Thu, 10 Oct 2013 18:35:45 +0200
Continued to shorten the code lines to max. 79 characters.
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
2302
f29e9405c851
Updated copyright for 2013.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2083
diff
changeset
|
3 | # Copyright (c) 2012 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a synchronization handler using FTP. |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
10 | import ftplib |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
11 | import io |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
12 | |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
13 | from PyQt4.QtCore import pyqtSignal, QTimer, QFileInfo, QCoreApplication, \ |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
14 | QByteArray |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
15 | |
2074
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
16 | from E5Network.E5Ftp import E5Ftp, E5FtpProxyType, E5FtpProxyError |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | from .SyncHandler import SyncHandler |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | import Helpviewer.HelpWindow |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | import Preferences |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
24 | from Utilities.FtpUtilities import FtpDirLineParser, FtpDirLineParserError |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
25 | |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | class FtpSyncHandler(SyncHandler): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | Class implementing a synchronization handler using FTP. |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
1700
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
31 | @signal syncStatus(type_, message) emitted to indicate the synchronization |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
32 | status (string one of "bookmarks", "history", "passwords", |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
33 | "useragents" or "speeddial", string) |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
34 | @signal syncError(message) emitted for a general error with the error |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
35 | message (string) |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
36 | @signal syncMessage(message) emitted to send a message about |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
37 | synchronization (string) |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
38 | @signal syncFinished(type_, done, download) emitted after a |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
39 | synchronization has finished (string one of "bookmarks", "history", |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
40 | "passwords", "useragents" or "speeddial", boolean, boolean) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | """ |
1700
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
42 | syncStatus = pyqtSignal(str, str) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | syncError = pyqtSignal(str) |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
44 | syncMessage = pyqtSignal(str) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | syncFinished = pyqtSignal(str, bool, bool) |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | def __init__(self, parent=None): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | Constructor |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | @param parent reference to the parent object (QObject) |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | super().__init__(parent) |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.__state = "idle" |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
56 | self.__forceUpload = False |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
57 | self.__connected = False |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
1695
7b115f986d48
Added capability to synchronize bookmarks, history, passwords and user agent settings via a shared directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1681
diff
changeset
|
59 | self.__remoteFilesFound = {} |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
61 | def initialLoadAndCheck(self, forceUpload): |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | Public method to do the initial check. |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
64 | |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
65 | @keyparam forceUpload flag indicating a forced upload of the files |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
66 | (boolean) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | if not Preferences.getHelp("SyncEnabled"): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | return |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | self.__state = "initializing" |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
72 | self.__forceUpload = forceUpload |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
74 | self.__dirLineParser = FtpDirLineParser() |
1695
7b115f986d48
Added capability to synchronize bookmarks, history, passwords and user agent settings via a shared directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1681
diff
changeset
|
75 | self.__remoteFilesFound = {} |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | |
1638
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
77 | self.__idleTimer = QTimer(self) |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
78 | self.__idleTimer.setInterval( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
79 | Preferences.getHelp("SyncFtpIdleTimeout") * 1000) |
1638
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
80 | self.__idleTimer.timeout.connect(self.__idleTimeout) |
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
81 | |
2074
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
82 | self.__ftp = E5Ftp() |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | # do proxy setup |
2074
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
85 | if not Preferences.getUI("UseProxy"): |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
86 | proxyType = E5FtpProxyType.NoProxy |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
87 | else: |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
88 | proxyType = Preferences.getUI("ProxyType/Ftp") |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
89 | if proxyType != E5FtpProxyType.NoProxy: |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
90 | self.__ftp.setProxy(proxyType, |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
91 | Preferences.getUI("ProxyHost/Ftp"), |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
92 | Preferences.getUI("ProxyPort/Ftp")) |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
93 | if proxyType != E5FtpProxyType.NonAuthorizing: |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
94 | self.__ftp.setProxyAuthentication( |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
95 | Preferences.getUI("ProxyUser/Ftp"), |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
96 | Preferences.getUI("ProxyPassword/Ftp"), |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
97 | Preferences.getUI("ProxyAccount/Ftp")) |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
98 | |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
99 | QTimer.singleShot(0, self.__doFtpCommands) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
100 | |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
101 | def __doFtpCommands(self): |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
102 | """ |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
103 | Private slot executing the sequence of FTP commands. |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
104 | """ |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
105 | try: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
106 | ok = self.__connectAndLogin() |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
107 | if ok: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
108 | self.__changeToStore() |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
109 | self.__ftp.retrlines("LIST", self.__dirListCallback) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
110 | self.__initialSync() |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
111 | self.__state = "idle" |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
112 | self.__idleTimer.start() |
2077
68a34718a0ce
Made the first set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2076
diff
changeset
|
113 | except (ftplib.all_errors + (E5FtpProxyError,)) as err: |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
114 | self.syncError.emit(str(err)) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
115 | |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
116 | def __connectAndLogin(self): |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
117 | """ |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
118 | Private method to connect to the FTP server and log in. |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
120 | @return flag indicating a successful log in (boolean) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
121 | """ |
2074
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
122 | self.__ftp.connect( |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
123 | Preferences.getHelp("SyncFtpServer"), |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
124 | Preferences.getHelp("SyncFtpPort"), |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
125 | timeout=5) |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
126 | self.__ftp.login( |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
127 | Preferences.getHelp("SyncFtpUser"), |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
128 | Preferences.getHelp("SyncFtpPassword")) |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
129 | self.__connected = True |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
130 | return True |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | def __changeToStore(self): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | Private slot to change to the storage directory. |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
136 | This action will create the storage path on the server, if it |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
137 | does not exist. Upon return, the current directory of the server |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
138 | is the sync directory. |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | """ |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
140 | storePathList = \ |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
141 | Preferences.getHelp("SyncFtpPath").replace("\\", "/").split("/") |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
142 | if storePathList[0] == "": |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
143 | storePathList.pop(0) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
144 | while storePathList: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
145 | path = storePathList[0] |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
146 | try: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
147 | self.__ftp.cwd(path) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
148 | except ftplib.error_perm as err: |
2074
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
149 | code = err.args[0].strip()[:3] |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
150 | if code == "550": |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
151 | # path does not exist, create it |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
152 | self.__ftp.mkd(path) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
153 | self.__ftp.cwd(path) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | else: |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
155 | raise |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
156 | storePathList.pop(0) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
158 | def __dirListCallback(self, line): |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | """ |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
160 | Private slot handling the receipt of directory listing lines. |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
161 | |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
162 | @param line the received line of the directory listing (string) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | """ |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
164 | try: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
165 | urlInfo = self.__dirLineParser.parseLine(line) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
166 | except FtpDirLineParserError: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
167 | # silently ignore parser errors |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
168 | urlInfo = None |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
170 | if urlInfo and urlInfo.isValid() and urlInfo.isFile(): |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
171 | if urlInfo.name() in self._remoteFiles.values(): |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
172 | self.__remoteFilesFound[urlInfo.name()] = \ |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
173 | urlInfo.lastModified() |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
174 | |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
175 | QCoreApplication.processEvents() |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | |
1695
7b115f986d48
Added capability to synchronize bookmarks, history, passwords and user agent settings via a shared directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1681
diff
changeset
|
177 | def __downloadFile(self, type_, fileName, timestamp): |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
178 | """ |
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
179 | Private method to downlaod the given file. |
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
180 | |
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
181 | @param type_ type of the synchronization event (string one |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
182 | of "bookmarks", "history", "passwords", "useragents" or |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
183 | "speeddial") |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
184 | @param fileName name of the file to be downloaded (string) |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
185 | @param timestamp time stamp in seconds of the file to be downloaded |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
186 | (integer) |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
187 | """ |
1700
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
188 | self.syncStatus.emit(type_, self._messages[type_]["RemoteExists"]) |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
189 | buffer = io.BytesIO() |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
190 | try: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
191 | self.__ftp.retrbinary( |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
192 | "RETR {0}".format(self._remoteFiles[type_]), |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
193 | lambda x: self.__downloadFileCallback(buffer, x)) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
194 | ok, error = self.writeFile( |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
195 | QByteArray(buffer.getvalue()), fileName, type_, timestamp) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
196 | if not ok: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
197 | self.syncStatus.emit(type_, error) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
198 | self.syncFinished.emit(type_, ok, True) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
199 | except ftplib.all_errors as err: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
200 | self.syncStatus.emit(type_, str(err)) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
201 | self.syncFinished.emit(type_, False, True) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
202 | |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
203 | def __downloadFileCallback(self, buffer, data): |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
204 | """ |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
205 | Private method receiving the downloaded data. |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
206 | |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
207 | @param buffer reference to the buffer (io.BytesIO) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
208 | @param data byte string to store in the buffer (bytes) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
209 | @return number of bytes written to the buffer (integer) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
210 | """ |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
211 | res = buffer.write(data) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
212 | QCoreApplication.processEvents() |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
213 | return res |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
214 | |
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
215 | def __uploadFile(self, type_, fileName): |
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
216 | """ |
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
217 | Private method to upload the given file. |
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
218 | |
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
219 | @param type_ type of the synchronization event (string one |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
220 | of "bookmarks", "history", "passwords", "useragents" or |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
221 | "speeddial") |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
222 | @param fileName name of the file to be uploaded (string) |
2074
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
223 | @return flag indicating success (boolean) |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
224 | """ |
2074
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
225 | res = False |
1701
9eee32bac32e
Added option to only encrypt passwords upon synchronisation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1700
diff
changeset
|
226 | data = self.readFile(fileName, type_) |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
227 | if data.isEmpty(): |
1700
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
228 | self.syncStatus.emit(type_, self._messages[type_]["LocalMissing"]) |
2083
3005ae4463aa
Fixed an issue in the FTP sync handler class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2077
diff
changeset
|
229 | self.syncFinished.emit(type_, False, False) |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
230 | else: |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
231 | buffer = io.BytesIO(data.data()) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
232 | try: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
233 | self.__ftp.storbinary( |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
234 | "STOR {0}".format(self._remoteFiles[type_]), |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
235 | buffer, |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
236 | callback=lambda x: QCoreApplication.processEvents()) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
237 | self.syncFinished.emit(type_, True, False) |
2074
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
238 | res = True |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
239 | except ftplib.all_errors as err: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
240 | self.syncStatus.emit(type_, str(err)) |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
241 | self.syncFinished.emit(type_, False, False) |
2074
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
242 | return res |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
243 | |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | def __initialSyncFile(self, type_, fileName): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | Private method to do the initial synchronization of the given file. |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | @param type_ type of the synchronization event (string one |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
249 | of "bookmarks", "history", "passwords", "useragents" or |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
250 | "speeddial") |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | @param fileName name of the file to be synchronized (string) |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | """ |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
253 | if not self.__forceUpload and \ |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
254 | self._remoteFiles[type_] in self.__remoteFilesFound: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
255 | if QFileInfo(fileName).lastModified() < \ |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
256 | self.__remoteFilesFound[self._remoteFiles[type_]]: |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
257 | self.__downloadFile( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
258 | type_, fileName, |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
259 | self.__remoteFilesFound[self._remoteFiles[type_]] |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
260 | .toTime_t()) |
2061
b74f1d202ba7
Fixed an issue with the FTP sync handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2060
diff
changeset
|
261 | else: |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
262 | self.syncStatus.emit( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
263 | type_, self.trUtf8("No synchronization required.")) |
2061
b74f1d202ba7
Fixed an issue with the FTP sync handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2060
diff
changeset
|
264 | self.syncFinished.emit(type_, True, True) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | else: |
1695
7b115f986d48
Added capability to synchronize bookmarks, history, passwords and user agent settings via a shared directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1681
diff
changeset
|
266 | if self._remoteFiles[type_] not in self.__remoteFilesFound: |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
267 | self.syncStatus.emit( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
268 | type_, self._messages[type_]["RemoteMissing"]) |
1695
7b115f986d48
Added capability to synchronize bookmarks, history, passwords and user agent settings via a shared directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1681
diff
changeset
|
269 | else: |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
270 | self.syncStatus.emit( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
271 | type_, self._messages[type_]["LocalNewer"]) |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
272 | self.__uploadFile(type_, fileName) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | def __initialSync(self): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | Private slot to do the initial synchronization. |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | # Bookmarks |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | if Preferences.getHelp("SyncBookmarks"): |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
280 | self.__initialSyncFile( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
281 | "bookmarks", |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
282 | Helpviewer.HelpWindow.HelpWindow.bookmarksManager() |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
283 | .getFileName()) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | # History |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | if Preferences.getHelp("SyncHistory"): |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
287 | self.__initialSyncFile( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
288 | "history", |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
289 | Helpviewer.HelpWindow.HelpWindow.historyManager() |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
290 | .getFileName()) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | # Passwords |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | if Preferences.getHelp("SyncPasswords"): |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
294 | self.__initialSyncFile( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
295 | "passwords", |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
296 | Helpviewer.HelpWindow.HelpWindow.passwordManager() |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
297 | .getFileName()) |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | # User Agent Settings |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | if Preferences.getHelp("SyncUserAgents"): |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
301 | self.__initialSyncFile( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
302 | "useragents", |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
303 | Helpviewer.HelpWindow.HelpWindow.userAgentsManager() |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
304 | .getFileName()) |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
305 | |
1700
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
306 | # Speed Dial Settings |
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
307 | if Preferences.getHelp("SyncSpeedDial"): |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
308 | self.__initialSyncFile( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
309 | "speeddial", |
1700
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
310 | Helpviewer.HelpWindow.HelpWindow.speedDial().getFileName()) |
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
311 | |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
312 | self.__forceUpload = False |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314 | def __syncFile(self, type_, fileName): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | Private method to synchronize the given file. |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | @param type_ type of the synchronization event (string one |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
319 | of "bookmarks", "history", "passwords", "useragents" or |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
320 | "speeddial") |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | @param fileName name of the file to be synchronized (string) |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | """ |
1680
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
323 | if self.__state == "initializing": |
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
324 | return |
28e57079dab5
Added capability to encrypt the synchronized data (web browser).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1638
diff
changeset
|
325 | |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
326 | # use idle timeout to check, if we are still connected |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
327 | if self.__connected: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
328 | self.__idleTimeout() |
2076
0d6286344ac1
Fixed an issue with the FTP sync handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2074
diff
changeset
|
329 | if not self.__connected or self.__ftp.sock is None: |
0d6286344ac1
Fixed an issue with the FTP sync handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2074
diff
changeset
|
330 | ok = self.__connectAndLogin() |
0d6286344ac1
Fixed an issue with the FTP sync handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2074
diff
changeset
|
331 | if not ok: |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
332 | self.syncStatus.emit( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
333 | type_, self.trUtf8("Cannot log in to FTP host.")) |
2076
0d6286344ac1
Fixed an issue with the FTP sync handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2074
diff
changeset
|
334 | return |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
335 | |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
336 | # upload the changed file |
1638
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
337 | self.__state = "uploading" |
1700
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
338 | self.syncStatus.emit(type_, self._messages[type_]["Uploading"]) |
2074
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
339 | if self.__uploadFile(type_, fileName): |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
340 | self.syncStatus.emit( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
341 | type_, self.trUtf8("Synchronization finished.")) |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
342 | self.__state = "idle" |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344 | def syncBookmarks(self): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | Public method to synchronize the bookmarks. |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348 | self.__syncFile("bookmarks", |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | Helpviewer.HelpWindow.HelpWindow.bookmarksManager().getFileName()) |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | def syncHistory(self): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | Public method to synchronize the history. |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | self.__syncFile("history", |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | Helpviewer.HelpWindow.HelpWindow.historyManager().getFileName()) |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | def syncPasswords(self): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | Public method to synchronize the passwords. |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | self.__syncFile("passwords", |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | Helpviewer.HelpWindow.HelpWindow.passwordManager().getFileName()) |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | def syncUserAgents(self): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | Public method to synchronize the user agents. |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | self.__syncFile("useragents", |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | Helpviewer.HelpWindow.HelpWindow.userAgentsManager().getFileName()) |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | |
1700
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
372 | def syncSpeedDial(self): |
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
373 | """ |
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
374 | Public method to synchronize the speed dial data. |
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
375 | """ |
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
376 | self.__syncFile("speeddial", |
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
377 | Helpviewer.HelpWindow.HelpWindow.speedDial().getFileName()) |
40c911b8c0dd
Made the speed dial settings synchronizable via the sync manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1695
diff
changeset
|
378 | |
1626
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | def shutdown(self): |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | """ |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | Public method to shut down the handler. |
a77c8ea8582c
Added capability to synchronise bookmarks, history, passwords and user agent settings via an FTP server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | """ |
1638
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
383 | if self.__idleTimer.isActive(): |
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
384 | self.__idleTimer.stop() |
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
385 | |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
386 | try: |
2062
f275d3afe038
Fixed a little issue in the FTP sync handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2061
diff
changeset
|
387 | if self.__connected: |
f275d3afe038
Fixed a little issue in the FTP sync handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2061
diff
changeset
|
388 | self.__ftp.quit() |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
389 | except ftplib.all_errors: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
390 | pass # ignore FTP errors because we are shutting down anyway |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
391 | self.__connected = False |
1638
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
392 | |
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
393 | def __idleTimeout(self): |
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
394 | """ |
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
395 | Private slot to prevent a disconnect from the server. |
cd2f9e526710
Added an idle timeout to the FTP synchronization handler to prevent server disconnects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1626
diff
changeset
|
396 | """ |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
397 | if self.__state == "idle" and self.__connected: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
398 | try: |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
399 | self.__ftp.voidcmd("NOOP") |
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
400 | except ftplib.Error as err: |
2074
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
401 | code = err.args[0].strip()[:3] |
5cb87968aad5
Reworked the FTP stuff to support a bunch of different FTP proxy types. Unfortunately FTP proxy support is not standardized.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2064
diff
changeset
|
402 | if code == "421": |
2060
1f3767746974
Changed the FTP sync code in the eric web browser to use ftplib.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1701
diff
changeset
|
403 | self.__connected = False |
2064
79cfe18963ae
Added another check to the FTP sync handler idle routine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2062
diff
changeset
|
404 | except IOError: |
79cfe18963ae
Added another check to the FTP sync handler idle routine.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2062
diff
changeset
|
405 | self.__connected = False |