11 try: |
11 try: |
12 str = unicode # __IGNORE_EXCEPTION__ |
12 str = unicode # __IGNORE_EXCEPTION__ |
13 except NameError: |
13 except NameError: |
14 pass |
14 pass |
15 |
15 |
16 from PyQt5.QtCore import QFile, QByteArray |
16 import os |
|
17 |
|
18 from PyQt5.QtCore import QFile, QByteArray, QUrl |
17 |
19 |
18 |
20 |
19 def readAllFileContents(filename): |
21 def readAllFileContents(filename): |
20 """ |
22 """ |
21 Function to read the string contents of the given file. |
23 Function to read the string contents of the given file. |
58 for ch in string: |
60 for ch in string: |
59 if ch.isspace(): |
61 if ch.isspace(): |
60 return True |
62 return True |
61 |
63 |
62 return False |
64 return False |
|
65 |
|
66 |
|
67 def ensureUniqueFilename(name, appendFormat="({0})"): |
|
68 """ |
|
69 Module function to generate an unique file name based on a pattern. |
|
70 |
|
71 @param name desired file name (string) |
|
72 @param appendFormat format pattern to be used to make the unique name |
|
73 (string) |
|
74 @return unique file name |
|
75 """ |
|
76 if not os.path.exists(name): |
|
77 return name |
|
78 |
|
79 tmpFileName = name |
|
80 i = 1 |
|
81 while os.path.exists(tmpFileName): |
|
82 tmpFileName = name |
|
83 index = tmpFileName.rfind(".") |
|
84 |
|
85 appendString = appendFormat.format(i) |
|
86 if index == -1: |
|
87 tmpFileName += appendString |
|
88 else: |
|
89 tmpFileName = tmpFileName[:index] + appendString + \ |
|
90 tmpFileName[index:] |
|
91 i += 1 |
|
92 |
|
93 return tmpFileName |
|
94 |
|
95 |
|
96 def getFileNameFromUrl(url): |
|
97 """ |
|
98 Module function to generate a file name based on the given URL. |
|
99 |
|
100 @param url URL (QUrl) |
|
101 @return file name (string) |
|
102 """ |
|
103 fileName = url.toString(QUrl.RemoveFragment | QUrl.RemoveQuery | |
|
104 QUrl.RemoveScheme | QUrl.RemovePort) |
|
105 if fileName.find("/") != -1: |
|
106 pos = fileName.rfind("/") |
|
107 fileName = fileName[pos:] |
|
108 fileName = fileName.replace("/", "") |
|
109 |
|
110 fileName = filterCharsFromFilename(fileName) |
|
111 |
|
112 if not fileName: |
|
113 fileName = filterCharsFromFilename(url.host().replace(".", "_")) |
|
114 |
|
115 return fileName |
|
116 |
|
117 |
|
118 def filterCharsFromFilename(name): |
|
119 """ |
|
120 Module function to filter illegal characters. |
|
121 |
|
122 @param name name to be sanitized (string) |
|
123 @return sanitized name (string) |
|
124 """ |
|
125 return name\ |
|
126 .replace("/", "_")\ |
|
127 .replace("\\", "")\ |
|
128 .replace(":", "")\ |
|
129 .replace("*", "")\ |
|
130 .replace("?", "")\ |
|
131 .replace('"', "")\ |
|
132 .replace("<", "")\ |
|
133 .replace(">", "")\ |
|
134 .replace("|", "") |