浏览代码

add uselang for special pages

Markus-Rost 4 年之前
父节点
当前提交
74888e649b
共有 2 个文件被更改,包括 6 次插入4 次删除
  1. 1 1
      cmds/wiki/general.js
  2. 5 3
      functions/special_page.js

+ 1 - 1
cmds/wiki/general.js

@@ -299,7 +299,7 @@ function gamepedia_check_wiki(lang, msg, title, wiki, cmd, reaction, spoiler = '
 				if ( !['mylanguage'].includes( specialpage ) ) {
 				if ( !['mylanguage'].includes( specialpage ) ) {
 					var pagelink = wiki.toLink(querypage.title, querystring, fragment);
 					var pagelink = wiki.toLink(querypage.title, querystring, fragment);
 					var embed = new MessageEmbed().setAuthor( body.query.general.sitename ).setTitle( querypage.title.escapeFormatting() ).setURL( pagelink ).setThumbnail( new URL(body.query.general.logo, wiki).href );
 					var embed = new MessageEmbed().setAuthor( body.query.general.sitename ).setTitle( querypage.title.escapeFormatting() ).setURL( pagelink ).setThumbnail( new URL(body.query.general.logo, wiki).href );
-					return fn.special_page(lang, msg, querypage.title, specialpage, embed, wiki, reaction, spoiler);
+					return fn.special_page(lang, msg, querypage, specialpage, embed, wiki, reaction, spoiler);
 				}
 				}
 			}
 			}
 			if ( querypage.ns === -2 ) {
 			if ( querypage.ns === -2 ) {

+ 5 - 3
functions/special_page.js

@@ -125,14 +125,16 @@ const descriptions = {
  * Processes special pages.
  * Processes special pages.
  * @param {import('../util/i18n.js')} lang - The user language.
  * @param {import('../util/i18n.js')} lang - The user language.
  * @param {import('discord.js').Message} msg - The Discord message.
  * @param {import('discord.js').Message} msg - The Discord message.
- * @param {String} title - The title of the special page.
+ * @param {Object} querypage - The details of the special page.
+ * @param {String} querypage.title - The title of the special page.
+ * @param {String} querypage.uselang - The language of the special page.
  * @param {String} specialpage - The canonical name of the special page.
  * @param {String} specialpage - The canonical name of the special page.
  * @param {import('discord.js').MessageEmbed} embed - The embed for the page.
  * @param {import('discord.js').MessageEmbed} embed - The embed for the page.
  * @param {import('../util/wiki.js')} wiki - The wiki for the page.
  * @param {import('../util/wiki.js')} wiki - The wiki for the page.
  * @param {import('discord.js').MessageReaction} reaction - The reaction on the message.
  * @param {import('discord.js').MessageReaction} reaction - The reaction on the message.
  * @param {String} spoiler - If the response is in a spoiler.
  * @param {String} spoiler - If the response is in a spoiler.
  */
  */
-function special_page(lang, msg, title, specialpage, embed, wiki, reaction, spoiler) {
+function special_page(lang, msg, {title, uselang = lang.lang}, specialpage, embed, wiki, reaction, spoiler) {
 	if ( overwrites.hasOwnProperty(specialpage) ) {
 	if ( overwrites.hasOwnProperty(specialpage) ) {
 		var args = title.split('/').slice(1,3);
 		var args = title.split('/').slice(1,3);
 		overwrites[specialpage](this, lang, msg, wiki, reaction, spoiler, args, embed);
 		overwrites[specialpage](this, lang, msg, wiki, reaction, spoiler, args, embed);
@@ -142,7 +144,7 @@ function special_page(lang, msg, title, specialpage, embed, wiki, reaction, spoi
 	if ( specialpage === 'recentchanges' && msg.isAdmin() ) {
 	if ( specialpage === 'recentchanges' && msg.isAdmin() ) {
 		embed.addField( lang.get('rcscript.title'), lang.get('rcscript.ad', ( patreons[msg?.guild?.id] || process.env.prefix ), '[RcGcDw](https://gitlab.com/piotrex43/RcGcDw)') );
 		embed.addField( lang.get('rcscript.title'), lang.get('rcscript.ad', ( patreons[msg?.guild?.id] || process.env.prefix ), '[RcGcDw](https://gitlab.com/piotrex43/RcGcDw)') );
 	}
 	}
-	got.get( wiki + 'api.php?action=query&meta=allmessages|siteinfo&siprop=general&amenableparser=true&amtitle=' + encodeURIComponent( title ) + '&ammessages=' + ( descriptions.hasOwnProperty(specialpage) ? descriptions[specialpage] : encodeURIComponent( specialpage ) + '-summary' ) + ( querypages.hasOwnProperty(specialpage) ? querypages[specialpage][0] : '' ) + '&format=json' ).then( response => {
+	got.get( wiki + 'api.php?uselang=' + uselang + '&action=query&meta=allmessages|siteinfo&siprop=general&amenableparser=true&amtitle=' + encodeURIComponent( title ) + '&ammessages=' + ( descriptions.hasOwnProperty(specialpage) ? descriptions[specialpage] : encodeURIComponent( specialpage ) + '-summary' ) + ( querypages.hasOwnProperty(specialpage) ? querypages[specialpage][0] : '' ) + '&format=json' ).then( response => {
 		var body = response.body;
 		var body = response.body;
 		if ( body && body.warnings ) log_warn(body.warnings);
 		if ( body && body.warnings ) log_warn(body.warnings);
 		if ( response.statusCode !== 200 || body?.batchcomplete === undefined ) {
 		if ( response.statusCode !== 200 || body?.batchcomplete === undefined ) {