Skip to content

Commit

Permalink
patch: version 14.1.9 (#149)
Browse files Browse the repository at this point in the history
* style: 🎨 run prettier

* style: 🎨 update prettier configs

* fix: edit section summary (#105)

* chore: formats

* fix: page protection notify

* fix: close #129

* fix: fix #105 again

* chore: update APIs & preference.about

* fix: quickEdit/isEditable

* fix: missing global.InPageEdit

* v14.1.9-alpha.2

* v14.1.9-rc.0

* minor fix

* minor fix

* update README
  • Loading branch information
dragon-fish authored Aug 13, 2021
1 parent 4fe84d0 commit 9fdae59
Show file tree
Hide file tree
Showing 40 changed files with 6,567 additions and 5,571 deletions.
2 changes: 1 addition & 1 deletion .prettierrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ module.exports = {
trailingComma: 'es5',
bracketSpacing: true,
arrowParens: 'always',
printWidth: 120,
printWidth: 80,
}
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
## 快速上手

[![](https://data.jsdelivr.com/v1/package/gh/dragon-fish/inpageedit-v2/badge)](https://www.jsdelivr.com/package/gh/dragon-fish/inpageedit-v2)
[![](https://data.jsdelivr.com/v1/package/npm/mediawiki-inpageedit/badge)](https://www.jsdelivr.com/package/npm/mediawiki-inpageedit)

*个人 JS 页*添加以下代码:
Expand Down Expand Up @@ -39,11 +38,11 @@ mw.loader.load("https://cdn.jsdelivr.net/npm/mediawiki-inpageedit@latest/dist/In
-**中文(简体)‬ (zh-hans)**
- 中文(繁體)‬ (zh-hant)

Help us to translate InPageEdit: [Fandom Developer Wiki](https://dev.fandom.com/wiki/Special:BlankPage/I18nEdit/InPageEdit-v2), [Miraheze Wiki](https://ipe.miraheze.org/wiki/Special:BlankPage/I18nEdit/InPageEdit-v2)
Help us to translate InPageEdit~

<hr/>

InPageEdit is a useful MediaWiki JavaScript Plugin written with jQuery, written by [机智的小鱼君/Dragon Fish](https://wjghj.cn/wiki/机智的小鱼君)
InPageEdit is a useful MediaWiki JavaScript Plugin written with jQuery, written by [机智的小鱼君/Dragon Fish](https://blog.wjghj.cn/author)

© InPageEdit Copyright (C) 2019 - present Wjghj Project, [GNU General Public License 3.0](https://www.gnu.org/licenses/gpl-3.0-standalone.html)<br/>
See more: [GitHub](https://github.com/Dragon-Fish/InPageEdit-v2) | [Update logs](https://ipe.js.org/update/) | [File issues](https://github.com/Dragon-Fish/InPageEdit-v2/issues)
See more: [GitHub](https://github.com/inpageedit/inpageedit-v2) | [Update logs](https://ipe.js.org/update/) | [File issues](https://github.com/inpageedit/inpageedit-v2/issues)
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mediawiki-inpageedit",
"version": "14.1.8",
"version": "14.1.9-rc.2",
"description": "A useful MediaWiki JavaScript Plugin written with jQuery",
"main": "dist/InPageEdit.js",
"dependencies": {},
Expand All @@ -9,6 +9,7 @@
"eslint": "^7.29.0",
"prettier": "^2.3.2",
"stylus": "^0.54.8",
"types-mediawiki": "^1.2.0",
"webpack": "^5.41.1",
"webpack-cli": "^4.7.2"
},
Expand All @@ -17,7 +18,7 @@
"lint": "eslint ./src",
"dev": "webpack --watch --o ./dev/[name].js",
"clear": "rm -rf ./dist",
"pretty": "prettier --write ./index.js ./module ./method",
"pretty": "prettier --write ./src",
"bump": "yarn lint && yarn clear && bump --nopublish && yarn build && yarn publish"
},
"repository": {
Expand Down
17 changes: 7 additions & 10 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,21 @@
* @url https://github.com/Dragon-Fish/InPageEdit-v2
*/

!(async function (InPageEdit) {
'use strict';

!(async function () {
// 创建 InPageEdit 变量
InPageEdit = InPageEdit || {};
const InPageEdit = window.InPageEdit || {}

// 防止多次运行
if (InPageEdit?.version) {
throw '[InPageEdit] InPageEdit 已经在运行了';
throw '[InPageEdit] InPageEdit 已经在运行了'
}

// 初始化插件
const init = require('./method/init');
const init = require('./method/init')

// 合并入全局变量
InPageEdit = {
window.InPageEdit = {
...InPageEdit,
...init(),
...(await init()),
}

})(window.InPageEdit);
})()
18 changes: 9 additions & 9 deletions src/method/_dir.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
/**
* @method getDir
* @return {String} 插件CDN的URL路径,结尾没有/
*
*
* @description 注意,如果您想自己自己托管InPageEdit,_dir可以直接返回您的URL
* 例如 const _dir = https://yourdomain.com/inpageedit
*/
function getDir() {
var thisScript = document.currentScript.src;
var thisUrl = thisScript.split('/');
var thisScript = document.currentScript.src
var thisUrl = thisScript.split('/')
// 理论上入口文件位于 /dist/*.js
// 因此删掉最后两位路径
thisUrl.pop();
thisUrl.pop();
thisUrl = thisUrl.join('/');
return thisUrl;
thisUrl.pop()
thisUrl.pop()
thisUrl = thisUrl.join('/')
return thisUrl
}

/**
* @constant {String} _dir CDN URL
*/
const _dir = getDir();
const _dir = getDir()

module.exports = _dir;
module.exports = _dir
50 changes: 26 additions & 24 deletions src/method/getUserInfo.js
Original file line number Diff line number Diff line change
@@ -1,39 +1,41 @@
var mwApi = new mw.Api();
var mwApi = new mw.Api()

var getUserInfo = function () {
/**
* @description 获取用户权限信息
*/
* @description 获取用户权限信息
*/
mwApi.getUserInfo().then(
data => {
console.info('[InPageEdit] 成功获取用户权限信息');
mw.config.set('wgUserRights', data.rights);
(data) => {
console.info('[InPageEdit] 成功获取用户权限信息')
mw.config.set('wgUserRights', data.rights)
},
error => {
console.warn('[InPageEdit] 警告:无法获取用户权限信息', error);
mw.config.set('wgUserRights', []);
(error) => {
console.warn('[InPageEdit] 警告:无法获取用户权限信息', error)
mw.config.set('wgUserRights', [])
}
);
)

/**
* @description 获取封禁状态
*/
if (mw.config.get('wgUserName') !== null) {
mwApi.get({
action: 'query',
list: 'users',
usprop: 'blockinfo',
ususers: mw.config.get('wgUserName')
}).then(data => {
if (data.query.users[0].blockid) {
mw.config.set('wgUserIsBlocked', true);
} else {
mw.config.set('wgUserIsBlocked', false);
}
});
mwApi
.get({
action: 'query',
list: 'users',
usprop: 'blockinfo',
ususers: mw.config.get('wgUserName'),
})
.then((data) => {
if (data.query.users[0].blockid) {
mw.config.set('wgUserIsBlocked', true)
} else {
mw.config.set('wgUserIsBlocked', false)
}
})
}
}

module.exports = {
getUserInfo
}
getUserInfo,
}
105 changes: 51 additions & 54 deletions src/method/init.js
Original file line number Diff line number Diff line change
@@ -1,73 +1,71 @@
// 导入方法
const _dir = require('./_dir');
const { loadScript } = require('./loadScript');
const { getUserInfo } = require('./getUserInfo');
const { loadStyles } = require('./loadStyles');
const { updateNotice } = require('./updateNotice');
const { syncI18nData } = require('./syncI18nData');

const version = require('../module/version');
const _dir = require('./_dir')
const { loadScript } = require('./loadScript')
const { getUserInfo } = require('./getUserInfo')
const { loadStyles } = require('./loadStyles')
const { updateNotice } = require('./updateNotice')
const { syncI18nData } = require('./syncI18nData')

const version = require('../module/version')

/**
* @method initMain
* @return {Object} InPageEdit
*/
module.exports = async function init() {

mw.hook('InPageEdit.init.before').fire();
mw.hook('InPageEdit.init.before').fire()

// Await MediaWiki
await mw.loader.using(['mediawiki.api', 'mediawiki.util', 'mediawiki.user']);
await mw.loader.using(['mediawiki.api', 'mediawiki.util', 'mediawiki.user'])

// 是否需要刷新缓存
const purgeCache = Boolean(
const noCache = !!(
mw.util.getParamValue('ipe', location.href) === 'nocache' ||
version !== localStorage.getItem('InPageEditVersion')
version !== localStorage.getItem('InPageEditVersion')
)

// 加载样式表
loadStyles(purgeCache);
loadStyles(noCache)

// 等待 i18n 缓存
await syncI18nData(purgeCache);
await syncI18nData(noCache)

mw.hook('InPageEdit.init.i18n').fire({ _msg: require('../module/_msg')._msg })

// 等待前置插件
await loadScript(_dir + '/src/ssi_modal/ssi-modal.min.js');
await loadScript(_dir + '/src/ssi_modal/ssi-modal.min.js')

mw.hook('InPageEdit.init.modal').fire({ ssi_modal: window.ssi_modal });
mw.hook('InPageEdit.init.modal').fire({ ssi_modal: window.ssi_modal })

// 导入全部模块
const { _analysis } = require('../module/_analysis');
const { _msg } = require('../module/_msg');
const { about } = require('../module/about');
const api = require('../module/api.json');
const { articleLink } = require('../module/articleLink');
const { findAndReplace } = require('../module/findAndReplace');
const { loadQuickDiff } = require('../module/loadQuickDiff');
const { preference } = require('../module/preference');
const { pluginStore } = require('../module/pluginStore');
const { progress } = require('../module/progress');
const { quickDelete } = require('../module/quickDelete');
const { quickDiff } = require('../module/quickDiff');
const { quickEdit } = require('../module/quickEdit');
const { quickPreview } = require('../module/quickPreview');
const { quickRedirect } = require('../module/quickRedirect');
const { quickRename } = require('../module/quickRename');
const { specialNotice } = require('../module/specialNotice');
const { versionInfo } = require('../module/versionInfo');
const { _analysis } = require('../module/_analysis')
const { _msg } = require('../module/_msg')
const { about } = require('../module/about')
const api = require('../module/api.json')
const { articleLink } = require('../module/articleLink')
const { findAndReplace } = require('../module/findAndReplace')
const { loadQuickDiff } = require('../module/loadQuickDiff')
const { preference } = require('../module/preference')
const { pluginStore } = require('../module/pluginStore')
const { progress } = require('../module/progress')
const { quickDelete } = require('../module/quickDelete')
const { quickDiff } = require('../module/quickDiff')
const { quickEdit } = require('../module/quickEdit')
const { quickPreview } = require('../module/quickPreview')
const { quickRedirect } = require('../module/quickRedirect')
const { quickRename } = require('../module/quickRename')
const { specialNotice } = require('../module/specialNotice')
const { versionInfo } = require('../module/versionInfo')

// 初始化前置模块
preference.set();
getUserInfo();
loadQuickDiff();
articleLink();
updateNotice();
preference.set()
getUserInfo()
loadQuickDiff()
articleLink()
updateNotice()

// !暂定,触发用户插件
pluginStore.initUserPlugin();
pluginStore.initUserPlugin()

// 写入模块
var InPageEdit = {
Expand Down Expand Up @@ -100,29 +98,28 @@ module.exports = async function init() {
}

// 锁定重要变量
var importantVariables = [
'_dir',
'api',
'version',
];
importantVariables.forEach(key => {
var importantVariables = ['_dir', 'api', 'version']
importantVariables.forEach((key) => {
try {
Object.freeze(InPageEdit[key]);
Object.freeze(InPageEdit[key])
} catch (e) {
// Do nothing
}
});
})

// 触发钩子,传入上下文
mw.hook('InPageEdit').fire({
_analysis,
_msg,
InPageEdit
});
InPageEdit,
})

// 花里胡哨的加载提示
console.info(' ____ ____ ______ ___ __ \n / _/___ / __ \\____ _____ ____ / ____/___/ (_) /_\n / // __ \\/ /_/ / __ `/ __ `/ _ \\/ __/ / __ / / __/\n _/ // / / / ____/ /_/ / /_/ / __/ /___/ /_/ / / /_ \n/___/_/ /_/_/ \\__,_/\\__, /\\___/_____/\\__,_/_/\\__/ \n /____/ v' + version);
console.info(
' ____ ____ ______ ___ __ \n / _/___ / __ \\____ _____ ____ / ____/___/ (_) /_\n / // __ \\/ /_/ / __ `/ __ `/ _ \\/ __/ / __ / / __/\n _/ // / / / ____/ /_/ / /_/ / __/ /___/ /_/ / / /_ \n/___/_/ /_/_/ \\__,_/\\__, /\\___/_____/\\__,_/_/\\__/ \n /____/ v' +
version
)

// 传回InPageEdit
return InPageEdit;
}
return InPageEdit
}
8 changes: 4 additions & 4 deletions src/method/loadScript.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ var loadScript = function (src, noCache) {
url: src,
dataType: 'script',
crossDomain: true,
cache: !noCache
});
cache: !noCache,
})
}

module.exports = {
loadScript
}
loadScript,
}
Loading

0 comments on commit 9fdae59

Please sign in to comment.