@ukwhatn/wikidot 1.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/dist/common/decorators.d.ts +0 -0
- package/dist/common/decorators.js +2 -0
- package/dist/common/decorators.js.map +1 -0
- package/dist/common/exceptions.d.ts +95 -0
- package/dist/common/exceptions.js +146 -0
- package/dist/common/exceptions.js.map +1 -0
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.js +6 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/logger.d.ts +2 -0
- package/dist/common/logger.js +19 -0
- package/dist/common/logger.js.map +1 -0
- package/dist/connector/ajax.d.ts +142 -0
- package/dist/connector/ajax.js +259 -0
- package/dist/connector/ajax.js.map +1 -0
- package/dist/connector/api.d.ts +11 -0
- package/dist/connector/api.js +17 -0
- package/dist/connector/api.js.map +1 -0
- package/dist/connector/index.d.ts +0 -0
- package/dist/connector/index.js +2 -0
- package/dist/connector/index.js.map +1 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/module/auth.d.ts +8 -0
- package/dist/module/auth.js +77 -0
- package/dist/module/auth.js.map +1 -0
- package/dist/module/client.d.ts +39 -0
- package/dist/module/client.js +97 -0
- package/dist/module/client.js.map +1 -0
- package/dist/module/index.d.ts +0 -0
- package/dist/module/index.js +2 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/page.d.ts +81 -0
- package/dist/module/page.js +267 -0
- package/dist/module/page.js.map +1 -0
- package/dist/module/privateMessage.d.ts +29 -0
- package/dist/module/privateMessage.js +128 -0
- package/dist/module/privateMessage.js.map +1 -0
- package/dist/module/site.d.ts +32 -0
- package/dist/module/site.js +115 -0
- package/dist/module/site.js.map +1 -0
- package/dist/module/siteApplication.d.ts +14 -0
- package/dist/module/siteApplication.js +96 -0
- package/dist/module/siteApplication.js.map +1 -0
- package/dist/module/user.d.ts +56 -0
- package/dist/module/user.js +115 -0
- package/dist/module/user.js.map +1 -0
- package/dist/util/index.d.ts +3 -0
- package/dist/util/index.js +10 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/parser/index.d.ts +1 -0
- package/dist/util/parser/index.js +18 -0
- package/dist/util/parser/index.js.map +1 -0
- package/dist/util/parser/odate.d.ts +12 -0
- package/dist/util/parser/odate.js +25 -0
- package/dist/util/parser/odate.js.map +1 -0
- package/dist/util/parser/user.d.ts +16 -0
- package/dist/util/parser/user.js +36 -0
- package/dist/util/parser/user.js.map +1 -0
- package/dist/util/quickModule.d.ts +96 -0
- package/dist/util/quickModule.js +137 -0
- package/dist/util/quickModule.js.map +1 -0
- package/dist/util/requestUtil.d.ts +26 -0
- package/dist/util/requestUtil.js +69 -0
- package/dist/util/requestUtil.js.map +1 -0
- package/dist/util/stringUtil.d.ts +20 -0
- package/dist/util/stringUtil.js +47 -0
- package/dist/util/stringUtil.js.map +1 -0
- package/dist/util/table/charTable.d.ts +3 -0
- package/dist/util/table/charTable.js +472 -0
- package/dist/util/table/charTable.js.map +1 -0
- package/dist/util/table/index.d.ts +1 -0
- package/dist/util/table/index.js +18 -0
- package/dist/util/table/index.js.map +1 -0
- package/package.json +27 -0
|
@@ -0,0 +1,96 @@
|
|
|
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.SiteApplication = void 0;
|
|
27
|
+
const exceptions_1 = require("../common/exceptions");
|
|
28
|
+
const user_1 = require("../util/parser/user");
|
|
29
|
+
const cheerio = __importStar(require("cheerio"));
|
|
30
|
+
class SiteApplication {
|
|
31
|
+
constructor(site, user, text) {
|
|
32
|
+
this.site = site;
|
|
33
|
+
this.user = user;
|
|
34
|
+
this.text = text;
|
|
35
|
+
}
|
|
36
|
+
toString() {
|
|
37
|
+
return `SiteApplication(user=${this.user}, site=${this.site}, text=${this.text})`;
|
|
38
|
+
}
|
|
39
|
+
static async acquireAll(site) {
|
|
40
|
+
site.client.loginCheck();
|
|
41
|
+
const response = (await site.amcRequest([{
|
|
42
|
+
moduleName: 'managesite/ManageSiteMembersApplicationsModule'
|
|
43
|
+
}]))[0];
|
|
44
|
+
const body = response.data.body;
|
|
45
|
+
if (body.includes('WIKIDOT.page.listeners.loginClick(event)')) {
|
|
46
|
+
throw new exceptions_1.ForbiddenException('You are not allowed to access this page');
|
|
47
|
+
}
|
|
48
|
+
const html = cheerio.load(body);
|
|
49
|
+
const applications = [];
|
|
50
|
+
const userElements = html('h3 span.printuser');
|
|
51
|
+
const textWrapperElements = html('table');
|
|
52
|
+
if (userElements.length !== textWrapperElements.length) {
|
|
53
|
+
throw new exceptions_1.UnexpectedException('Length of userElements and textWrapperElements are different');
|
|
54
|
+
}
|
|
55
|
+
for (let i = 0; i < userElements.length; i++) {
|
|
56
|
+
const userElement = userElements.eq(i);
|
|
57
|
+
const textWrapperElement = textWrapperElements.eq(i);
|
|
58
|
+
const user = (0, user_1.userParse)(site.client, userElement);
|
|
59
|
+
const text = textWrapperElement.find('td').eq(1).text().trim();
|
|
60
|
+
applications.push(new SiteApplication(site, user, text));
|
|
61
|
+
}
|
|
62
|
+
return applications;
|
|
63
|
+
}
|
|
64
|
+
async _process(action) {
|
|
65
|
+
this.site.client.loginCheck();
|
|
66
|
+
if (action !== 'accept' && action !== 'decline') {
|
|
67
|
+
throw new Error(`Invalid action: ${action}`);
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
await this.site.amcRequest([{
|
|
71
|
+
action: 'ManageSiteMembershipAction',
|
|
72
|
+
event: 'acceptApplication',
|
|
73
|
+
user_id: this.user.id,
|
|
74
|
+
text: `your application has been ${action}ed`,
|
|
75
|
+
type: action,
|
|
76
|
+
moduleName: 'Empty'
|
|
77
|
+
}]);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (error instanceof exceptions_1.WikidotStatusCodeException && error.statusCode === 'no_application') {
|
|
81
|
+
throw new exceptions_1.NotFoundException(`Application not found: ${this.user}`);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
async accept() {
|
|
89
|
+
await this._process('accept');
|
|
90
|
+
}
|
|
91
|
+
async decline() {
|
|
92
|
+
await this._process('decline');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.SiteApplication = SiteApplication;
|
|
96
|
+
//# sourceMappingURL=siteApplication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siteApplication.js","sourceRoot":"","sources":["../../src/module/siteApplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Client } from './client';
|
|
2
|
+
/**
|
|
3
|
+
* @class UserCollection
|
|
4
|
+
* @extends Array
|
|
5
|
+
* @description ユーザーオブジェクトのリスト
|
|
6
|
+
*/
|
|
7
|
+
declare class UserCollection extends Array<User | null> {
|
|
8
|
+
/**
|
|
9
|
+
* @method fromNames
|
|
10
|
+
* @description ユーザー名のリストからユーザーオブジェクトのリストを取得
|
|
11
|
+
* @param client - クライアント
|
|
12
|
+
* @param names - ユーザー名のリスト
|
|
13
|
+
* @param raiseWhenNotFound - ユーザーが見つからなかった場合に例外を発生させるかどうか(デフォルトは false)
|
|
14
|
+
*/
|
|
15
|
+
static fromNames(client: Client, names: string[], raiseWhenNotFound?: boolean): Promise<UserCollection>;
|
|
16
|
+
}
|
|
17
|
+
declare abstract class AbstractUser {
|
|
18
|
+
client: Client;
|
|
19
|
+
id: number | null;
|
|
20
|
+
name: string | null;
|
|
21
|
+
unixName: string | null;
|
|
22
|
+
avatarUrl: string | null;
|
|
23
|
+
ip: string | null;
|
|
24
|
+
constructor(client: Client, id?: number | null, name?: string | null, unixName?: string | null, avatarUrl?: string | null, ip?: string | null);
|
|
25
|
+
toString(): string;
|
|
26
|
+
}
|
|
27
|
+
declare class User extends AbstractUser {
|
|
28
|
+
ip: null;
|
|
29
|
+
static fromName(client: Client, name: string, raiseWhenNotFound?: boolean): Promise<User | null>;
|
|
30
|
+
}
|
|
31
|
+
declare class DeletedUser extends AbstractUser {
|
|
32
|
+
name: string;
|
|
33
|
+
unixName: string;
|
|
34
|
+
avatarUrl: null;
|
|
35
|
+
ip: null;
|
|
36
|
+
}
|
|
37
|
+
declare class AnonymousUser extends AbstractUser {
|
|
38
|
+
id: null;
|
|
39
|
+
name: string;
|
|
40
|
+
unixName: string;
|
|
41
|
+
avatarUrl: null;
|
|
42
|
+
}
|
|
43
|
+
declare class GuestUser extends AbstractUser {
|
|
44
|
+
id: null;
|
|
45
|
+
unixName: null;
|
|
46
|
+
avatarUrl: null;
|
|
47
|
+
ip: null;
|
|
48
|
+
}
|
|
49
|
+
declare class WikidotUser extends AbstractUser {
|
|
50
|
+
id: null;
|
|
51
|
+
name: string;
|
|
52
|
+
unixName: string;
|
|
53
|
+
avatarUrl: null;
|
|
54
|
+
ip: null;
|
|
55
|
+
}
|
|
56
|
+
export { UserCollection, AbstractUser, User, DeletedUser, AnonymousUser, GuestUser, WikidotUser };
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WikidotUser = exports.GuestUser = exports.AnonymousUser = exports.DeletedUser = exports.User = exports.AbstractUser = exports.UserCollection = void 0;
|
|
4
|
+
const exceptions_1 = require("../common/exceptions");
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
const cheerio_1 = require("cheerio");
|
|
7
|
+
/**
|
|
8
|
+
* @class UserCollection
|
|
9
|
+
* @extends Array
|
|
10
|
+
* @description ユーザーオブジェクトのリスト
|
|
11
|
+
*/
|
|
12
|
+
class UserCollection extends Array {
|
|
13
|
+
/**
|
|
14
|
+
* @method fromNames
|
|
15
|
+
* @description ユーザー名のリストからユーザーオブジェクトのリストを取得
|
|
16
|
+
* @param client - クライアント
|
|
17
|
+
* @param names - ユーザー名のリスト
|
|
18
|
+
* @param raiseWhenNotFound - ユーザーが見つからなかった場合に例外を発生させるかどうか(デフォルトは false)
|
|
19
|
+
*/
|
|
20
|
+
static async fromNames(client, names, raiseWhenNotFound = false) {
|
|
21
|
+
const responses = await util_1.RequestUtil.request(client, 'GET', names.map(name => `https://www.wikidot.com/user:info/${util_1.StringUtil.toUnix(name)}`));
|
|
22
|
+
const users = [];
|
|
23
|
+
for (const response of responses) {
|
|
24
|
+
if (response instanceof Error) {
|
|
25
|
+
throw response;
|
|
26
|
+
}
|
|
27
|
+
const html = (0, cheerio_1.load)(response.data);
|
|
28
|
+
// Check if user exists
|
|
29
|
+
if (html('div.error-block').length > 0) {
|
|
30
|
+
if (raiseWhenNotFound) {
|
|
31
|
+
throw new exceptions_1.NotFoundException(`User not found: ${response.config.url}`);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
users.push(null);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Get user ID
|
|
39
|
+
const userId = Number(html('a.btn.btn-default.btn-xs').attr('href')?.split('/')?.pop());
|
|
40
|
+
// Get user name
|
|
41
|
+
const name = html('h1.profile-title').text().trim();
|
|
42
|
+
// Get avatar URL
|
|
43
|
+
const avatarUrl = `https://www.wikidot.com/avatar.php?userid=${userId}`;
|
|
44
|
+
users.push(new User(client, userId, name, util_1.StringUtil.toUnix(name), avatarUrl));
|
|
45
|
+
}
|
|
46
|
+
return new UserCollection(...users);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.UserCollection = UserCollection;
|
|
50
|
+
class AbstractUser {
|
|
51
|
+
constructor(client, id = null, name = null, unixName = null, avatarUrl = null, ip = null) {
|
|
52
|
+
this.client = client;
|
|
53
|
+
this.id = id;
|
|
54
|
+
this.name = name;
|
|
55
|
+
this.unixName = unixName;
|
|
56
|
+
this.avatarUrl = avatarUrl;
|
|
57
|
+
this.ip = ip;
|
|
58
|
+
}
|
|
59
|
+
toString() {
|
|
60
|
+
return `${this.constructor.name}(id=${this.id}, name=${this.name}, unixName=${this.unixName})`;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.AbstractUser = AbstractUser;
|
|
64
|
+
class User extends AbstractUser {
|
|
65
|
+
constructor() {
|
|
66
|
+
super(...arguments);
|
|
67
|
+
this.ip = null;
|
|
68
|
+
}
|
|
69
|
+
static async fromName(client, name, raiseWhenNotFound = false) {
|
|
70
|
+
return (await UserCollection.fromNames(client, [name], raiseWhenNotFound))[0];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.User = User;
|
|
74
|
+
class DeletedUser extends AbstractUser {
|
|
75
|
+
constructor() {
|
|
76
|
+
super(...arguments);
|
|
77
|
+
this.name = "account deleted";
|
|
78
|
+
this.unixName = "account_deleted";
|
|
79
|
+
this.avatarUrl = null;
|
|
80
|
+
this.ip = null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.DeletedUser = DeletedUser;
|
|
84
|
+
class AnonymousUser extends AbstractUser {
|
|
85
|
+
constructor() {
|
|
86
|
+
super(...arguments);
|
|
87
|
+
this.id = null;
|
|
88
|
+
this.name = "Anonymous";
|
|
89
|
+
this.unixName = "anonymous";
|
|
90
|
+
this.avatarUrl = null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.AnonymousUser = AnonymousUser;
|
|
94
|
+
class GuestUser extends AbstractUser {
|
|
95
|
+
constructor() {
|
|
96
|
+
super(...arguments);
|
|
97
|
+
this.id = null;
|
|
98
|
+
this.unixName = null;
|
|
99
|
+
this.avatarUrl = null;
|
|
100
|
+
this.ip = null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.GuestUser = GuestUser;
|
|
104
|
+
class WikidotUser extends AbstractUser {
|
|
105
|
+
constructor() {
|
|
106
|
+
super(...arguments);
|
|
107
|
+
this.id = null;
|
|
108
|
+
this.name = "Wikidot";
|
|
109
|
+
this.unixName = "wikidot";
|
|
110
|
+
this.avatarUrl = null;
|
|
111
|
+
this.ip = null;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.WikidotUser = WikidotUser;
|
|
115
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/module/user.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QuickModule = exports.RequestUtil = exports.StringUtil = void 0;
|
|
4
|
+
var stringUtil_1 = require("./stringUtil");
|
|
5
|
+
Object.defineProperty(exports, "StringUtil", { enumerable: true, get: function () { return stringUtil_1.StringUtil; } });
|
|
6
|
+
var requestUtil_1 = require("./requestUtil");
|
|
7
|
+
Object.defineProperty(exports, "RequestUtil", { enumerable: true, get: function () { return requestUtil_1.RequestUtil; } });
|
|
8
|
+
var quickModule_1 = require("./quickModule");
|
|
9
|
+
Object.defineProperty(exports, "QuickModule", { enumerable: true, get: function () { return quickModule_1.QuickModule; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,6CAA0C;AAAlC,0GAAA,WAAW,OAAA;AACnB,6CAA0C;AAAlC,0GAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./odate";
|
|
@@ -0,0 +1,18 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./odate"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/parser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Cheerio } from 'cheerio';
|
|
2
|
+
/**
|
|
3
|
+
* @method odateParse
|
|
4
|
+
* @description odate要素を解析し、unix時間を返す
|
|
5
|
+
* @param odateElement
|
|
6
|
+
* @returns unix時間
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
* @since 1.0.0
|
|
9
|
+
* @public
|
|
10
|
+
* @exports
|
|
11
|
+
*/
|
|
12
|
+
export declare const odateParse: (odateElement: Cheerio<any>) => Date;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.odateParse = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @method odateParse
|
|
6
|
+
* @description odate要素を解析し、unix時間を返す
|
|
7
|
+
* @param odateElement
|
|
8
|
+
* @returns unix時間
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
* @public
|
|
12
|
+
* @exports
|
|
13
|
+
*/
|
|
14
|
+
const odateParse = (odateElement) => {
|
|
15
|
+
const odateClasses = odateElement.attr("class")?.split(" ") || [];
|
|
16
|
+
for (const odateClass of odateClasses) {
|
|
17
|
+
if (odateClass.startsWith('time_')) {
|
|
18
|
+
const unixTime = parseInt(odateClass.replace('time_', ''), 10);
|
|
19
|
+
return new Date(unixTime * 1000);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
throw new Error('odate element does not contain a valid unix time');
|
|
23
|
+
};
|
|
24
|
+
exports.odateParse = odateParse;
|
|
25
|
+
//# sourceMappingURL=odate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"odate.js","sourceRoot":"","sources":["../../../src/util/parser/odate.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;GASG;AACI,MAAM,UAAU,GAAG,CAAC,YAA0B,EAAQ,EAAE;IAC3D,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAClE,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACpC,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/D,OAAO,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACxE,CAAC,CAAC;AAVW,QAAA,UAAU,cAUrB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Client } from "../../module/client";
|
|
2
|
+
import { AbstractUser } from '../../module/user';
|
|
3
|
+
import * as cheerio from 'cheerio';
|
|
4
|
+
/**
|
|
5
|
+
* @method userParse
|
|
6
|
+
* @description ユーザー要素を解析し、ユーザーオブジェクトを返す
|
|
7
|
+
* @param client
|
|
8
|
+
* @param elem
|
|
9
|
+
* @returns ユーザーオブジェクト
|
|
10
|
+
* @version 1.0.0
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
* @public
|
|
13
|
+
* @exports
|
|
14
|
+
*/
|
|
15
|
+
declare const userParse: (client: Client, elem: cheerio.Cheerio<any>) => AbstractUser;
|
|
16
|
+
export { userParse };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.userParse = void 0;
|
|
4
|
+
const user_1 = require("../../module/user");
|
|
5
|
+
/**
|
|
6
|
+
* @method userParse
|
|
7
|
+
* @description ユーザー要素を解析し、ユーザーオブジェクトを返す
|
|
8
|
+
* @param client
|
|
9
|
+
* @param elem
|
|
10
|
+
* @returns ユーザーオブジェクト
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @public
|
|
14
|
+
* @exports
|
|
15
|
+
*/
|
|
16
|
+
const userParse = (client, elem) => {
|
|
17
|
+
if (elem.hasClass('deleted')) {
|
|
18
|
+
return new user_1.DeletedUser(client, Number(elem.attr('data-id')));
|
|
19
|
+
}
|
|
20
|
+
else if (elem.hasClass('anonymous')) {
|
|
21
|
+
const ip = elem.find('span.ip').text().replace('(', '').replace(')', '').trim();
|
|
22
|
+
return new user_1.AnonymousUser(client, undefined, undefined, undefined, undefined, ip);
|
|
23
|
+
}
|
|
24
|
+
else if (elem.text() === 'Wikidot') {
|
|
25
|
+
return new user_1.WikidotUser(client);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const userElem = elem.find('a').last();
|
|
29
|
+
const userName = userElem.text();
|
|
30
|
+
const userUnix = userElem.attr('href')?.replace('http://www.wikidot.com/user:info/', '') || '';
|
|
31
|
+
const userId = Number(userElem.attr('onclick')?.replace('WIKIDOT.page.listeners.userInfo(', '').replace('); return false;', ''));
|
|
32
|
+
return new user_1.User(client, userId, userName, userUnix, `http://www.wikidot.com/avatar.php?userid=${userId}`);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.userParse = userParse;
|
|
36
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/util/parser/user.ts"],"names":[],"mappings":";;;AACA,4CAAyG;AAGzG;;;;;;;;;;GAUG;AACH,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,IAA0B,EAAgB,EAAE;IAC3E,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,kBAAW,CAClB,MAAM,EACN,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAC/B,CAAC;IACN,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChF,OAAO,IAAI,oBAAa,CACpB,MAAM,EACN,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,EAAE,CACL,CAAC;IACN,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,IAAI,kBAAW,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAC/F,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;QAEjI,OAAO,IAAI,WAAI,CACX,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,4CAA4C,MAAM,EAAE,CACvD,CAAC;IACN,CAAC;AACL,CAAC,CAAC;AAEM,8BAAS"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class QMCUser
|
|
3
|
+
* @description QuickModuleで得られるユーザー情報
|
|
4
|
+
* @version 1.0.0
|
|
5
|
+
* @since 1.0.0
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
declare class QMCUser {
|
|
9
|
+
id: number;
|
|
10
|
+
name: string;
|
|
11
|
+
constructor(id: number, name: string);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @class QMCPage
|
|
15
|
+
* @description QuickModuleで得られるページ情報
|
|
16
|
+
* @version 1.0.0
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
declare class QMCPage {
|
|
21
|
+
title: string;
|
|
22
|
+
unixName: string;
|
|
23
|
+
constructor(title: string, unixName: string);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @class QuickModule
|
|
27
|
+
* @description QuickModuleを利用するためのユーティリティクラス
|
|
28
|
+
* @version 1.0.0
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
* @public
|
|
31
|
+
* @exports
|
|
32
|
+
*/
|
|
33
|
+
declare class QuickModule {
|
|
34
|
+
/**
|
|
35
|
+
* @method _request
|
|
36
|
+
* @description QuickModuleにリクエストを送信する
|
|
37
|
+
* @param moduleName モジュール名
|
|
38
|
+
* @param siteId サイトID
|
|
39
|
+
* @param query クエリ
|
|
40
|
+
* @returns レスポンスボディ
|
|
41
|
+
* @version 1.0.0
|
|
42
|
+
* @since 1.0.0
|
|
43
|
+
* @private
|
|
44
|
+
* @static
|
|
45
|
+
* @async
|
|
46
|
+
* @throws {NotFoundException} サイトが見つからない場合
|
|
47
|
+
* @throws {Error} その他のエラー
|
|
48
|
+
*/
|
|
49
|
+
private static _request;
|
|
50
|
+
/**
|
|
51
|
+
* @method memberLookup
|
|
52
|
+
* @description メンバーを検索する
|
|
53
|
+
* @param siteId サイトID
|
|
54
|
+
* @param query クエリ(ユーザ名の一部)
|
|
55
|
+
* @returns ヒットしたユーザ情報のリスト
|
|
56
|
+
* @version 1.0.0
|
|
57
|
+
* @since 1.0.0
|
|
58
|
+
* @public
|
|
59
|
+
* @static
|
|
60
|
+
* @async
|
|
61
|
+
* @throws {NotFoundException} サイトが見つからない場合
|
|
62
|
+
* @throws {Error} その他のエラー
|
|
63
|
+
*/
|
|
64
|
+
static memberLookup: (siteId: number, query: string) => Promise<QMCUser[]>;
|
|
65
|
+
/**
|
|
66
|
+
* @method userLookup
|
|
67
|
+
* @description ユーザーを検索する
|
|
68
|
+
* @param siteId サイトID
|
|
69
|
+
* @param query クエリ(ユーザ名の一部)
|
|
70
|
+
* @returns ヒットしたユーザ情報のリスト
|
|
71
|
+
* @version 1.0.0
|
|
72
|
+
* @since 1.0.0
|
|
73
|
+
* @public
|
|
74
|
+
* @static
|
|
75
|
+
* @async
|
|
76
|
+
* @throws {NotFoundException} サイトが見つからない場合
|
|
77
|
+
* @throws {Error} その他のエラー
|
|
78
|
+
*/
|
|
79
|
+
static userLookup: (siteId: number, query: string) => Promise<QMCUser[]>;
|
|
80
|
+
/**
|
|
81
|
+
* @method pageLookup
|
|
82
|
+
* @description ページを検索する
|
|
83
|
+
* @param siteId サイトID
|
|
84
|
+
* @param query クエリ(ページ名の一部)
|
|
85
|
+
* @returns ヒットしたページ情報のリスト
|
|
86
|
+
* @version 1.0.0
|
|
87
|
+
* @since 1.0.0
|
|
88
|
+
* @public
|
|
89
|
+
* @static
|
|
90
|
+
* @async
|
|
91
|
+
* @throws {NotFoundException} サイトが見つからない場合
|
|
92
|
+
* @throws {Error} その他のエラー
|
|
93
|
+
*/
|
|
94
|
+
static pageLookup: (siteId: number, query: string) => Promise<QMCPage[]>;
|
|
95
|
+
}
|
|
96
|
+
export { QuickModule };
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
var _a;
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.QuickModule = void 0;
|
|
8
|
+
const axios_1 = __importDefault(require("axios"));
|
|
9
|
+
const exceptions_1 = require("../common/exceptions");
|
|
10
|
+
/**
|
|
11
|
+
* @class QMCUser
|
|
12
|
+
* @description QuickModuleで得られるユーザー情報
|
|
13
|
+
* @version 1.0.0
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
class QMCUser {
|
|
18
|
+
constructor(id, name) {
|
|
19
|
+
this.id = id;
|
|
20
|
+
this.name = name;
|
|
21
|
+
this.id = id;
|
|
22
|
+
this.name = name;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @class QMCPage
|
|
27
|
+
* @description QuickModuleで得られるページ情報
|
|
28
|
+
* @version 1.0.0
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
* @public
|
|
31
|
+
*/
|
|
32
|
+
class QMCPage {
|
|
33
|
+
constructor(title, unixName) {
|
|
34
|
+
this.title = title;
|
|
35
|
+
this.unixName = unixName;
|
|
36
|
+
this.title = title;
|
|
37
|
+
this.unixName = unixName;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @class QuickModule
|
|
42
|
+
* @description QuickModuleを利用するためのユーティリティクラス
|
|
43
|
+
* @version 1.0.0
|
|
44
|
+
* @since 1.0.0
|
|
45
|
+
* @public
|
|
46
|
+
* @exports
|
|
47
|
+
*/
|
|
48
|
+
class QuickModule {
|
|
49
|
+
}
|
|
50
|
+
exports.QuickModule = QuickModule;
|
|
51
|
+
_a = QuickModule;
|
|
52
|
+
/**
|
|
53
|
+
* @method _request
|
|
54
|
+
* @description QuickModuleにリクエストを送信する
|
|
55
|
+
* @param moduleName モジュール名
|
|
56
|
+
* @param siteId サイトID
|
|
57
|
+
* @param query クエリ
|
|
58
|
+
* @returns レスポンスボディ
|
|
59
|
+
* @version 1.0.0
|
|
60
|
+
* @since 1.0.0
|
|
61
|
+
* @private
|
|
62
|
+
* @static
|
|
63
|
+
* @async
|
|
64
|
+
* @throws {NotFoundException} サイトが見つからない場合
|
|
65
|
+
* @throws {Error} その他のエラー
|
|
66
|
+
*/
|
|
67
|
+
QuickModule._request = async (moduleName, siteId, query) => {
|
|
68
|
+
if (!['MemberLookupQModule', 'UserLookupQModule', 'PageLookupQModule'].includes(moduleName)) {
|
|
69
|
+
throw new Error('Invalid module name');
|
|
70
|
+
}
|
|
71
|
+
const url = `https://www.wikidot.com/quickmodule.php?module=${moduleName}&s=${siteId}&q=${query}`;
|
|
72
|
+
try {
|
|
73
|
+
const response = await axios_1.default.get(url, { timeout: 300 * 1000 });
|
|
74
|
+
return response.data;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
if (axios_1.default.isAxiosError(error) && error.response?.status === 500) {
|
|
78
|
+
throw new exceptions_1.NotFoundException('Site is not found');
|
|
79
|
+
}
|
|
80
|
+
throw error;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* @method memberLookup
|
|
85
|
+
* @description メンバーを検索する
|
|
86
|
+
* @param siteId サイトID
|
|
87
|
+
* @param query クエリ(ユーザ名の一部)
|
|
88
|
+
* @returns ヒットしたユーザ情報のリスト
|
|
89
|
+
* @version 1.0.0
|
|
90
|
+
* @since 1.0.0
|
|
91
|
+
* @public
|
|
92
|
+
* @static
|
|
93
|
+
* @async
|
|
94
|
+
* @throws {NotFoundException} サイトが見つからない場合
|
|
95
|
+
* @throws {Error} その他のエラー
|
|
96
|
+
*/
|
|
97
|
+
QuickModule.memberLookup = async (siteId, query) => {
|
|
98
|
+
const data = await _a._request('MemberLookupQModule', siteId, query);
|
|
99
|
+
return data.users.map((user) => new QMCUser(user.user_id, user.name));
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* @method userLookup
|
|
103
|
+
* @description ユーザーを検索する
|
|
104
|
+
* @param siteId サイトID
|
|
105
|
+
* @param query クエリ(ユーザ名の一部)
|
|
106
|
+
* @returns ヒットしたユーザ情報のリスト
|
|
107
|
+
* @version 1.0.0
|
|
108
|
+
* @since 1.0.0
|
|
109
|
+
* @public
|
|
110
|
+
* @static
|
|
111
|
+
* @async
|
|
112
|
+
* @throws {NotFoundException} サイトが見つからない場合
|
|
113
|
+
* @throws {Error} その他のエラー
|
|
114
|
+
*/
|
|
115
|
+
QuickModule.userLookup = async (siteId, query) => {
|
|
116
|
+
const data = await _a._request('UserLookupQModule', siteId, query);
|
|
117
|
+
return data.users.map((user) => new QMCUser(user.user_id, user.name));
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* @method pageLookup
|
|
121
|
+
* @description ページを検索する
|
|
122
|
+
* @param siteId サイトID
|
|
123
|
+
* @param query クエリ(ページ名の一部)
|
|
124
|
+
* @returns ヒットしたページ情報のリスト
|
|
125
|
+
* @version 1.0.0
|
|
126
|
+
* @since 1.0.0
|
|
127
|
+
* @public
|
|
128
|
+
* @static
|
|
129
|
+
* @async
|
|
130
|
+
* @throws {NotFoundException} サイトが見つからない場合
|
|
131
|
+
* @throws {Error} その他のエラー
|
|
132
|
+
*/
|
|
133
|
+
QuickModule.pageLookup = async (siteId, query) => {
|
|
134
|
+
const data = await _a._request('PageLookupQModule', siteId, query);
|
|
135
|
+
return data.pages.map((page) => new QMCPage(page.title, page.unix_name));
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=quickModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quickModule.js","sourceRoot":"","sources":["../../src/util/quickModule.ts"],"names":[],"mappings":"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"}
|