Skip to content

Commit 1fa1de8

Browse files
authored
feat(new): add LoadRNRSCredentials (qiuwenbaike#1763)
* feat(new): add LoadRNRSCredentials
1 parent abedf88 commit 1fa1de8

File tree

6 files changed

+158
-0
lines changed

6 files changed

+158
-0
lines changed

dist/LoadRNRSCredentials/LoadRNRSCredentials.js

Lines changed: 98 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/definition.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
* HistoryDisclaimer[ResourceLoader|default|dependencies=ext.gadget.JSX|hidden|requiresES6]|HistoryDisclaimer.js|HistoryDisclaimer.css
7272
* i18n[ResourceLoader|dependencies=ext.gadget.Util|hidden|requiresES6]|i18n.js
7373
* JSX[ResourceLoader|hidden|requiresES6]|JSX.js
74+
* LoadRNRSCredentials[ResourceLoader|dependencies=ext.gadget.Util,mediawiki.user,mediawiki.api|hidden|requiresES6]|LoadRNRSCredentials.js
7475
* MemorialDay[ResourceLoader|default|dependencies=ext.gadget.MemorialDay-settings,ext.gadget.Util|hidden|requiresES6]|MemorialDay.js|MemorialDay.css
7576
* MemorialDay-settings[ResourceLoader|hidden|requiresES6]|MemorialDay-settings.js
7677
* morebits[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.select2,ext.gadget.Util,jquery.ui,mediawiki.Title,mediawiki.user,mediawiki.util|hidden|requiresES6]|morebits.js|morebits.css
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import {foreignApi} from './modules/api';
2+
3+
(async function loadRNRSCredentials() {
4+
const userRights = await mw.user.getRights();
5+
6+
if (userRights.includes('rnrsverify-confirmed')) {
7+
return;
8+
}
9+
10+
try {
11+
const foreignUserdata = await foreignApi.get({
12+
action: 'query',
13+
meta: 'userinfo',
14+
uiprop: '*',
15+
formatversion: '2',
16+
});
17+
18+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
19+
const {groups, options}: {groups: string[]; options: {rnrsverifyhash?: string; rnrsverifytime?: string}} =
20+
foreignUserdata?.['query']?.userinfo ?? {groups: [], options: {}};
21+
22+
if (!groups || !options) {
23+
return;
24+
}
25+
26+
if (!groups.includes('rnrsverify-confirmed')) {
27+
return;
28+
}
29+
30+
if (!options.rnrsverifyhash || !options.rnrsverifytime) {
31+
return;
32+
}
33+
34+
const {rnrsverifyhash, rnrsverifytime} = options;
35+
36+
void (await foreignApi.postWithToken('csrf', {
37+
action: 'options',
38+
change: [`rnrsverifyhash=${rnrsverifyhash}`, `rnrsverifytime=${rnrsverifytime}`],
39+
global: 'update',
40+
}));
41+
} catch {}
42+
})();
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"enable": true,
3+
"description": "<span id=\"Gadget-Credentials\"></span> 加载手机号验证参数",
4+
"section": "compatibility",
5+
"excludeSites": ["loginwiki"],
6+
"default": false,
7+
"dependencies": ["ext.gadget.Util", "mediawiki.api", "mediawiki.user"],
8+
"hidden": true
9+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import {initMwApi} from 'ext.gadget.Util';
2+
3+
const foreignApi = initMwApi('LoadRNRSCredentials', 'https://www.qiuwenbaike.cn/api.php');
4+
5+
export {foreignApi};
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"version": "1.0"
3+
}

0 commit comments

Comments
 (0)