@ukwhatn/wikidot 1.0.9 → 4.0.2

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 (94) hide show
  1. package/README.md +227 -79
  2. package/dist/errors.cjs +114 -0
  3. package/dist/errors.d.cts +94 -0
  4. package/dist/errors.d.ts +94 -0
  5. package/dist/errors.js +81 -0
  6. package/dist/index.cjs +4624 -0
  7. package/dist/index.d.cts +2106 -0
  8. package/dist/index.d.ts +2106 -1
  9. package/dist/index.js +2651 -6
  10. package/dist/shared/index-7dqqxq7x.js +105 -0
  11. package/dist/shared/index-f2eh3ykk.js +172 -0
  12. package/dist/shared/index-kka6e8cb.js +627 -0
  13. package/dist/shared/index-ytknx2hn.js +980 -0
  14. package/package.json +64 -26
  15. package/Makefile +0 -13
  16. package/dist/common/exceptions.d.ts +0 -95
  17. package/dist/common/exceptions.js +0 -146
  18. package/dist/common/exceptions.js.map +0 -1
  19. package/dist/common/index.d.ts +0 -1
  20. package/dist/common/index.js +0 -6
  21. package/dist/common/index.js.map +0 -1
  22. package/dist/common/logger.d.ts +0 -2
  23. package/dist/common/logger.js +0 -19
  24. package/dist/common/logger.js.map +0 -1
  25. package/dist/connector/ajax.d.ts +0 -142
  26. package/dist/connector/ajax.js +0 -259
  27. package/dist/connector/ajax.js.map +0 -1
  28. package/dist/connector/api.d.ts +0 -11
  29. package/dist/connector/api.js +0 -17
  30. package/dist/connector/api.js.map +0 -1
  31. package/dist/connector/index.d.ts +0 -0
  32. package/dist/connector/index.js +0 -2
  33. package/dist/connector/index.js.map +0 -1
  34. package/dist/index.js.map +0 -1
  35. package/dist/module/auth.d.ts +0 -8
  36. package/dist/module/auth.js +0 -77
  37. package/dist/module/auth.js.map +0 -1
  38. package/dist/module/client.d.ts +0 -39
  39. package/dist/module/client.js +0 -97
  40. package/dist/module/client.js.map +0 -1
  41. package/dist/module/index.d.ts +0 -0
  42. package/dist/module/index.js +0 -2
  43. package/dist/module/index.js.map +0 -1
  44. package/dist/module/page.d.ts +0 -102
  45. package/dist/module/page.js +0 -395
  46. package/dist/module/page.js.map +0 -1
  47. package/dist/module/pageRevision.d.ts +0 -29
  48. package/dist/module/pageRevision.js +0 -114
  49. package/dist/module/pageRevision.js.map +0 -1
  50. package/dist/module/pageSource.d.ts +0 -7
  51. package/dist/module/pageSource.js +0 -11
  52. package/dist/module/pageSource.js.map +0 -1
  53. package/dist/module/pageVote.d.ts +0 -14
  54. package/dist/module/pageVote.js +0 -20
  55. package/dist/module/pageVote.js.map +0 -1
  56. package/dist/module/privateMessage.d.ts +0 -29
  57. package/dist/module/privateMessage.js +0 -128
  58. package/dist/module/privateMessage.js.map +0 -1
  59. package/dist/module/site.d.ts +0 -32
  60. package/dist/module/site.js +0 -115
  61. package/dist/module/site.js.map +0 -1
  62. package/dist/module/siteApplication.d.ts +0 -14
  63. package/dist/module/siteApplication.js +0 -96
  64. package/dist/module/siteApplication.js.map +0 -1
  65. package/dist/module/user.d.ts +0 -56
  66. package/dist/module/user.js +0 -115
  67. package/dist/module/user.js.map +0 -1
  68. package/dist/util/index.d.ts +0 -3
  69. package/dist/util/index.js +0 -10
  70. package/dist/util/index.js.map +0 -1
  71. package/dist/util/parser/index.d.ts +0 -1
  72. package/dist/util/parser/index.js +0 -18
  73. package/dist/util/parser/index.js.map +0 -1
  74. package/dist/util/parser/odate.d.ts +0 -12
  75. package/dist/util/parser/odate.js +0 -25
  76. package/dist/util/parser/odate.js.map +0 -1
  77. package/dist/util/parser/user.d.ts +0 -16
  78. package/dist/util/parser/user.js +0 -36
  79. package/dist/util/parser/user.js.map +0 -1
  80. package/dist/util/quickModule.d.ts +0 -96
  81. package/dist/util/quickModule.js +0 -137
  82. package/dist/util/quickModule.js.map +0 -1
  83. package/dist/util/requestUtil.d.ts +0 -26
  84. package/dist/util/requestUtil.js +0 -69
  85. package/dist/util/requestUtil.js.map +0 -1
  86. package/dist/util/stringUtil.d.ts +0 -21
  87. package/dist/util/stringUtil.js +0 -64
  88. package/dist/util/stringUtil.js.map +0 -1
  89. package/dist/util/table/charTable.d.ts +0 -3
  90. package/dist/util/table/charTable.js +0 -472
  91. package/dist/util/table/charTable.js.map +0 -1
  92. package/dist/util/table/index.d.ts +0 -1
  93. package/dist/util/table/index.js +0 -18
  94. package/dist/util/table/index.js.map +0 -1
@@ -1,395 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Page = exports.PageCollection = exports.SearchPagesQuery = void 0;
27
- const pageSource_1 = require("./pageSource");
28
- const pageRevision_1 = require("./pageRevision");
29
- const pageVote_1 = require("./pageVote");
30
- const exceptions_1 = require("../common/exceptions");
31
- const user_1 = require("../util/parser/user");
32
- const parser_1 = require("../util/parser");
33
- const util_1 = require("../util");
34
- const cheerio = __importStar(require("cheerio"));
35
- const DEFAULT_MODULE_BODY = [
36
- "fullname",
37
- "category",
38
- "name",
39
- "title",
40
- "created_at",
41
- "created_by_linked",
42
- "updated_at",
43
- "updated_by_linked",
44
- "commented_at",
45
- "commented_by_linked",
46
- "parent_fullname",
47
- "comments",
48
- "size",
49
- "children",
50
- "rating_votes",
51
- "rating",
52
- "rating_percent",
53
- "revisions",
54
- "tags",
55
- "_tags"
56
- ];
57
- // noinspection JSUnusedGlobalSymbols
58
- class SearchPagesQuery {
59
- constructor(init) {
60
- this.pagetype = "*";
61
- this.category = "*";
62
- this.tags = undefined;
63
- this.parent = undefined;
64
- this.linkTo = undefined;
65
- this.createdAt = undefined;
66
- this.updatedAt = undefined;
67
- this.createdBy = undefined;
68
- this.rating = undefined;
69
- this.votes = undefined;
70
- this.name = undefined;
71
- this.fullname = undefined;
72
- this.range = undefined;
73
- this.order = "created_at desc";
74
- this.offset = 0;
75
- this.limit = undefined;
76
- this.perPage = 250;
77
- this.separate = "no";
78
- this.wrapper = "no";
79
- Object.assign(this, init);
80
- }
81
- asDict() {
82
- const res = {};
83
- for (const [key, value] of Object.entries(this)) {
84
- if (value !== undefined) {
85
- res[key] = value;
86
- }
87
- }
88
- if (res.tags && Array.isArray(res.tags)) {
89
- res.tags = res.tags.join(" ");
90
- }
91
- return res;
92
- }
93
- }
94
- exports.SearchPagesQuery = SearchPagesQuery;
95
- class PageCollection extends Array {
96
- constructor(site, pages = []) {
97
- super(...pages);
98
- this.site = site;
99
- }
100
- static _parse(site, htmlBody) {
101
- const pages = [];
102
- for (const _pageElement of htmlBody("span.page").toArray()) {
103
- const pageElement = cheerio.load(_pageElement);
104
- const pageParams = {};
105
- const is5starRating = pageElement("span.rating span.page-rate-list-pages-start").length > 0;
106
- for (const setElement of pageElement("span.set").toArray()) {
107
- // setElementからspan.nameを取得し、innerTextをkeyとして、span.valueのinnerTextをvalueとして取得
108
- const setElementCheerio = cheerio.load(setElement.children);
109
- let key = setElementCheerio("span.name").text().trim();
110
- const valueElement = setElementCheerio("span.value");
111
- let value = undefined;
112
- if (valueElement.length === 0) {
113
- value = undefined;
114
- }
115
- else if (["created_at", "updated_at", "commented_at"].includes(key)) {
116
- const odateElement = valueElement.find("span.odate");
117
- value = odateElement.length > 0 ? (0, parser_1.odateParse)(odateElement) : undefined;
118
- }
119
- else if (["created_by_linked", "updated_by_linked", "commented_by_linked"].includes(key)) {
120
- const printuserElement = valueElement.find("span.printuser");
121
- value = printuserElement.length > 0 ? (0, user_1.userParse)(site.client, printuserElement) : undefined;
122
- }
123
- else if (["tags", "_tags"].includes(key)) {
124
- value = valueElement.text().split(/\s+/);
125
- }
126
- else if (["rating_votes", "comments", "size", "revisions"].includes(key)) {
127
- value = parseInt(valueElement.text().trim(), 10);
128
- }
129
- else if (key === "rating") {
130
- value = is5starRating ? parseFloat(valueElement.text().trim()) : parseInt(valueElement.text().trim(), 10);
131
- }
132
- else if (key === "rating_percent") {
133
- value = is5starRating ? parseFloat(valueElement.text().trim()) / 100 : undefined;
134
- }
135
- else {
136
- value = valueElement.text().trim();
137
- }
138
- if (key.endsWith("_linked")) {
139
- key = key.slice(0, -7);
140
- }
141
- else if (["comments", "children", "revisions"].includes(key)) {
142
- key = `${key}_count`;
143
- }
144
- else if (key === "rating_votes") {
145
- key = "votes_count";
146
- }
147
- pageParams[key] = value;
148
- }
149
- for (const key of ["tags", "_tags"]) {
150
- if (!pageParams[key]) {
151
- pageParams[key] = [];
152
- }
153
- }
154
- pageParams.tags = [...pageParams.tags, ...pageParams._tags];
155
- delete pageParams._tags;
156
- // @ts-ignore
157
- pages.push(new Page(site, pageParams));
158
- }
159
- return new PageCollection(site, pages);
160
- }
161
- static async searchPages(site, query = new SearchPagesQuery()) {
162
- const queryDict = query.asDict();
163
- queryDict.moduleName = "list/ListPagesModule";
164
- queryDict.module_body = '[[span class="page"]]' + DEFAULT_MODULE_BODY.map(key => `[[span class="set ${key}"]]` +
165
- `[[span class="name"]] ${key} [[/span]]` +
166
- `[[span class="value"]] %%${key}%% [[/span]]` +
167
- `[[/span]]`).join("") + "[[/span]]";
168
- let response;
169
- try {
170
- response = (await site.amcRequest([queryDict]))[0];
171
- }
172
- catch (error) {
173
- if (error instanceof exceptions_1.WikidotStatusCodeException) {
174
- if (error.statusCode === "not_ok") {
175
- throw new exceptions_1.ForbiddenException("Failed to get pages, target site may be private");
176
- }
177
- }
178
- throw error;
179
- }
180
- const body = response.data.body;
181
- const firstPageHtmlBody = cheerio.load(body);
182
- let total = 1;
183
- const htmlBodies = [firstPageHtmlBody];
184
- if (firstPageHtmlBody("div.pager").length > 0) {
185
- total = parseInt(firstPageHtmlBody("div.pager span.target").eq(-2).find("a").text(), 10);
186
- }
187
- if (total > 1) {
188
- const requestBodies = [];
189
- for (let i = 1; i < total; i++) {
190
- const _queryDict = { ...queryDict };
191
- _queryDict.offset = i * query.perPage;
192
- requestBodies.push(_queryDict);
193
- }
194
- const responses = await site.amcRequest(requestBodies);
195
- htmlBodies.push(...responses.map(response => cheerio.load(response.data.body)));
196
- }
197
- const pages = [];
198
- for (const htmlBody of htmlBodies) {
199
- pages.push(...PageCollection._parse(site, htmlBody));
200
- }
201
- return new PageCollection(site, pages);
202
- }
203
- static async _acquirePageIds(site, pages) {
204
- const targetPages = pages.filter(page => !page.isIdAcquired());
205
- if (targetPages.length === 0) {
206
- return pages;
207
- }
208
- const responses = await util_1.RequestUtil.request(site.client, "GET", targetPages.map(page => `${page.getUrl()}/norender/true/noredirect/true`));
209
- for (const [index, response] of responses.entries()) {
210
- // @ts-ignore
211
- const idMatch = response?.data.match(/WIKIREQUEST\.info\.pageId = (\d+);/);
212
- if (!idMatch) {
213
- throw new exceptions_1.UnexpectedException(`Cannot find page id: ${targetPages[index].fullname}`);
214
- }
215
- targetPages[index].id = parseInt(idMatch[1], 10);
216
- }
217
- return pages;
218
- }
219
- // noinspection JSUnusedGlobalSymbols
220
- async getPageIds() {
221
- return await PageCollection._acquirePageIds(this.site, this);
222
- }
223
- static async _acquirePageSources(site, pages) {
224
- const requestBodies = await Promise.all(pages.map(async (page) => ({
225
- moduleName: "viewsource/ViewSourceModule",
226
- page_id: await page.id
227
- })));
228
- const responses = await site.amcRequest(requestBodies);
229
- for (const [index, response] of responses.entries()) {
230
- const page = pages[index];
231
- const body = response.data.body;
232
- const source = cheerio.load(body)("div.page-source").text().trim();
233
- page.source = new pageSource_1.PageSource(page, source);
234
- }
235
- return pages;
236
- }
237
- async getPageSources() {
238
- return await PageCollection._acquirePageSources(this.site, this);
239
- }
240
- static async _acquirePageRevisions(site, pages) {
241
- if (pages.length === 0) {
242
- return pages;
243
- }
244
- const responses = await site.amcRequest(await Promise.all(pages.map(async (page) => ({
245
- moduleName: "history/PageRevisionListModule",
246
- page_id: await page.id,
247
- options: { all: true },
248
- perpage: 100000000
249
- }))));
250
- for (const [index, response] of responses.entries()) {
251
- const page = pages[index];
252
- const body = response.data.body;
253
- const revs = [];
254
- const bodyHtml = cheerio.load(body);
255
- for (const revElement of bodyHtml('tr[id^="revision-row-"]').toArray()) {
256
- const revId = parseInt(cheerio.load(revElement)("tr").attr("id").slice(13), 10);
257
- const tds = cheerio.load(revElement)("td");
258
- const revNo = parseInt(tds.eq(0).text().trim().slice(0, -1), 10);
259
- const created_by = (0, user_1.userParse)(site.client, tds.eq(4).find("span.printuser"));
260
- const created_at = (0, parser_1.odateParse)(tds.eq(5).find("span.odate"));
261
- const comment = tds.eq(6).text().trim();
262
- revs.push(new pageRevision_1.PageRevision(page, revId, revNo, created_by, created_at, comment));
263
- }
264
- page.revisions = new pageRevision_1.PageRevisionCollection(page, revs);
265
- }
266
- return pages;
267
- }
268
- async getPageRevisions() {
269
- return await PageCollection._acquirePageRevisions(this.site, this);
270
- }
271
- static async _acquirePageVotes(site, pages) {
272
- if (pages.length === 0) {
273
- return pages;
274
- }
275
- const responses = await site.amcRequest(await Promise.all(pages.map(async (page) => ({
276
- moduleName: "pagerate/WhoRatedPageModule",
277
- pageId: await page.id
278
- }))));
279
- for (const [index, response] of responses.entries()) {
280
- const page = pages[index];
281
- const body = response.data.body;
282
- const bodyHtml = cheerio.load(body);
283
- const user_elems = bodyHtml("span.printuser");
284
- const value_elems = bodyHtml("span[style^='color:']");
285
- if (user_elems.length !== value_elems.length) {
286
- throw new exceptions_1.UnexpectedException("User and value count mismatch");
287
- }
288
- const votes = user_elems.toArray().map((elem, i) => {
289
- const user = (0, user_1.userParse)(site.client, bodyHtml(elem));
290
- const value_text = bodyHtml(value_elems[i]).text().trim();
291
- let value;
292
- if (value_text === "+") {
293
- value = 1;
294
- }
295
- else if (value_text === "-") {
296
- value = -1;
297
- }
298
- else {
299
- value = parseInt(value_text, 10);
300
- }
301
- return new pageVote_1.PageVote(page, user, value);
302
- });
303
- page.votes = new pageVote_1.PageVoteCollection(page, votes);
304
- }
305
- return pages;
306
- }
307
- async getPageVotes() {
308
- return await PageCollection._acquirePageVotes(this.site, this);
309
- }
310
- }
311
- exports.PageCollection = PageCollection;
312
- class Page {
313
- constructor(site, { fullname, name, category, title, children_count, comments_count, size, rating, votes_count, rating_percent, revisions_count, parent_fullname, tags, created_by, created_at, updated_by, updated_at, commented_by, commented_at }) {
314
- this.site = site;
315
- this.fullname = fullname;
316
- this.name = name;
317
- this.category = category;
318
- this.title = title;
319
- this.childrenCount = children_count;
320
- this.commentsCount = comments_count;
321
- this.size = size;
322
- this.rating = rating ?? undefined;
323
- this.votes_count = votes_count;
324
- this.ratingPercent = rating_percent ?? undefined;
325
- this.revisions_count = revisions_count;
326
- this.parentFullname = parent_fullname ?? undefined;
327
- this.tags = tags;
328
- this.createdBy = created_by;
329
- this.createdAt = created_at;
330
- this.updatedBy = updated_by ?? undefined;
331
- this.updatedAt = updated_at ?? undefined;
332
- this.commentedBy = commented_by ?? undefined;
333
- this.commentedAt = commented_at ?? undefined;
334
- }
335
- getUrl() {
336
- return `${this.site.getUrl()}/${this.fullname}`;
337
- }
338
- get id() {
339
- if (this._id === undefined) {
340
- return PageCollection._acquirePageIds(this.site, [this]).then(() => this._id);
341
- }
342
- else {
343
- return Promise.resolve(this._id);
344
- }
345
- }
346
- set id(value) {
347
- this._id = value;
348
- }
349
- isIdAcquired() {
350
- return this._id !== undefined;
351
- }
352
- get source() {
353
- if (this._source === undefined) {
354
- return PageCollection._acquirePageSources(this.site, [this]).then(() => this._source);
355
- }
356
- return Promise.resolve(this._source);
357
- }
358
- set source(value) {
359
- this._source = value;
360
- }
361
- get revisions() {
362
- if (this._revisions === undefined) {
363
- return PageCollection._acquirePageRevisions(this.site, [this]).then(() => this._revisions);
364
- }
365
- return Promise.resolve(this._revisions);
366
- }
367
- set revisions(value) {
368
- this._revisions = value;
369
- }
370
- async latestRevision() {
371
- // revision_countとrev_noが一致するものを取得
372
- const revisions = await this.revisions;
373
- return revisions.find(revision => revision.revNo === this.revisions_count);
374
- }
375
- get votes() {
376
- if (this._votes === undefined) {
377
- return PageCollection._acquirePageVotes(this.site, [this]).then(() => this._votes);
378
- }
379
- return Promise.resolve(this._votes);
380
- }
381
- set votes(value) {
382
- this._votes = value;
383
- }
384
- async destroy() {
385
- this.site.client.loginCheck();
386
- await this.site.amcRequest([{
387
- action: "WikiPageAction",
388
- event: "deletePage",
389
- page_id: await this.id,
390
- moduleName: "Empty"
391
- }]);
392
- }
393
- }
394
- exports.Page = Page;
395
- //# sourceMappingURL=page.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/module/page.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { Page } from "./page";
2
- import { AbstractUser } from "./user";
3
- import { PageSource } from "./pageSource";
4
- declare class PageRevisionCollection extends Array<PageRevision> {
5
- page: Page;
6
- constructor(page: Page, revisions: PageRevision[]);
7
- static _acquireSources(page: Page, revisions: PageRevision[]): Promise<PageRevision[]>;
8
- getSources(): Promise<PageRevision[]>;
9
- static _acquireHTMLs(page: Page, revisions: PageRevision[]): Promise<PageRevision[]>;
10
- getHTMLs(): Promise<PageRevision[]>;
11
- }
12
- declare class PageRevision {
13
- page: Page;
14
- id: number;
15
- revNo: number;
16
- createdBy: AbstractUser;
17
- createdAt: Date;
18
- comment: string;
19
- _source: PageSource | null;
20
- _html: string | null;
21
- constructor(page: Page, id: number, revNo: number, createdBy: AbstractUser, createdAt: Date, comment: string, _source?: PageSource | null, _html?: string | null);
22
- isSourceAcquired(): boolean;
23
- isHTMLAcquired(): boolean;
24
- get source(): Promise<PageSource>;
25
- set source(value: PageSource);
26
- get html(): Promise<string>;
27
- set html(value: string);
28
- }
29
- export { PageRevisionCollection, PageRevision };
@@ -1,114 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.PageRevision = exports.PageRevisionCollection = void 0;
27
- const pageSource_1 = require("./pageSource");
28
- const util_1 = require("../util");
29
- const cheerio = __importStar(require("cheerio"));
30
- class PageRevisionCollection extends Array {
31
- constructor(page, revisions) {
32
- super(...revisions);
33
- this.page = page;
34
- }
35
- static async _acquireSources(page, revisions) {
36
- const targetRevisions = [...revisions].filter(revision => !revision.isSourceAcquired());
37
- if (targetRevisions.length === 0) {
38
- return revisions;
39
- }
40
- const responses = await page.site.amcRequest(targetRevisions.map(revision => ({
41
- moduleName: 'history/PageSourceModule',
42
- revision_id: revision.id
43
- })));
44
- for (let i = 0; i < targetRevisions.length; i++) {
45
- const revision = targetRevisions[i];
46
- const response = responses[i];
47
- revision.source = new pageSource_1.PageSource(page, cheerio.load(response.data.body)('div.page-source').text().trim());
48
- }
49
- return revisions;
50
- }
51
- async getSources() {
52
- return await PageRevisionCollection._acquireSources(this.page, this);
53
- }
54
- static async _acquireHTMLs(page, revisions) {
55
- const targetRevisions = [...revisions].filter(revision => !revision.isHTMLAcquired());
56
- if (targetRevisions.length === 0) {
57
- return revisions;
58
- }
59
- const responses = await page.site.amcRequest(targetRevisions.map(revision => ({
60
- moduleName: 'history/PageVersionModule',
61
- revision_id: revision.id
62
- })));
63
- for (let i = 0; i < targetRevisions.length; i++) {
64
- const revision = targetRevisions[i];
65
- const response = responses[i];
66
- const source = response.data.body;
67
- const _source = util_1.StringUtil.split(source, 'onclick="document.getElementById(\'page-version-info\').style.display=\'none\'">', 1)[1];
68
- revision._html = util_1.StringUtil.split(_source, '</a>\n\t</div>\n\n\n\n', 1)[1].trim();
69
- }
70
- return revisions;
71
- }
72
- async getHTMLs() {
73
- return await PageRevisionCollection._acquireHTMLs(this.page, this);
74
- }
75
- }
76
- exports.PageRevisionCollection = PageRevisionCollection;
77
- class PageRevision {
78
- constructor(page, id, revNo, createdBy, createdAt, comment, _source = null, _html = null) {
79
- this.page = page;
80
- this.id = id;
81
- this.revNo = revNo;
82
- this.createdBy = createdBy;
83
- this.createdAt = createdAt;
84
- this.comment = comment;
85
- this._source = _source;
86
- this._html = _html;
87
- }
88
- isSourceAcquired() {
89
- return this._source !== null;
90
- }
91
- isHTMLAcquired() {
92
- return this._html !== null;
93
- }
94
- get source() {
95
- if (!this.isSourceAcquired()) {
96
- return PageRevisionCollection._acquireSources(this.page, [this]).then(() => this._source);
97
- }
98
- return Promise.resolve(this._source);
99
- }
100
- set source(value) {
101
- this._source = value;
102
- }
103
- get html() {
104
- if (!this.isHTMLAcquired()) {
105
- return PageRevisionCollection._acquireHTMLs(this.page, [this]).then(() => this._html);
106
- }
107
- return Promise.resolve(this._html);
108
- }
109
- set html(value) {
110
- this._html = value;
111
- }
112
- }
113
- exports.PageRevision = PageRevision;
114
- //# sourceMappingURL=pageRevision.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pageRevision.js","sourceRoot":"","sources":["../../src/module/pageRevision.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { Page } from "./page";
2
- declare class PageSource {
3
- private page;
4
- wikiText: string;
5
- constructor(page: Page, wikiText: string);
6
- }
7
- export { PageSource };
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PageSource = void 0;
4
- class PageSource {
5
- constructor(page, wikiText) {
6
- this.page = page;
7
- this.wikiText = wikiText;
8
- }
9
- }
10
- exports.PageSource = PageSource;
11
- //# sourceMappingURL=pageSource.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pageSource.js","sourceRoot":"","sources":["../../src/module/pageSource.ts"],"names":[],"mappings":";;;AAEA,MAAM,UAAU;IAIZ,YAAY,IAAU,EAAE,QAAgB;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAEO,gCAAU"}
@@ -1,14 +0,0 @@
1
- import { Page } from "./page";
2
- import { AbstractUser } from "./user";
3
- declare class PageVoteCollection extends Array<PageVote> {
4
- page: Page;
5
- votes: PageVote[];
6
- constructor(page: Page, votes: PageVote[]);
7
- }
8
- declare class PageVote {
9
- page: Page;
10
- user: AbstractUser;
11
- value: number;
12
- constructor(page: Page, user: AbstractUser, value: number);
13
- }
14
- export { PageVote, PageVoteCollection };
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PageVoteCollection = exports.PageVote = void 0;
4
- class PageVoteCollection extends Array {
5
- constructor(page, votes) {
6
- super(...votes);
7
- this.page = page;
8
- this.votes = votes;
9
- }
10
- }
11
- exports.PageVoteCollection = PageVoteCollection;
12
- class PageVote {
13
- constructor(page, user, value) {
14
- this.page = page;
15
- this.user = user;
16
- this.value = value;
17
- }
18
- }
19
- exports.PageVote = PageVote;
20
- //# sourceMappingURL=pageVote.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pageVote.js","sourceRoot":"","sources":["../../src/module/pageVote.ts"],"names":[],"mappings":";;;AAGA,MAAM,kBAAmB,SAAQ,KAAe;IAC5C,YACW,IAAU,EACV,KAAiB;QAExB,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;QAHT,SAAI,GAAJ,IAAI,CAAM;QACV,UAAK,GAAL,KAAK,CAAY;IAG5B,CAAC;CACJ;AAYiB,gDAAkB;AATpC,MAAM,QAAQ;IACV,YACW,IAAU,EACV,IAAkB,EAClB,KAAa;QAFb,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAc;QAClB,UAAK,GAAL,KAAK,CAAQ;IAExB,CAAC;CACJ;AAEO,4BAAQ"}