commit
1b182f75ab
14 changed files with 652 additions and 0 deletions
@ -0,0 +1,127 @@ |
|||
|
|||
# Created by https://www.gitignore.io/api/kotlin,gradle,intellij+all |
|||
|
|||
### Intellij+all ### |
|||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm |
|||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 |
|||
|
|||
# User-specific stuff |
|||
.idea/**/workspace.xml |
|||
.idea/**/tasks.xml |
|||
.idea/**/usage.statistics.xml |
|||
.idea/**/dictionaries |
|||
.idea/**/shelf |
|||
|
|||
# Generated files |
|||
.idea/**/contentModel.xml |
|||
|
|||
# Sensitive or high-churn files |
|||
.idea/**/dataSources/ |
|||
.idea/**/dataSources.ids |
|||
.idea/**/dataSources.local.xml |
|||
.idea/**/sqlDataSources.xml |
|||
.idea/**/dynamic.xml |
|||
.idea/**/uiDesigner.xml |
|||
.idea/**/dbnavigator.xml |
|||
|
|||
# Gradle |
|||
.idea/**/gradle.xml |
|||
.idea/**/libraries |
|||
|
|||
# Gradle and Maven with auto-import |
|||
# When using Gradle or Maven with auto-import, you should exclude module files, |
|||
# since they will be recreated, and may cause churn. Uncomment if using |
|||
# auto-import. |
|||
# .idea/modules.xml |
|||
# .idea/*.iml |
|||
# .idea/modules |
|||
|
|||
# CMake |
|||
cmake-build-*/ |
|||
|
|||
# Mongo Explorer plugin |
|||
.idea/**/mongoSettings.xml |
|||
|
|||
# File-based project format |
|||
*.iws |
|||
|
|||
# IntelliJ |
|||
out/ |
|||
|
|||
# mpeltonen/sbt-idea plugin |
|||
.idea_modules/ |
|||
|
|||
# JIRA plugin |
|||
atlassian-ide-plugin.xml |
|||
|
|||
# Cursive Clojure plugin |
|||
.idea/replstate.xml |
|||
|
|||
# Crashlytics plugin (for Android Studio and IntelliJ) |
|||
com_crashlytics_export_strings.xml |
|||
crashlytics.properties |
|||
crashlytics-build.properties |
|||
fabric.properties |
|||
|
|||
# Editor-based Rest Client |
|||
.idea/httpRequests |
|||
|
|||
# Android studio 3.1+ serialized cache file |
|||
.idea/caches/build_file_checksums.ser |
|||
|
|||
### Intellij+all Patch ### |
|||
# Ignores the whole .idea folder and all .iml files |
|||
# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 |
|||
|
|||
.idea/ |
|||
|
|||
# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 |
|||
|
|||
*.iml |
|||
modules.xml |
|||
.idea/misc.xml |
|||
*.ipr |
|||
|
|||
### Kotlin ### |
|||
# Compiled class file |
|||
*.class |
|||
|
|||
# Log file |
|||
*.log |
|||
|
|||
# BlueJ files |
|||
*.ctxt |
|||
|
|||
# Mobile Tools for Java (J2ME) |
|||
.mtj.tmp/ |
|||
|
|||
# Package Files # |
|||
*.jar |
|||
*.war |
|||
*.nar |
|||
*.ear |
|||
*.zip |
|||
*.tar.gz |
|||
*.rar |
|||
|
|||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml |
|||
hs_err_pid* |
|||
|
|||
### Gradle ### |
|||
.gradle |
|||
/build/ |
|||
|
|||
# Ignore Gradle GUI config |
|||
gradle-app.setting |
|||
|
|||
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) |
|||
!gradle-wrapper.jar |
|||
|
|||
# Cache of project |
|||
.gradletasknamecache |
|||
|
|||
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 |
|||
# gradle/wrapper/gradle-wrapper.properties |
|||
|
|||
|
|||
# End of https://www.gitignore.io/api/kotlin,gradle,intellij+all |
@ -0,0 +1 @@ |
|||
https://discordapp.com/api/webhooks/499597700489150474/t7nCycGi2Ug0J8XNBp0rhp_HZqq3RMSwLvQUnifHfqdEdxFi5NxPLHCsaBUsvshovz_W |
@ -0,0 +1,44 @@ |
|||
plugins { |
|||
id 'java' |
|||
id 'org.jetbrains.kotlin.jvm' version '1.2.71' |
|||
id 'com.github.johnrengelman.shadow' version '4.0.1' |
|||
|
|||
} |
|||
|
|||
group 'nl.voidcorp.dbot' |
|||
version '1.0-SNAPSHOT' |
|||
|
|||
sourceCompatibility = 1.8 |
|||
|
|||
repositories { |
|||
jcenter() |
|||
} |
|||
|
|||
dependencies { |
|||
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8" |
|||
testCompile group: 'junit', name: 'junit', version: '4.12' |
|||
compile 'net.dv8tion:JDA:3.7.1_421' |
|||
compile "ch.qos.logback:logback-classic:1.2.1" |
|||
compile 'io.javalin:javalin:2.3.0' |
|||
compile 'com.github.salomonbrys.kotson:kotson:2.5.0' |
|||
|
|||
} |
|||
|
|||
compileKotlin { |
|||
kotlinOptions.jvmTarget = "1.8" |
|||
} |
|||
compileTestKotlin { |
|||
kotlinOptions.jvmTarget = "1.8" |
|||
} |
|||
|
|||
shadowJar { |
|||
baseName = 'UnityBot' |
|||
classifier = null |
|||
version = null |
|||
} |
|||
|
|||
jar { |
|||
manifest { |
|||
attributes 'Main-Class': 'nl.voidcorp.dbot.UnityBotKt' |
|||
} |
|||
} |
@ -0,0 +1,68 @@ |
|||
{ |
|||
"object_kind": "push", |
|||
"before": "95790bf891e76fee5e1747ab589903a6a1f80f22", |
|||
"after": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7", |
|||
"ref": "refs/heads/master", |
|||
"checkout_sha": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7", |
|||
"user_id": 4, |
|||
"user_name": "John Smith", |
|||
"user_username": "jsmith", |
|||
"user_email": "john@example.com", |
|||
"user_avatar": "https://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=8://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=80", |
|||
"project_id": 15, |
|||
"project":{ |
|||
"id": 15, |
|||
"name":"Diaspora", |
|||
"description":"", |
|||
"web_url":"http://example.com/mike/diaspora", |
|||
"avatar_url":null, |
|||
"git_ssh_url":"git@example.com:mike/diaspora.git", |
|||
"git_http_url":"http://example.com/mike/diaspora.git", |
|||
"namespace":"Mike", |
|||
"visibility_level":0, |
|||
"path_with_namespace":"mike/diaspora", |
|||
"default_branch":"master", |
|||
"homepage":"http://example.com/mike/diaspora", |
|||
"url":"git@example.com:mike/diaspora.git", |
|||
"ssh_url":"git@example.com:mike/diaspora.git", |
|||
"http_url":"http://example.com/mike/diaspora.git" |
|||
}, |
|||
"repository":{ |
|||
"name": "Diaspora", |
|||
"url": "git@example.com:mike/diaspora.git", |
|||
"description": "", |
|||
"homepage": "http://example.com/mike/diaspora", |
|||
"git_http_url":"http://example.com/mike/diaspora.git", |
|||
"git_ssh_url":"git@example.com:mike/diaspora.git", |
|||
"visibility_level":0 |
|||
}, |
|||
"commits": [ |
|||
{ |
|||
"id": "b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327", |
|||
"message": "Update Catalan translation to e38cb41.", |
|||
"timestamp": "2011-12-12T14:27:31+02:00", |
|||
"url": "http://example.com/mike/diaspora/commit/b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327", |
|||
"author": { |
|||
"name": "Jordi Mallach", |
|||
"email": "jordi@softcatala.org" |
|||
}, |
|||
"added": ["CHANGELOG"], |
|||
"modified": ["app/controller/application.rb"], |
|||
"removed": [] |
|||
}, |
|||
{ |
|||
"id": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7", |
|||
"message": "fixed readme", |
|||
"timestamp": "2012-01-03T23:36:29+02:00", |
|||
"url": "http://example.com/mike/diaspora/commit/da1560886d4f094c3e6c9ef40349f7d38b5d27d7", |
|||
"author": { |
|||
"name": "GitLab dev user", |
|||
"email": "gitlabdev@dv6700.(none)" |
|||
}, |
|||
"added": ["CHANGELOG"], |
|||
"modified": ["app/controller/application.rb"], |
|||
"removed": [] |
|||
} |
|||
], |
|||
"total_commits_count": 4 |
|||
} |
Binary file not shown.
@ -0,0 +1,5 @@ |
|||
distributionBase=GRADLE_USER_HOME |
|||
distributionPath=wrapper/dists |
|||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip |
|||
zipStoreBase=GRADLE_USER_HOME |
|||
zipStorePath=wrapper/dists |
@ -0,0 +1,172 @@ |
|||
#!/usr/bin/env sh |
|||
|
|||
############################################################################## |
|||
## |
|||
## Gradle start up script for UN*X |
|||
## |
|||
############################################################################## |
|||
|
|||
# Attempt to set APP_HOME |
|||
# Resolve links: $0 may be a link |
|||
PRG="$0" |
|||
# Need this for relative symlinks. |
|||
while [ -h "$PRG" ] ; do |
|||
ls=`ls -ld "$PRG"` |
|||
link=`expr "$ls" : '.*-> \(.*\)$'` |
|||
if expr "$link" : '/.*' > /dev/null; then |
|||
PRG="$link" |
|||
else |
|||
PRG=`dirname "$PRG"`"/$link" |
|||
fi |
|||
done |
|||
SAVED="`pwd`" |
|||
cd "`dirname \"$PRG\"`/" >/dev/null |
|||
APP_HOME="`pwd -P`" |
|||
cd "$SAVED" >/dev/null |
|||
|
|||
APP_NAME="Gradle" |
|||
APP_BASE_NAME=`basename "$0"` |
|||
|
|||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. |
|||
DEFAULT_JVM_OPTS="" |
|||
|
|||
# Use the maximum available, or set MAX_FD != -1 to use that value. |
|||
MAX_FD="maximum" |
|||
|
|||
warn () { |
|||
echo "$*" |
|||
} |
|||
|
|||
die () { |
|||
echo |
|||
echo "$*" |
|||
echo |
|||
exit 1 |
|||
} |
|||
|
|||
# OS specific support (must be 'true' or 'false'). |
|||
cygwin=false |
|||
msys=false |
|||
darwin=false |
|||
nonstop=false |
|||
case "`uname`" in |
|||
CYGWIN* ) |
|||
cygwin=true |
|||
;; |
|||
Darwin* ) |
|||
darwin=true |
|||
;; |
|||
MINGW* ) |
|||
msys=true |
|||
;; |
|||
NONSTOP* ) |
|||
nonstop=true |
|||
;; |
|||
esac |
|||
|
|||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar |
|||
|
|||
# Determine the Java command to use to start the JVM. |
|||
if [ -n "$JAVA_HOME" ] ; then |
|||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then |
|||
# IBM's JDK on AIX uses strange locations for the executables |
|||
JAVACMD="$JAVA_HOME/jre/sh/java" |
|||
else |
|||
JAVACMD="$JAVA_HOME/bin/java" |
|||
fi |
|||
if [ ! -x "$JAVACMD" ] ; then |
|||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME |
|||
|
|||
Please set the JAVA_HOME variable in your environment to match the |
|||
location of your Java installation." |
|||
fi |
|||
else |
|||
JAVACMD="java" |
|||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. |
|||
|
|||
Please set the JAVA_HOME variable in your environment to match the |
|||
location of your Java installation." |
|||
fi |
|||
|
|||
# Increase the maximum file descriptors if we can. |
|||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then |
|||
MAX_FD_LIMIT=`ulimit -H -n` |
|||
if [ $? -eq 0 ] ; then |
|||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then |
|||
MAX_FD="$MAX_FD_LIMIT" |
|||
fi |
|||
ulimit -n $MAX_FD |
|||
if [ $? -ne 0 ] ; then |
|||
warn "Could not set maximum file descriptor limit: $MAX_FD" |
|||
fi |
|||
else |
|||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" |
|||
fi |
|||
fi |
|||
|
|||
# For Darwin, add options to specify how the application appears in the dock |
|||
if $darwin; then |
|||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" |
|||
fi |
|||
|
|||
# For Cygwin, switch paths to Windows format before running java |
|||
if $cygwin ; then |
|||
APP_HOME=`cygpath --path --mixed "$APP_HOME"` |
|||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` |
|||
JAVACMD=`cygpath --unix "$JAVACMD"` |
|||
|
|||
# We build the pattern for arguments to be converted via cygpath |
|||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` |
|||
SEP="" |
|||
for dir in $ROOTDIRSRAW ; do |
|||
ROOTDIRS="$ROOTDIRS$SEP$dir" |
|||
SEP="|" |
|||
done |
|||
OURCYGPATTERN="(^($ROOTDIRS))" |
|||
# Add a user-defined pattern to the cygpath arguments |
|||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then |
|||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" |
|||
fi |
|||
# Now convert the arguments - kludge to limit ourselves to /bin/sh |
|||
i=0 |
|||
for arg in "$@" ; do |
|||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` |
|||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option |
|||
|
|||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition |
|||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` |
|||
else |
|||
eval `echo args$i`="\"$arg\"" |
|||
fi |
|||
i=$((i+1)) |
|||
done |
|||
case $i in |
|||
(0) set -- ;; |
|||
(1) set -- "$args0" ;; |
|||
(2) set -- "$args0" "$args1" ;; |
|||
(3) set -- "$args0" "$args1" "$args2" ;; |
|||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;; |
|||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; |
|||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; |
|||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; |
|||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; |
|||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; |
|||
esac |
|||
fi |
|||
|
|||
# Escape application args |
|||
save () { |
|||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done |
|||
echo " " |
|||
} |
|||
APP_ARGS=$(save "$@") |
|||
|
|||
# Collect all arguments for the java command, following the shell quoting and substitution rules |
|||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" |
|||
|
|||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong |
|||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then |
|||
cd "$(dirname "$0")" |
|||
fi |
|||
|
|||
exec "$JAVACMD" "$@" |
@ -0,0 +1,84 @@ |
|||
@if "%DEBUG%" == "" @echo off |
|||
@rem ########################################################################## |
|||
@rem |
|||
@rem Gradle startup script for Windows |
|||
@rem |
|||
@rem ########################################################################## |
|||
|
|||
@rem Set local scope for the variables with windows NT shell |
|||
if "%OS%"=="Windows_NT" setlocal |
|||
|
|||
set DIRNAME=%~dp0 |
|||
if "%DIRNAME%" == "" set DIRNAME=. |
|||
set APP_BASE_NAME=%~n0 |
|||
set APP_HOME=%DIRNAME% |
|||
|
|||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. |
|||
set DEFAULT_JVM_OPTS= |
|||
|
|||
@rem Find java.exe |
|||
if defined JAVA_HOME goto findJavaFromJavaHome |
|||
|
|||
set JAVA_EXE=java.exe |
|||
%JAVA_EXE% -version >NUL 2>&1 |
|||
if "%ERRORLEVEL%" == "0" goto init |
|||
|
|||
echo. |
|||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. |
|||
echo. |
|||
echo Please set the JAVA_HOME variable in your environment to match the |
|||
echo location of your Java installation. |
|||
|
|||
goto fail |
|||
|
|||
:findJavaFromJavaHome |
|||
set JAVA_HOME=%JAVA_HOME:"=% |
|||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe |
|||
|
|||
if exist "%JAVA_EXE%" goto init |
|||
|
|||
echo. |
|||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% |
|||
echo. |
|||
echo Please set the JAVA_HOME variable in your environment to match the |
|||
echo location of your Java installation. |
|||
|
|||
goto fail |
|||
|
|||
:init |
|||
@rem Get command-line arguments, handling Windows variants |
|||
|
|||
if not "%OS%" == "Windows_NT" goto win9xME_args |
|||
|
|||
:win9xME_args |
|||
@rem Slurp the command line arguments. |
|||
set CMD_LINE_ARGS= |
|||
set _SKIP=2 |
|||
|
|||
:win9xME_args_slurp |
|||
if "x%~1" == "x" goto execute |
|||
|
|||
set CMD_LINE_ARGS=%* |
|||
|
|||
:execute |
|||
@rem Setup the command line |
|||
|
|||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar |
|||
|
|||
@rem Execute Gradle |
|||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% |
|||
|
|||
:end |
|||
@rem End local scope for the variables with windows NT shell |
|||
if "%ERRORLEVEL%"=="0" goto mainEnd |
|||
|
|||
:fail |
|||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of |
|||
rem the _cmd.exe /c_ return code! |
|||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 |
|||
exit /b 1 |
|||
|
|||
:mainEnd |
|||
if "%OS%"=="Windows_NT" endlocal |
|||
|
|||
:omega |
@ -0,0 +1,2 @@ |
|||
rootProject.name = 'UnityBot' |
|||
|
@ -0,0 +1,24 @@ |
|||
package nl.voidcorp.dbot |
|||
|
|||
import net.dv8tion.jda.core.events.message.MessageReceivedEvent |
|||
import net.dv8tion.jda.core.hooks.ListenerAdapter |
|||
|
|||
object Events : ListenerAdapter() { |
|||
override fun onMessageReceived(event: MessageReceivedEvent) { |
|||
if (event.message.channel.idLong == 499628388659625995) |
|||
if (event.message.mentionedMembers.contains(event.guild.getMember(event.jda.selfUser))) { |
|||
if (event.message.contentStripped.toLowerCase().contains("hello")) { |
|||
|
|||
val i = random.nextInt(10) |
|||
if (i > 8) { |
|||
event.channel.sendMessage("Can you speak up or I'll throw you a microphone").queue() |
|||
} else { |
|||
event.channel.sendMessage("Hello, ${event.author.asMention}").queue() |
|||
} |
|||
} else { |
|||
event.channel.sendMessage("We'll discuss that later").queue() |
|||
|
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,72 @@ |
|||
package nl.voidcorp.dbot |
|||
|
|||
import io.javalin.Javalin |
|||
import io.javalin.json.FromJsonMapper |
|||
import io.javalin.json.JavalinJson |
|||
import io.javalin.json.ToJsonMapper |
|||
import net.dv8tion.jda.core.EmbedBuilder |
|||
import net.dv8tion.jda.core.JDABuilder |
|||
import net.dv8tion.jda.core.OnlineStatus |
|||
import net.dv8tion.jda.core.entities.Game |
|||
import net.dv8tion.jda.webhook.WebhookClient |
|||
import net.dv8tion.jda.webhook.WebhookClientBuilder |
|||
import nl.voidcorp.dbot.storage.GitlabWebhook |
|||
import org.slf4j.LoggerFactory |
|||
import java.io.File |
|||
import java.io.FileReader |
|||
|
|||
fun main(args: Array<String>) { |
|||
val log = LoggerFactory.getLogger("UnityBot") |
|||
|
|||
JavalinJson.apply { |
|||
toJsonMapper = object : ToJsonMapper { |
|||
override fun map(obj: Any): String = gson.toJson(obj) |
|||
} |
|||
fromJsonMapper = object : FromJsonMapper { |
|||
override fun <T> map(json: String, targetClass: Class<T>): T = gson.fromJson(json, targetClass) |
|||
} |
|||
} |
|||
|
|||
if (!File(".hooks").exists()) { |
|||
log.error("The .hooks file does not exist!") |
|||
log.error("Exiting") |
|||
System.exit(1) |
|||
} |
|||
|
|||
val hooks = mutableListOf<WebhookClient>() |
|||
FileReader(".hooks").forEachLine { |
|||
val wh = WebhookClientBuilder(it).build() |
|||
hooks += wh |
|||
} |
|||
|
|||
log.info(hooks.toString()) |
|||
|
|||
val app = Javalin.create().requestLogger { ctx, timeMs -> |
|||
if (ctx.res.status >= 400) { |
|||
log.error("${ctx.method()} ${ctx.path()} -> ${ctx.status()} (${timeMs}ms)") |
|||
} else { |
|||
log.info("${ctx.method()} ${ctx.path()} -> ${ctx.status()} (${timeMs}ms)") |
|||
} |
|||
}.disableStartupBanner().start(4466) |
|||
|
|||
app.post("/gitlab.json") { ctx -> |
|||
val bod = ctx.validatedBody<GitlabWebhook>() |
|||
if (bod.value != null) { |
|||
bod.value!!.apply { |
|||
val embed = EmbedBuilder() |
|||
embed.setTitle(project.name, project.web_url) |
|||
val builder = embed.descriptionBuilder |
|||
var url = "" |
|||
commits.forEach { |
|||
builder.append("${it.message} (${it.timestamp})") |
|||
url = it.url |
|||
} |
|||
embed.setAuthor("$user_name ($user_username)", url, user_avatar) |
|||
hooks.forEach { it.send(embed.build()) } |
|||
} |
|||
} |
|||
ctx.status(200).result("OK") |
|||
} |
|||
|
|||
val bot = JDABuilder(args[0]).setStatus(OnlineStatus.ONLINE).setGame(Game.watching("fraud")).addEventListener(Events).build() |
|||
} |
@ -0,0 +1,8 @@ |
|||
package nl.voidcorp.dbot |
|||
|
|||
import com.google.gson.GsonBuilder |
|||
import java.util.* |
|||
|
|||
val gson = GsonBuilder().setPrettyPrinting().create() |
|||
|
|||
val random = Random() |
@ -0,0 +1,10 @@ |
|||
package nl.voidcorp.dbot.storage |
|||
|
|||
import java.util.* |
|||
|
|||
data class GitlabWebhook(val user_name: String, val user_username: String, val user_avatar: String, |
|||
val project: Project, val commits:List<Commit>) |
|||
|
|||
data class Project(val name: String, val web_url: String) |
|||
|
|||
data class Commit(val message:String, val timestamp: Date, val url:String) |
@ -0,0 +1,35 @@ |
|||
<configuration> |
|||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> |
|||
<encoder> |
|||
<pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %logger{36} - %msg%n</pattern> |
|||
</encoder> |
|||
</appender> |
|||
|
|||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
|||
<File>logs/latest.log</File> |
|||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> |
|||
<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern> |
|||
</encoder> |
|||
|
|||
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> |
|||
<FileNamePattern>logs/tickets.%d{YYYY-MM-dd}.%i.log.gz</FileNamePattern> |
|||
<MinIndex>1</MinIndex> |
|||
<MaxIndex>10</MaxIndex> |
|||
</rollingPolicy> |
|||
|
|||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> |
|||
<MaxFileSize>200MB</MaxFileSize> |
|||
</triggeringPolicy> |
|||
</appender> |
|||
|
|||
<root level="trace"> |
|||
<appender-ref ref="STDOUT"/> |
|||
<appender-ref ref="FILE"/> |
|||
</root> |
|||
|
|||
|
|||
|
|||
<logger name="org.eclipse.jetty" level="INFO"/> |
|||
<logger name="io.netty" level="INFO"/> |
|||
<logger name="net.dv8tion.jda" level="INFO"/> |
|||
</configuration> |
Loading…
Reference in new issue