浏览代码

embed for random

Markus-Rost 6 年之前
父节点
当前提交
dccaa9012f
共有 1 个文件被更改,包括 12 次插入3 次删除
  1. 12 3
      main.js

+ 12 - 3
main.js

@@ -857,10 +857,10 @@ function cmd_diffsend(lang, msg, args, wiki) {
 function cmd_random(lang, msg, wiki) {
 	msg.reactEmoji('⏳').then( function( reaction ) {
 		request( {
-			uri: 'https://' + wiki + '.gamepedia.com/api.php?action=query&format=json&list=random&rnnamespace=0',
+			uri: 'https://' + wiki + '.gamepedia.com/api.php?action=query&format=json&meta=siteinfo&siprop=general&prop=pageimages|extracts&exintro=true&explaintext=true&generator=random&grnnamespace=0',
 			json: true
 		}, function( error, response, body ) {
-			if ( error || !response || !body || body.batchcomplete == undefined || !body.query || !body.query.random[0] ) {
+			if ( error || !response || !body || body.batchcomplete == undefined || !body.query || !body.query.pages ) {
 				if ( response && response.request && response.request.uri && response.request.uri.href == 'https://www.gamepedia.com/' ) {
 					console.log( '- Dieses Wiki existiert nicht! ' + ( error ? error.message : ( body ? ( body.error ? body.error.info : '' ) : '' ) ) );
 					msg.reactEmoji('nowiki');
@@ -871,7 +871,16 @@ function cmd_random(lang, msg, wiki) {
 				}
 			}
 			else {
-				msg.channel.send( '🎲 https://' + wiki + '.gamepedia.com/' + body.query.random[0].title.toTitle() );
+				querypage = Object.values(body.query.pages)[0];
+				var pagelink = 'https://' + wiki + '.gamepedia.com/' + querypage.title.toTitle();
+				var embed = new Discord.RichEmbed().setAuthor( body.query.general.sitename ).setTitle( querypage.title ).setURL( pagelink );
+				if ( querypage.extract ) embed.setDescription( querypage.extract );
+				if ( querypage.pageimage ) {
+					var pageimage = 'https://' + wiki + '.gamepedia.com/Special:FilePath/' + querypage.pageimage;
+					if ( querypage.ns == 6 ) embed.setImage( pageimage );
+					else embed.setThumbnail( pageimage );
+				} else embed.setThumbnail( body.query.general.logo );
+				msg.channel.send( '🎲 ' + pagelink, embed );
 			}
 			
 			if ( reaction ) reaction.removeEmoji();