From b2f22296ce7be797d906113bd45a9a8c9fe29b6f Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 25 Feb 2020 13:27:37 +0600 Subject: [PATCH] complete forwarder bot exmple --- .gitignore | 10 + ForwarderBot/build.gradle | 38 ++++ .../insanusmokrassar/examples/ForwarderBot.kt | 50 +++++ gradle.properties | 4 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 55627 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 172 ++++++++++++++++++ gradlew.bat | 84 +++++++++ settings.gradle | 1 + 9 files changed, 364 insertions(+) create mode 100644 .gitignore create mode 100644 ForwarderBot/build.gradle create mode 100644 ForwarderBot/src/main/kotlin/com/insanusmokrassar/examples/ForwarderBot.kt create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5dc177e --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +.idea +out/* +*.iml +target + +settings.xml + +.gradle/ +build/ +out/ diff --git a/ForwarderBot/build.gradle b/ForwarderBot/build.gradle new file mode 100644 index 0000000..2238256 --- /dev/null +++ b/ForwarderBot/build.gradle @@ -0,0 +1,38 @@ +buildscript { + repositories { + mavenLocal() + jcenter() + mavenCentral() + } + + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version" + } +} + +plugins { + id "org.jetbrains.kotlin.plugin.serialization" version "$kotlin_version" +} + +apply plugin: 'kotlin' +apply plugin: 'application' + +project.version = "0.1.0" +project.group = "com.insanusmokrassar" + +mainClassName="com.insanusmokrassar.examples.ForwarderBotKt.main" + +repositories { + mavenLocal() + jcenter() + mavenCentral() +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version" + + implementation "com.github.insanusmokrassar:TelegramBotAPI:$telegram_bot_api_version" + implementation "com.github.insanusmokrassar:TelegramBotAPI-extensions-api:$telegram_bot_api_version" +} diff --git a/ForwarderBot/src/main/kotlin/com/insanusmokrassar/examples/ForwarderBot.kt b/ForwarderBot/src/main/kotlin/com/insanusmokrassar/examples/ForwarderBot.kt new file mode 100644 index 0000000..de31d05 --- /dev/null +++ b/ForwarderBot/src/main/kotlin/com/insanusmokrassar/examples/ForwarderBot.kt @@ -0,0 +1,50 @@ +package com.insanusmokrassar.examples + +import com.github.insanusmokrassar.TelegramBotAPI.bot.Ktor.KtorRequestsExecutor +import com.github.insanusmokrassar.TelegramBotAPI.extensions.api.send.sendTextMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownV2 +import com.github.insanusmokrassar.TelegramBotAPI.types.message.* +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.PossiblyForwardedMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.update.abstracts.BaseMessageUpdate +import com.github.insanusmokrassar.TelegramBotAPI.utils.TelegramAPIUrlsKeeper +import com.github.insanusmokrassar.TelegramBotAPI.utils.extensions.UpdateReceiver +import com.github.insanusmokrassar.TelegramBotAPI.utils.extensions.startGettingOfUpdates +import kotlinx.coroutines.* + +/** + * This bot will always return message about forwarder. In cases when sent message was not a forward message it will + * send suitable message + */ +suspend fun main(args: Array) { + val botToken = args.first() + + val bot = KtorRequestsExecutor(TelegramAPIUrlsKeeper(botToken)) + + val scope = CoroutineScope(Dispatchers.Default) + + val callback: UpdateReceiver = { messageUpdate -> + val message = messageUpdate.data + val infoToSend = if (message is PossiblyForwardedMessage) { + val forwardInfo = message.forwardInfo + when (forwardInfo) { + null -> "There is no forward info" + is AnonymousForwardInfo -> "Anonymous user which signed as \"${forwardInfo.senderName}\"" + is UserForwardInfo -> forwardInfo.from.let { user -> + "User `${user.id.chatId}` (`${user.firstName} ${user.lastName}`: ${user.username ?.username ?: "Without username"})" + } + is ForwardFromChannelInfo -> "Channel (${forwardInfo.channelChat})" + } + } else { + "There is no forward info" + } + bot.sendTextMessage(message.chat, infoToSend, MarkdownV2) + } + + bot.startGettingOfUpdates( + messageCallback = callback, + channelPostCallback = callback, + scope = scope + ) + + scope.coroutineContext[Job]!!.join() +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..d5add5a --- /dev/null +++ b/gradle.properties @@ -0,0 +1,4 @@ +kotlin_version=1.3.61 +kotlin_coroutines_version=1.3.3 + +telegram_bot_api_version=0.23.3 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..9ab0a835890a5db3e8ae4f8159e0cee6a2f64f45 GIT binary patch literal 55627 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 VEYIJJ9ELZ#02_W5@V{@~{6FN8FfjlC literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..84337ad --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..cccdd3d --- /dev/null +++ b/gradlew @@ -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" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..e95643d --- /dev/null +++ b/gradlew.bat @@ -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 diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..ef2162a --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ":ForwarderBot"