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.
- package/README.md +355 -62
- package/docs/functional_architecture.md +34 -38
- package/extensions/wiktionary_fr.js +18 -17
- package/jest.config.cjs +2 -2
- package/lib/DOMUtils.js +0 -1
- package/lib/DOMUtils.js.map +1 -1
- package/lib/Downloader.d.ts +39 -31
- package/lib/Downloader.js +418 -349
- package/lib/Downloader.js.map +1 -1
- package/lib/Dump.d.ts +24 -10
- package/lib/Dump.js +95 -50
- package/lib/Dump.js.map +1 -1
- package/lib/Gadgets.d.ts +2 -1
- package/lib/Gadgets.js +7 -5
- package/lib/Gadgets.js.map +1 -1
- package/lib/Logger.d.ts +6 -6
- package/lib/Logger.js +33 -33
- package/lib/Logger.js.map +1 -1
- package/lib/MediaWiki.d.ts +14 -31
- package/lib/MediaWiki.js +119 -172
- package/lib/MediaWiki.js.map +1 -1
- package/lib/RedisStore.d.ts +3 -3
- package/lib/RedisStore.js +21 -23
- package/lib/RedisStore.js.map +1 -1
- package/lib/S3.js +1 -1
- package/lib/S3.js.map +1 -1
- package/lib/Templates.d.ts +3 -10
- package/lib/Templates.js +5 -14
- package/lib/Templates.js.map +1 -1
- package/lib/cli.js +7 -6
- package/lib/cli.js.map +1 -1
- package/lib/config.d.ts +10 -16
- package/lib/config.js +33 -55
- package/lib/config.js.map +1 -1
- package/lib/error.manager.d.ts +2 -2
- package/lib/error.manager.js +42 -49
- package/lib/error.manager.js.map +1 -1
- package/lib/i18n.d.ts +2 -0
- package/lib/i18n.js +53 -0
- package/lib/i18n.js.map +1 -0
- package/lib/mutex.d.ts +2 -1
- package/lib/mutex.js +2 -1
- package/lib/mutex.js.map +1 -1
- package/lib/mwoffliner.lib.js +370 -222
- package/lib/mwoffliner.lib.js.map +1 -1
- package/lib/parameterList.d.ts +20 -8
- package/lib/parameterList.js +30 -18
- package/lib/parameterList.js.map +1 -1
- package/lib/renderers/abstract.renderer.d.ts +48 -55
- package/lib/renderers/abstract.renderer.js +377 -98
- package/lib/renderers/abstract.renderer.js.map +1 -1
- package/lib/renderers/action-parse.renderer.d.ts +22 -3
- package/lib/renderers/action-parse.renderer.js +123 -81
- package/lib/renderers/action-parse.renderer.js.map +1 -1
- package/lib/renderers/renderer.builder.js +6 -69
- package/lib/renderers/renderer.builder.js.map +1 -1
- package/lib/renderers/rendering.context.d.ts +2 -3
- package/lib/renderers/rendering.context.js +6 -14
- package/lib/renderers/rendering.context.js.map +1 -1
- package/lib/sanitize-argument.d.ts +7 -4
- package/lib/sanitize-argument.js +99 -41
- package/lib/sanitize-argument.js.map +1 -1
- package/lib/util/FileManager.d.ts +36 -0
- package/lib/util/FileManager.js +246 -0
- package/lib/util/FileManager.js.map +1 -0
- package/lib/util/RedisKvs.js +4 -4
- package/lib/util/RedisKvs.js.map +1 -1
- package/lib/util/RedisQueue.js +1 -1
- package/lib/util/RedisQueue.js.map +1 -1
- package/lib/util/builders/url/action-parse.director.d.ts +2 -2
- package/lib/util/builders/url/action-parse.director.js +7 -7
- package/lib/util/builders/url/action-parse.director.js.map +1 -1
- package/lib/util/builders/url/api.director.d.ts +2 -4
- package/lib/util/builders/url/api.director.js +10 -17
- package/lib/util/builders/url/api.director.js.map +1 -1
- package/lib/util/builders/url/base.director.d.ts +0 -4
- package/lib/util/builders/url/base.director.js +0 -25
- package/lib/util/builders/url/base.director.js.map +1 -1
- package/lib/util/builders/url/basic.director.d.ts +1 -1
- package/lib/util/builders/url/basic.director.js +1 -1
- package/lib/util/builders/url/web.director.d.ts +1 -1
- package/lib/util/builders/url/web.director.js +2 -2
- package/lib/util/builders/url/web.director.js.map +1 -1
- package/lib/util/categories.d.ts +5 -5
- package/lib/util/categories.js +175 -174
- package/lib/util/categories.js.map +1 -1
- package/lib/util/const.d.ts +4 -8
- package/lib/util/const.js +9 -17
- package/lib/util/const.js.map +1 -1
- package/lib/util/customCssJs.d.ts +6 -0
- package/lib/util/customCssJs.js +70 -0
- package/lib/util/customCssJs.js.map +1 -0
- package/lib/util/dump.d.ts +15 -4
- package/lib/util/dump.js +282 -86
- package/lib/util/dump.js.map +1 -1
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.js +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/metaData.js.map +1 -1
- package/lib/util/misc.d.ts +23 -13
- package/lib/util/misc.js +90 -59
- package/lib/util/misc.js.map +1 -1
- package/lib/util/mw-api.d.ts +7 -5
- package/lib/util/mw-api.js +167 -221
- package/lib/util/mw-api.js.map +1 -1
- package/lib/util/pageListMainPage.d.ts +3 -0
- package/lib/util/pageListMainPage.js +10 -0
- package/lib/util/pageListMainPage.js.map +1 -0
- package/lib/util/pages.d.ts +30 -0
- package/lib/util/pages.js +146 -0
- package/lib/util/pages.js.map +1 -0
- package/lib/util/rewriteUrls.d.ts +2 -2
- package/lib/util/rewriteUrls.js +33 -31
- package/lib/util/rewriteUrls.js.map +1 -1
- package/lib/util/savePages.d.ts +8 -0
- package/lib/util/savePages.js +182 -0
- package/lib/util/savePages.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/offliner-definition.json +178 -90
- package/package.json +50 -49
- package/res/page_list_home.js +20 -0
- package/res/{article_not_found.svg → page_not_found.svg} +1 -1
- package/res/script.js +30 -45
- package/res/style.css +52 -68
- package/res/templates/download_error_placeholder.html +7 -8
- package/res/templates/javaScript.html +19 -0
- package/res/templates/pageFallback.html +9 -7
- package/res/templates/pageVector2022.html +9 -7
- package/res/templates/pageVectorLegacy.html +9 -7
- package/res/templates/{article_list_home.html → page_list_home.html} +1 -2
- package/translation/ar.json +21 -21
- package/translation/bn.json +1 -1
- package/translation/de.json +46 -19
- package/translation/en.json +54 -21
- package/translation/es.json +17 -19
- package/translation/fi.json +23 -3
- package/translation/fr.json +57 -21
- package/translation/he.json +8 -6
- package/translation/ia.json +19 -19
- package/translation/id.json +13 -13
- package/translation/it.json +13 -8
- package/translation/ko.json +55 -3
- package/translation/lb.json +5 -2
- package/translation/mk.json +5 -5
- package/translation/nl.json +57 -22
- package/translation/or.json +2 -2
- package/translation/pt.json +2 -2
- package/translation/qqq.json +55 -22
- package/translation/ru.json +2 -2
- package/translation/sc.json +2 -2
- package/translation/sk.json +62 -0
- package/translation/sl.json +54 -21
- package/translation/sv.json +20 -19
- package/translation/sw.json +45 -2
- package/translation/zh-hans.json +56 -22
- package/translation/zh-hant.json +26 -19
- package/lib/renderers/abstractDesktop.render.d.ts +0 -12
- package/lib/renderers/abstractDesktop.render.js +0 -67
- package/lib/renderers/abstractDesktop.render.js.map +0 -1
- package/lib/renderers/abstractMobile.render.d.ts +0 -12
- package/lib/renderers/abstractMobile.render.js +0 -54
- package/lib/renderers/abstractMobile.render.js.map +0 -1
- package/lib/renderers/rest-api.renderer.d.ts +0 -7
- package/lib/renderers/rest-api.renderer.js +0 -68
- package/lib/renderers/rest-api.renderer.js.map +0 -1
- package/lib/renderers/visual-editor.renderer.d.ts +0 -7
- package/lib/renderers/visual-editor.renderer.js +0 -76
- package/lib/renderers/visual-editor.renderer.js.map +0 -1
- package/lib/renderers/wikimedia-desktop.renderer.d.ts +0 -4
- package/lib/renderers/wikimedia-desktop.renderer.js +0 -7
- package/lib/renderers/wikimedia-desktop.renderer.js.map +0 -1
- package/lib/renderers/wikimedia-mobile.renderer.d.ts +0 -19
- package/lib/renderers/wikimedia-mobile.renderer.js +0 -243
- package/lib/renderers/wikimedia-mobile.renderer.js.map +0 -1
- package/lib/util/articleListMainPage.d.ts +0 -3
- package/lib/util/articleListMainPage.js +0 -10
- package/lib/util/articleListMainPage.js.map +0 -1
- package/lib/util/articles.d.ts +0 -26
- package/lib/util/articles.js +0 -102
- package/lib/util/articles.js.map +0 -1
- package/lib/util/builders/url/desktop.director.d.ts +0 -8
- package/lib/util/builders/url/desktop.director.js +0 -15
- package/lib/util/builders/url/desktop.director.js.map +0 -1
- package/lib/util/builders/url/mobile.director.d.ts +0 -8
- package/lib/util/builders/url/mobile.director.js +0 -15
- package/lib/util/builders/url/mobile.director.js.map +0 -1
- package/lib/util/builders/url/rest-api.director.d.ts +0 -8
- package/lib/util/builders/url/rest-api.director.js +0 -18
- package/lib/util/builders/url/rest-api.director.js.map +0 -1
- package/lib/util/builders/url/visual-editor.director.d.ts +0 -9
- package/lib/util/builders/url/visual-editor.director.js +0 -18
- package/lib/util/builders/url/visual-editor.director.js.map +0 -1
- package/lib/util/saveArticles.d.ts +0 -8
- package/lib/util/saveArticles.js +0 -411
- package/lib/util/saveArticles.js.map +0 -1
- package/res/article_list_home.js +0 -24
- package/res/content.parsoid.css +0 -196
- package/res/inserted_style.css +0 -45
- package/res/templates/categories.html +0 -11
- package/res/templates/lead_section_wrapper.html +0 -6
- package/res/templates/pageWikimediaDesktop.html +0 -24
- package/res/templates/pageWikimediaMobile.html +0 -24
- package/res/templates/section_wrapper.html +0 -5
- package/res/templates/subcategories.html +0 -23
- package/res/templates/subpages.html +0 -17
- package/res/templates/subsection_wrapper.html +0 -5
- package/res/webpHandler.js +0 -165
- package/res/wm_mobile_override_script.js +0 -15
- package/res/wm_mobile_override_style.css +0 -20
- package/translation/br.json +0 -8
- package/translation/dag.json +0 -9
- package/translation/es-formal.json +0 -29
- package/translation/ha.json +0 -10
- package/translation/hi.json +0 -9
- package/translation/ig.json +0 -10
- package/translation/kaa.json +0 -9
- package/translation/nb.json +0 -9
- package/translation/nqo.json +0 -8
- package/translation/pt-br.json +0 -10
- package/translation/ro.json +0 -9
- package/translation/scn.json +0 -8
- package/translation/sq.json +0 -9
- package/translation/te.json +0 -9
- package/translation/tn.json +0 -9
- package/translation/tr.json +0 -10
package/translation/zh-hans.json
CHANGED
|
@@ -4,29 +4,63 @@
|
|
|
4
4
|
"GuoPC",
|
|
5
5
|
"IceButBin",
|
|
6
6
|
"Prmsh",
|
|
7
|
-
"TFX202X"
|
|
7
|
+
"TFX202X",
|
|
8
|
+
"沈澄心"
|
|
8
9
|
]
|
|
9
10
|
},
|
|
10
|
-
"
|
|
11
|
-
"
|
|
11
|
+
"categoryHeaderNumerals": "0-9",
|
|
12
|
+
"categoryFileCount": {
|
|
13
|
+
"one": "此分类仅包含以下文件。",
|
|
14
|
+
"other": "此分类中存在以下 $t(categoryCurrentPageFileCount, {\"count\": {{curPageCount}} }) 个文件,总共有 {{count}} 个文件。"
|
|
15
|
+
},
|
|
16
|
+
"categoryCurrentPageFileCount": {
|
|
17
|
+
"one": "file is",
|
|
18
|
+
"other": "{{count}} 个文件"
|
|
19
|
+
},
|
|
20
|
+
"categoryMediaHeader": "分类“{{pageName}}”中的媒体",
|
|
21
|
+
"categoryPageCount": {
|
|
22
|
+
"one": "此分类仅包含以下页面。",
|
|
23
|
+
"other": "此分类中的以下 $t(categoryCurrentPagePageCount, {\"count\": {{curPageCount}} }) 个页面,共 {{count}} 个页面。"
|
|
24
|
+
},
|
|
25
|
+
"categoryCurrentPagePageCount": {
|
|
26
|
+
"one": "页面",
|
|
27
|
+
"other": "{{count}} 个页面"
|
|
28
|
+
},
|
|
29
|
+
"categoryHeader": "分类“{{pageName}}”中的页面",
|
|
30
|
+
"categorySubcatCount": {
|
|
31
|
+
"one": "此分类仅包含以下子分类。",
|
|
32
|
+
"other": "此分类包含以下 $t(categoryCurrentPageSubcatCount, {\"count\": {{curPageCount}} }) 个子分类,共 {{count}} 个子分类。"
|
|
33
|
+
},
|
|
34
|
+
"categoryCurrentPageSubcatCount": {
|
|
35
|
+
"one": "子分类",
|
|
36
|
+
"other": "{{count}} 个子分类"
|
|
37
|
+
},
|
|
38
|
+
"categoryPreviousPage": "上一页",
|
|
39
|
+
"categoryNextPage": "下一页",
|
|
40
|
+
"categoryNoPagination": "未启用Javascript的浏览器无法显示下一个项目",
|
|
41
|
+
"subcategories": "子分类",
|
|
42
|
+
"categoryEmpty": "<em>本分类目前不含有任何页面或媒体文件。</em>",
|
|
43
|
+
"categoryLimited": "<em>此分类的内容已缩减至仅包含在 ZIM 文件内的页面。</em>",
|
|
44
|
+
"DISCLAIMER": "本页面由 {{creator}} 发布。除非另有说明,文本内容遵循 {{license}} 协议。媒体文件可能适用附加条款。",
|
|
45
|
+
"LAST_EDITED_ON": "最后编辑于 {{date}}",
|
|
12
46
|
"LICENSE_UNKNOWN": "未知的许可证",
|
|
13
|
-
"DOWNLOAD_ERRORS_HEADING": "
|
|
14
|
-
"DOWNLOAD_ERRORS_MESSAGE": "
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_UPSTREAM_TIMEOUT": "
|
|
20
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_HTML_503_ERROR": "
|
|
21
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_BAD_REVISION_ERROR": "
|
|
22
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_UNREACHABLE_EXCEPTION_ERROR": "
|
|
23
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INVARIANT_EXCEPTION_ERROR": "当您正在浏览的ZIM
|
|
24
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_PARSOID_RESOURCE_LIMIT_EXCEEDED": "
|
|
25
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_GENERIC_INTERNAL_API_ERROR": "在构建您浏览的 ZIM
|
|
26
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INTERNAL_API_TYPE_ERROR": "当您正在浏览的ZIM
|
|
27
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INVALID_ARGUMENT_EXCEPTION_ERROR": "当您正在浏览的ZIM
|
|
28
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_TRUNCATED_RESPONSE": "
|
|
29
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_EMPTY_500_RESPONSE": "当您正在浏览的ZIM
|
|
30
|
-
"DOWNLOAD_ERRORS_LINE2": "
|
|
31
|
-
"DOWNLOAD_ERRORS_LINE3": "希望
|
|
47
|
+
"DOWNLOAD_ERRORS_HEADING": "哎呀!找不到页面。",
|
|
48
|
+
"DOWNLOAD_ERRORS_MESSAGE": "所请求的页面“{{pageTitle}}”在此 ZIM 中不可用,无法从 {{server}} 检索。",
|
|
49
|
+
"DOWNLOAD_ERRORS_LINE1_DELETED_PAGE": "此页面在待检索页面的列表编译之后、获取此页面以构建您浏览的 ZIM 之前被删除。",
|
|
50
|
+
"DOWNLOAD_ERRORS_LINE1_PERMISSION_DENIED": "在 {{server}} 服务器上对此页面的访问受到限制。其所需要的特殊权限在 ZIM 抓取过程中无法获得。",
|
|
51
|
+
"DOWNLOAD_ERRORS_LINE1_CATEGORY_LOCKDOWN": "由于 {{server}} 服务器上的分类锁定,对本页面的访问受到限制。在 ZIM 抓取过程中,所需的分类权限不可用。",
|
|
52
|
+
"DOWNLOAD_ERRORS_LINE1_CLIENT_SIDE_TIMEOUT": "当您正在浏览的 ZIM 文件构建时,{{server}} 服务器未能及时提供关于此页面 HTML 的详细信息。",
|
|
53
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_UPSTREAM_TIMEOUT": "当您正在浏览的 ZIM 文件构建时,{{server}} 服务器的 ActionParse API 在处理此页面时超时,并返回了 HTTP 504 错误。",
|
|
54
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_HTML_503_ERROR": "当您正在浏览的 ZIM 文件构建时,{{server}} 服务器的 ActionParse API 在提供关于此页面 HTML 的详细信息时引发了 HTTP 503 错误。",
|
|
55
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_BAD_REVISION_ERROR": "当您正在浏览的 ZIM 文件构建时,{{server}} 服务器的 ActionParse API 在提供关于此页面 HTML 的详细信息时引发了意外的修订版本 ID 不合法错误。",
|
|
56
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_UNREACHABLE_EXCEPTION_ERROR": "当您正在浏览的 ZIM 文件构建时,{{server}} 服务器的 ActionParse API 在提供关于此页面 HTML 的详细信息时引发了无法访问异常错误。",
|
|
57
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INVARIANT_EXCEPTION_ERROR": "当您正在浏览的 ZIM 文件构建时,{{server}} 服务器的 ActionParse API 在提供关于此页面 HTML 的详细信息时引发了不变式异常错误。",
|
|
58
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_PARSOID_RESOURCE_LIMIT_EXCEEDED": "当您正在浏览的 ZIM 文件构建时,{{server}} 服务器的 ActionParse API 在提供关于此页面 HTML 的详细信息时引发了与 Parsoid 资源限制超出相关的错误。",
|
|
59
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_GENERIC_INTERNAL_API_ERROR": "在构建您浏览的 ZIM 时,{{server}} 服务器的 ActionParse API 在提供关于此页面 HTML 的详细信息时引发内部 API 错误。",
|
|
60
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INTERNAL_API_TYPE_ERROR": "当您正在浏览的 ZIM 文件构建时,{{server}} 服务器的 ActionParse API 在提供关于此页面 HTML 的详细信息时引发了内部 API 类型错误。",
|
|
61
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INVALID_ARGUMENT_EXCEPTION_ERROR": "当您正在浏览的 ZIM 文件构建时,{{server}} 服务器的 ActionParse API 在提供关于此页面 HTML 的详细信息时引发了参数异常错误。",
|
|
62
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_TRUNCATED_RESPONSE": "当您正在浏览的 ZIM 文件构建时,{{server}} 服务器的 ActionParse API 未能提供关于此页面 HTML 的详细信息,因为此页面过长。需要在 {{server}} 服务器上将此页面拆分为多个相对短的页面。",
|
|
63
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_EMPTY_500_RESPONSE": "当您正在浏览的 ZIM 文件构建时,{{server}} 服务器的 ActionParse API 未能返回关于此页面 HTML 的详细信息,返回了空响应。",
|
|
64
|
+
"DOWNLOAD_ERRORS_LINE2": "缺失的页面已被您当前看到的占位符页面所取代。",
|
|
65
|
+
"DOWNLOAD_ERRORS_LINE3": "希望 {{server}} 服务器上的问题能够得到解决,以及希望下一个版本的 ZIM 能够包含此页面。"
|
|
32
66
|
}
|
package/translation/zh-hant.json
CHANGED
|
@@ -4,26 +4,33 @@
|
|
|
4
4
|
"Kly"
|
|
5
5
|
]
|
|
6
6
|
},
|
|
7
|
-
"
|
|
8
|
-
"
|
|
7
|
+
"categoryHeaderNumerals": "0–9",
|
|
8
|
+
"categoryMediaHeader": "在分類「{{pageName}}」的媒體",
|
|
9
|
+
"categoryHeader": "在分類「{{pageName}}」的頁面",
|
|
10
|
+
"categoryPreviousPage": "上一頁",
|
|
11
|
+
"categoryNextPage": "下一頁",
|
|
12
|
+
"subcategories": "子分類",
|
|
13
|
+
"categoryEmpty": "<em>此分類目前未包含頁面或媒體。</em>",
|
|
14
|
+
"DISCLAIMER": "此頁面由{{creator}}發布。除非另有說明,否則內容文字基於{{license}}之下可用。媒體檔案部份可能適用於額外條款。",
|
|
15
|
+
"LAST_EDITED_ON": "最後編輯於{{date}}",
|
|
9
16
|
"LICENSE_UNKNOWN": "未知授權條款",
|
|
10
17
|
"DOWNLOAD_ERRORS_HEADING": "哎呀。找不到條目。",
|
|
11
|
-
"DOWNLOAD_ERRORS_MESSAGE": "
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_UPSTREAM_TIMEOUT": "當您瀏覽的 ZIM
|
|
17
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_HTML_503_ERROR": "當您瀏覽的 ZIM
|
|
18
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_BAD_REVISION_ERROR": "當您瀏覽的 ZIM
|
|
19
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_UNREACHABLE_EXCEPTION_ERROR": "當您瀏覽的 ZIM
|
|
20
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INVARIANT_EXCEPTION_ERROR": "當您瀏覽的 ZIM
|
|
21
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_PARSOID_RESOURCE_LIMIT_EXCEEDED": "當您瀏覽的 ZIM
|
|
22
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_GENERIC_INTERNAL_API_ERROR": "當您瀏覽的 ZIM
|
|
23
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INTERNAL_API_TYPE_ERROR": "當您瀏覽的 ZIM
|
|
24
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INVALID_ARGUMENT_EXCEPTION_ERROR": "當您瀏覽的 ZIM
|
|
25
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_TRUNCATED_RESPONSE": "當您瀏覽的 ZIM
|
|
26
|
-
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_EMPTY_500_RESPONSE": "當您瀏覽的 ZIM
|
|
18
|
+
"DOWNLOAD_ERRORS_MESSAGE": "所要求的頁面「{{pageTitle}}」在此 ZIM 中不可用,無法從 {{server}} 檢索。",
|
|
19
|
+
"DOWNLOAD_ERRORS_LINE1_DELETED_PAGE": "此條目在我們編譯要檢索的條目清單之後,且在我們取得它以建置您正在瀏覽的 ZIM 之前被刪除了。",
|
|
20
|
+
"DOWNLOAD_ERRORS_LINE1_PERMISSION_DENIED": "存取此條目在 {{server}} 伺服器上受到限制。這需要特殊權限,而這些權限在 ZIM 抓取過程中無法取得。",
|
|
21
|
+
"DOWNLOAD_ERRORS_LINE1_CATEGORY_LOCKDOWN": "由於在伺服器 {{server}} 上設定了基於分類的權限鎖定,因此無法存取此條目。在 ZIM 抓取過程中,所需要的分類權限不可用。",
|
|
22
|
+
"DOWNLOAD_ERRORS_LINE1_CLIENT_SIDE_TIMEOUT": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器未能及時提供有關該條目 HTML 的詳細資訊。",
|
|
23
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_UPSTREAM_TIMEOUT": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器的 ActionParse API 會在處理該條目時逾時,並會回傳 HTTP 504 錯誤。",
|
|
24
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_HTML_503_ERROR": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器的 ActionParse API 會在提供關於該條目 HTML 詳細資訊時引發 HTTP 503 錯誤。",
|
|
25
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_BAD_REVISION_ERROR": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器的 ActionParse API 會在提供關於該條目 HTML 詳細資訊時引發非預期錯誤修訂 ID。",
|
|
26
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_UNREACHABLE_EXCEPTION_ERROR": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器的 ActionParse API 會在提供關於該條目 HTML 詳細資訊時引發無法存取的例外錯誤。",
|
|
27
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INVARIANT_EXCEPTION_ERROR": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器的 ActionParse API 在提供關於該條目 HTML 詳細資訊時引發慣例異常錯誤。",
|
|
28
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_PARSOID_RESOURCE_LIMIT_EXCEEDED": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器的 ActionParse API 在提供關於該條目 HTML 詳細資訊時引發連結至 Parsoid 資源超出限制的相關錯誤。",
|
|
29
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_GENERIC_INTERNAL_API_ERROR": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器的 ActionParse API 在提供關於該條目 HTML 詳細資訊時引發內部網路 API 錯誤。",
|
|
30
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INTERNAL_API_TYPE_ERROR": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器的 ActionParse API 在提供關於該條目 HTML 詳細資訊時引發內網 API 類型錯誤。",
|
|
31
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_INVALID_ARGUMENT_EXCEPTION_ERROR": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器的 ActionParse API 在提供關於該條目 HTML 詳細資訊時引發參數異常錯誤。",
|
|
32
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_TRUNCATED_RESPONSE": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器的 ActionParse API 無法提供關於該條目 HTML 詳細資訊,因為該條目內容過多。需要有人在 {{server}} 伺服器上將此條目拆分成多個較小內容。",
|
|
33
|
+
"DOWNLOAD_ERRORS_LINE1_ACTION_PARSE_EMPTY_500_RESPONSE": "當您瀏覽的 ZIM 在建置時,{{server}} 伺服器的 ActionParse API 提供有關此條目 HTML 的詳細資訊失敗並回傳空回應。",
|
|
27
34
|
"DOWNLOAD_ERRORS_LINE2": "缺少的條目已被您目前看到的佔位符頁面所取代。",
|
|
28
|
-
"DOWNLOAD_ERRORS_LINE3": "希望
|
|
35
|
+
"DOWNLOAD_ERRORS_LINE3": "希望 {{server}} 伺服器上的問題可以解決,以及希望我們的下一個版本的 ZIM 將包含此條目。"
|
|
29
36
|
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { DownloadOpts, DownloadRes, Renderer } from './abstract.renderer.js';
|
|
2
|
-
export declare abstract class DesktopRenderer extends Renderer {
|
|
3
|
-
staticFilesListDesktop: string[];
|
|
4
|
-
constructor();
|
|
5
|
-
download(downloadOpts: DownloadOpts): Promise<DownloadRes>;
|
|
6
|
-
filterWikimediaDesktopModules(_moduleDependencies: any): {
|
|
7
|
-
jsConfigVars: string;
|
|
8
|
-
jsDependenciesList: string[];
|
|
9
|
-
styleDependenciesList: string[];
|
|
10
|
-
};
|
|
11
|
-
templateDesktopArticle(moduleDependencies: any, articleId: string): Document;
|
|
12
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import * as domino from 'domino';
|
|
2
|
-
import { Renderer } from './abstract.renderer.js';
|
|
3
|
-
import { getStaticFiles, genCanonicalLink, genHeaderScript, genHeaderCSSLink, getRelativeFilePath } from '../util/misc.js';
|
|
4
|
-
import { config } from '../config.js';
|
|
5
|
-
import MediaWiki from '../MediaWiki.js';
|
|
6
|
-
import { htmlWikimediaDesktopTemplateCode } from '../Templates.js';
|
|
7
|
-
import Downloader from '../Downloader.js';
|
|
8
|
-
export class DesktopRenderer extends Renderer {
|
|
9
|
-
staticFilesListDesktop = [];
|
|
10
|
-
constructor() {
|
|
11
|
-
super();
|
|
12
|
-
this.staticFilesListDesktop = this.staticFilesListCommon.concat(getStaticFiles(config.output.jsResources, config.output.cssResources));
|
|
13
|
-
}
|
|
14
|
-
async download(downloadOpts) {
|
|
15
|
-
const { articleUrl, articleDetail } = downloadOpts;
|
|
16
|
-
const moduleDependencies = this.filterWikimediaDesktopModules(await Downloader.getModuleDependencies(articleDetail.title));
|
|
17
|
-
const data = await Downloader.getJSON(articleUrl);
|
|
18
|
-
if (data.error) {
|
|
19
|
-
throw new Error(data.error);
|
|
20
|
-
}
|
|
21
|
-
return { data, moduleDependencies, redirects: [] };
|
|
22
|
-
}
|
|
23
|
-
filterWikimediaDesktopModules(_moduleDependencies) {
|
|
24
|
-
const { jsConfigVars, jsDependenciesList, styleDependenciesList } = _moduleDependencies;
|
|
25
|
-
const wikimediaDesktopJsModuleDependencies = jsDependenciesList.filter((item) => !item.includes('javascript/mobile'));
|
|
26
|
-
const wikimediaDesktopCssModuleDependencies = styleDependenciesList.filter((item) => !item.includes('css/mobile'));
|
|
27
|
-
const wikimediaDesktopModuleDependencies = {
|
|
28
|
-
jsConfigVars,
|
|
29
|
-
jsDependenciesList: wikimediaDesktopJsModuleDependencies,
|
|
30
|
-
styleDependenciesList: wikimediaDesktopCssModuleDependencies,
|
|
31
|
-
};
|
|
32
|
-
return wikimediaDesktopModuleDependencies;
|
|
33
|
-
}
|
|
34
|
-
templateDesktopArticle(moduleDependencies, articleId) {
|
|
35
|
-
const { jsConfigVars, jsDependenciesList, styleDependenciesList } = moduleDependencies;
|
|
36
|
-
const cssLinks = config.output.cssResources.reduce((buf, css) => {
|
|
37
|
-
return buf + genHeaderCSSLink(config, css, articleId, config.output.dirs.res);
|
|
38
|
-
}, '');
|
|
39
|
-
let jsScripts = config.output.jsResources.reduce((buf, js) => {
|
|
40
|
-
return (buf +
|
|
41
|
-
(js === 'script'
|
|
42
|
-
? genHeaderScript(config, js, articleId, config.output.dirs.res, `data-article-id="${articleId.replace(/"/g, '\\\\"')}" id="script-js"`)
|
|
43
|
-
: genHeaderScript(config, js, articleId, config.output.dirs.res)));
|
|
44
|
-
}, '');
|
|
45
|
-
if (Downloader.webp) {
|
|
46
|
-
jsScripts += genHeaderScript(config, 'webpHandler', articleId, config.output.dirs.webp);
|
|
47
|
-
}
|
|
48
|
-
const articleConfigVarsList = jsConfigVars === '' ? '' : genHeaderScript(config, 'jsConfigVars', articleId, config.output.dirs.mediawiki);
|
|
49
|
-
const articleJsList = jsDependenciesList.length === 0 ? '' : jsDependenciesList.map((oneJsDep) => genHeaderScript(config, oneJsDep, articleId, config.output.dirs.mediawiki)).join('\n');
|
|
50
|
-
const articleCssList = styleDependenciesList.length === 0
|
|
51
|
-
? ''
|
|
52
|
-
: styleDependenciesList.map((oneCssDep) => genHeaderCSSLink(config, oneCssDep, articleId, config.output.dirs.mediawiki)).join('\n');
|
|
53
|
-
const htmlTemplateString = htmlWikimediaDesktopTemplateCode()
|
|
54
|
-
.replace('__CSS_LINKS__', cssLinks)
|
|
55
|
-
.replace('__JS_SCRIPTS__', jsScripts)
|
|
56
|
-
.replace('__ARTICLE_CANONICAL_LINK__', genCanonicalLink(config, MediaWiki.webUrl.href, articleId))
|
|
57
|
-
.replace('__ARTICLE_CONFIGVARS_LIST__', articleConfigVarsList)
|
|
58
|
-
.replace('__ARTICLE_JS_LIST__', articleJsList)
|
|
59
|
-
.replace('__ARTICLE_CSS_LIST__', articleCssList)
|
|
60
|
-
.replace(/__ASSETS_DIR__/g, config.output.dirs.assets)
|
|
61
|
-
.replace(/__RES_DIR__/g, config.output.dirs.res)
|
|
62
|
-
.replace(/__MW_DIR__/g, config.output.dirs.mediawiki)
|
|
63
|
-
.replace(/__RELATIVE_FILE_PATH__/g, getRelativeFilePath(articleId, ''));
|
|
64
|
-
return domino.createDocument(htmlTemplateString);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=abstractDesktop.render.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abstractDesktop.render.js","sourceRoot":"","sources":["../../src/renderers/abstractDesktop.render.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Renderer } from './abstract.renderer.js';
|
|
2
|
-
export declare abstract class MobileRenderer extends Renderer {
|
|
3
|
-
staticFilesListMobile: string[];
|
|
4
|
-
constructor();
|
|
5
|
-
filterWikimediaMobileModules(_moduleDependencies: any): {
|
|
6
|
-
jsDependenciesList: string[];
|
|
7
|
-
styleDependenciesList: string[];
|
|
8
|
-
};
|
|
9
|
-
private genWikimediaMobileOverrideCSSLink;
|
|
10
|
-
private genWikimediaMobileOverrideScript;
|
|
11
|
-
templateMobileArticle(moduleDependencies: any, articleId: string): Document;
|
|
12
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import * as domino from 'domino';
|
|
2
|
-
import { Renderer } from './abstract.renderer.js';
|
|
3
|
-
import { getStaticFiles, genCanonicalLink, genHeaderScript, genHeaderCSSLink, getRelativeFilePath } from '../util/misc.js';
|
|
4
|
-
import { config } from '../config.js';
|
|
5
|
-
import MediaWiki from '../MediaWiki.js';
|
|
6
|
-
import Downloader from '../Downloader.js';
|
|
7
|
-
import { htmlWikimediaMobileTemplateCode } from '../Templates.js';
|
|
8
|
-
export class MobileRenderer extends Renderer {
|
|
9
|
-
staticFilesListMobile = [];
|
|
10
|
-
constructor() {
|
|
11
|
-
super();
|
|
12
|
-
this.staticFilesListMobile = this.staticFilesListCommon.concat(getStaticFiles(config.output.wikimediaMobileJsResources, config.output.wikimediaMobileCssResources));
|
|
13
|
-
}
|
|
14
|
-
filterWikimediaMobileModules(_moduleDependencies) {
|
|
15
|
-
const { jsDependenciesList, styleDependenciesList } = _moduleDependencies;
|
|
16
|
-
const wikimediaMobileJsModuleDependencies = jsDependenciesList.filter((item) => item.includes('javascript/mobile'));
|
|
17
|
-
const wikimediaMobileCssModuleDependencies = styleDependenciesList.filter((item) => item.includes('css/mobile'));
|
|
18
|
-
const wikimediaMobileModuleDependencies = {
|
|
19
|
-
jsDependenciesList: wikimediaMobileJsModuleDependencies,
|
|
20
|
-
styleDependenciesList: wikimediaMobileCssModuleDependencies,
|
|
21
|
-
};
|
|
22
|
-
return wikimediaMobileModuleDependencies;
|
|
23
|
-
}
|
|
24
|
-
genWikimediaMobileOverrideCSSLink(relativeFilePath, css) {
|
|
25
|
-
return `<link rel="stylesheet" href="${relativeFilePath}${config.output.dirs.res}/${css}.css" />`;
|
|
26
|
-
}
|
|
27
|
-
genWikimediaMobileOverrideScript(relativeFilePath, js) {
|
|
28
|
-
return `<script src='${relativeFilePath}${config.output.dirs.res}/${js}.js'></script>`;
|
|
29
|
-
}
|
|
30
|
-
templateMobileArticle(moduleDependencies, articleId) {
|
|
31
|
-
const { jsDependenciesList, styleDependenciesList } = moduleDependencies;
|
|
32
|
-
let articleJsList = jsDependenciesList.length === 0 ? '' : jsDependenciesList.map((oneJsDep) => genHeaderScript(config, oneJsDep, articleId, config.output.dirs.mediawiki)).join('\n');
|
|
33
|
-
if (Downloader.webp) {
|
|
34
|
-
articleJsList += genHeaderScript(config, 'webpHandler', articleId, config.output.dirs.webp);
|
|
35
|
-
}
|
|
36
|
-
const articleCssList = styleDependenciesList.length === 0
|
|
37
|
-
? ''
|
|
38
|
-
: styleDependenciesList.map((oneCssDep) => genHeaderCSSLink(config, oneCssDep, articleId, config.output.dirs.mediawiki)).join('\n');
|
|
39
|
-
const relativeFilePath = getRelativeFilePath(articleId, '');
|
|
40
|
-
const htmlTemplateString = htmlWikimediaMobileTemplateCode()
|
|
41
|
-
.replace('__ARTICLE_CANONICAL_LINK__', genCanonicalLink(config, MediaWiki.webUrl.href, articleId))
|
|
42
|
-
.replace('__ARTICLE_CONFIGVARS_LIST__', '')
|
|
43
|
-
.replace('__JS_SCRIPTS__', this.genWikimediaMobileOverrideScript(relativeFilePath, config.output.wikimediaMobileJsResources[0]))
|
|
44
|
-
.replace('__CSS_LINKS__', this.genWikimediaMobileOverrideCSSLink(relativeFilePath, config.output.wikimediaMobileCssResources[0]))
|
|
45
|
-
.replace('__ARTICLE_JS_LIST__', articleJsList)
|
|
46
|
-
.replace('__ARTICLE_CSS_LIST__', articleCssList)
|
|
47
|
-
.replace(/__ASSETS_DIR__/g, config.output.dirs.assets)
|
|
48
|
-
.replace(/__RES_DIR__/g, config.output.dirs.res)
|
|
49
|
-
.replace(/__MW_DIR__/g, config.output.dirs.mediawiki)
|
|
50
|
-
.replace(/__RELATIVE_FILE_PATH__/g, getRelativeFilePath(articleId, ''));
|
|
51
|
-
return domino.createDocument(htmlTemplateString);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=abstractMobile.render.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abstractMobile.render.js","sourceRoot":"","sources":["../../src/renderers/abstractMobile.render.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { DesktopRenderer } from './abstractDesktop.render.js';
|
|
2
|
-
import { RenderOpts } from './abstract.renderer.js';
|
|
3
|
-
export declare class RestApiRenderer extends DesktopRenderer {
|
|
4
|
-
constructor();
|
|
5
|
-
private retrieveHtml;
|
|
6
|
-
render(renderOpts: RenderOpts): Promise<any>;
|
|
7
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import domino from 'domino';
|
|
2
|
-
import { DesktopRenderer } from './abstractDesktop.render.js';
|
|
3
|
-
import { getStrippedTitleFromHtml } from '../util/misc.js';
|
|
4
|
-
import { isMainPage } from '../util/articles.js';
|
|
5
|
-
// Represent 'https://{wikimedia-wiki}/api/rest.php/v1/page/html/'
|
|
6
|
-
export class RestApiRenderer extends DesktopRenderer {
|
|
7
|
-
constructor() {
|
|
8
|
-
super();
|
|
9
|
-
}
|
|
10
|
-
async retrieveHtml(data, i, articleId, articleDetail, numberOfPagesToSplitInto, articleDetailXId) {
|
|
11
|
-
const pageId = i === 0 ? '' : `__${i}`;
|
|
12
|
-
const _articleId = articleId + pageId;
|
|
13
|
-
const _articleDetail = Object.assign({}, articleDetail, {
|
|
14
|
-
subCategories: (articleDetail.subCategories || []).slice(i * 200, (i + 1) * 200),
|
|
15
|
-
nextArticleId: numberOfPagesToSplitInto > i + 1 ? `${articleId}__${i + 1}` : null,
|
|
16
|
-
prevArticleId: i - 1 > 0 ? `${articleId}__${i - 1}` : i - 1 === 0 ? articleId : null,
|
|
17
|
-
});
|
|
18
|
-
if (articleDetailXId && (articleDetail.subCategories || []).length > 200) {
|
|
19
|
-
await articleDetailXId.set(_articleId, _articleDetail);
|
|
20
|
-
}
|
|
21
|
-
let strippedTitle = getStrippedTitleFromHtml(data);
|
|
22
|
-
if (!strippedTitle) {
|
|
23
|
-
const title = articleId;
|
|
24
|
-
const doc = domino.createDocument(`<span class='mw-title'>${title}</span>`);
|
|
25
|
-
strippedTitle = doc.getElementsByClassName('mw-title')[0].textContent;
|
|
26
|
-
}
|
|
27
|
-
return { strippedTitle, _articleId };
|
|
28
|
-
}
|
|
29
|
-
async render(renderOpts) {
|
|
30
|
-
const result = [];
|
|
31
|
-
const { data, articleId, articleDetailXId, moduleDependencies, dump } = renderOpts;
|
|
32
|
-
/* istanbul ignore if */
|
|
33
|
-
if (!data) {
|
|
34
|
-
throw new Error(`Cannot render [${data}] into an article`);
|
|
35
|
-
}
|
|
36
|
-
const articleDetail = await renderOpts.articleDetailXId.get(articleId);
|
|
37
|
-
// Paginate when there are more than 200 subCategories
|
|
38
|
-
const numberOfPagesToSplitInto = Math.max(Math.ceil((articleDetail.subCategories || []).length / 200), 1);
|
|
39
|
-
for (let i = 0; i < numberOfPagesToSplitInto; i++) {
|
|
40
|
-
const { strippedTitle, _articleId } = await this.retrieveHtml(data, i, articleId, articleDetail, numberOfPagesToSplitInto, articleDetailXId);
|
|
41
|
-
let dataWithHeader = '';
|
|
42
|
-
if (!isMainPage(articleId)) {
|
|
43
|
-
dataWithHeader = super.injectH1TitleToHtml(data, articleDetail);
|
|
44
|
-
}
|
|
45
|
-
const { finalHTML, mediaDependencies, videoDependencies, imageDependencies, subtitles } = await super.processHtml({
|
|
46
|
-
html: dataWithHeader || data,
|
|
47
|
-
dump,
|
|
48
|
-
articleId,
|
|
49
|
-
articleDetail,
|
|
50
|
-
moduleDependencies,
|
|
51
|
-
callback: super.templateDesktopArticle.bind(this),
|
|
52
|
-
});
|
|
53
|
-
result.push({
|
|
54
|
-
articleId: _articleId,
|
|
55
|
-
displayTitle: (strippedTitle || articleId.replace(/_/g, ' ')) + (i === 0 ? '' : `/${i}`),
|
|
56
|
-
html: finalHTML,
|
|
57
|
-
mediaDependencies,
|
|
58
|
-
videoDependencies,
|
|
59
|
-
imageDependencies,
|
|
60
|
-
moduleDependencies,
|
|
61
|
-
staticFiles: this.staticFilesListDesktop,
|
|
62
|
-
subtitles,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
return result;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=rest-api.renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rest-api.renderer.js","sourceRoot":"","sources":["../../src/renderers/rest-api.renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { DesktopRenderer } from './abstractDesktop.render.js';
|
|
2
|
-
import { RenderOpts } from './abstract.renderer.js';
|
|
3
|
-
export declare class VisualEditorRenderer extends DesktopRenderer {
|
|
4
|
-
constructor();
|
|
5
|
-
private retrieveHtml;
|
|
6
|
-
render(renderOpts: RenderOpts): Promise<any>;
|
|
7
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import * as logger from '../Logger.js';
|
|
2
|
-
import { DELETED_ARTICLE_ERROR } from '../util/const.js';
|
|
3
|
-
import { DesktopRenderer } from './abstractDesktop.render.js';
|
|
4
|
-
import { getStrippedTitleFromHtml } from '../util/misc.js';
|
|
5
|
-
import { DownloadError } from '../Downloader.js';
|
|
6
|
-
import { isMainPage } from '../util/articles.js';
|
|
7
|
-
/*
|
|
8
|
-
Relies on VisualEditor API typically looking like 'https://{wiki-host}/w/api.php?action=visualeditor&mobileformat=html&format=json&paction=parse&page={title}'
|
|
9
|
-
*/
|
|
10
|
-
export class VisualEditorRenderer extends DesktopRenderer {
|
|
11
|
-
constructor() {
|
|
12
|
-
super();
|
|
13
|
-
}
|
|
14
|
-
async retrieveHtml(renderOpts) {
|
|
15
|
-
const { data, articleId, articleDetail } = renderOpts;
|
|
16
|
-
/* istanbul ignore if */
|
|
17
|
-
if (!data) {
|
|
18
|
-
throw new Error(`Cannot render [${data}] into an article`);
|
|
19
|
-
}
|
|
20
|
-
let html;
|
|
21
|
-
let displayTitle;
|
|
22
|
-
let strippedTitle;
|
|
23
|
-
if (data.visualeditor) {
|
|
24
|
-
// Testing if article has been deleted between fetching list and downloading content.
|
|
25
|
-
if (data.visualeditor.oldid === 0) {
|
|
26
|
-
logger.error(DELETED_ARTICLE_ERROR);
|
|
27
|
-
throw new DownloadError(DELETED_ARTICLE_ERROR, null, null, null, DELETED_ARTICLE_ERROR);
|
|
28
|
-
}
|
|
29
|
-
html = isMainPage(articleId) ? data.visualeditor.content : super.injectH1TitleToHtml(data.visualeditor.content, articleDetail);
|
|
30
|
-
strippedTitle = getStrippedTitleFromHtml(html);
|
|
31
|
-
displayTitle = strippedTitle || articleId.replace('_', ' ');
|
|
32
|
-
return { html, displayTitle };
|
|
33
|
-
}
|
|
34
|
-
else if (data.contentmodel === 'wikitext' || (data.html && data.html.body)) {
|
|
35
|
-
html = data.html.body;
|
|
36
|
-
strippedTitle = getStrippedTitleFromHtml(html);
|
|
37
|
-
displayTitle = strippedTitle || articleId.replace('_', ' ');
|
|
38
|
-
return { html, displayTitle };
|
|
39
|
-
}
|
|
40
|
-
else if (data.error) {
|
|
41
|
-
logger.error(`Error in retrieved article [${articleId}]:`, data.error);
|
|
42
|
-
return '';
|
|
43
|
-
}
|
|
44
|
-
logger.error('Unable to parse data from visual editor');
|
|
45
|
-
return '';
|
|
46
|
-
}
|
|
47
|
-
async render(renderOpts) {
|
|
48
|
-
const result = [];
|
|
49
|
-
const { articleId, articleDetail, moduleDependencies, dump } = renderOpts;
|
|
50
|
-
const { html, displayTitle } = await this.retrieveHtml(renderOpts);
|
|
51
|
-
if (html) {
|
|
52
|
-
const { finalHTML, mediaDependencies, videoDependencies, imageDependencies, subtitles } = await super.processHtml({
|
|
53
|
-
html,
|
|
54
|
-
dump,
|
|
55
|
-
articleId,
|
|
56
|
-
articleDetail,
|
|
57
|
-
moduleDependencies,
|
|
58
|
-
callback: super.templateDesktopArticle.bind(this),
|
|
59
|
-
});
|
|
60
|
-
result.push({
|
|
61
|
-
articleId,
|
|
62
|
-
displayTitle,
|
|
63
|
-
html: finalHTML,
|
|
64
|
-
mediaDependencies,
|
|
65
|
-
videoDependencies,
|
|
66
|
-
imageDependencies,
|
|
67
|
-
moduleDependencies,
|
|
68
|
-
staticFiles: this.staticFilesListDesktop,
|
|
69
|
-
subtitles,
|
|
70
|
-
});
|
|
71
|
-
return result;
|
|
72
|
-
}
|
|
73
|
-
return '';
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=visual-editor.renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"visual-editor.renderer.js","sourceRoot":"","sources":["../../src/renderers/visual-editor.renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wikimedia-desktop.renderer.js","sourceRoot":"","sources":["../../src/renderers/wikimedia-desktop.renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,OAAO,wBAAyB,SAAQ,eAAe;IAC3D;QACE,KAAK,EAAE,CAAA;IACT,CAAC;CACF"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { MobileRenderer } from './abstractMobile.render.js';
|
|
2
|
-
import { DownloadOpts, DownloadRes, RenderOpts } from './abstract.renderer.js';
|
|
3
|
-
export declare class WikimediaMobileRenderer extends MobileRenderer {
|
|
4
|
-
constructor();
|
|
5
|
-
private getStrippedTitle;
|
|
6
|
-
download(downloadOpts: DownloadOpts): Promise<DownloadRes>;
|
|
7
|
-
render(renderOpts: RenderOpts): Promise<any>;
|
|
8
|
-
private pipeMobileTransformations;
|
|
9
|
-
private removeEditContainer;
|
|
10
|
-
private calculateImageDimensions;
|
|
11
|
-
private convertLazyLoadToImagesImpl;
|
|
12
|
-
private removeHiddenClass;
|
|
13
|
-
private unhideSectionsImpl;
|
|
14
|
-
private restoreLinkDefaults;
|
|
15
|
-
readonly INTERNAL: {
|
|
16
|
-
convertLazyLoadToImages: any;
|
|
17
|
-
unhideSections: any;
|
|
18
|
-
};
|
|
19
|
-
}
|