From 6b15e8e56c357c636e41502b94b46efb6daf866c Mon Sep 17 00:00:00 2001 From: sunny00217wm Date: Sat, 8 May 2021 18:57:34 +0800 Subject: [PATCH 1/5] Add copyvio-templates on non-wikitext pages --- modules/twinklecopyvio.js | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/modules/twinklecopyvio.js b/modules/twinklecopyvio.js index 673ceb92..a68a0d6f 100644 --- a/modules/twinklecopyvio.js +++ b/modules/twinklecopyvio.js @@ -114,13 +114,28 @@ Twinkle.copyvio.callbacks = { }, taggingArticle: function(pageobj) { var params = pageobj.getCallbackParameters(); - var tag = '{{subst:Copyvio/auto|url=' + params.source.replace(/http/g, 'http').replace(/\n+/g, '\n').replace(/^\s*([^*])/gm, '* $1').replace(/^\* $/m, '') + '|OldRevision=' + mw.config.get('wgRevisionId') + '}}'; + var url = params.source.replace(/http/g, 'http').replace(/\n+/g, '\n').replace(/^\s*([^*])/gm, '* $1').replace(/^\* $/m, ''); + var tag = '{{subst:Copyvio/auto|url=' + url + '|OldRevision=' + mw.config.get('wgRevisionId') + '}}'; var text = pageobj.getPageText(); var oldcsd = text.match(/\{\{\s*(db(-\w*)?|d|delete)\s*(\|(?:\{\{[^{}]*\}\}|[^{}])*)?\}\}/i); if (oldcsd && confirm(wgULS('在页面上找到快速删除模板,要保留吗?\n\n当页面同时侵犯著作权又符合快速删除标准时,应该优先走快速删除程序。\n单击“确认”以保留快速删除模板,若您认为快速删除理由不合,单击“取消”以移除快速删除模板。', '在頁面上找到快速刪除模板,要保留嗎?\n\n當頁面同時侵犯版權又符合快速刪除標準時,應該優先走快速刪除程序。\n點擊「確認」以保留快速刪除模板,若您認為快速刪除理由不合,點擊「取消」以移除快速刪除模板。'))) { tag = oldcsd[0] + '\n' + tag; } + if (mw.config.get('wgPageContentModel') === 'json') { + text = JSON.stringify([{ + _addText: tag + }]); + } else if (mw.config.get('wgPageContentModel') === 'Scribunto') { + Twinkle.copyvio.callbacks.tagginglua(pageobj, tag); + return; + } else if (['javascript', 'css', 'sanitized-css'].indexOf(mw.config.get('wgPageContentModel')) > -1) { + if (tag.indexOf('*/')) { + tag = tag.replace(/\*\//g, '*/'); + } + tag = '/* _addText: ' + tag + ' */'; + } + pageobj.setPageText(tag); pageobj.setEditSummary(wgULS('本页面疑似侵犯著作权', '本頁面疑似侵犯版權')); pageobj.setChangeTags(Twinkle.changeTags); @@ -132,6 +147,27 @@ Twinkle.copyvio.callbacks = { pageobj.patrol(); } }, + tagginglua: function(pageobj, tag) { + new mw.Api().parse(tag, { + onlypst: 1 + }).then(function (tag) { + var equals = ''; + while (tag.indexOf(']' + equals + ']') !== -1) { + equals += '='; + } + tag = "require('Module:Module wikitext')._addText([" + equals + '[' + tag + ']' + equals + ']);'; + + pageobj.setPageText(tag); + pageobj.setEditSummary(wgULS('本页面疑似侵犯著作权', '本頁面疑似侵犯版權')); + pageobj.setChangeTags(Twinkle.changeTags); + pageobj.setWatchlist(Twinkle.getPref('copyvioWatchPage')); + // pageobj.setCreateOption('recreate'); + pageobj.save(); + }, function (err) { + mw.log.error(err); + Morebits.status.error(wgULS('错误', '錯誤'), wgULS('无法展开wikitext', '無法展開wikitext')); + }); + }, copyvioList: function(pageobj) { var text = pageobj.getPageText(); var output = ''; From f5d5fb287e9c50bfa138b12e0f809f93d3abadb3 Mon Sep 17 00:00:00 2001 From: sunny00217wm Date: Sat, 8 May 2021 19:00:07 +0800 Subject: [PATCH 2/5] = --- modules/twinklecopyvio.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/twinklecopyvio.js b/modules/twinklecopyvio.js index a68a0d6f..acd22b91 100644 --- a/modules/twinklecopyvio.js +++ b/modules/twinklecopyvio.js @@ -114,8 +114,7 @@ Twinkle.copyvio.callbacks = { }, taggingArticle: function(pageobj) { var params = pageobj.getCallbackParameters(); - var url = params.source.replace(/http/g, 'http').replace(/\n+/g, '\n').replace(/^\s*([^*])/gm, '* $1').replace(/^\* $/m, ''); - var tag = '{{subst:Copyvio/auto|url=' + url + '|OldRevision=' + mw.config.get('wgRevisionId') + '}}'; + var tag = '{{subst:Copyvio/auto|url=' + params.source.replace(/http/g, 'http').replace(/\n+/g, '\n').replace(/^\s*([^*])/gm, '* $1').replace(/^\* $/m, '') + '|OldRevision=' + mw.config.get('wgRevisionId') + '}}'; var text = pageobj.getPageText(); var oldcsd = text.match(/\{\{\s*(db(-\w*)?|d|delete)\s*(\|(?:\{\{[^{}]*\}\}|[^{}])*)?\}\}/i); if (oldcsd && confirm(wgULS('在页面上找到快速删除模板,要保留吗?\n\n当页面同时侵犯著作权又符合快速删除标准时,应该优先走快速删除程序。\n单击“确认”以保留快速删除模板,若您认为快速删除理由不合,单击“取消”以移除快速删除模板。', '在頁面上找到快速刪除模板,要保留嗎?\n\n當頁面同時侵犯版權又符合快速刪除標準時,應該優先走快速刪除程序。\n點擊「確認」以保留快速刪除模板,若您認為快速刪除理由不合,點擊「取消」以移除快速刪除模板。'))) { @@ -123,7 +122,7 @@ Twinkle.copyvio.callbacks = { } if (mw.config.get('wgPageContentModel') === 'json') { - text = JSON.stringify([{ + tag = JSON.stringify([{ _addText: tag }]); } else if (mw.config.get('wgPageContentModel') === 'Scribunto') { From f4a6ffcbf5a2b15293221e21c9f4a035f22008bf Mon Sep 17 00:00:00 2001 From: sunny00217wm Date: Sun, 9 May 2021 22:15:16 +0800 Subject: [PATCH 3/5] remove unuse indexOf --- modules/twinklecopyvio.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/modules/twinklecopyvio.js b/modules/twinklecopyvio.js index acd22b91..4c54e6de 100644 --- a/modules/twinklecopyvio.js +++ b/modules/twinklecopyvio.js @@ -129,10 +129,7 @@ Twinkle.copyvio.callbacks = { Twinkle.copyvio.callbacks.tagginglua(pageobj, tag); return; } else if (['javascript', 'css', 'sanitized-css'].indexOf(mw.config.get('wgPageContentModel')) > -1) { - if (tag.indexOf('*/')) { - tag = tag.replace(/\*\//g, '*/'); - } - tag = '/* _addText: ' + tag + ' */'; + tag = '/* _addText: ' + tag.replace(/\*\//g, '*/') + ' */'; } pageobj.setPageText(tag); From 85e2a7676bc839d60a060ad499d12d5bc39b25f1 Mon Sep 17 00:00:00 2001 From: sunny00217wm Date: Sun, 9 May 2021 22:19:58 +0800 Subject: [PATCH 4/5] remove Twinkle.copyvio.callbacks.tagginglua --- modules/twinklecopyvio.js | 41 ++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/modules/twinklecopyvio.js b/modules/twinklecopyvio.js index 4c54e6de..3b76fe17 100644 --- a/modules/twinklecopyvio.js +++ b/modules/twinklecopyvio.js @@ -126,7 +126,25 @@ Twinkle.copyvio.callbacks = { _addText: tag }]); } else if (mw.config.get('wgPageContentModel') === 'Scribunto') { - Twinkle.copyvio.callbacks.tagginglua(pageobj, tag); + new mw.Api().parse(tag, { + onlypst: 1 + }).then(function (tag) { + var equals = ''; + while (tag.indexOf(']' + equals + ']') !== -1) { + equals += '='; + } + tag = "require('Module:Module wikitext')._addText([" + equals + '[' + tag + ']' + equals + ']);'; + + pageobj.setPageText(tag); + pageobj.setEditSummary(wgULS('本页面疑似侵犯著作权', '本頁面疑似侵犯版權')); + pageobj.setChangeTags(Twinkle.changeTags); + pageobj.setWatchlist(Twinkle.getPref('copyvioWatchPage')); + // pageobj.setCreateOption('recreate'); + pageobj.save(); + }, function (err) { + mw.log.error(err); + Morebits.status.error(wgULS('错误', '錯誤'), wgULS('无法展开wikitext', '無法展開wikitext')); + }); return; } else if (['javascript', 'css', 'sanitized-css'].indexOf(mw.config.get('wgPageContentModel')) > -1) { tag = '/* _addText: ' + tag.replace(/\*\//g, '*/') + ' */'; @@ -143,27 +161,6 @@ Twinkle.copyvio.callbacks = { pageobj.patrol(); } }, - tagginglua: function(pageobj, tag) { - new mw.Api().parse(tag, { - onlypst: 1 - }).then(function (tag) { - var equals = ''; - while (tag.indexOf(']' + equals + ']') !== -1) { - equals += '='; - } - tag = "require('Module:Module wikitext')._addText([" + equals + '[' + tag + ']' + equals + ']);'; - - pageobj.setPageText(tag); - pageobj.setEditSummary(wgULS('本页面疑似侵犯著作权', '本頁面疑似侵犯版權')); - pageobj.setChangeTags(Twinkle.changeTags); - pageobj.setWatchlist(Twinkle.getPref('copyvioWatchPage')); - // pageobj.setCreateOption('recreate'); - pageobj.save(); - }, function (err) { - mw.log.error(err); - Morebits.status.error(wgULS('错误', '錯誤'), wgULS('无法展开wikitext', '無法展開wikitext')); - }); - }, copyvioList: function(pageobj) { var text = pageobj.getPageText(); var output = ''; From 36b271918398d128e7c2443511f8f99aca653827 Mon Sep 17 00:00:00 2001 From: sunny00217wm Date: Mon, 10 May 2021 20:45:14 +0800 Subject: [PATCH 5/5] replace subst to safesubst --- modules/twinklecopyvio.js | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/modules/twinklecopyvio.js b/modules/twinklecopyvio.js index 3b76fe17..31bb8eb0 100644 --- a/modules/twinklecopyvio.js +++ b/modules/twinklecopyvio.js @@ -114,7 +114,7 @@ Twinkle.copyvio.callbacks = { }, taggingArticle: function(pageobj) { var params = pageobj.getCallbackParameters(); - var tag = '{{subst:Copyvio/auto|url=' + params.source.replace(/http/g, 'http').replace(/\n+/g, '\n').replace(/^\s*([^*])/gm, '* $1').replace(/^\* $/m, '') + '|OldRevision=' + mw.config.get('wgRevisionId') + '}}'; + var tag = '{{safeubst:Copyvio/auto|url=' + params.source.replace(/http/g, 'http').replace(/\n+/g, '\n').replace(/^\s*([^*])/gm, '* $1').replace(/^\* $/m, '') + '|OldRevision=' + mw.config.get('wgRevisionId') + '}}'; var text = pageobj.getPageText(); var oldcsd = text.match(/\{\{\s*(db(-\w*)?|d|delete)\s*(\|(?:\{\{[^{}]*\}\}|[^{}])*)?\}\}/i); if (oldcsd && confirm(wgULS('在页面上找到快速删除模板,要保留吗?\n\n当页面同时侵犯著作权又符合快速删除标准时,应该优先走快速删除程序。\n单击“确认”以保留快速删除模板,若您认为快速删除理由不合,单击“取消”以移除快速删除模板。', '在頁面上找到快速刪除模板,要保留嗎?\n\n當頁面同時侵犯版權又符合快速刪除標準時,應該優先走快速刪除程序。\n點擊「確認」以保留快速刪除模板,若您認為快速刪除理由不合,點擊「取消」以移除快速刪除模板。'))) { @@ -126,26 +126,11 @@ Twinkle.copyvio.callbacks = { _addText: tag }]); } else if (mw.config.get('wgPageContentModel') === 'Scribunto') { - new mw.Api().parse(tag, { - onlypst: 1 - }).then(function (tag) { - var equals = ''; - while (tag.indexOf(']' + equals + ']') !== -1) { - equals += '='; - } - tag = "require('Module:Module wikitext')._addText([" + equals + '[' + tag + ']' + equals + ']);'; - - pageobj.setPageText(tag); - pageobj.setEditSummary(wgULS('本页面疑似侵犯著作权', '本頁面疑似侵犯版權')); - pageobj.setChangeTags(Twinkle.changeTags); - pageobj.setWatchlist(Twinkle.getPref('copyvioWatchPage')); - // pageobj.setCreateOption('recreate'); - pageobj.save(); - }, function (err) { - mw.log.error(err); - Morebits.status.error(wgULS('错误', '錯誤'), wgULS('无法展开wikitext', '無法展開wikitext')); - }); - return; + var equals = ''; + while (tag.indexOf(']' + equals + ']') !== -1) { + equals += '='; + } + tag = "require('Module:Module wikitext')._addText([" + equals + '[' + tag + ']' + equals + ']);'; } else if (['javascript', 'css', 'sanitized-css'].indexOf(mw.config.get('wgPageContentModel')) > -1) { tag = '/* _addText: ' + tag.replace(/\*\//g, '*/') + ' */'; }