Explorar el Código

Merge branch 'master' of https://github.com/Markus-Rost/discord-wiki-bot

Markus-Rost hace 4 años
padre
commit
2226a81f3e

+ 0 - 8
cmds/eval.js

@@ -269,14 +269,6 @@ function removePatreons(guild, msg) {
 				console.log( '- Error while updating the RcGcDw: ' + dberror );
 				messages.push('Error while updating the RcGcDw: ' + dberror);
 			} );
-		} ).then( () => {
-			return client.query( 'DELETE FROM verifynotice WHERE guild = $1', [guild] ).then( () => {
-				console.log( '- Verification notices successfully deleted.' );
-				messages.push('Verification notices successfully deleted.');
-			}, dberror => {
-				console.log( '- Error while deleting the verification notices: ' + dberror );
-				messages.push('Error while deleting the verification notices: ' + dberror);
-			} );
 		} ).then( () => {
 			if ( !messages.length ) messages.push('No settings found that had to be removed.');
 			return messages;

+ 0 - 12
cmds/patreon.js

@@ -142,12 +142,6 @@ function cmd_patreon(lang, msg, args, line, wiki) {
 				}, dberror => {
 					console.log( '- Error while updating the RcGcDw: ' + dberror );
 				} );
-			} ).then( () => {
-				return client.query( 'DELETE FROM verifynotice WHERE guild = $1', [args[1]] ).then( () => {
-					console.log( '- Verification notices successfully deleted.' );
-				}, dberror => {
-					console.log( '- Error while deleting the verification notices: ' + dberror );
-				} );
 			} ).catch( error => {
 				if ( error ) console.log( '- Error while removing the patreon features: ' + error );
 			} ).finally( () => {
@@ -305,12 +299,6 @@ function cmd_patreon(lang, msg, args, line, wiki) {
 				}, dberror => {
 					console.log( '- Error while updating the RcGcDw: ' + dberror );
 				} );
-			} ).then( () => {
-				return client.query( 'DELETE FROM verifynotice WHERE guild IN (' + guilds.map( (guild, i) => '$' + ( i + 1 ) ).join(', ') + ')', guilds ).then( () => {
-					console.log( '- Verification notices successfully deleted.' );
-				}, dberror => {
-					console.log( '- Error while deleting the verification notices: ' + dberror );
-				} );
 			} ).catch( error => {
 				if ( error ) console.log( '- Error while removing the patreon features: ' + error );
 			} ).finally( () => {

+ 1 - 1
cmds/wiki/general.js

@@ -120,7 +120,7 @@ function gamepedia_check_wiki(lang, msg, title, wiki, cmd, reaction, spoiler = '
 			else minecraft.SYNTAX(lang, msg, wiki, invoke.substring(1), args, title, cmd, reaction, spoiler);
 			return;
 		}
-		if ( body.query.pages ) {
+		if ( body.query.pages && body.query.pages?.['-1']?.title !== '%1F' ) {
 			var querypages = Object.values(body.query.pages);
 			var querypage = querypages[0];
 			if ( body.query.redirects && body.query.redirects[0].from.split(':')[0] === body.query.namespaces['-1']['*'] && body.query.specialpagealiases.filter( sp => ['Mypage','Mytalk','MyLanguage'].includes( sp.realname ) ).map( sp => sp.aliases[0] ).includes( body.query.redirects[0].from.split(':').slice(1).join(':').split('/')[0].replace( / /g, '_' ) ) ) {

+ 1 - 0
dashboard/i18n/de.json

@@ -235,6 +235,7 @@
             "usergroup": "Wiki-Benutzergruppe:",
             "usergroup_and": "Benötige alle Benutzergruppen:"
         },
+        "help_notice": "<p>Die Hinweise unterstützen ein paar einfache Funktionen und Variablen.</p>\n<ul>\n<li><code class=\"form-button user-select\">$editcount</code> – Die aktuelle Anzahl von Bearbeitungen des Benutzers.</li>\n<li><code class=\"form-button user-select\">$accountage</code> – Das aktuelle Alter des Accounts des Benutzers in ganzen Tagen.</li>\n<li><code class=\"form-button user-select\">$postcount</code> – Die aktuelle Anzahl von Diskussionsbeiträgen des Benutzers (nur für Fandom Wikis).</li>\n<li><code class=\"form-button user-select\" data-after=\" }}\" data-before=\"{{#expr: \">{{#expr: 1+1}}</code> – Gibt des Wert eines Ausdrucks wieder.\n<ul>\n<li>Unterstützt nur Addition (<code class=\"form-button user-select\">+</code>) und Subtraction (<code class=\"form-button user-select\">-</code>).</li>\n</ul></li>\n<li><code class=\"form-button user-select\" data-after=\" |  |  }}\" data-before=\"{{#ifexpr: \">{{#ifexpr: 1 &gt; 1 | <i>wenn wahr</i> | <i>wenn falsch</i> }}</code> – Gibt Text abhängig vom Ergebnis eines Ausdrucks wieder.\n<ul>\n<li>Unterstützt <code class=\"form-button user-select\">&lt;</code>, <code class=\"form-button user-select\">&gt;</code>, <code class=\"form-button user-select\">=</code>, <code class=\"form-button user-select\">&lt;=</code>, <code class=\"form-button user-select\">&gt;=</code>, <code class=\"form-button user-select\">!=</code> und <code class=\"form-button user-select\">&lt;&gt;</code> sowie <code class=\"form-button user-select\">and</code> und <code class=\"form-button user-select\">or</code>.</li>\n</ul></li>\n</ul>",
         "new": "Neue Verifizierung",
         "notice": "Verifizierungshinweise"
     }

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
dashboard/i18n/hi.json


+ 1 - 0
dashboard/i18n/zh-hans.json

@@ -235,6 +235,7 @@
             "usergroup": "wiki 用户组:",
             "usergroup_and": "所有所需的用户组:"
         },
+        "help_notice": "<p>自定义提示也支持一些简单的函数与变量。</p>\n<ul>\n<li><code class=\"form-button user-select\">$editcount</code> – 用户的当前编辑次数。</li>\n<li><code class=\"form-button user-select\">$accountage</code> – 以天为单位的用户当前注册时长。</li>\n<li><code class=\"form-button user-select\">$postcount</code> – 用户当前讨论板帖子数(仅Fandom wiki可用)。</li>\n<li><code class=\"form-button user-select\" data-after=\" }}\" data-before=\"{{#expr: \">{{#expr: 1+1}}</code> – 返回表达式的运算结果。\n<ul>\n<li>仅支持加法<code class=\"form-button user-select\">+</code>和减法<code class=\"form-button user-select\">-</code>。</li>\n</ul></li>\n<li><code class=\"form-button user-select\" data-after=\" |  |  }}\" data-before=\"{{#ifexpr: \">{{#ifexpr: 1 &gt; 1 | <i>为真时显示的字符串</i> | <i>为假时显示的字符串</i> }}</code> – 根据表达式的运算结果返回不同的文本。\n<ul>\n<li>支持<code class=\"form-button user-select\">&lt;</code>、<code class=\"form-button user-select\">&gt;</code>、<code class=\"form-button user-select\">=</code>、<code class=\"form-button user-select\">&lt;=</code>、<code class=\"form-button user-select\">&gt;=</code>、<code class=\"form-button user-select\">!=</code>、<code class=\"form-button user-select\">&lt;&gt;</code>以及<code class=\"form-button user-select\">and</code>、<code class=\"form-button user-select\">or</code>。</li>\n</ul></li>\n</ul>",
         "new": "新的验证方式",
         "notice": "验证提示"
     }

+ 1 - 0
dashboard/i18n/zh-hant.json

@@ -235,6 +235,7 @@
             "usergroup": "wiki使用者群組:",
             "usergroup_and": "所有所需的使用者群組:"
         },
+        "help_notice": "<p>自訂提示也支援一些簡單的函數與變數。</p>\n<ul>\n<li><code class=\"form-button user-select\">$editcount</code> – 使用者目前的編輯次數。</li>\n<li><code class=\"form-button user-select\">$accountage</code> – 以天為單位的使用者目前的註冊時長。</li>\n<li><code class=\"form-button user-select\">$postcount</code> – 使用者目前的討論板貼文數(僅限Fandom wiki)。</li>\n<li><code class=\"form-button user-select\" data-after=\" }}\" data-before=\"{{#expr: \">{{#expr: 1+1}}</code> – 返回表達式的運算結果。\n<ul>\n<li>僅支援加法<code class=\"form-button user-select\">+</code>與減法<code class=\"form-button user-select\">-</code>。</li>\n</ul></li>\n<li><code class=\"form-button user-select\" data-after=\" |  |  }}\" data-before=\"{{#ifexpr: \">{{#ifexpr: 1 &gt; 1 | <i>為真時顯示的字串</i> | <i>為假時顯示的字串</i> }}</code> – 根據表達式的運算結果返回不同的文字。\n<ul>\n<li>支援<code class=\"form-button user-select\">&lt;</code>、<code class=\"form-button user-select\">&gt;</code>、<code class=\"form-button user-select\">=</code>、<code class=\"form-button user-select\">&lt;=</code>、<code class=\"form-button user-select\">&gt;=</code>、<code class=\"form-button user-select\">!=</code>、<code class=\"form-button user-select\">&lt;&gt;</code>以及<code class=\"form-button user-select\">and</code>、<code class=\"form-button user-select\">or</code>。</li>\n</ul></li>\n</ul>",
         "new": "新的驗證方式",
         "notice": "驗證提示"
     }

+ 2 - 2
dashboard/verification.js

@@ -269,7 +269,7 @@ function dashboard_verification(res, $, guild, args, dashboardLang) {
 				$('<img>').attr('src', '/src/channel.svg'),
 				$('<div>').text(dashboardLang.get('verification.new'))
 			).attr('href', `/guild/${guild.id}/verification/new${suffix}`) ),
-			( !guild.patreon || !rows.length ? '' :
+			( !rows.length ? '' :
 			$('<a class="channel" id="channel-notice">').append(
 				$('<img>').attr('src', '/src/channel.svg'),
 				$('<div>').text(dashboardLang.get('verification.notice'))
@@ -288,7 +288,7 @@ function dashboard_verification(res, $, guild, args, dashboardLang) {
 			$(`.channel#channel-${row.configid}`).addClass('selected');
 			createForm($, dashboardLang.get('verification.form.entry', false, row.configid), dashboardLang, row, guild.channels, guild.roles).attr('action', `/guild/${guild.id}/verification/${row.configid}`).appendTo('#text');
 		}
-		else if ( args[4] === 'notice' && guild.patreon && rows.length ) {
+		else if ( args[4] === 'notice' && rows.length ) {
 			$(`.channel#channel-notice`).addClass('selected');
 			return db.query( 'SELECT logchannel, onsuccess, onmatch FROM verifynotice WHERE guild = $1', [guild.id] ).then( ({rows:[row]}) => {
 				let curCat = null;

+ 43 - 51
functions/verify.js

@@ -176,19 +176,17 @@ function verify(lang, channel, member, username, wiki, rows, old_username = '')
 				if ( verified ) {
 					embed.setColor('#00FF00').setDescription( lang.get('verify.user_verified', member.toString(), '[' + escapeFormatting(username) + '](' + pagelink + ')', queryuser.gender) + ( rename ? '\n' + lang.get('verify.user_renamed', queryuser.gender) : '' ) );
 					var text = lang.get('verify.user_verified_reply', escapeFormatting(username), queryuser.gender);
+					var verifynotice = {
+						logchannel: '',
+						onsuccess: ''
+					};
 					var verify_promise = [
 						member.roles.add( roles, lang.get('verify.audit_reason', username) ).catch( error => {
 							log_error(error);
 							embed.setColor('#008800');
 							comment.push(lang.get('verify.failed_roles'));
-						} )
-					];
-					var verifynotice = {
-						logchannel: '',
-						onsuccess: ''
-					};
-					if ( patreons.hasOwnProperty(channel.guild.id) ) {
-						verify_promise.push(db.query( 'SELECT logchannel, onsuccess FROM verifynotice WHERE guild = $1', [channel.guild.id] ).then( ({rows:[row]}) => {
+						} ),
+						db.query( 'SELECT logchannel, onsuccess FROM verifynotice WHERE guild = $1', [channel.guild.id] ).then( ({rows:[row]}) => {
 							if ( !row ) return;
 							verifynotice.logchannel = row.logchannel;
 							if ( row.onsuccess ) verifynotice.onsuccess = parseNotice(row.onsuccess, {
@@ -199,8 +197,8 @@ function verify(lang, channel, member, username, wiki, rows, old_username = '')
 							}).trim();
 						}, dberror => {
 							console.log( '- Error while getting the notices: ' + dberror );
-						} ));
-					}
+						} )
+					];
 					if ( rename && member.displayName !== username ) {
 						if ( channel.guild.me.roles.highest.comparePositionTo(member.roles.highest) > 0 ) {
 							verify_promise.push(member.setNickname( username.substring(0, 32), lang.get('verify.audit_reason', username) ).catch( error => {
@@ -256,22 +254,20 @@ function verify(lang, channel, member, username, wiki, rows, old_username = '')
 				embed.setColor('#FFFF00').setDescription( lang.get('verify.user_matches', member.toString(), '[' + escapeFormatting(username) + '](' + pagelink + ')', queryuser.gender) );
 				result.content = lang.get('verify.user_matches_reply', escapeFormatting(username), queryuser.gender);
 				
-				if ( patreons.hasOwnProperty(channel.guild.id) ) {
-					return db.query( 'SELECT onmatch FROM verifynotice WHERE guild = $1', [channel.guild.id] ).then( ({rows:[row]}) => {
-						if ( !row?.onmatch ) return;
-						var onmatch = parseNotice(row.onmatch, {
-							editcount: queryuser.editcount,
-							postcount: queryuser.postcount,
-							accountage: Math.trunc(accountage),
-							dateformat: lang.get('dateformat')
-						});
-						if ( !onmatch.trim() ) return;
-						if ( channel.permissionsFor(channel.guild.me).has('EMBED_LINKS') ) embed.addField( lang.get('verify.notice'), onmatch );
-						else result.content += '\n\n**' + lang.get('verify.notice') + '** ' + onmatch;
-					}, dberror => {
-						console.log( '- Error while getting the notices: ' + dberror );
-					} );
-				}
+				return db.query( 'SELECT onmatch FROM verifynotice WHERE guild = $1', [channel.guild.id] ).then( ({rows:[row]}) => {
+					if ( !row?.onmatch ) return;
+					var onmatch = parseNotice(row.onmatch, {
+						editcount: queryuser.editcount,
+						postcount: queryuser.postcount,
+						accountage: Math.trunc(accountage),
+						dateformat: lang.get('dateformat')
+					});
+					if ( !onmatch.trim() ) return;
+					if ( channel.permissionsFor(channel.guild.me).has('EMBED_LINKS') ) embed.addField( lang.get('verify.notice'), onmatch );
+					else result.content += '\n\n**' + lang.get('verify.notice') + '** ' + onmatch;
+				}, dberror => {
+					console.log( '- Error while getting the notices: ' + dberror );
+				} );
 			}, error => {
 				if ( error ) console.log( '- Error while getting the Discord tag: ' + error );
 				embed.setColor('#000000').setDescription( lang.get('verify.error') );
@@ -340,19 +336,17 @@ function verify(lang, channel, member, username, wiki, rows, old_username = '')
 			if ( verified ) {
 				embed.setColor('#00FF00').setDescription( lang.get('verify.user_verified', member.toString(), '[' + escapeFormatting(username) + '](' + pagelink + ')', queryuser.gender) + ( rename ? '\n' + lang.get('verify.user_renamed', queryuser.gender) : '' ) );
 				var text = lang.get('verify.user_verified_reply', escapeFormatting(username), queryuser.gender);
+				var verifynotice = {
+					logchannel: '',
+					onsuccess: ''
+				};
 				var verify_promise = [
 					member.roles.add( roles, lang.get('verify.audit_reason', username) ).catch( error => {
 						log_error(error);
 						embed.setColor('#008800');
 						comment.push(lang.get('verify.failed_roles'));
-					} )
-				];
-				var verifynotice = {
-					logchannel: '',
-					onsuccess: ''
-				};
-				if ( patreons.hasOwnProperty(channel.guild.id) ) {
-					verify_promise.push(db.query( 'SELECT logchannel, onsuccess FROM verifynotice WHERE guild = $1', [channel.guild.id] ).then( ({rows:[row]}) => {
+					} ),
+					db.query( 'SELECT logchannel, onsuccess FROM verifynotice WHERE guild = $1', [channel.guild.id] ).then( ({rows:[row]}) => {
 						if ( !row ) return;
 						verifynotice.logchannel = row.logchannel;
 						if ( row.onsuccess ) verifynotice.onsuccess = parseNotice(row.onsuccess, {
@@ -362,8 +356,8 @@ function verify(lang, channel, member, username, wiki, rows, old_username = '')
 						}).trim();
 					}, dberror => {
 						console.log( '- Error while getting the notices: ' + dberror );
-					} ));
-				}
+					} )
+				];
 				if ( rename && member.displayName !== username ) {
 					if ( channel.guild.me.roles.highest.comparePositionTo(member.roles.highest) > 0 ) {
 						verify_promise.push(member.setNickname( username.substring(0, 32), lang.get('verify.audit_reason', username) ).catch( error => {
@@ -419,21 +413,19 @@ function verify(lang, channel, member, username, wiki, rows, old_username = '')
 			embed.setColor('#FFFF00').setDescription( lang.get('verify.user_matches', member.toString(), '[' + escapeFormatting(username) + '](' + pagelink + ')', queryuser.gender) );
 			result.content = lang.get('verify.user_matches_reply', escapeFormatting(username), queryuser.gender);
 				
-			if ( patreons.hasOwnProperty(channel.guild.id) ) {
-				return db.query( 'SELECT onmatch FROM verifynotice WHERE guild = $1', [channel.guild.id] ).then( ({rows:[row]}) => {
-					if ( !row?.onmatch ) return;
-					var onmatch = parseNotice(row.onmatch, {
-						editcount: queryuser.editcount,
-						accountage: Math.trunc(accountage),
-						dateformat: lang.get('dateformat')
-					});
-					if ( !onmatch.trim() ) return;
-					if ( channel.permissionsFor(channel.guild.me).has('EMBED_LINKS') ) embed.addField( lang.get('verify.notice'), onmatch );
-					else result.content += '\n\n**' + lang.get('verify.notice') + '** ' + onmatch;
-				}, dberror => {
-					console.log( '- Error while getting the notices: ' + dberror );
-				} );
-			}
+			return db.query( 'SELECT onmatch FROM verifynotice WHERE guild = $1', [channel.guild.id] ).then( ({rows:[row]}) => {
+				if ( !row?.onmatch ) return;
+				var onmatch = parseNotice(row.onmatch, {
+					editcount: queryuser.editcount,
+					accountage: Math.trunc(accountage),
+					dateformat: lang.get('dateformat')
+				});
+				if ( !onmatch.trim() ) return;
+				if ( channel.permissionsFor(channel.guild.me).has('EMBED_LINKS') ) embed.addField( lang.get('verify.notice'), onmatch );
+				else result.content += '\n\n**' + lang.get('verify.notice') + '** ' + onmatch;
+			}, dberror => {
+				console.log( '- Error while getting the notices: ' + dberror );
+			} );
 		}, error => {
 			console.log( '- Error while getting the Discord tag: ' + error );
 			embed.setColor('#000000').setDescription( lang.get('verify.error') );

+ 12 - 0
util/default.json

@@ -236,6 +236,18 @@
 			"regex": "(revi\\.wiki)",
 			"articlePath": "/wiki/",
 			"scriptPath": "/w/"
+		},
+		{
+			"name": "wiki-aventurica.de",
+			"regex": "((?:[a-z\\d-]{1,50}\\.)?wiki-aventurica\\.de)",
+			"articlePath": "/wiki/",
+			"scriptPath": "/de/"
+		},
+		{
+			"name": "pnpwiki.de",
+			"regex": "((?:www\\.)?pnpwiki\\.de)",
+			"articlePath": "/wiki/",
+			"scriptPath": "/w/"
 		}
 	]
 }

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio