|
@@ -1,7 +1,7 @@
|
|
const {defaultSettings} = require('../util/default.json');
|
|
const {defaultSettings} = require('../util/default.json');
|
|
|
|
+const Lang = require('../util/i18n.js');
|
|
|
|
+const allLangs = Lang.allLangs();
|
|
var db = require('../util/database.js');
|
|
var db = require('../util/database.js');
|
|
-var i18n = require('../i18n/allLangs.json');
|
|
|
|
-Object.keys(i18n.allLangs[1]).forEach( lang => i18n[lang] = require('../i18n/' + lang + '.json') );
|
|
|
|
|
|
|
|
var allSites = [];
|
|
var allSites = [];
|
|
const getAllSites = require('../util/allSites.js');
|
|
const getAllSites = require('../util/allSites.js');
|
|
@@ -20,15 +20,15 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
var guild = rows.find( row => !row.channel );
|
|
var guild = rows.find( row => !row.channel );
|
|
if ( !guild ) guild = Object.assign({prefix: process.env.prefix}, defaultSettings);
|
|
if ( !guild ) guild = Object.assign({prefix: process.env.prefix}, defaultSettings);
|
|
var prefix = guild.prefix;
|
|
var prefix = guild.prefix;
|
|
- var text = lang.settings.missing.replaceSave( '%1$s', '`' + prefix + ' settings lang`' ).replaceSave( '%2$s', '`' + prefix + ' settings wiki`' );
|
|
|
|
|
|
+ var text = lang.get('settings.missing').replaceSave( '%1$s', '`' + prefix + 'settings lang`' ).replaceSave( '%2$s', '`' + prefix + 'settings wiki`' );
|
|
if ( rows.length ) {
|
|
if ( rows.length ) {
|
|
- text = lang.settings.current + '\n' + lang.settings.currentlang + ' `' + i18n.allLangs[2][guild.lang] + '` - `' + prefix + ' settings lang`';
|
|
|
|
- if ( msg.guild.id in patreons ) text += '\n' + lang.settings.currentprefix + ' `' + prefix + '` - `' + prefix + ' settings prefix`';
|
|
|
|
- text += '\n' + lang.settings.currentinline + ' ' + ( guild.inline ? '~~' : '' ) + '`[[' + lang.search.page + ']]`' + ( guild.inline ? '~~' : '' ) + ' - `' + prefix + ' settings inline`';
|
|
|
|
- text += '\n' + lang.settings.currentwiki + ' ' + guild.wiki + ' - `' + prefix + ' settings wiki`';
|
|
|
|
- text += '\n' + lang.settings.currentchannel + ' `' + prefix + ' settings channel`\n';
|
|
|
|
- if ( rows.length === 1 ) text += lang.settings.nochannels;
|
|
|
|
- else text += rows.filter( row => row !== guild ).map( row => '<#' + row.channel + '>: ' + ( msg.guild.id in patreons ? '`' + i18n.allLangs[2][row.lang] + '` - ' : '' ) + '<' + row.wiki + '>' + ( msg.guild.id in patreons ? ' - ' + ( row.inline ? '~~' : '' ) + '`[[' + lang.search.page + ']]`' + ( row.inline ? '~~' : '' ) : '' ) ).join('\n');
|
|
|
|
|
|
+ text = lang.get('settings.current') + '\n' + lang.get('settings.currentlang') + ' `' + allLangs.names[guild.lang][1] + '` - `' + prefix + 'settings lang`';
|
|
|
|
+ if ( msg.guild.id in patreons ) text += '\n' + lang.get('settings.currentprefix') + ' `' + prefix.replace( / $/, '·' ) + '` - `' + prefix + 'settings prefix`';
|
|
|
|
+ text += '\n' + lang.get('settings.currentinline') + ' ' + ( guild.inline ? '~~' : '' ) + '`[[' + lang.get('search.page') + ']]`' + ( guild.inline ? '~~' : '' ) + ' - `' + prefix + 'settings inline`';
|
|
|
|
+ text += '\n' + lang.get('settings.currentwiki') + ' ' + guild.wiki + ' - `' + prefix + 'settings wiki`';
|
|
|
|
+ text += '\n' + lang.get('settings.currentchannel') + ' `' + prefix + 'settings channel`\n';
|
|
|
|
+ if ( rows.length === 1 ) text += lang.get('settings.nochannels');
|
|
|
|
+ else text += rows.filter( row => row !== guild ).map( row => '<#' + row.channel + '>: ' + ( msg.guild.id in patreons ? '`' + allLangs.names[row.lang][1] + '` - ' : '' ) + '<' + row.wiki + '>' + ( msg.guild.id in patreons ? ' - ' + ( row.inline ? '~~' : '' ) + '`[[' + lang.get('search.page') + ']]`' + ( row.inline ? '~~' : '' ) : '' ) ).join('\n');
|
|
}
|
|
}
|
|
|
|
|
|
if ( !args.length ) {
|
|
if ( !args.length ) {
|
|
@@ -43,40 +43,40 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
|
|
|
|
var channel = rows.find( row => row.channel === msg.channel.id );
|
|
var channel = rows.find( row => row.channel === msg.channel.id );
|
|
if ( !channel ) channel = Object.assign({channel:msg.channel.id}, guild);
|
|
if ( !channel ) channel = Object.assign({channel:msg.channel.id}, guild);
|
|
- text = lang.settings[prelang + 'current'];
|
|
|
|
|
|
+ text = lang.get('settings.' + prelang + 'current');
|
|
if ( msg.guild.id in patreons ) {
|
|
if ( msg.guild.id in patreons ) {
|
|
- text += '\n' + lang.settings.currentlang + ' `' + i18n.allLangs[2][channel.lang] + '` - `' + prefix + ' settings channel lang`';
|
|
|
|
- text += '\n' + lang.settings.currentinline + ' ' + ( channel.inline ? '~~' : '' ) + '`[[' + lang.search.page + ']]`' + ( channel.inline ? '~~' : '' ) + ' - `' + prefix + ' settings channel inline`';
|
|
|
|
|
|
+ text += '\n' + lang.get('settings.currentlang') + ' `' + allLangs.names[channel.lang][1] + '` - `' + prefix + 'settings channel lang`';
|
|
|
|
+ text += '\n' + lang.get('settings.currentinline') + ' ' + ( channel.inline ? '~~' : '' ) + '`[[' + lang.get('search.page') + ']]`' + ( channel.inline ? '~~' : '' ) + ' - `' + prefix + 'settings channel inline`';
|
|
}
|
|
}
|
|
- text += '\n' + lang.settings.currentwiki + ' ' + channel.wiki + ' - `' + prefix + ' settings channel wiki`';
|
|
|
|
|
|
+ text += '\n' + lang.get('settings.currentwiki') + ' ' + channel.wiki + ' - `' + prefix + 'settings channel wiki`';
|
|
|
|
|
|
if ( !args[1] ) return msg.replyMsg( text, {}, true );
|
|
if ( !args[1] ) return msg.replyMsg( text, {}, true );
|
|
|
|
|
|
args[0] = args[1].toLowerCase();
|
|
args[0] = args[1].toLowerCase();
|
|
- args[1] = args.slice(2).join(' ').toLowerCase().trim().replace( /^<(.*)>$/, '$1' );
|
|
|
|
|
|
+ args[1] = args.slice(2).join(' ').toLowerCase().trim().replace( /^<\s*(.*)>$/, '$1' );
|
|
}
|
|
}
|
|
- else args[1] = args.slice(1).join(' ').toLowerCase().trim().replace( /^<(.*)>$/, '$1' );
|
|
|
|
|
|
+ else args[1] = args.slice(1).join(' ').toLowerCase().trim().replace( /^<\s*(.*)>$/, '$1' );
|
|
|
|
|
|
if ( args[0] === 'wiki' ) {
|
|
if ( args[0] === 'wiki' ) {
|
|
prelang += 'wiki';
|
|
prelang += 'wiki';
|
|
- var wikihelp = '\n' + lang.settings.wikihelp.replaceSave( '%s', prefix + ' settings ' + prelang );
|
|
|
|
|
|
+ var wikihelp = '\n' + lang.get('settings.wikihelp').replaceSave( '%s', prefix + 'settings ' + prelang );
|
|
if ( !args[1] ) {
|
|
if ( !args[1] ) {
|
|
- if ( !rows.length ) return msg.replyMsg( lang.settings.wikimissing + wikihelp, {}, true );
|
|
|
|
- else return msg.replyMsg( lang.settings[prelang] + ' ' + ( channel || guild ).wiki + wikihelp, {}, true );
|
|
|
|
|
|
+ if ( !rows.length ) return msg.replyMsg( lang.get('settings.wikimissing') + wikihelp, {}, true );
|
|
|
|
+ else return msg.replyMsg( lang.get('settings.' + prelang) + ' ' + ( channel || guild ).wiki + wikihelp, {}, true );
|
|
}
|
|
}
|
|
var regex = args[1].match( /^(?:https:\/\/)?([a-z\d-]{1,50}\.(?:gamepedia\.com|(?:fandom\.com|wikia\.org)(?:(?!\/wiki\/)\/[a-z-]{1,8})?))(?:\/|$)/ );
|
|
var regex = args[1].match( /^(?:https:\/\/)?([a-z\d-]{1,50}\.(?:gamepedia\.com|(?:fandom\.com|wikia\.org)(?:(?!\/wiki\/)\/[a-z-]{1,8})?))(?:\/|$)/ );
|
|
if ( !regex ) {
|
|
if ( !regex ) {
|
|
var value = args[1].split(' ');
|
|
var value = args[1].split(' ');
|
|
if ( value.length === 2 && value[1] === '--force' ) return msg.reactEmoji('⏳', true).then( reaction => {
|
|
if ( value.length === 2 && value[1] === '--force' ) return msg.reactEmoji('⏳', true).then( reaction => {
|
|
- got.get( value[0] + 'api.php?action=query&format=json', {
|
|
|
|
|
|
+ got.get( value[0] + 'api.php?action=query&meta=siteinfo&siprop=general|extensions&format=json', {
|
|
responseType: 'json'
|
|
responseType: 'json'
|
|
} ).then( response => {
|
|
} ).then( response => {
|
|
var body = response.body;
|
|
var body = response.body;
|
|
- if ( response.statusCode !== 200 || !body || body.batchcomplete === undefined || !( body instanceof Object ) ) {
|
|
|
|
|
|
+ if ( response.statusCode !== 200 || !body || body.batchcomplete === undefined ) {
|
|
console.log( '- ' + response.statusCode + ': Error while testing the wiki: ' + ( body && body.error && body.error.info ) );
|
|
console.log( '- ' + response.statusCode + ': Error while testing the wiki: ' + ( body && body.error && body.error.info ) );
|
|
if ( reaction ) reaction.removeEmoji();
|
|
if ( reaction ) reaction.removeEmoji();
|
|
msg.reactEmoji('nowiki', true);
|
|
msg.reactEmoji('nowiki', true);
|
|
- return msg.replyMsg( lang.settings.wikiinvalid + wikihelp, {}, true );
|
|
|
|
|
|
+ return msg.replyMsg( lang.get('settings.wikiinvalid') + wikihelp, {}, true );
|
|
}
|
|
}
|
|
var sql = 'UPDATE discord SET wiki = ? WHERE guild = ? AND wiki = ?';
|
|
var sql = 'UPDATE discord SET wiki = ? WHERE guild = ? AND wiki = ?';
|
|
var sqlargs = [value[0], msg.guild.id, guild.wiki];
|
|
var sqlargs = [value[0], msg.guild.id, guild.wiki];
|
|
@@ -90,7 +90,7 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
if ( !rows.includes( channel ) ) {
|
|
if ( !rows.includes( channel ) ) {
|
|
if ( channel.wiki === value[0] ) {
|
|
if ( channel.wiki === value[0] ) {
|
|
if ( reaction ) reaction.removeEmoji();
|
|
if ( reaction ) reaction.removeEmoji();
|
|
- return msg.replyMsg( lang.settings[prelang + 'changed'] + ' ' + channel.wiki + wikihelp, {}, true );
|
|
|
|
|
|
+ return msg.replyMsg( lang.get('settings.' + prelang + 'changed') + ' ' + channel.wiki + wikihelp, {}, true );
|
|
}
|
|
}
|
|
sql = 'INSERT INTO discord(wiki, guild, channel, lang, prefix) VALUES(?, ?, ?, ?, ?)';
|
|
sql = 'INSERT INTO discord(wiki, guild, channel, lang, prefix) VALUES(?, ?, ?, ?, ?)';
|
|
sqlargs.push(guild.lang, guild.prefix);
|
|
sqlargs.push(guild.lang, guild.prefix);
|
|
@@ -99,7 +99,7 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
return db.run( sql, sqlargs, function (dberror) {
|
|
return db.run( sql, sqlargs, function (dberror) {
|
|
if ( dberror ) {
|
|
if ( dberror ) {
|
|
console.log( '- Error while editing the settings: ' + dberror );
|
|
console.log( '- Error while editing the settings: ' + dberror );
|
|
- msg.replyMsg( lang.settings.save_failed, {}, true );
|
|
|
|
|
|
+ msg.replyMsg( lang.get('settings.save_failed'), {}, true );
|
|
if ( reaction ) reaction.removeEmoji();
|
|
if ( reaction ) reaction.removeEmoji();
|
|
return dberror;
|
|
return dberror;
|
|
}
|
|
}
|
|
@@ -108,7 +108,7 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
else guild.wiki = value[0];
|
|
else guild.wiki = value[0];
|
|
if ( channel || !rows.some( row => row.channel === msg.channel.id ) ) wiki = value[0];
|
|
if ( channel || !rows.some( row => row.channel === msg.channel.id ) ) wiki = value[0];
|
|
if ( reaction ) reaction.removeEmoji();
|
|
if ( reaction ) reaction.removeEmoji();
|
|
- msg.replyMsg( lang.settings[prelang + 'changed'] + ' ' + value[0] + wikihelp, {}, true );
|
|
|
|
|
|
+ msg.replyMsg( lang.get('settings.' + prelang + 'changed') + ' ' + value[0] + wikihelp, {}, true );
|
|
var channels = rows.filter( row => row.channel && row.lang === guild.lang && row.wiki === guild.wiki && row.prefix === guild.prefix && row.inline === guild.inline ).map( row => row.channel );
|
|
var channels = rows.filter( row => row.channel && row.lang === guild.lang && row.wiki === guild.wiki && row.prefix === guild.prefix && row.inline === guild.inline ).map( row => row.channel );
|
|
if ( channels.length ) db.run( 'DELETE FROM discord WHERE channel IN (' + channels.map( row => '?' ).join('|') + ')', channels, function (delerror) {
|
|
if ( channels.length ) db.run( 'DELETE FROM discord WHERE channel IN (' + channels.map( row => '?' ).join('|') + ')', channels, function (delerror) {
|
|
if ( delerror ) {
|
|
if ( delerror ) {
|
|
@@ -122,7 +122,7 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
console.log( '- Error while testing the wiki: ' + ferror );
|
|
console.log( '- Error while testing the wiki: ' + ferror );
|
|
if ( reaction ) reaction.removeEmoji();
|
|
if ( reaction ) reaction.removeEmoji();
|
|
msg.reactEmoji('nowiki', true);
|
|
msg.reactEmoji('nowiki', true);
|
|
- return msg.replyMsg( lang.settings.wikiinvalid + wikihelp, {}, true );
|
|
|
|
|
|
+ return msg.replyMsg( lang.get('settings.wikiinvalid') + wikihelp, {}, true );
|
|
} );
|
|
} );
|
|
} );
|
|
} );
|
|
if ( allSites.some( site => site.wiki_domain === value.join('') + '.gamepedia.com' ) ) {
|
|
if ( allSites.some( site => site.wiki_domain === value.join('') + '.gamepedia.com' ) ) {
|
|
@@ -132,10 +132,10 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
if ( !value.join('').includes( '.' ) ) regex = ['https://' + value.join('') + '.fandom.com/',value.join('') + '.fandom.com'];
|
|
if ( !value.join('').includes( '.' ) ) regex = ['https://' + value.join('') + '.fandom.com/',value.join('') + '.fandom.com'];
|
|
else regex = ['https://' + value.join('').split('.')[1] + '.fandom.com/' + value.join('').split('.')[0] + '/',value.join('').split('.')[1] + '.fandom.com/' + value.join('').split('.')[0]];
|
|
else regex = ['https://' + value.join('').split('.')[1] + '.fandom.com/' + value.join('').split('.')[0] + '/',value.join('').split('.')[1] + '.fandom.com/' + value.join('').split('.')[0]];
|
|
} else {
|
|
} else {
|
|
- var text = lang.settings.wikiinvalid + wikihelp;
|
|
|
|
|
|
+ var text = lang.get('settings.wikiinvalid') + wikihelp;
|
|
var sites = allSites.filter( site => site.wiki_display_name.toLowerCase().includes( value.join(' ') ) );
|
|
var sites = allSites.filter( site => site.wiki_display_name.toLowerCase().includes( value.join(' ') ) );
|
|
if ( 0 < sites.length && sites.length < 21 ) {
|
|
if ( 0 < sites.length && sites.length < 21 ) {
|
|
- text += '\n\n' + lang.settings.foundwikis + '\n' + sites.map( site => site.wiki_display_name + ': `' + site.wiki_domain + '`' ).join('\n');
|
|
|
|
|
|
+ text += '\n\n' + lang.get('settings.foundwikis') + '\n' + sites.map( site => site.wiki_display_name + ': `' + site.wiki_domain + '`' ).join('\n');
|
|
}
|
|
}
|
|
return msg.replyMsg( text, {split:true}, true );
|
|
return msg.replyMsg( text, {split:true}, true );
|
|
}
|
|
}
|
|
@@ -151,7 +151,7 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
sqlargs[2] = msg.channel.id;
|
|
sqlargs[2] = msg.channel.id;
|
|
if ( !rows.includes( channel ) ) {
|
|
if ( !rows.includes( channel ) ) {
|
|
if ( channel.wiki === 'https://' + regex[1] + '/' ) {
|
|
if ( channel.wiki === 'https://' + regex[1] + '/' ) {
|
|
- return msg.replyMsg( lang.settings[prelang + 'changed'] + ' ' + channel.wiki + wikihelp, {}, true );
|
|
|
|
|
|
+ return msg.replyMsg( lang.get('settings.' + prelang + 'changed') + ' ' + channel.wiki + wikihelp, {}, true );
|
|
}
|
|
}
|
|
sql = 'INSERT INTO discord(wiki, guild, channel, lang, prefix) VALUES(?, ?, ?, ?, ?)';
|
|
sql = 'INSERT INTO discord(wiki, guild, channel, lang, prefix) VALUES(?, ?, ?, ?, ?)';
|
|
sqlargs.push(guild.lang, guild.prefix);
|
|
sqlargs.push(guild.lang, guild.prefix);
|
|
@@ -160,14 +160,14 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
return db.run( sql, sqlargs, function (dberror) {
|
|
return db.run( sql, sqlargs, function (dberror) {
|
|
if ( dberror ) {
|
|
if ( dberror ) {
|
|
console.log( '- Error while editing the settings: ' + dberror );
|
|
console.log( '- Error while editing the settings: ' + dberror );
|
|
- msg.replyMsg( lang.settings.save_failed, {}, true );
|
|
|
|
|
|
+ msg.replyMsg( lang.get('settings.save_failed'), {}, true );
|
|
return dberror;
|
|
return dberror;
|
|
}
|
|
}
|
|
console.log( '- Settings successfully updated.' );
|
|
console.log( '- Settings successfully updated.' );
|
|
if ( channel ) channel.wiki = 'https://' + regex[1] + '/';
|
|
if ( channel ) channel.wiki = 'https://' + regex[1] + '/';
|
|
else guild.wiki = 'https://' + regex[1] + '/';
|
|
else guild.wiki = 'https://' + regex[1] + '/';
|
|
if ( channel || !rows.some( row => row.channel === msg.channel.id ) ) wiki = 'https://' + regex[1] + '/';
|
|
if ( channel || !rows.some( row => row.channel === msg.channel.id ) ) wiki = 'https://' + regex[1] + '/';
|
|
- msg.replyMsg( lang.settings[prelang + 'changed'] + ' https://' + regex[1] + '/' + wikihelp, {}, true );
|
|
|
|
|
|
+ msg.replyMsg( lang.get('settings.' + prelang + 'changed') + ' https://' + regex[1] + '/' + wikihelp, {}, true );
|
|
var channels = rows.filter( row => row.channel && row.lang === guild.lang && row.wiki === guild.wiki && row.prefix === guild.prefix && row.inline === guild.inline ).map( row => row.channel );
|
|
var channels = rows.filter( row => row.channel && row.lang === guild.lang && row.wiki === guild.wiki && row.prefix === guild.prefix && row.inline === guild.inline ).map( row => row.channel );
|
|
if ( channels.length ) db.run( 'DELETE FROM discord WHERE channel IN (' + channels.map( row => '?' ).join('|') + ')', channels, function (delerror) {
|
|
if ( channels.length ) db.run( 'DELETE FROM discord WHERE channel IN (' + channels.map( row => '?' ).join('|') + ')', channels, function (delerror) {
|
|
if ( delerror ) {
|
|
if ( delerror ) {
|
|
@@ -180,17 +180,17 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
}
|
|
}
|
|
|
|
|
|
if ( args[0] === 'lang' ) {
|
|
if ( args[0] === 'lang' ) {
|
|
- if ( channel && !( msg.guild.id in patreons ) ) return msg.replyMsg( lang.patreon + ' <' + process.env.patreon + '>', {}, true );
|
|
|
|
|
|
+ if ( channel && !( msg.guild.id in patreons ) ) return msg.replyMsg( lang.get('patreon') + ' <' + process.env.patreon + '>', {}, true );
|
|
prelang += 'lang';
|
|
prelang += 'lang';
|
|
- var langhelp = '\n' + lang.settings.langhelp.replaceSave( '%s', prefix + ' settings ' + prelang ) + ' `' + Object.values(i18n.allLangs[1]).join('`, `') + '`';
|
|
|
|
|
|
+ var langhelp = '\n' + lang.get('settings.langhelp').replaceSave( '%s', prefix + 'settings ' + prelang ) + ' `' + Object.values(allLangs.names).map( val => val[0] ).join('`, `') + '`';
|
|
if ( !args[1] ) {
|
|
if ( !args[1] ) {
|
|
- return msg.replyMsg( lang.settings[prelang] + ' `' + i18n.allLangs[2][( channel || guild ).lang] + '`' + langhelp, {}, true );
|
|
|
|
|
|
+ return msg.replyMsg( lang.get('settings.' + prelang) + ' `' + allLangs.names[( channel || guild ).lang][1] + '`' + langhelp, {}, true );
|
|
}
|
|
}
|
|
- if ( !( args[1] in i18n.allLangs[0] ) ) {
|
|
|
|
- return msg.replyMsg( lang.settings.langinvalid + langhelp, {}, true );
|
|
|
|
|
|
+ if ( !( args[1] in allLangs.map ) ) {
|
|
|
|
+ return msg.replyMsg( lang.get('settings.langinvalid') + langhelp, {}, true );
|
|
}
|
|
}
|
|
var sql = 'UPDATE discord SET lang = ? WHERE guild = ? AND lang = ?';
|
|
var sql = 'UPDATE discord SET lang = ? WHERE guild = ? AND lang = ?';
|
|
- var sqlargs = [i18n.allLangs[0][args[1]], msg.guild.id, guild.lang];
|
|
|
|
|
|
+ var sqlargs = [allLangs.map[args[1]], msg.guild.id, guild.lang];
|
|
if ( !rows.length ) {
|
|
if ( !rows.length ) {
|
|
sql = 'INSERT INTO discord(lang, guild) VALUES(?, ?)';
|
|
sql = 'INSERT INTO discord(lang, guild) VALUES(?, ?)';
|
|
sqlargs.pop();
|
|
sqlargs.pop();
|
|
@@ -199,8 +199,8 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
sql = 'UPDATE discord SET lang = ? WHERE guild = ? AND channel = ?';
|
|
sql = 'UPDATE discord SET lang = ? WHERE guild = ? AND channel = ?';
|
|
sqlargs[2] = msg.channel.id;
|
|
sqlargs[2] = msg.channel.id;
|
|
if ( !rows.includes( channel ) ) {
|
|
if ( !rows.includes( channel ) ) {
|
|
- if ( channel.lang === i18n.allLangs[0][args[1]] ) {
|
|
|
|
- return msg.replyMsg( lang.settings[prelang + 'changed'] + ' `' + i18n.allLangs[2][channel.lang] + '`' + langhelp, {}, true );
|
|
|
|
|
|
+ if ( channel.lang === allLangs.map[args[1]] ) {
|
|
|
|
+ return msg.replyMsg( lang.get('settings.' + prelang + 'changed') + ' `' + allLangs.names[channel.lang][1] + '`' + langhelp, {}, true );
|
|
}
|
|
}
|
|
sql = 'INSERT INTO discord(lang, guild, channel, wiki, prefix) VALUES(?, ?, ?, ?, ?)';
|
|
sql = 'INSERT INTO discord(lang, guild, channel, wiki, prefix) VALUES(?, ?, ?, ?, ?)';
|
|
sqlargs.push(guild.wiki, guild.prefix);
|
|
sqlargs.push(guild.wiki, guild.prefix);
|
|
@@ -209,17 +209,17 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
return db.run( sql, sqlargs, function (dberror) {
|
|
return db.run( sql, sqlargs, function (dberror) {
|
|
if ( dberror ) {
|
|
if ( dberror ) {
|
|
console.log( '- Error while editing the settings: ' + dberror );
|
|
console.log( '- Error while editing the settings: ' + dberror );
|
|
- msg.replyMsg( lang.settings.save_failed, {}, true );
|
|
|
|
|
|
+ msg.replyMsg( lang.get('settings.save_failed'), {}, true );
|
|
return dberror;
|
|
return dberror;
|
|
}
|
|
}
|
|
console.log( '- Settings successfully updated.' );
|
|
console.log( '- Settings successfully updated.' );
|
|
- if ( channel ) channel.lang = i18n[i18n.allLangs[0][args[1]]];
|
|
|
|
|
|
+ if ( channel ) channel.lang = allLangs.map[args[1]];
|
|
else {
|
|
else {
|
|
- guild.lang = i18n[i18n.allLangs[0][args[1]]];
|
|
|
|
|
|
+ guild.lang = allLangs.map[args[1]];
|
|
if ( msg.guild.id in voice ) voice[msg.guild.id] = guild.lang;
|
|
if ( msg.guild.id in voice ) voice[msg.guild.id] = guild.lang;
|
|
}
|
|
}
|
|
- if ( channel || !( msg.guild.id in patreons ) || !rows.some( row => row.channel === msg.channel.id ) ) lang = i18n[i18n.allLangs[0][args[1]]];
|
|
|
|
- msg.replyMsg( lang.settings[prelang + 'changed'] + ' `' + i18n.allLangs[2][i18n.allLangs[0][args[1]]] + '`\n' + lang.settings.langhelp.replaceSave( '%s', prefix + ' settings ' + prelang ) + ' `' + Object.values(i18n.allLangs[1]).join('`, `') + '`', {}, true );
|
|
|
|
|
|
+ if ( channel || !( msg.guild.id in patreons ) || !rows.some( row => row.channel === msg.channel.id ) ) lang = new Lang(allLangs.map[args[1]]);
|
|
|
|
+ msg.replyMsg( lang.get('settings.' + prelang + 'changed') + ' `' + allLangs.names[allLangs.map[args[1]]][1] + '`\n' + lang.get('settings.langhelp').replaceSave( '%s', prefix + 'settings ' + prelang ) + ' `' + Object.values(allLangs.names).join('`, `') + '`', {}, true );
|
|
var channels = rows.filter( row => row.channel && row.lang === lang.lang && row.wiki === guild.wiki && row.prefix === guild.prefix && row.inline === guild.inline ).map( row => row.channel );
|
|
var channels = rows.filter( row => row.channel && row.lang === lang.lang && row.wiki === guild.wiki && row.prefix === guild.prefix && row.inline === guild.inline ).map( row => row.channel );
|
|
if ( channels.length ) db.run( 'DELETE FROM discord WHERE channel IN (' + channels.map( row => '?' ).join('|') + ')', channels, function (delerror) {
|
|
if ( channels.length ) db.run( 'DELETE FROM discord WHERE channel IN (' + channels.map( row => '?' ).join('|') + ')', channels, function (delerror) {
|
|
if ( delerror ) {
|
|
if ( delerror ) {
|
|
@@ -233,16 +233,17 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
|
|
|
|
if ( args[0] === 'prefix' && !channel ) {
|
|
if ( args[0] === 'prefix' && !channel ) {
|
|
if ( !( msg.guild.id in patreons ) ) {
|
|
if ( !( msg.guild.id in patreons ) ) {
|
|
- return msg.replyMsg( lang.patreon + ' <' + process.env.patreon + '>', {}, true );
|
|
|
|
|
|
+ return msg.replyMsg( lang.get('patreon') + ' <' + process.env.patreon + '>', {}, true );
|
|
}
|
|
}
|
|
- var prefixhelp = '\n' + lang.settings.prefixhelp.replaceSave( '%s', prefix + ' settings prefix' );
|
|
|
|
- if ( !args[1] ) {
|
|
|
|
- return msg.replyMsg( lang.settings.prefix + ' `' + prefix + '`' + prefixhelp, {}, true );
|
|
|
|
|
|
+ var prefixhelp = '\n' + lang.get('settings.prefixhelp').replaceSave( '%s', prefix + 'settings prefix' );
|
|
|
|
+ args[1] = args[1].replace( /(?<!\\)_$/, ' ' ).replace( /\\([_\W])/g, '$1' );
|
|
|
|
+ if ( !args[1].trim() ) {
|
|
|
|
+ return msg.replyMsg( lang.get('settings.prefix') + ' `' + prefix.replace( / $/, '·' ) + '`' + prefixhelp, {}, true );
|
|
}
|
|
}
|
|
- if ( args[1].includes( ' ' ) || args[1].includes( '`' ) || args[1].length > 100 ) {
|
|
|
|
- return msg.replyMsg( lang.settings.prefixinvalid + prefixhelp, {}, true );
|
|
|
|
|
|
+ if ( args[1].includes( '`' ) || args[1].length > 100 ) {
|
|
|
|
+ return msg.replyMsg( lang.get('settings.prefixinvalid') + prefixhelp, {}, true );
|
|
}
|
|
}
|
|
- if ( args[1] === 'reset' ) args[1] = process.env.prefix;
|
|
|
|
|
|
+ if ( args[1] === 'reset' || args[1] === 'default' ) args[1] = process.env.prefix;
|
|
var sql = 'UPDATE discord SET prefix = ? WHERE guild = ?';
|
|
var sql = 'UPDATE discord SET prefix = ? WHERE guild = ?';
|
|
var sqlargs = [args[1], msg.guild.id];
|
|
var sqlargs = [args[1], msg.guild.id];
|
|
if ( !rows.length ) {
|
|
if ( !rows.length ) {
|
|
@@ -251,23 +252,23 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
return db.run( sql, sqlargs, function (dberror) {
|
|
return db.run( sql, sqlargs, function (dberror) {
|
|
if ( dberror ) {
|
|
if ( dberror ) {
|
|
console.log( '- Error while editing the settings: ' + dberror );
|
|
console.log( '- Error while editing the settings: ' + dberror );
|
|
- msg.replyMsg( lang.settings.save_failed, {}, true );
|
|
|
|
|
|
+ msg.replyMsg( lang.get('settings.save_failed'), {}, true );
|
|
return dberror;
|
|
return dberror;
|
|
}
|
|
}
|
|
console.log( '- Settings successfully updated.' );
|
|
console.log( '- Settings successfully updated.' );
|
|
guild.prefix = args[1];
|
|
guild.prefix = args[1];
|
|
msg.client.shard.broadcastEval( `global.patreons['${msg.guild.id}'] = '${args[1]}'` );
|
|
msg.client.shard.broadcastEval( `global.patreons['${msg.guild.id}'] = '${args[1]}'` );
|
|
- msg.replyMsg( lang.settings.prefixchanged + ' `' + args[1] + '`\n' + lang.settings.prefixhelp.replaceSave( '%s', args[1] + ' settings prefix' ), {}, true );
|
|
|
|
|
|
+ msg.replyMsg( lang.get('settings.prefixchanged') + ' `' + args[1].replace( / $/, '·' ) + '`\n' + lang.get('settings.prefixhelp').replaceSave( '%s', args[1] + 'settings prefix' ), {}, true );
|
|
} );
|
|
} );
|
|
}
|
|
}
|
|
|
|
|
|
if ( args[0] === 'inline' ) {
|
|
if ( args[0] === 'inline' ) {
|
|
- if ( channel && !( msg.guild.id in patreons ) ) return msg.replyMsg( lang.patreon + ' <' + process.env.patreon + '>', {}, true );
|
|
|
|
|
|
+ if ( channel && !( msg.guild.id in patreons ) ) return msg.replyMsg( lang.get('patreon') + ' <' + process.env.patreon + '>', {}, true );
|
|
prelang += 'inline';
|
|
prelang += 'inline';
|
|
var toggle = 'inline ' + ( ( channel || guild ).inline ? 'disabled' : 'enabled' );
|
|
var toggle = 'inline ' + ( ( channel || guild ).inline ? 'disabled' : 'enabled' );
|
|
- var inlinehelp = '\n' + lang.settings[toggle].help.replaceSave( '%1$s', prefix + ' settings ' + prelang + ' toggle' ).replaceSave( /%2\$s/g, lang.search.page );
|
|
|
|
|
|
+ var inlinehelp = '\n' + lang.get('settings.' + toggle + '.help').replaceSave( '%1$s', prefix + 'settings ' + prelang + ' toggle' ).replaceSave( /%2\$s/g, lang.get('search.page') );
|
|
if ( args[1] !== 'toggle' ) {
|
|
if ( args[1] !== 'toggle' ) {
|
|
- return msg.replyMsg( lang.settings[toggle][prelang] + inlinehelp, {}, true );
|
|
|
|
|
|
+ return msg.replyMsg( lang.get('settings.' + toggle + '.' + prelang) + inlinehelp, {}, true );
|
|
}
|
|
}
|
|
var value = ( ( channel || guild ).inline ? null : 1 );
|
|
var value = ( ( channel || guild ).inline ? null : 1 );
|
|
var sql = 'UPDATE discord SET inline = ? WHERE guild = ?';
|
|
var sql = 'UPDATE discord SET inline = ? WHERE guild = ?';
|
|
@@ -286,14 +287,14 @@ function cmd_settings(lang, msg, args, line, wiki) {
|
|
return db.run( sql, sqlargs, function (dberror) {
|
|
return db.run( sql, sqlargs, function (dberror) {
|
|
if ( dberror ) {
|
|
if ( dberror ) {
|
|
console.log( '- Error while editing the settings: ' + dberror );
|
|
console.log( '- Error while editing the settings: ' + dberror );
|
|
- msg.replyMsg( lang.settings.save_failed, {}, true );
|
|
|
|
|
|
+ msg.replyMsg( lang.get('settings.save_failed'), {}, true );
|
|
return dberror;
|
|
return dberror;
|
|
}
|
|
}
|
|
console.log( '- Settings successfully updated.' );
|
|
console.log( '- Settings successfully updated.' );
|
|
if ( channel ) channel.inline = value;
|
|
if ( channel ) channel.inline = value;
|
|
else guild.inline = value;
|
|
else guild.inline = value;
|
|
toggle = 'inline ' + ( ( channel || guild ).inline ? 'disabled' : 'enabled' );
|
|
toggle = 'inline ' + ( ( channel || guild ).inline ? 'disabled' : 'enabled' );
|
|
- msg.replyMsg( lang.settings[toggle][prelang + 'changed'] + '\n' + lang.settings[toggle].help.replaceSave( '%1$s', prefix + ' settings ' + prelang + ' toggle' ).replaceSave( /%2\$s/g, lang.search.page ), {}, true );
|
|
|
|
|
|
+ msg.replyMsg( lang.get('settings.' + toggle + '.' + prelang + 'changed') + '\n' + lang.get('settings.' + toggle + '.help').replaceSave( '%1$s', prefix + 'settings ' + prelang + ' toggle' ).replaceSave( /%2\$s/g, lang.get('search.page') ), {}, true );
|
|
var channels = rows.filter( row => row.channel && row.lang === guild.lang && row.wiki === guild.wiki && row.prefix === guild.prefix && row.inline === guild.inline ).map( row => row.channel );
|
|
var channels = rows.filter( row => row.channel && row.lang === guild.lang && row.wiki === guild.wiki && row.prefix === guild.prefix && row.inline === guild.inline ).map( row => row.channel );
|
|
if ( channels.length ) db.run( 'DELETE FROM discord WHERE channel IN (' + channels.map( row => '?' ).join('|') + ')', channels, function (delerror) {
|
|
if ( channels.length ) db.run( 'DELETE FROM discord WHERE channel IN (' + channels.map( row => '?' ).join('|') + ')', channels, function (delerror) {
|
|
if ( delerror ) {
|
|
if ( delerror ) {
|