ソースを参照

Fix custom cache breaker

Markus-Rost 6 年 前
コミット
0b46e81f6f
1 ファイル変更14 行追加14 行削除
  1. 14 14
      main.js

+ 14 - 14
main.js

@@ -584,7 +584,7 @@ function check_wiki(lang, msg, title, wiki, cmd, reaction, spoiler = '', queryst
 	else {
 		var noRedirect = ( /(?:^|&)redirect=no(?:&|$)/.test(querystring) || /(?:^|&)action=(?!view(?:&|$))/.test(querystring) );
 		request( {
-			uri: wiki + 'api.php?action=query&meta=siteinfo&siprop=general|namespaces|specialpagealiases&iwurl=true' + ( noRedirect ? '' : '&redirects=true' ) + '&prop=pageimages|categoryinfo|pageprops|extracts&ppprop=description&exsentences=10&exintro=true&explaintext=true&titles=' + encodeURIComponent( title ) + '&format=json',
+			uri: wiki + 'api.php?action=query&meta=siteinfo&siprop=general|namespaces|specialpagealiases&iwurl=true' + ( noRedirect ? '' : '&redirects=true' ) + '&prop=pageimages|categoryinfo|pageprops|extracts&piprop=original|name&ppprop=description&exsentences=10&exintro=true&explaintext=true&titles=' + encodeURIComponent( title ) + '&format=json',
 			json: true
 		}, function( error, response, body ) {
 			if ( body && body.warnings ) log_warn(body.warnings);
@@ -650,7 +650,7 @@ function check_wiki(lang, msg, title, wiki, cmd, reaction, spoiler = '', queryst
 					}
 					else if ( ( querypage.missing !== undefined && querypage.known === undefined && !( noRedirect || querypage.categoryinfo ) ) || querypage.invalid !== undefined ) {
 						request( {
-							uri: wiki + 'api.php?action=query&prop=pageimages|categoryinfo|pageprops|extracts&ppprop=description&exsentences=10&exintro=true&explaintext=true&generator=search&gsrnamespace=4|12|14|' + Object.values(body.query.namespaces).filter( ns => ns.content !== undefined ).map( ns => ns.id ).join('|') + '&gsrlimit=1&gsrsearch=' + encodeURIComponent( title ) + '&format=json',
+							uri: wiki + 'api.php?action=query&prop=pageimages|categoryinfo|pageprops|extracts&piprop=original|name&ppprop=description&exsentences=10&exintro=true&explaintext=true&generator=search&gsrnamespace=4|12|14|' + Object.values(body.query.namespaces).filter( ns => ns.content !== undefined ).map( ns => ns.id ).join('|') + '&gsrlimit=1&gsrsearch=' + encodeURIComponent( title ) + '&format=json',
 							json: true
 						}, function( srerror, srresponse, srbody ) {
 							if ( srbody && srbody.warnings ) log_warn(srbody.warnings);
@@ -677,8 +677,8 @@ function check_wiki(lang, msg, title, wiki, cmd, reaction, spoiler = '', queryst
 										if ( extract.length > 2000 ) extract = extract.substring(0, 2000) + '\u2026';
 										embed.setDescription( extract );
 									}
-									if ( querypage.pageimage && querypage.title !== body.query.general.mainpage ) {
-										var pageimage = wiki.toLink() + 'Special:FilePath/' + querypage.pageimage + '?v=' + Date.now();
+									if ( querypage.pageimage && querypage.original && querypage.title !== body.query.general.mainpage ) {
+										var pageimage = querypage.original.source + '?v=' + Date.now();
 										if ( querypage.ns === 6 ) {
 											if ( msg.showEmbed() && /\.(?:png|jpg|jpeg|gif)$/.test(querypage.pageimage.toLowerCase()) ) embed.setImage( pageimage );
 											else if ( msg.uploadFiles() ) embed.attachFiles( [{attachment:pageimage,name:( spoiler ? 'SPOILER ' : '' ) + querypage.pageimage}] );
@@ -736,8 +736,8 @@ function check_wiki(lang, msg, title, wiki, cmd, reaction, spoiler = '', queryst
 							if ( extract.length > 2000 ) extract = extract.substring(0, 2000) + '\u2026';
 							embed.setDescription( extract );
 						}
-						if ( querypage.pageimage && querypage.title !== body.query.general.mainpage ) {
-							var pageimage = wiki.toLink() + 'Special:FilePath/' + querypage.pageimage + '?v=' + Date.now();
+						if ( querypage.pageimage && querypage.original && querypage.title !== body.query.general.mainpage ) {
+							var pageimage = querypage.original.source + '?v=' + Date.now();
 							if ( querypage.ns === 6 ) {
 								if ( msg.showEmbed() && /\.(?:png|jpg|jpeg|gif)$/.test(querypage.pageimage.toLowerCase()) ) embed.setImage( pageimage );
 								else if ( msg.uploadFiles() ) embed.attachFiles( [{attachment:pageimage,name:( spoiler ? 'SPOILER ' : '' ) + querypage.pageimage}] );
@@ -862,8 +862,8 @@ function cmd_user(lang, msg, namespace, username, wiki, linksuffix, querypage, c
 							if ( extract.length > 2000 ) extract = extract.substring(0, 2000) + '\u2026';
 							embed.setDescription( extract );
 						}
-						if ( querypage.pageimage ) {
-							var pageimage = wiki.toLink() + 'Special:FilePath/' + querypage.pageimage + '?v=' + Date.now();
+						if ( querypage.pageimage && querypage.original ) {
+							var pageimage = querypage.original.source + '?v=' + Date.now();
 							embed.setThumbnail( pageimage );
 						} else embed.setThumbnail( ( body.query.general.logo.startsWith( '//' ) ? 'https:' : '' ) + body.query.general.logo );
 						
@@ -976,8 +976,8 @@ function cmd_user(lang, msg, namespace, username, wiki, linksuffix, querypage, c
 							if ( extract.length > 2000 ) extract = extract.substring(0, 2000) + '\u2026';
 							embed.setDescription( extract );
 						}
-						if ( querypage.pageimage ) {
-							var pageimage = wiki.toLink() + 'Special:FilePath/' + querypage.pageimage + '?v=' + Date.now();
+						if ( querypage.pageimage && querypage.original ) {
+							var pageimage = querypage.original.source + '?v=' + Date.now();
 							embed.setThumbnail( pageimage );
 						} else embed.setThumbnail( ( body.query.general.logo.startsWith( '//' ) ? 'https:' : '' ) + body.query.general.logo );
 						
@@ -1446,7 +1446,7 @@ function cmd_diffsend(lang, msg, args, wiki, reaction, spoiler, compare) {
 
 function cmd_random(lang, msg, wiki, reaction, spoiler) {
 	request( {
-		uri: wiki + 'api.php?action=query&meta=siteinfo&siprop=general&prop=pageimages|pageprops|extracts&ppprop=description&exsentences=10&exintro=true&explaintext=true&generator=random&grnnamespace=0&format=json',
+		uri: wiki + 'api.php?action=query&meta=siteinfo&siprop=general&prop=pageimages|pageprops|extracts&piprop=original|name&ppprop=description&exsentences=10&exintro=true&explaintext=true&generator=random&grnnamespace=0&format=json',
 		json: true
 	}, function( error, response, body ) {
 		if ( body && body.warnings ) log_warn(body.warnings);
@@ -1474,8 +1474,8 @@ function cmd_random(lang, msg, wiki, reaction, spoiler) {
 				if ( extract.length > 2000 ) extract = extract.substring(0, 2000) + '\u2026';
 				embed.setDescription( extract );
 			}
-			if ( querypage.pageimage && querypage.title !== body.query.general.mainpage ) {
-				embed.setThumbnail( wiki.toLink() + 'Special:FilePath/' + querypage.pageimage + '?v=' + Date.now() );
+			if ( querypage.pageimage && querypage.original && querypage.title !== body.query.general.mainpage ) {
+				embed.setThumbnail( querypage.original.source + '?v=' + Date.now() );
 			}
 			else embed.setThumbnail( ( body.query.general.logo.startsWith( '//' ) ? 'https:' : '' ) + body.query.general.logo );
 			
@@ -2099,4 +2099,4 @@ async function graceful(code = 1) {
 }
 
 process.once( 'SIGINT', graceful );
-process.once( 'SIGTERM', graceful );
+process.once( 'SIGTERM', graceful );