mwoffliner 1.17.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/README.md +355 -62
  2. package/docs/functional_architecture.md +34 -38
  3. package/extensions/wiktionary_fr.js +18 -17
  4. package/jest.config.cjs +2 -2
  5. package/lib/DOMUtils.js +0 -1
  6. package/lib/DOMUtils.js.map +1 -1
  7. package/lib/Downloader.d.ts +39 -31
  8. package/lib/Downloader.js +418 -349
  9. package/lib/Downloader.js.map +1 -1
  10. package/lib/Dump.d.ts +24 -10
  11. package/lib/Dump.js +95 -50
  12. package/lib/Dump.js.map +1 -1
  13. package/lib/Gadgets.d.ts +2 -1
  14. package/lib/Gadgets.js +7 -5
  15. package/lib/Gadgets.js.map +1 -1
  16. package/lib/Logger.d.ts +6 -6
  17. package/lib/Logger.js +33 -33
  18. package/lib/Logger.js.map +1 -1
  19. package/lib/MediaWiki.d.ts +14 -31
  20. package/lib/MediaWiki.js +119 -172
  21. package/lib/MediaWiki.js.map +1 -1
  22. package/lib/RedisStore.d.ts +3 -3
  23. package/lib/RedisStore.js +21 -23
  24. package/lib/RedisStore.js.map +1 -1
  25. package/lib/S3.js +1 -1
  26. package/lib/S3.js.map +1 -1
  27. package/lib/Templates.d.ts +3 -10
  28. package/lib/Templates.js +5 -14
  29. package/lib/Templates.js.map +1 -1
  30. package/lib/cli.js +7 -6
  31. package/lib/cli.js.map +1 -1
  32. package/lib/config.d.ts +10 -16
  33. package/lib/config.js +33 -55
  34. package/lib/config.js.map +1 -1
  35. package/lib/error.manager.d.ts +2 -2
  36. package/lib/error.manager.js +42 -49
  37. package/lib/error.manager.js.map +1 -1
  38. package/lib/i18n.d.ts +2 -0
  39. package/lib/i18n.js +53 -0
  40. package/lib/i18n.js.map +1 -0
  41. package/lib/mutex.d.ts +2 -1
  42. package/lib/mutex.js +2 -1
  43. package/lib/mutex.js.map +1 -1
  44. package/lib/mwoffliner.lib.js +370 -222
  45. package/lib/mwoffliner.lib.js.map +1 -1
  46. package/lib/parameterList.d.ts +20 -8
  47. package/lib/parameterList.js +30 -18
  48. package/lib/parameterList.js.map +1 -1
  49. package/lib/renderers/abstract.renderer.d.ts +48 -55
  50. package/lib/renderers/abstract.renderer.js +377 -98
  51. package/lib/renderers/abstract.renderer.js.map +1 -1
  52. package/lib/renderers/action-parse.renderer.d.ts +22 -3
  53. package/lib/renderers/action-parse.renderer.js +123 -81
  54. package/lib/renderers/action-parse.renderer.js.map +1 -1
  55. package/lib/renderers/renderer.builder.js +6 -69
  56. package/lib/renderers/renderer.builder.js.map +1 -1
  57. package/lib/renderers/rendering.context.d.ts +2 -3
  58. package/lib/renderers/rendering.context.js +6 -14
  59. package/lib/renderers/rendering.context.js.map +1 -1
  60. package/lib/sanitize-argument.d.ts +7 -4
  61. package/lib/sanitize-argument.js +99 -41
  62. package/lib/sanitize-argument.js.map +1 -1
  63. package/lib/util/FileManager.d.ts +36 -0
  64. package/lib/util/FileManager.js +246 -0
  65. package/lib/util/FileManager.js.map +1 -0
  66. package/lib/util/RedisKvs.js +4 -4
  67. package/lib/util/RedisKvs.js.map +1 -1
  68. package/lib/util/RedisQueue.js +1 -1
  69. package/lib/util/RedisQueue.js.map +1 -1
  70. package/lib/util/builders/url/action-parse.director.d.ts +2 -2
  71. package/lib/util/builders/url/action-parse.director.js +7 -7
  72. package/lib/util/builders/url/action-parse.director.js.map +1 -1
  73. package/lib/util/builders/url/api.director.d.ts +2 -4
  74. package/lib/util/builders/url/api.director.js +10 -17
  75. package/lib/util/builders/url/api.director.js.map +1 -1
  76. package/lib/util/builders/url/base.director.d.ts +0 -4
  77. package/lib/util/builders/url/base.director.js +0 -25
  78. package/lib/util/builders/url/base.director.js.map +1 -1
  79. package/lib/util/builders/url/basic.director.d.ts +1 -1
  80. package/lib/util/builders/url/basic.director.js +1 -1
  81. package/lib/util/builders/url/web.director.d.ts +1 -1
  82. package/lib/util/builders/url/web.director.js +2 -2
  83. package/lib/util/builders/url/web.director.js.map +1 -1
  84. package/lib/util/categories.d.ts +5 -5
  85. package/lib/util/categories.js +175 -174
  86. package/lib/util/categories.js.map +1 -1
  87. package/lib/util/const.d.ts +4 -8
  88. package/lib/util/const.js +9 -17
  89. package/lib/util/const.js.map +1 -1
  90. package/lib/util/customCssJs.d.ts +6 -0
  91. package/lib/util/customCssJs.js +70 -0
  92. package/lib/util/customCssJs.js.map +1 -0
  93. package/lib/util/dump.d.ts +15 -4
  94. package/lib/util/dump.js +282 -86
  95. package/lib/util/dump.js.map +1 -1
  96. package/lib/util/index.d.ts +1 -1
  97. package/lib/util/index.js +1 -1
  98. package/lib/util/index.js.map +1 -1
  99. package/lib/util/metaData.js.map +1 -1
  100. package/lib/util/misc.d.ts +23 -13
  101. package/lib/util/misc.js +90 -59
  102. package/lib/util/misc.js.map +1 -1
  103. package/lib/util/mw-api.d.ts +7 -5
  104. package/lib/util/mw-api.js +167 -221
  105. package/lib/util/mw-api.js.map +1 -1
  106. package/lib/util/pageListMainPage.d.ts +3 -0
  107. package/lib/util/pageListMainPage.js +10 -0
  108. package/lib/util/pageListMainPage.js.map +1 -0
  109. package/lib/util/pages.d.ts +30 -0
  110. package/lib/util/pages.js +146 -0
  111. package/lib/util/pages.js.map +1 -0
  112. package/lib/util/rewriteUrls.d.ts +2 -2
  113. package/lib/util/rewriteUrls.js +33 -31
  114. package/lib/util/rewriteUrls.js.map +1 -1
  115. package/lib/util/savePages.d.ts +8 -0
  116. package/lib/util/savePages.js +182 -0
  117. package/lib/util/savePages.js.map +1 -0
  118. package/lib/version.d.ts +1 -1
  119. package/lib/version.js +1 -1
  120. package/lib/version.js.map +1 -1
  121. package/offliner-definition.json +178 -90
  122. package/package.json +50 -49
  123. package/res/page_list_home.js +20 -0
  124. package/res/{article_not_found.svg → page_not_found.svg} +1 -1
  125. package/res/script.js +30 -45
  126. package/res/style.css +52 -68
  127. package/res/templates/download_error_placeholder.html +7 -8
  128. package/res/templates/javaScript.html +19 -0
  129. package/res/templates/pageFallback.html +9 -7
  130. package/res/templates/pageVector2022.html +9 -7
  131. package/res/templates/pageVectorLegacy.html +9 -7
  132. package/res/templates/{article_list_home.html → page_list_home.html} +1 -2
  133. package/translation/ar.json +21 -21
  134. package/translation/bn.json +1 -1
  135. package/translation/de.json +46 -19
  136. package/translation/en.json +54 -21
  137. package/translation/es.json +17 -19
  138. package/translation/fi.json +23 -3
  139. package/translation/fr.json +57 -21
  140. package/translation/he.json +8 -6
  141. package/translation/ia.json +19 -19
  142. package/translation/id.json +13 -13
  143. package/translation/it.json +13 -8
  144. package/translation/ko.json +55 -3
  145. package/translation/lb.json +5 -2
  146. package/translation/mk.json +5 -5
  147. package/translation/nl.json +57 -22
  148. package/translation/or.json +2 -2
  149. package/translation/pt.json +2 -2
  150. package/translation/qqq.json +55 -22
  151. package/translation/ru.json +2 -2
  152. package/translation/sc.json +2 -2
  153. package/translation/sk.json +62 -0
  154. package/translation/sl.json +54 -21
  155. package/translation/sv.json +20 -19
  156. package/translation/sw.json +45 -2
  157. package/translation/zh-hans.json +56 -22
  158. package/translation/zh-hant.json +26 -19
  159. package/lib/renderers/abstractDesktop.render.d.ts +0 -12
  160. package/lib/renderers/abstractDesktop.render.js +0 -67
  161. package/lib/renderers/abstractDesktop.render.js.map +0 -1
  162. package/lib/renderers/abstractMobile.render.d.ts +0 -12
  163. package/lib/renderers/abstractMobile.render.js +0 -54
  164. package/lib/renderers/abstractMobile.render.js.map +0 -1
  165. package/lib/renderers/rest-api.renderer.d.ts +0 -7
  166. package/lib/renderers/rest-api.renderer.js +0 -68
  167. package/lib/renderers/rest-api.renderer.js.map +0 -1
  168. package/lib/renderers/visual-editor.renderer.d.ts +0 -7
  169. package/lib/renderers/visual-editor.renderer.js +0 -76
  170. package/lib/renderers/visual-editor.renderer.js.map +0 -1
  171. package/lib/renderers/wikimedia-desktop.renderer.d.ts +0 -4
  172. package/lib/renderers/wikimedia-desktop.renderer.js +0 -7
  173. package/lib/renderers/wikimedia-desktop.renderer.js.map +0 -1
  174. package/lib/renderers/wikimedia-mobile.renderer.d.ts +0 -19
  175. package/lib/renderers/wikimedia-mobile.renderer.js +0 -243
  176. package/lib/renderers/wikimedia-mobile.renderer.js.map +0 -1
  177. package/lib/util/articleListMainPage.d.ts +0 -3
  178. package/lib/util/articleListMainPage.js +0 -10
  179. package/lib/util/articleListMainPage.js.map +0 -1
  180. package/lib/util/articles.d.ts +0 -26
  181. package/lib/util/articles.js +0 -102
  182. package/lib/util/articles.js.map +0 -1
  183. package/lib/util/builders/url/desktop.director.d.ts +0 -8
  184. package/lib/util/builders/url/desktop.director.js +0 -15
  185. package/lib/util/builders/url/desktop.director.js.map +0 -1
  186. package/lib/util/builders/url/mobile.director.d.ts +0 -8
  187. package/lib/util/builders/url/mobile.director.js +0 -15
  188. package/lib/util/builders/url/mobile.director.js.map +0 -1
  189. package/lib/util/builders/url/rest-api.director.d.ts +0 -8
  190. package/lib/util/builders/url/rest-api.director.js +0 -18
  191. package/lib/util/builders/url/rest-api.director.js.map +0 -1
  192. package/lib/util/builders/url/visual-editor.director.d.ts +0 -9
  193. package/lib/util/builders/url/visual-editor.director.js +0 -18
  194. package/lib/util/builders/url/visual-editor.director.js.map +0 -1
  195. package/lib/util/saveArticles.d.ts +0 -8
  196. package/lib/util/saveArticles.js +0 -411
  197. package/lib/util/saveArticles.js.map +0 -1
  198. package/res/article_list_home.js +0 -24
  199. package/res/content.parsoid.css +0 -196
  200. package/res/inserted_style.css +0 -45
  201. package/res/templates/categories.html +0 -11
  202. package/res/templates/lead_section_wrapper.html +0 -6
  203. package/res/templates/pageWikimediaDesktop.html +0 -24
  204. package/res/templates/pageWikimediaMobile.html +0 -24
  205. package/res/templates/section_wrapper.html +0 -5
  206. package/res/templates/subcategories.html +0 -23
  207. package/res/templates/subpages.html +0 -17
  208. package/res/templates/subsection_wrapper.html +0 -5
  209. package/res/webpHandler.js +0 -165
  210. package/res/wm_mobile_override_script.js +0 -15
  211. package/res/wm_mobile_override_style.css +0 -20
  212. package/translation/br.json +0 -8
  213. package/translation/dag.json +0 -9
  214. package/translation/es-formal.json +0 -29
  215. package/translation/ha.json +0 -10
  216. package/translation/hi.json +0 -9
  217. package/translation/ig.json +0 -10
  218. package/translation/kaa.json +0 -9
  219. package/translation/nb.json +0 -9
  220. package/translation/nqo.json +0 -8
  221. package/translation/pt-br.json +0 -10
  222. package/translation/ro.json +0 -9
  223. package/translation/scn.json +0 -8
  224. package/translation/sq.json +0 -9
  225. package/translation/te.json +0 -9
  226. package/translation/tn.json +0 -9
  227. package/translation/tr.json +0 -10
@@ -0,0 +1,246 @@
1
+ import * as logger from '../Logger.js';
2
+ import Downloader from '../Downloader.js';
3
+ import RedisStore from '../RedisStore.js';
4
+ import { StringItem } from '@openzim/libzim';
5
+ import pmap from 'p-map';
6
+ import { parseRetryAfterHeader } from './misc.js';
7
+ import { FILES_DOWNLOAD_FAILURE_MINIMUM_FOR_CHECK, FILES_DOWNLOAD_FAILURE_TRESHOLD_PER_TEN_THOUSAND, MAX_FILE_DOWNLOAD_RETRIES } from './const.js';
8
+ import urlHelper from './url.helper.js';
9
+ import { fileAddMutex, fileDownloadMutex, zimCreatorMutex } from '../mutex.js';
10
+ import RedisQueue from './RedisQueue.js';
11
+ const MAXIMUM_FILE_DOWNLOAD_DELAY = 20000;
12
+ class FileManager {
13
+ static instance;
14
+ static getInstance() {
15
+ if (!FileManager.instance) {
16
+ FileManager.instance = new FileManager();
17
+ }
18
+ return FileManager.instance;
19
+ }
20
+ hosts = new Map();
21
+ get filesToDownloadXPath() {
22
+ return RedisStore.filesStore;
23
+ }
24
+ constructor() { }
25
+ /**
26
+ * Reset internal state for a new dump cycle.
27
+ */
28
+ reset() {
29
+ this.hosts = new Map();
30
+ }
31
+ /**
32
+ * Add a single file to download. Checks dedup via filesToDownloadXPath.
33
+ * On first add: writes to both filesToDownloadXPath and host queue.
34
+ * On resolution upgrade: updates filesToDownloadXPath only (queue already has the path).
35
+ *
36
+ * This method is typically called multiple times when the file is an image and the scraper detects
37
+ * a second use of an image already seen but with a higher resolution. Could be that we call this
38
+ * method twice with different urls / data for other usage in the future.
39
+ */
40
+ async addFileToProcess(path, detail) {
41
+ await fileAddMutex.runExclusive(async () => this._addFileToProcess(path, detail));
42
+ }
43
+ async _addFileToProcess(path, detail) {
44
+ const existing = await this.filesToDownloadXPath.get(path);
45
+ if (existing) {
46
+ const isHigherRes = existing.width < (detail.width || 10e6) || existing.mult < (detail.mult || 1);
47
+ if (!isHigherRes)
48
+ return;
49
+ // Resolution upgrade: update store only, queue already has this path
50
+ await this.filesToDownloadXPath.set(path, detail);
51
+ return;
52
+ }
53
+ // New file: add to both store and host queue
54
+ await this.filesToDownloadXPath.set(path, detail);
55
+ await this.pushToHostQueue(path, detail);
56
+ }
57
+ /**
58
+ * Batch version of addFileToProcess. Uses getMany for efficiency.
59
+ */
60
+ async addManyFilesToProcess(files) {
61
+ await fileAddMutex.runExclusive(async () => this._addManyFilesToProcess(files));
62
+ }
63
+ async _addManyFilesToProcess(files) {
64
+ const paths = Object.keys(files);
65
+ if (!paths.length)
66
+ return;
67
+ const existingVals = await this.filesToDownloadXPath.getMany(paths);
68
+ const toSet = {};
69
+ for (const [path, detail] of Object.entries(files)) {
70
+ const existing = existingVals[path];
71
+ if (existing) {
72
+ const isHigherRes = existing.width < (detail.width || 10e6) || existing.mult < (detail.mult || 1);
73
+ if (!isHigherRes)
74
+ continue;
75
+ toSet[path] = detail; // upgrade only, no queue push
76
+ }
77
+ else {
78
+ toSet[path] = detail;
79
+ await this.pushToHostQueue(path, detail);
80
+ }
81
+ }
82
+ if (Object.keys(toSet).length) {
83
+ await this.filesToDownloadXPath.setMany(toSet);
84
+ }
85
+ }
86
+ async pushToHostQueue(path, detail) {
87
+ const hostname = new URL(urlHelper.deserializeUrl(detail.url)).hostname;
88
+ if (!this.hosts.has(hostname)) {
89
+ const queue = new RedisQueue(RedisStore.client, `${hostname}-files`);
90
+ await queue.flush();
91
+ RedisStore.filesQueues.push(queue);
92
+ this.hosts.set(hostname, {
93
+ queue,
94
+ requestInterval: 30,
95
+ downloadSuccess: 0,
96
+ downloadFailure: 0,
97
+ downloadsComplete: false,
98
+ });
99
+ }
100
+ await this.hosts.get(hostname).queue.push({
101
+ path,
102
+ downloadAttempts: 0,
103
+ });
104
+ }
105
+ /**
106
+ * Start download workers. Queues are already populated via addFileToProcess/addManyFilesToProcess.
107
+ */
108
+ async startDownloading(zimCreator, dump) {
109
+ const filesTotal = await this.filesToDownloadXPath.len();
110
+ let prevPercentProgress;
111
+ const hosts = this.hosts;
112
+ const filesToDownloadXPath = this.filesToDownloadXPath;
113
+ async function getNextFileToDownload() {
114
+ const startPolling = Date.now();
115
+ while (true) {
116
+ if (startPolling + 1000 * 60 * 60 < Date.now()) {
117
+ logger.warn('No file to download for more than 1 hour, exiting the loop');
118
+ for (const hostData of hosts.values()) {
119
+ if (hostData.downloadsComplete)
120
+ continue;
121
+ while (await hostData.queue.pop()) {
122
+ dump.status.files.fail += 1;
123
+ if (dump.status.files.fail > FILES_DOWNLOAD_FAILURE_MINIMUM_FOR_CHECK &&
124
+ (dump.status.files.fail * 10000) / filesTotal > FILES_DOWNLOAD_FAILURE_TRESHOLD_PER_TEN_THOUSAND) {
125
+ throw new Error(`Too many files failed to download: [${dump.status.files.fail}/${filesTotal}]`);
126
+ }
127
+ }
128
+ }
129
+ return null;
130
+ }
131
+ const hostValues = Array.from(hosts.values());
132
+ const completedHosts = hostValues.reduce((buf, host) => {
133
+ return host.downloadsComplete ? buf + 1 : buf;
134
+ }, 0);
135
+ if (completedHosts === hostValues.length)
136
+ return null;
137
+ for (const [hostname, hostData] of hosts.entries()) {
138
+ if (hostData.downloadsComplete ||
139
+ (hostData.notBeforeDate && hostData.notBeforeDate > Date.now()) ||
140
+ (hostData.lastRequestDate && hostData.lastRequestDate + hostData.requestInterval > Date.now())) {
141
+ continue;
142
+ }
143
+ const fileToDownload = await hostData.queue.pop();
144
+ if (!fileToDownload) {
145
+ hostData.downloadsComplete = true;
146
+ continue;
147
+ }
148
+ hostData.lastRequestDate = Date.now();
149
+ return { fileToDownload, hostData, hostname };
150
+ }
151
+ await new Promise((resolve) => setTimeout(resolve, 10));
152
+ }
153
+ }
154
+ async function workerDownloadFile(fileToDownload, hostname, hostData, workerId) {
155
+ if ((dump.status.files.success + dump.status.files.fail) % (10 * Downloader.workers) === 0) {
156
+ const percentProgress = (((dump.status.files.success + dump.status.files.fail) / filesTotal) * 100).toFixed(1);
157
+ if (percentProgress !== prevPercentProgress) {
158
+ prevPercentProgress = percentProgress;
159
+ logger.info(`Progress downloading files [${dump.status.files.success + dump.status.files.fail}/${filesTotal}] [${percentProgress}%]`);
160
+ }
161
+ if (filesTotal > 0 &&
162
+ dump.status.files.fail > FILES_DOWNLOAD_FAILURE_MINIMUM_FOR_CHECK &&
163
+ (dump.status.files.fail * 10000) / filesTotal > FILES_DOWNLOAD_FAILURE_TRESHOLD_PER_TEN_THOUSAND) {
164
+ throw new Error(`Too many files failed to download: [${dump.status.files.fail}/${filesTotal}]`);
165
+ }
166
+ }
167
+ fileToDownload.downloadAttempts += 1;
168
+ // Read latest details from filesToDownloadXPath (resolution may have been upgraded since queuing)
169
+ const latestDetail = await filesToDownloadXPath.get(fileToDownload.path);
170
+ if (!latestDetail) {
171
+ logger.warn(`File details missing in RedisStore for path [${fileToDownload.path}], unable to download`);
172
+ dump.status.files.fail += 1;
173
+ hostData.downloadFailure += 1;
174
+ return;
175
+ }
176
+ const downloadUrl = latestDetail.url;
177
+ const downloadKind = latestDetail.kind;
178
+ const downloadWidth = latestDetail.width;
179
+ logger.debug(`Worker ${workerId} downloading ${urlHelper.deserializeUrl(downloadUrl)} (${downloadKind})`);
180
+ await Downloader.downloadContent(downloadUrl, downloadKind, false, downloadWidth)
181
+ .then(async (resp) => {
182
+ if (resp && resp.content && resp.contentType) {
183
+ const item = new StringItem(fileToDownload.path, resp.contentType, null, { FRONT_ARTICLE: 0 }, resp.content);
184
+ await zimCreatorMutex.runExclusive(() => zimCreator.addItem(item));
185
+ dump.status.files.success += 1;
186
+ hostData.downloadSuccess += 1;
187
+ }
188
+ else {
189
+ throw new Error(`Bad response received: ${JSON.stringify(resp)}`);
190
+ }
191
+ })
192
+ .catch(async (err) => {
193
+ const isRetriableTransportError = !!(err?.response || err?.code);
194
+ if (!isRetriableTransportError) {
195
+ logger.warn(`Error processing file [${urlHelper.deserializeUrl(downloadUrl)}], skipping without retry`, err);
196
+ dump.status.files.fail += 1;
197
+ hostData.downloadFailure += 1;
198
+ return;
199
+ }
200
+ if (fileToDownload.downloadAttempts > MAX_FILE_DOWNLOAD_RETRIES || (err.response && err.response.status === 404)) {
201
+ logger.warn(`Error downloading file [${urlHelper.deserializeUrl(downloadUrl)}] [status=${err.response?.status}], skipping`);
202
+ dump.status.files.fail += 1;
203
+ hostData.downloadFailure += 1;
204
+ }
205
+ else {
206
+ if (err.response) {
207
+ const retryAfterHeader = err.response.headers['retry-after']?.toString();
208
+ if (retryAfterHeader) {
209
+ const retryDate = parseRetryAfterHeader(retryAfterHeader);
210
+ if (retryDate) {
211
+ if (retryDate > Date.now() + MAXIMUM_FILE_DOWNLOAD_DELAY) {
212
+ logger.info(`Received a [Retry-After=${retryAfterHeader}] on ${hostname} but this is too far away, ignoring`);
213
+ }
214
+ else {
215
+ hostData.notBeforeDate = retryDate;
216
+ logger.info(`Received a [Retry-After=${retryAfterHeader}], pausing down ${hostname} until ${hostData.notBeforeDate}`);
217
+ }
218
+ }
219
+ else {
220
+ logger.warn(`Received a [Retry-After=${retryAfterHeader}] from ${hostname} but failed to interpret it`);
221
+ }
222
+ }
223
+ }
224
+ if (err.response && [429, 503, 524].includes(err.response.status) && !urlHelper.deserializeUrl(downloadUrl).match(/^https?:\/\/upload\.wikimedia\.org\/.*\/thumb\//)) {
225
+ hostData.requestInterval = Math.min(MAXIMUM_FILE_DOWNLOAD_DELAY, hostData.requestInterval * 1.2);
226
+ logger.info(`Received a [status=${err.response.status}], slowing down ${hostname} to ${hostData.requestInterval}ms interval`);
227
+ }
228
+ await hostData.queue.push(fileToDownload);
229
+ }
230
+ });
231
+ }
232
+ await pmap(Array.from({ length: Downloader.workers }, (_, i) => i), async (workerId) => {
233
+ while (true) {
234
+ const nextFileData = await fileDownloadMutex.runExclusive(getNextFileToDownload);
235
+ if (!nextFileData)
236
+ break;
237
+ const { fileToDownload, hostname, hostData } = nextFileData;
238
+ await workerDownloadFile(fileToDownload, hostname, hostData, workerId);
239
+ }
240
+ }, { concurrency: Downloader.workers });
241
+ logger.info(`Done with downloading ${filesTotal} files: ${dump.status.files.success} success, ${dump.status.files.fail} fail: `, JSON.stringify(Object.fromEntries([...hosts].map(([hostname, hostData]) => [hostname, { success: hostData.downloadSuccess, fail: hostData.downloadFailure }])), null, '\t'));
242
+ }
243
+ }
244
+ const fm = FileManager.getInstance();
245
+ export default fm;
246
+ //# sourceMappingURL=FileManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../src/util/FileManager.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export default class RedisKvs {
24
24
  return result;
25
25
  }
26
26
  exists(prop) {
27
- return this.redisClient.hExists(this.dbName, prop);
27
+ return this.redisClient.hExists(this.dbName, prop).then((v) => v === 1);
28
28
  }
29
29
  async existsMany(prop, blocking = false) {
30
30
  // array of keys
@@ -132,13 +132,13 @@ export default class RedisKvs {
132
132
  });
133
133
  }
134
134
  async scan(scanCursor) {
135
- const { cursor, tuples } = await this.redisClient.hScan(this.dbName, scanCursor);
135
+ const { cursor, entries } = await this.redisClient.hScan(this.dbName, String(scanCursor));
136
136
  const items = {};
137
- for (const { field, value } of tuples) {
137
+ for (const { field, value } of entries) {
138
138
  items[field] = this.hydrateObject(value);
139
139
  }
140
140
  return {
141
- cursor,
141
+ cursor: Number(cursor),
142
142
  items,
143
143
  };
144
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RedisKvs.js","sourceRoot":"","sources":["../../src/util/RedisKvs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RedisKvs.js","sourceRoot":"","sources":["../../src/util/RedisKvs.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export default class RedisQueue {
19
19
  return this.redisClient.lPush(this.dbName, this.dehydrateObject(val));
20
20
  }
21
21
  len() {
22
- return this.redisClient.hLen(this.dbName);
22
+ return this.redisClient.lLen(this.dbName);
23
23
  }
24
24
  flush() {
25
25
  return this.redisClient.del(this.dbName);
@@ -1 +1 @@
1
- {"version":3,"file":"RedisQueue.js","sourceRoot":"","sources":["../../src/util/RedisQueue.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,UAAU;IACrB,WAAW,CAAiB;IACnB,MAAM,CAAQ;IACd,cAAc,CAAW;IACzB,YAAY,CAAW;IAExC,YAAY,WAA4B,EAAE,MAAc,EAAE,UAAwB;QAChF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC7C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAEM,IAAI,CAAC,GAAM;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;IACvE,CAAC;IAEM,GAAG;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC1C,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,SAAS,GAAQ,EAAE,CAAA;YACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBACjD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;oBACpB,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;gBACnD,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAEO,eAAe,CAAC,GAAQ;QAC9B,IAAI,SAAS,GAAG,GAAG,CAAA;QACnB,IAAI,GAAG,IAAI,IAAI,CAAC,cAAc,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1D,SAAS,GAAG,EAAE,CAAA;YACd,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAC/C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;oBACpB,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;gBACrD,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAC9E,CAAC;CACF"}
1
+ {"version":3,"file":"RedisQueue.js","sourceRoot":"","sources":["../../src/util/RedisQueue.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,6 @@ export default class ActionParseURLDirector {
5
5
  baseDomain: string;
6
6
  skin: string;
7
7
  variant?: string;
8
- constructor(baseDomain: string, skin: string, variant?: string);
9
- buildArticleURL(articleId: string, articleUrlOpts?: RendererArticleOpts): string;
8
+ constructor(baseDomain: string, skin: string);
9
+ buildPageUrl(pageTitle: PageTitle, pageUrlOpts?: PageUrlOpts): string;
10
10
  }
@@ -7,26 +7,26 @@ export default class ActionParseURLDirector {
7
7
  baseDomain;
8
8
  skin;
9
9
  variant;
10
- constructor(baseDomain, skin, variant) {
10
+ constructor(baseDomain, skin) {
11
11
  this.baseDomain = baseDomain;
12
12
  this.skin = skin;
13
- this.variant = variant;
14
13
  }
15
- buildArticleURL(articleId, articleUrlOpts = {}) {
16
- const { sectionId } = articleUrlOpts;
14
+ buildPageUrl(pageTitle, pageUrlOpts = {}) {
15
+ const { sectionId, langVar, oldid } = pageUrlOpts;
17
16
  return urlBuilder
18
17
  .setDomain(this.baseDomain)
19
18
  .setQueryParams({
20
19
  action: 'parse',
21
20
  format: 'json',
22
- prop: 'modules|jsconfigvars|headhtml|text|displaytitle|subtitle',
21
+ prop: 'modules|jsconfigvars|headhtml|text|displaytitle|subtitle|categorieshtml',
23
22
  usearticle: '1',
24
23
  disabletoc: '1',
25
24
  disableeditsection: '1',
26
25
  disablelimitreport: '1',
27
- page: articleId,
26
+ page: oldid ? undefined : pageTitle,
27
+ oldid: oldid ? String(oldid) : undefined,
28
28
  useskin: this.skin,
29
- variant: this.variant,
29
+ variant: langVar || undefined,
30
30
  redirects: '1',
31
31
  formatversion: '2',
32
32
  section: sectionId,
@@ -1 +1 @@
1
- {"version":3,"file":"action-parse.director.js","sourceRoot":"","sources":["../../../../src/util/builders/url/action-parse.director.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAsB;IACzC,UAAU,CAAQ;IAClB,IAAI,CAAQ;IACZ,OAAO,CAAS;IAEhB,YAAY,UAAkB,EAAE,IAAY,EAAE,OAAgB;QAC5D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,eAAe,CAAC,SAAiB,EAAE,iBAAsC,EAAE;QACzE,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,CAAA;QACpC,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,cAAc,CACb;YACE,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,0DAA0D;YAChE,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;YACf,kBAAkB,EAAE,GAAG;YACvB,kBAAkB,EAAE,GAAG;YACvB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,GAAG;YACd,aAAa,EAAE,GAAG;YAClB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;SAC/B,EACD,GAAG,EACH,IAAI,CACL;aACA,KAAK,EAAE,CAAA;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"action-parse.director.js","sourceRoot":"","sources":["../../../../src/util/builders/url/action-parse.director.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAsB;IACzC,UAAU,CAAQ;IAClB,IAAI,CAAQ;IACZ,OAAO,CAAS;IAEhB,YAAY,UAAkB,EAAE,IAAY;QAC1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,YAAY,CAAC,SAAoB,EAAE,cAA2B,EAAE;QAC9D,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,CAAA;QACjD,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,cAAc,CACb;YACE,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,yEAAyE;YAC/E,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;YACf,kBAAkB,EAAE,GAAG;YACvB,kBAAkB,EAAE,GAAG;YACvB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACnC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACxC,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,IAAI,SAAS;YAC7B,SAAS,EAAE,GAAG;YACd,aAAa,EAAE,GAAG;YAClB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;SAC/B,EACD,GAAG,EACH,IAAI,CACL;aACA,KAAK,EAAE,CAAA;IACZ,CAAC;CACF"}
@@ -4,10 +4,8 @@
4
4
  export default class ApiURLDirector {
5
5
  private baseDomain;
6
6
  constructor(baseDomain: string);
7
- buildSubCategoriesURL(articleId: string, continueStr?: string): string;
8
7
  buildQueryURL<T extends Record<string, any>>(queryParams: T): string;
8
+ buildCategoryMembersURL(pageTitle: PageTitle, continueStr?: string): string;
9
9
  buildSiteInfoURL(): string;
10
- buildVisualEditorURL(): URL;
11
- buildLogEventsQuery(letype: string, articleId: string): string;
12
- buildArticleApiURL(articleId: string): string;
10
+ buildLogEventsQuery(letype: string, pageTitle: PageTitle): string;
13
11
  }
@@ -8,25 +8,27 @@ export default class ApiURLDirector {
8
8
  constructor(baseDomain) {
9
9
  this.baseDomain = baseDomain;
10
10
  }
11
- buildSubCategoriesURL(articleId, continueStr = '') {
11
+ buildQueryURL(queryParams) {
12
+ return urlBuilder.setDomain(this.baseDomain).setQueryParams(queryParams, '?', true).build();
13
+ }
14
+ buildCategoryMembersURL(pageTitle, continueStr = '') {
12
15
  return urlBuilder
13
16
  .setDomain(this.baseDomain)
14
17
  .setQueryParams({
15
18
  action: 'query',
16
19
  list: 'categorymembers',
17
- cmtype: 'subcat',
20
+ cmtype: 'subcat|page|file',
21
+ cmprop: 'title|sortkeyprefix|type',
22
+ cmsort: 'sortkey',
18
23
  cmlimit: 'max',
19
24
  format: 'json',
20
25
  formatversion: '2',
21
- cmtitle: articleId,
26
+ cmtitle: pageTitle,
22
27
  cmcontinue: continueStr,
23
28
  maxlag: config.defaults.maxlag,
24
29
  })
25
30
  .build();
26
31
  }
27
- buildQueryURL(queryParams) {
28
- return urlBuilder.setDomain(this.baseDomain).setQueryParams(queryParams, '?', true).build();
29
- }
30
32
  buildSiteInfoURL() {
31
33
  return urlBuilder
32
34
  .setDomain(this.baseDomain)
@@ -46,19 +48,10 @@ export default class ApiURLDirector {
46
48
  })
47
49
  .build();
48
50
  }
49
- buildVisualEditorURL() {
50
- return urlBuilder.setDomain(this.baseDomain).setQueryParams({ action: 'visualeditor', mobileformat: 'html', format: 'json', paction: 'parse', formatversion: '2' }).build(true);
51
- }
52
- buildLogEventsQuery(letype, articleId) {
53
- return urlBuilder
54
- .setDomain(this.baseDomain)
55
- .setQueryParams({ action: 'query', list: 'logevents', letype: letype, letitle: articleId, format: 'json', maxlag: config.defaults.maxlag })
56
- .build();
57
- }
58
- buildArticleApiURL(articleId) {
51
+ buildLogEventsQuery(letype, pageTitle) {
59
52
  return urlBuilder
60
53
  .setDomain(this.baseDomain)
61
- .setQueryParams({ action: 'parse', format: 'json', prop: 'modules|jsconfigvars|headhtml', formatversion: '2', page: articleId, maxlag: config.defaults.maxlag })
54
+ .setQueryParams({ action: 'query', list: 'logevents', letype: letype, letitle: pageTitle, format: 'json', maxlag: config.defaults.maxlag })
62
55
  .build();
63
56
  }
64
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api.director.js","sourceRoot":"","sources":["../../../../src/util/builders/url/api.director.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACzB,UAAU,CAAQ;IAE1B,YAAY,UAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,qBAAqB,CAAC,SAAiB,EAAE,WAAW,GAAG,EAAE;QACvD,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,cAAc,CAAC;YACd,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,GAAG;YAClB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;SAC/B,CAAC;aACD,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,aAAa,CAAgC,WAAc;QACzD,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAA;IAC7F,CAAC;IAED,gBAAgB;QACd,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,cAAc,CAAC;YACd,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,sDAAsD;YAC9D,UAAU,EAAE,SAAS;YACrB,cAAc,EAAE,GAAG;YACnB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,aAAa;YACrB,aAAa,EAAE,GAAG;YAClB,aAAa,EAAE,GAAG;YAClB,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,GAAG;YAClB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;SAC/B,CAAC;aACD,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,oBAAoB;QAClB,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjL,CAAC;IAED,mBAAmB,CAAC,MAAc,EAAE,SAAiB;QACnD,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aAC1I,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,kBAAkB,CAAC,SAAiB;QAClC,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aAC/J,KAAK,EAAE,CAAA;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"api.director.js","sourceRoot":"","sources":["../../../../src/util/builders/url/api.director.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACzB,UAAU,CAAQ;IAE1B,YAAY,UAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,aAAa,CAAgC,WAAc;QACzD,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAA;IAC7F,CAAC;IAED,uBAAuB,CAAC,SAAoB,EAAE,WAAW,GAAG,EAAE;QAC5D,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,cAAc,CAAC;YACd,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,0BAA0B;YAClC,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,GAAG;YAClB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;SAC/B,CAAC;aACD,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,gBAAgB;QACd,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,cAAc,CAAC;YACd,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,sDAAsD;YAC9D,UAAU,EAAE,SAAS;YACrB,cAAc,EAAE,GAAG;YACnB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,aAAa;YACrB,aAAa,EAAE,GAAG;YAClB,aAAa,EAAE,GAAG;YAClB,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,GAAG;YAClB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;SAC/B,CAAC;aACD,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,mBAAmB,CAAC,MAAc,EAAE,SAAoB;QACtD,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aAC1I,KAAK,EAAE,CAAA;IACZ,CAAC;CACF"}
@@ -5,9 +5,5 @@ export default class BaseURLDirector {
5
5
  private baseDomain;
6
6
  constructor(baseDomain: string);
7
7
  buildURL(path: string): URL;
8
- buildWikimediaDesktopApiUrl(): URL;
9
- buildWikimediaMobileApiUrl(): URL;
10
8
  buildModuleURL(path?: string): string;
11
- buildMobileModuleURL(path?: string): string;
12
- buildRestApiUrl(path?: string): URL;
13
9
  }
@@ -1,5 +1,4 @@
1
1
  import urlBuilder from './url.builder.js';
2
- import { WIKIMEDIA_REST_API_PATH } from '../../const.js';
3
2
  /**
4
3
  * Interface to build URLs based on base URL
5
4
  */
@@ -11,35 +10,11 @@ export default class BaseURLDirector {
11
10
  buildURL(path) {
12
11
  return urlBuilder.setDomain(this.baseDomain).setPath(path).build(true);
13
12
  }
14
- buildWikimediaDesktopApiUrl() {
15
- return urlBuilder
16
- .setDomain(this.baseDomain)
17
- .setPath(WIKIMEDIA_REST_API_PATH + 'page/html')
18
- .build(true, '/');
19
- }
20
- buildWikimediaMobileApiUrl() {
21
- return urlBuilder
22
- .setDomain(this.baseDomain)
23
- .setPath(WIKIMEDIA_REST_API_PATH + 'page/mobile-html')
24
- .build(true, '/');
25
- }
26
13
  buildModuleURL(path) {
27
14
  return urlBuilder
28
15
  .setDomain(this.baseDomain)
29
16
  .setPath(path ?? '/w/load.php')
30
17
  .build(false, '?');
31
18
  }
32
- buildMobileModuleURL(path) {
33
- return urlBuilder
34
- .setDomain(this.baseDomain)
35
- .setPath(path ?? '/api/rest_v1/page/mobile-html-offline-resources')
36
- .build(false, '/');
37
- }
38
- buildRestApiUrl(path) {
39
- return urlBuilder
40
- .setDomain(this.baseDomain)
41
- .setPath(path ?? '/w/rest.php')
42
- .build(true, '/');
43
- }
44
19
  }
45
20
  //# sourceMappingURL=base.director.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.director.js","sourceRoot":"","sources":["../../../../src/util/builders/url/base.director.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAExD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAC1B,UAAU,CAAQ;IAE1B,YAAY,UAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAC1G,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACxE,CAAC;IAED,2BAA2B;QACzB,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,OAAO,CAAC,uBAAuB,GAAG,WAAW,CAAC;aAC9C,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACrB,CAAC;IAED,0BAA0B;QACxB,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,OAAO,CAAC,uBAAuB,GAAG,kBAAkB,CAAC;aACrD,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACrB,CAAC;IAED,cAAc,CAAC,IAAa;QAC1B,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC;aAC9B,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACtB,CAAC;IAED,oBAAoB,CAAC,IAAa;QAChC,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,OAAO,CAAC,IAAI,IAAI,iDAAiD,CAAC;aAClE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACtB,CAAC;IAED,eAAe,CAAC,IAAa;QAC3B,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC;aAC9B,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"base.director.js","sourceRoot":"","sources":["../../../../src/util/builders/url/base.director.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAC1B,UAAU,CAAQ;IAE1B,YAAY,UAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAC1G,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACxE,CAAC;IAED,cAAc,CAAC,IAAa;QAC1B,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC;aAC9B,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACtB,CAAC;CACF"}
@@ -3,7 +3,7 @@ type DownloaderBaseUrlConditions = Array<{
3
3
  value: string;
4
4
  }>;
5
5
  /**
6
- * Build base URL for specific wiki. Example of the output: 'https://en.wikipedia.org' or 'https://de.wikivoyage.org
6
+ * Build base URL for specific wiki. Example of the output: 'https://en.wikipedia.org' or 'https://de.wikivoyage.org'
7
7
  */
8
8
  declare class BasicURLDirector {
9
9
  buildMediawikiBaseURL(domain: string): URL;
@@ -1,6 +1,6 @@
1
1
  import urlBuilder from './url.builder.js';
2
2
  /**
3
- * Build base URL for specific wiki. Example of the output: 'https://en.wikipedia.org' or 'https://de.wikivoyage.org
3
+ * Build base URL for specific wiki. Example of the output: 'https://en.wikipedia.org' or 'https://de.wikivoyage.org'
4
4
  */
5
5
  class BasicURLDirector {
6
6
  buildMediawikiBaseURL(domain) {
@@ -4,5 +4,5 @@
4
4
  export default class WebURLDirector {
5
5
  baseDomain: string;
6
6
  constructor(baseDomain: string);
7
- buildArticleRawURL(articleId: string): string;
7
+ buildPageRawURL(pageTitle: string): string;
8
8
  }
@@ -7,10 +7,10 @@ export default class WebURLDirector {
7
7
  constructor(baseDomain) {
8
8
  this.baseDomain = baseDomain;
9
9
  }
10
- buildArticleRawURL(articleId) {
10
+ buildPageRawURL(pageTitle) {
11
11
  return urlBuilder
12
12
  .setDomain(this.baseDomain)
13
- .setQueryParams({ title: encodeURIComponent(articleId), action: 'raw' })
13
+ .setQueryParams({ title: encodeURIComponent(pageTitle), action: 'raw' })
14
14
  .build();
15
15
  }
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"web.director.js","sourceRoot":"","sources":["../../../../src/util/builders/url/web.director.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,UAAU,CAAQ;IAElB,YAAY,UAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,kBAAkB,CAAC,SAAiB;QAClC,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,cAAc,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aACvE,KAAK,EAAE,CAAA;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"web.director.js","sourceRoot":"","sources":["../../../../src/util/builders/url/web.director.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,UAAU,CAAQ;IAElB,YAAY,UAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,OAAO,UAAU;aACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1B,cAAc,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aACvE,KAAK,EAAE,CAAA;IACZ,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- export declare function getCategoriesForArticles(articleStore: RKVS<ArticleDetail>, deleteArticleStore?: boolean): Promise<void>;
2
- export declare function trimUnmirroredPages(): Promise<number>;
3
- export declare function simplifyGraph(): Promise<{
4
- deletedNodes: number;
5
- }>;
1
+ import { Dump } from '../Dump.js';
2
+ export declare function buildCategoryMemberList(type: 'subcats' | 'pages' | 'files', categoryMembers: Array<CategoryMember>, categoryinfo: CategoryInfo, pageDetail: PageDetail, doc: Document, dump: Dump, numericSorting: boolean, page: number, isLastPage: boolean, pagePath: string): HTMLElement;
3
+ export declare function buildCategoryTypeItems(type: 'subcats' | 'pages' | 'files', categoryinfo: CategoryInfo, categoryMembers: GroupedCategoryMembers, pagePath: ZimPath, pageDetail: PageDetail, doc: Document, dump: Dump, numericSorting: boolean, moduleDependencies: {
4
+ styleDependenciesList: string[];
5
+ }, pageTitle: PageTitle, categoryContent: HTMLElement, pageItems: Array<RenderSingleOutput>): Promise<void>;