From 9d30525c8a2f3f00a4f77285b1418349fe054558 Mon Sep 17 00:00:00 2001 From: Pavel Kachalouski Date: Fri, 17 May 2019 22:10:43 +0200 Subject: [PATCH] Added isProduction config, starting with docker plugin --- .gitignore | 93 +++++++++++++++--- .idea/codeStyles/codeStyleConfig.xml | 5 - .idea/encodings.xml | 4 - .idea/hydra.xml | 9 -- .idea/modules/telegram-bot.iml | 53 ---------- .idea/modules/telegram-bot1.iml | 16 --- build.sbt | 1 + keys/telegram-bot.key | 28 ++++++ keys/telegram-bot.p12 | Bin 0 -> 2485 bytes keys/telegram-bot.pem | 21 ++++ project/plugins.sbt | 1 + .../src/main/resources/application.conf | 18 ++++ telegram-bot/src/main/resources/logback.xml | 11 +++ .../src/main/resources/telegram-bot.p12 | Bin 0 -> 2485 bytes .../src/main/resources/telegram-bot.pem | 21 ++++ .../src/main/scala/eu/xeppaka/bot/Main.scala | 12 ++- .../scala/eu/xeppaka/bot/TelegramBot.scala | 10 +- 17 files changed, 195 insertions(+), 108 deletions(-) delete mode 100644 .idea/codeStyles/codeStyleConfig.xml delete mode 100644 .idea/encodings.xml delete mode 100644 .idea/hydra.xml delete mode 100644 .idea/modules/telegram-bot.iml delete mode 100644 .idea/modules/telegram-bot1.iml create mode 100644 keys/telegram-bot.key create mode 100644 keys/telegram-bot.p12 create mode 100644 keys/telegram-bot.pem create mode 100644 telegram-bot/src/main/resources/application.conf create mode 100644 telegram-bot/src/main/resources/logback.xml create mode 100644 telegram-bot/src/main/resources/telegram-bot.p12 create mode 100644 telegram-bot/src/main/resources/telegram-bot.pem diff --git a/.gitignore b/.gitignore index a375f85..9859bc4 100644 --- a/.gitignore +++ b/.gitignore @@ -19,19 +19,8 @@ project/plugins/project/ # 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/**/dictionaries -.idea/**/shelf - -# Sensitive or high-churn files -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml +# Idea stuff +.idea/ # Gradle .idea/**/gradle.xml @@ -67,3 +56,81 @@ fabric.properties # Editor-based Rest Client .idea/httpRequests +### SBT template +# Simple Build Tool +# http://www.scala-sbt.org/release/docs/Getting-Started/Directories.html#configuring-version-control + +dist/* +target/ +lib_managed/ +src_managed/ +project/boot/ +project/plugins/project/ +.history +.cache +.lib/ +### JetBrains template +# 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 + +# 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 +### Scala template +*.class +*.log + diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index 92e9122..0000000 --- a/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 15a15b2..0000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/hydra.xml b/.idea/hydra.xml deleted file mode 100644 index 66eeb9a..0000000 --- a/.idea/hydra.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/modules/telegram-bot.iml b/.idea/modules/telegram-bot.iml deleted file mode 100644 index 6794500..0000000 --- a/.idea/modules/telegram-bot.iml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules/telegram-bot1.iml b/.idea/modules/telegram-bot1.iml deleted file mode 100644 index 5a235b4..0000000 --- a/.idea/modules/telegram-bot1.iml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build.sbt b/build.sbt index f7aec26..8422276 100644 --- a/build.sbt +++ b/build.sbt @@ -25,3 +25,4 @@ lazy val `telegram-bot` = (project in file("telegram-bot")) circeAkkaHttp ) ) + .enablePlugins(DockerPlugin) diff --git a/keys/telegram-bot.key b/keys/telegram-bot.key new file mode 100644 index 0000000..6d505fa --- /dev/null +++ b/keys/telegram-bot.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDWwewslKtWJ7ye +YrxDuoh5PS7y5/C/0NT6tsAAsh3ZVCqdeNvYj56n8jVob/jJ9EYMqKj7dXLAMopD +htuwdDN/KhW9QVkKzATE1wNxuV3aBVUTJuHHadUYQa7pVevvssAIa1XQ6NvU0pkw +dDApylOj1TkA9MFlZWHWlF0dgrVyGjFxDoWdjm2aLCdRpZCr0giTOfZ5E+OJNALT +HcuJO+PRKdEreO1YVAlT2Sk26f8/iG63C2/t7xWTyJKOjFPxwq3+dkNfJ1AXZ4I7 +aFDgP7BKogvooYuCBItqog+IRUOoK9Yj24KCUxD+gaI5+tv0j1ov5d0ZAqqaiSql +96s2/jyZAgMBAAECggEAb5P9owPzKSYoJ5pg+kd2FJenRuke+moD3ecJRtNEEuBZ +68sZXiDwa426FfLnLfZOVtFiSpOw9Q7NK1xr0/frsYwqE1RacPOjHqofzfxjOJ1A +oFy5PaRM5PdraywLE1Sp1TX/NjVl0eNBWB1l0LCgWCS2IzsHKClOdfBLmMOKhicF +4iut9L08ATLPnN+QbqZITCjuW2VCXp7W1X2llnjFNz+wNpifuujSXwdXkLQ/0M8O +Ndtdm/kec1d2VrRFmuvDoh7jaW2q+IQoIJRC4Vms9q6zKoMyuT3dPyluiWq3/mB0 +38tsnh/bk50CIAp7IIKRS89v1+3xxbNRnOV0V2PoaQKBgQD0XY1vHMZhmR30V83t +OYNXe6fcLXZRUmz0XqLUnZ6aJTCxYqke65iytisHvcivCH5LovKxaVWw5qhwBLIB +QpCywgtfn+BUiDZc1feMbWcogLuxjNi+1wKpSr/I8IQZBdFAxDP5aHXWneio/xTH +VDugiWlp4pQ0Eg9XyeJ9b6vu3wKBgQDg+35ww+lRSj9/lyHszxvM6BsJxH+eqk+A +8Sk/N0qeSH+d1cRgQRdSxIWtcxY2W+NVq5CLsugjKGmENzi0woWr6xCkj39eCIt3 +fbyljRSo7UiiUKtkt0XcUAqXaKKWF+R18e3nfWdT0swGcIAEg7bopvoRv9qE4Xwo +1oayWdZbhwKBgC5KlqNo4Q/WEL2b8I+y6HWnICpulk5bffZhAxmh7kynJO1FkmIg +IWIhbk9eHWlDA6HScYU4Phpv55Ko4QuqD309kyf/QmDhGONHSUjZ5MPgdy3wT5L/ +aiql1WT8YxnWZ0iMoofpyQDqEwwInmgQRedogIalfIvMrAlmXjiC8iAjAoGABBFo +Et/n+xlNlqAD9AU2qnjT7FRKPnMz5s/1f/ge+Ee1TwRLfbYPluaIyD8Zergknyrv +/Sap/eDAL6zT8KjHw/kHHwKdOfULmIiEfbXUVs2bj5vHzZVmxPoJhv1UW0RpVByg +wZvJ34EjQUaNegdrqj9CrEl8yQROu2pNmzH2p0cCgYBdJfGrPQ2MS4QEVOYKTULE +8fxfC6NmJG9f9HeKLPnlIMu8svhwCiEHWP+7vZG0gszh3m9IWVOh5YNwFu7Fp9m6 +3Ht1aEGrZM0ypD5jHLIaSOxOJRMVvT+O1yH8GBsNLxXstsfkIFSE4vMXbzeUo2Rm +5pAqJlj0tVH19/TlcuWbFQ== +-----END PRIVATE KEY----- diff --git a/keys/telegram-bot.p12 b/keys/telegram-bot.p12 new file mode 100644 index 0000000000000000000000000000000000000000..8147227e359838eaba30494f9a7d615f985eb377 GIT binary patch literal 2485 zcmY+^c{~%2AIEXWXk(68u0PI# z27m*he`OaW4#5A<#7e{gfWH!eiID+`V?Oz3VMLy1W&8IBFe59H69Bx?{E6z_ZJ*1; z1Z0T8F_ZmmVf6IualJj4)-1Ge_Y8VP2YF#~S`ZR9IV#h&Ql*OG{%|Q6RTdNfju3QJ z$@0Wv3ztKBy}9p#Aed!$&b>{`kH1gPI}ST`iSMarGMF~ z<&QCwSMBnAJv|vrCe38@g-!r~4-moU(<}qS7wcY3$ewnRMvhgC3D43UT zO;TuQQo7C{C%61Bm24?ug?ziw|3JL2J6nR)rl+|e`BN!R9EDsM7PzERkmRE1ob ziWtAeDG1R^{&CM^gaXU#zuu6>p4x>babw+ru7vu^tN@X9ZeDre2({ppmc7(yRZ{dvp2ZNOk1E6uY)p9QyO9lD22M9v%a$OYNic4r!zX)9KCDta}=W=gRM z$IILj4!HZHdf?C0#cc%$1L#vIS0zH;^1G^2K6%!iD?0?=+;NdZLx2`(8{_^|ykaJ6 z-iKW;LQWM}pq?KQK>_4{)cV|5sbaM(zx_34e(5=J3=O4v?HO1|dT@X6YFQx3&(8b( zWmIzdth-I^#H(h5&`WxerV*WJ1C|6t^@2&fKA)hO@YrsnbEa;U)=$5z-tgeFAzU~r zZ;axnKp&Eu{^q5s=2f&0!ypR~ms=1>l5(8wLQm(Q$LOCabsO%ScpoD3R|3hhJ}r^j z+%g-BZwt}aSAi^>PwvUjnUi{bEl8kd~~r*=n4YNOi1h9>4+7X#S2h>`+6mb>gy z_h%W(E_b(PCn={#JO;dBL6-T+Yr)4$XqLtFT^o8Ur%3G&dJpFrMOAx>kXPWr$4utx zIO>AK(zg{)mtL`+SKXm8B)IL!QxGR=n8*sG4g~YLF{|^8}9E&0V z$0GMD!+#x&mHj^)urV_Ia%20K8yo+p1oLktwj#p#H^ay!zm)*s0KK~m=&%hF-it~q z@7ZTX9X77{M-Mnh7wLqMtWt)0q|Dk?HGG6pjOZwbCf?Pe`(fpQN}3# zL8^9zUb$wITZg!YPhCki+vC7hz*)HRY4K{@YiaEFs!u77`3;t>^8$Z-(`8WT;Da7k zTztG;^`_}FPk%##dPICEgGS$Ve=R?$MK&Wv$X_eYmD$=dVt!+mZ?}cOSx$I5Ur5wm zy1a@0)~2;kW$;c&;zaOVc*||0DP!hVDR)?)>CA~MUXA9uDtTwPfH!JK5&tyG!iaj! z&7f$`HG6PzQvbbkfZdudYx6_x$>pjNVwzj&&9OMm>vk2Rx5h4_k$Q7aJ06J7D#Hp6 z4Xz(sU?kRNPcL%>q0+~@&dO)QQ}v~)0RzcfcwGfu0YTY?^MXnBA?YEf)8@5Le6nZ@ z99tEC`>qrsCGwq>G&*N4xV<}OL)JYpQ^O-DxKmmIk7aIXBNrUt5RvL&&Y3V%^`Q-*Rr3 zt!-J^h}PP?YRLYn;1%}~)e~608mZYcBR4MpD5l9_ zqQSBSuD63EYbJcGh=-dhma4JMmRXfr!#dbx5BDtr>jPR8$2x3U$WzHbypbbw0Ch#; zZ`&aJou$OQYpID8W22PPN2An?oVH}^Gu{N4guw<$MjU%0WE9BDgX(%hK>g$9aAD;A^OhHfZ^{T4a@`$-GBc6j-{0k90-;=I*Z1G^6G;V*9 zrC1eYg4G}Q-4|@MesA7?(Zm(1VnifP0A9RFZ&w(ds!UMq{<-Q`dbJ0q<`DBx18M{jq`Oc z0Zs`v%yVM)E7oU)|qJVLx!`&+CYcueDE&Zb=Z<+j6g9$9>zbEO!Fj=`b29;o}S z=PI>~egS3fML2$Z^wo1FbwQO#BY{`tg?uIUF{DlVq&M9CXkD6J( zr{9#P@fdR(t@HaSU)v_J9O~3g*54@~h>_)G+i_1ph{PHgbC#zKy_opqQgg{7Q^0Yy z$~zD$XWdG`+)wR?j>aHE#C zn7*I_2VOqq>B5@@NOnUJH{21UF`3~uTdRIy!&IO{&!uu*jD>Q7lemK@dt`AuJmP#v zqa)VR5+KG4P-sa#4B!_>r~2ZRFpFR=t;h#L5_rui_+9N7<1FFzL0V-RaWL}5`iW&N<5QbmfBXs;v%38eUcbp)ML-~&KpYdvrwOzJvXKxy>5gN?LDY{i{O1*9kv w#L6PW$;>3g!T^A{E>RU~1E9&n&U@!*9-DW)5Y#RJkjXSY4^-hA^;^k*0YP7v3;+NC literal 0 HcmV?d00001 diff --git a/keys/telegram-bot.pem b/keys/telegram-bot.pem new file mode 100644 index 0000000..0fe289b --- /dev/null +++ b/keys/telegram-bot.pem @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDcTCCAlmgAwIBAgIJAKLMfxW4KRHuMA0GCSqGSIb3DQEBCwUAME8xCzAJBgNV +BAYTAkNaMQ8wDQYDVQQHDAZQcmFndWUxGjAYBgNVBAoMEVBhdmVsIEthY2hhbG91 +c2tpMRMwEQYDVQQDDAp4ZXBwYWthLmV1MB4XDTE4MDUxMTE4MjEzOVoXDTI4MDUw +ODE4MjEzOVowTzELMAkGA1UEBhMCQ1oxDzANBgNVBAcMBlByYWd1ZTEaMBgGA1UE +CgwRUGF2ZWwgS2FjaGFsb3Vza2kxEzARBgNVBAMMCnhlcHBha2EuZXUwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWwewslKtWJ7yeYrxDuoh5PS7y5/C/ +0NT6tsAAsh3ZVCqdeNvYj56n8jVob/jJ9EYMqKj7dXLAMopDhtuwdDN/KhW9QVkK +zATE1wNxuV3aBVUTJuHHadUYQa7pVevvssAIa1XQ6NvU0pkwdDApylOj1TkA9MFl +ZWHWlF0dgrVyGjFxDoWdjm2aLCdRpZCr0giTOfZ5E+OJNALTHcuJO+PRKdEreO1Y +VAlT2Sk26f8/iG63C2/t7xWTyJKOjFPxwq3+dkNfJ1AXZ4I7aFDgP7BKogvooYuC +BItqog+IRUOoK9Yj24KCUxD+gaI5+tv0j1ov5d0ZAqqaiSql96s2/jyZAgMBAAGj +UDBOMB0GA1UdDgQWBBRkOXFj0c0jNdM1nJMRGr0EvfeMuTAfBgNVHSMEGDAWgBRk +OXFj0c0jNdM1nJMRGr0EvfeMuTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUA +A4IBAQBtXUOfnKdp1GY5gATTrPdr2s7FyiJvVfx/yeNNNR8ZnZcLjBMulEvXsfNi +AL1cEctnSDyT5z2el75nTdAgTFcBZQLsVk9/4ZwBRnfunFqfU5e5X9X9z//yt4Gy +Zq9BrMddQE+qwnOclcTDCc0GnyqKbaPiyYFcaXKhdrsflvoJI9tyLwPgjfXADLDF +JtjC0gGdbgefDweBUMTF0cpZED9q/J2fKXHurub+3QySvUOvphVFP4dBz2WhdoTe +v3lkEVp3I/IUv9qegO0B0o6X+Nnml4/b7HV1PArNceWOA6f57fSL2m6eN6xs4ULJ +kfUMloAr25yvmN/tPwm+8Op5ovot +-----END CERTIFICATE----- diff --git a/project/plugins.sbt b/project/plugins.sbt index 652a3b9..cc632f7 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1 +1,2 @@ addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6") +addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.21") \ No newline at end of file diff --git a/telegram-bot/src/main/resources/application.conf b/telegram-bot/src/main/resources/application.conf new file mode 100644 index 0000000..426474b --- /dev/null +++ b/telegram-bot/src/main/resources/application.conf @@ -0,0 +1,18 @@ +akka { + loglevel = "DEBUG" + + extensions = [akka.persistence.Persistence] + + persistence { + journal { + plugin = "akka.persistence.journal.leveldb" + auto-start-journals = ["akka.persistence.journal.leveldb"] + leveldb.dir = "journal-check-delivery" + } + + snapshot-store { + plugin = "akka.persistence.snapshot-store.local" + auto-start-snapshot-stores = ["akka.persistence.snapshot-store.local"] + } + } +} diff --git a/telegram-bot/src/main/resources/logback.xml b/telegram-bot/src/main/resources/logback.xml new file mode 100644 index 0000000..ab73bdc --- /dev/null +++ b/telegram-bot/src/main/resources/logback.xml @@ -0,0 +1,11 @@ + + + + %date [%level] %logger: %message%n%xException + + + + + + + diff --git a/telegram-bot/src/main/resources/telegram-bot.p12 b/telegram-bot/src/main/resources/telegram-bot.p12 new file mode 100644 index 0000000000000000000000000000000000000000..8147227e359838eaba30494f9a7d615f985eb377 GIT binary patch literal 2485 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 literal 0 HcmV?d00001 diff --git a/telegram-bot/src/main/resources/telegram-bot.pem b/telegram-bot/src/main/resources/telegram-bot.pem new file mode 100644 index 0000000..0fe289b --- /dev/null +++ b/telegram-bot/src/main/resources/telegram-bot.pem @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDcTCCAlmgAwIBAgIJAKLMfxW4KRHuMA0GCSqGSIb3DQEBCwUAME8xCzAJBgNV +BAYTAkNaMQ8wDQYDVQQHDAZQcmFndWUxGjAYBgNVBAoMEVBhdmVsIEthY2hhbG91 +c2tpMRMwEQYDVQQDDAp4ZXBwYWthLmV1MB4XDTE4MDUxMTE4MjEzOVoXDTI4MDUw +ODE4MjEzOVowTzELMAkGA1UEBhMCQ1oxDzANBgNVBAcMBlByYWd1ZTEaMBgGA1UE +CgwRUGF2ZWwgS2FjaGFsb3Vza2kxEzARBgNVBAMMCnhlcHBha2EuZXUwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWwewslKtWJ7yeYrxDuoh5PS7y5/C/ +0NT6tsAAsh3ZVCqdeNvYj56n8jVob/jJ9EYMqKj7dXLAMopDhtuwdDN/KhW9QVkK +zATE1wNxuV3aBVUTJuHHadUYQa7pVevvssAIa1XQ6NvU0pkwdDApylOj1TkA9MFl +ZWHWlF0dgrVyGjFxDoWdjm2aLCdRpZCr0giTOfZ5E+OJNALTHcuJO+PRKdEreO1Y +VAlT2Sk26f8/iG63C2/t7xWTyJKOjFPxwq3+dkNfJ1AXZ4I7aFDgP7BKogvooYuC +BItqog+IRUOoK9Yj24KCUxD+gaI5+tv0j1ov5d0ZAqqaiSql96s2/jyZAgMBAAGj +UDBOMB0GA1UdDgQWBBRkOXFj0c0jNdM1nJMRGr0EvfeMuTAfBgNVHSMEGDAWgBRk +OXFj0c0jNdM1nJMRGr0EvfeMuTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUA +A4IBAQBtXUOfnKdp1GY5gATTrPdr2s7FyiJvVfx/yeNNNR8ZnZcLjBMulEvXsfNi +AL1cEctnSDyT5z2el75nTdAgTFcBZQLsVk9/4ZwBRnfunFqfU5e5X9X9z//yt4Gy +Zq9BrMddQE+qwnOclcTDCc0GnyqKbaPiyYFcaXKhdrsflvoJI9tyLwPgjfXADLDF +JtjC0gGdbgefDweBUMTF0cpZED9q/J2fKXHurub+3QySvUOvphVFP4dBz2WhdoTe +v3lkEVp3I/IUv9qegO0B0o6X+Nnml4/b7HV1PArNceWOA6f57fSL2m6eN6xs4ULJ +kfUMloAr25yvmN/tPwm+8Op5ovot +-----END CERTIFICATE----- diff --git a/telegram-bot/src/main/scala/eu/xeppaka/bot/Main.scala b/telegram-bot/src/main/scala/eu/xeppaka/bot/Main.scala index 52a0e98..142f535 100644 --- a/telegram-bot/src/main/scala/eu/xeppaka/bot/Main.scala +++ b/telegram-bot/src/main/scala/eu/xeppaka/bot/Main.scala @@ -15,9 +15,15 @@ import scala.io.StdIn object Main { def main(args: Array[String]): Unit = { - //val botId = "570855144:AAEv7b817cuq2JJI9f2kG5B9G3zW1x-btz4" // useless bot - val botId = "693134480:AAE8JRXA6j1mkOKTaxapP6A-E4LPHRuiIf8" // delivery bot - val botBehavior = Behaviors.supervise(TelegramBot.behavior(botId, "0.0.0.0", 88)).onFailure(SupervisorStrategy.restart) + val isProduction = System.getProperty("isProduction", "false").toBoolean + + val (botId, localPort, hookPort) = if (isProduction) { + ("693134480:AAE8JRXA6j1mkOKTaxapP6A-E4LPHRuiIf8", 88, 88) // delivery bot + } else { + ("570855144:AAEv7b817cuq2JJI9f2kG5B9G3zW1x-btz4", 8443, 8443) // useless bot + } + + val botBehavior = Behaviors.supervise(TelegramBot.behavior(botId, "0.0.0.0", localPort, hookPort)).onFailure(SupervisorStrategy.restart) val telegramBot = ActorSystem(botBehavior, "telegram-bot") implicit val actorSystem: actor.ActorSystem = telegramBot.toUntyped implicit val executionContext: ExecutionContextExecutor = telegramBot.dispatchers.lookup(DispatcherSelector.default()) diff --git a/telegram-bot/src/main/scala/eu/xeppaka/bot/TelegramBot.scala b/telegram-bot/src/main/scala/eu/xeppaka/bot/TelegramBot.scala index 99a0c2b..94a76b3 100644 --- a/telegram-bot/src/main/scala/eu/xeppaka/bot/TelegramBot.scala +++ b/telegram-bot/src/main/scala/eu/xeppaka/bot/TelegramBot.scala @@ -34,7 +34,7 @@ object TelegramBot { case object GetBotInfo case object GetWebhookInfo - def behavior(botId: String, interface: String, port: Int): Behavior[Command] = Behaviors.setup[Command] { ctx => + def behavior(botId: String, interface: String, localPort: Int, hookPort: Int): Behavior[Command] = Behaviors.setup[Command] { ctx => ctx.log.info("action=start_bot") implicit val untypedSystem: ActorSystem = ctx.system.toUntyped @@ -44,7 +44,7 @@ object TelegramBot { val botUri = BotUri(botId) val http: HttpExt = Http() val hookId = UUID.randomUUID().toString - val webhookUri = Uri(s"https://xeppaka.eu:88/$hookId") + val webhookUri = Uri(s"https://xeppaka.eu:$hookPort/$hookId") val httpsContext = createHttpsConnectionContext val stashBuffer = StashBuffer[Command](10) val dialogManager = ctx.spawnAnonymous(Behaviors.supervise(DialogManager.behavior(botUri)).onFailure(SupervisorStrategy.restart)) @@ -54,10 +54,10 @@ object TelegramBot { case class BindingSuccess(binding: Http.ServerBinding) extends Command case class BindingFailure(exception: Throwable) extends Command - ctx.log.info("action=bind_server interface={} port={}", interface, port) + ctx.log.info("action=bind_server interface={} port={}", interface, localPort) http - .bindAndHandle(routes, interface, port, httpsContext) + .bindAndHandle(routes, interface, localPort, httpsContext) .onComplete { case Success(binding) => ctx.self ! BindingSuccess(binding) case Failure(exception) => ctx.self ! BindingFailure(exception) @@ -81,7 +81,7 @@ object TelegramBot { case object UnbindingSuccess extends Command case class UnbindingFailure(exception: Throwable) extends Command - ctx.log.info("action=unbind_server interface={} port={}", interface, port) + ctx.log.info("action=unbind_server interface={} port={}", interface, localPort) binding .unbind()