|
@@ -1,6 +1,7 @@
|
|
const htmlparser = require('htmlparser2');
|
|
const htmlparser = require('htmlparser2');
|
|
const {MessageEmbed} = require('discord.js');
|
|
const {MessageEmbed} = require('discord.js');
|
|
const global_block = require('../../../functions/global_block.js');
|
|
const global_block = require('../../../functions/global_block.js');
|
|
|
|
+const parse_page = require('../../../functions/parse_page.js');
|
|
const extract_desc = require('../../../util/extract_desc.js');
|
|
const extract_desc = require('../../../util/extract_desc.js');
|
|
const {timeoptions, usergroups} = require('../../../util/default.json');
|
|
const {timeoptions, usergroups} = require('../../../util/default.json');
|
|
|
|
|
|
@@ -33,7 +34,7 @@ function gamepedia_user(lang, msg, namespace, username, wiki, querystring, fragm
|
|
if ( querypage.missing !== undefined || querypage.ns === -1 ) msg.reactEmoji('error');
|
|
if ( querypage.missing !== undefined || querypage.ns === -1 ) msg.reactEmoji('error');
|
|
else {
|
|
else {
|
|
var pagelink = wiki.toLink(querypage.title, querystring.toTitle(), fragment);
|
|
var pagelink = wiki.toLink(querypage.title, querystring.toTitle(), fragment);
|
|
- var embed = new MessageEmbed().setTitle( querypage.title.escapeFormatting() ).setURL( pagelink );
|
|
|
|
|
|
+ var embed = new MessageEmbed().setAuthor( body.query.general.sitename ).setTitle( querypage.title.escapeFormatting() ).setURL( pagelink );
|
|
if ( querypage.pageprops && querypage.pageprops.displaytitle ) {
|
|
if ( querypage.pageprops && querypage.pageprops.displaytitle ) {
|
|
var displaytitle = htmlToDiscord( querypage.pageprops.displaytitle );
|
|
var displaytitle = htmlToDiscord( querypage.pageprops.displaytitle );
|
|
if ( displaytitle.length > 250 ) displaytitle = displaytitle.substring(0, 250) + '\u2026';
|
|
if ( displaytitle.length > 250 ) displaytitle = displaytitle.substring(0, 250) + '\u2026';
|
|
@@ -52,9 +53,9 @@ function gamepedia_user(lang, msg, namespace, username, wiki, querystring, fragm
|
|
if ( querypage.pageimage && querypage.original ) {
|
|
if ( querypage.pageimage && querypage.original ) {
|
|
var pageimage = querypage.original.source;
|
|
var pageimage = querypage.original.source;
|
|
embed.setThumbnail( pageimage );
|
|
embed.setThumbnail( pageimage );
|
|
- }
|
|
|
|
|
|
+ } else embed.setThumbnail( logoToURL(body.query.general) );
|
|
|
|
|
|
- msg.sendChannel( spoiler + '<' + pagelink + '>' + spoiler, {embed} );
|
|
|
|
|
|
+ msg.sendChannel( spoiler + '<' + pagelink + '>' + spoiler, {embed} ).then( message => parse_page(message, querypage.title, embed, wiki, ( querypage.title === body.query.general.mainpage ? '' : logoToURL(body.query.general) )) );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
@@ -206,9 +207,9 @@ function gamepedia_user(lang, msg, namespace, username, wiki, querystring, fragm
|
|
if ( querypage.pageimage && querypage.original ) {
|
|
if ( querypage.pageimage && querypage.original ) {
|
|
var pageimage = querypage.original.source;
|
|
var pageimage = querypage.original.source;
|
|
embed.setThumbnail( pageimage );
|
|
embed.setThumbnail( pageimage );
|
|
- } else embed.setThumbnail( ( /^(?:https?:)?\/\//.test(body.query.general.logo) ? body.query.general.logo.replace( /^(?:https?:)?\/\//, 'https://' ) : body.query.general.server + ( body.query.general.logo.startsWith( '/' ) ? '' : '/' ) + body.query.general.logo ) );
|
|
|
|
|
|
+ } else embed.setThumbnail( logoToURL(body.query.general) );
|
|
|
|
|
|
- msg.sendChannel( spoiler + '<' + pagelink + '>' + spoiler, {embed} );
|
|
|
|
|
|
+ msg.sendChannel( spoiler + '<' + pagelink + '>' + spoiler, {embed} ).then( message => parse_page(message, querypage.title, embed, wiki, ( querypage.title === body.query.general.mainpage ? '' : logoToURL(body.query.general) )) );
|
|
}
|
|
}
|
|
|
|
|
|
if ( reaction ) reaction.removeEmoji();
|
|
if ( reaction ) reaction.removeEmoji();
|
|
@@ -431,6 +432,18 @@ function gamepedia_user(lang, msg, namespace, username, wiki, querystring, fragm
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * Turns the siteinfo logo into an URL.
|
|
|
|
+ * @param {Object} arg - The siteinfo from the wiki.
|
|
|
|
+ * @param {String} arg.logo - The logo from the wiki.
|
|
|
|
+ * @param {String} arg.server - The server URL from the wiki.
|
|
|
|
+ * @returns {String}
|
|
|
|
+ */
|
|
|
|
+function logoToURL({logo, server: serverURL}) {
|
|
|
|
+ if ( !/^(?:https?:)?\/\//.test(logo) ) logo = serverURL + ( logo.startsWith( '/' ) ? '' : '/' ) + logo;
|
|
|
|
+ return logo.replace( /^(?:https?:)?\/\//, 'https://' );
|
|
|
|
+}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Change HTML text to plain text.
|
|
* Change HTML text to plain text.
|
|
* @param {String} html - The text in HTML.
|
|
* @param {String} html - The text in HTML.
|