Newer
Older
CrashLogBot / src / main / java / net / romvoid / crashbot / file / Patterns.java
@y.varenkov y.varenkov on 2 Aug 2021 2 KB add
package net.romvoid.crashbot.file;

import java.util.regex.Pattern;

public final class Patterns {

	public static final class Filenames {
		private final static String DATE = "(19|20)[0-9]{2}[- \\/.](0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])";
		private final static String TIME = "(?:[01]\\d|2[0123]).(?:[012345]\\d).(?:[012345]\\d)";

		public static final Pattern CRASHLOG = Pattern
				.compile("(crash-" + DATE + "_" + TIME + "-(client|server).(txt)|(message).(txt))");
		public static final Pattern LOGS_TXT = Pattern.compile("(latest|message).(txt|log)");
		public static final Pattern LOG_GZ = Pattern
				.compile("([12]\\d{3})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])-([1-9]).(log.gz)");
		public static final Pattern ARCHIVE = Pattern.compile("(tar|gz|zip|7z|rar)");

		public final static Pattern DISCORD_MSG_URL = Pattern
				.compile("(https:\\/\\/cdn.discordapp.com\\/attachments\\/)(\\d{17,20})\\/(\\d{17,20})\\/");
	}
	
	public static final class Url {
		public static final Pattern PASTEURL = Pattern.compile("https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,4}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)");
		public static final String DIVIDEURL = "((?:https?:\\/\\/)?\\.?(?:[-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9.-]+|(?:www.)[A-Za-z0-9.-]+)((?:\\/[\\+~%\\/.\\w-_]*)?\\??(?:[-\\+=&;%@.\\w_]*)#?(?:[.\\!\\/\\\\w]*))?";
	}

	public static final class Discord {
		public final static Pattern DISCORD_ID = Pattern.compile("\\d{17,20}"); // ID
		public final static Pattern FULL_USER_REF = Pattern.compile("(\\S.{0,30}\\S)\\s*#(\\d{4})"); // $1 -> username,
																										// $2
																										// ->
																										// discriminator
		public final static Pattern USER_MENTION = Pattern.compile("<@!?(\\d{17,20})>"); // $1 -> ID
		public final static Pattern CHANNEL_MENTION = Pattern.compile("<#(\\d{17,20})>"); // $1 -> ID
		public final static Pattern ROLE_MENTION = Pattern.compile("<@&(\\d{17,20})>"); // $1 -> ID
		public final static Pattern EMOTE_MENTION = Pattern.compile("<:(.{2,32}):(\\d{17,20})>");
	}
}