Added isProduction config, starting with docker plugin
This commit is contained in:
93
.gitignore
vendored
93
.gitignore
vendored
@@ -19,19 +19,8 @@ project/plugins/project/
|
|||||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
|
||||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|
||||||
# User-specific stuff
|
# Idea stuff
|
||||||
.idea/**/workspace.xml
|
.idea/
|
||||||
.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
|
|
||||||
|
|
||||||
# Gradle
|
# Gradle
|
||||||
.idea/**/gradle.xml
|
.idea/**/gradle.xml
|
||||||
@@ -67,3 +56,81 @@ fabric.properties
|
|||||||
|
|
||||||
# Editor-based Rest Client
|
# Editor-based Rest Client
|
||||||
.idea/httpRequests
|
.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
|
||||||
|
|
||||||
|
|||||||
5
.idea/codeStyles/codeStyleConfig.xml
generated
5
.idea/codeStyles/codeStyleConfig.xml
generated
@@ -1,5 +0,0 @@
|
|||||||
<component name="ProjectCodeStyleConfiguration">
|
|
||||||
<state>
|
|
||||||
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Leveris-scala" />
|
|
||||||
</state>
|
|
||||||
</component>
|
|
||||||
4
.idea/encodings.xml
generated
4
.idea/encodings.xml
generated
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
|
|
||||||
</project>
|
|
||||||
9
.idea/hydra.xml
generated
9
.idea/hydra.xml
generated
@@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="HydraSettings">
|
|
||||||
<option name="hydraStorePath" value="$PROJECT_DIR$/.hydra/idea" />
|
|
||||||
<option name="noOfCores" value="2" />
|
|
||||||
<option name="projectRoot" value="$PROJECT_DIR$" />
|
|
||||||
<option name="sourcePartitioner" value="auto" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
53
.idea/modules/telegram-bot.iml
generated
53
.idea/modules/telegram-bot.iml
generated
@@ -1,53 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module external.linked.project.id="telegram-bot [file:/home/nnm/development/telegram-bot1/]" external.linked.project.path="$MODULE_DIR$/../../telegram-bot" external.root.project.path="$MODULE_DIR$/../.." external.system.id="SBT" type="JAVA_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
|
||||||
<output url="file://$MODULE_DIR$/../../telegram-bot/target/scala-2.12/classes" />
|
|
||||||
<output-test url="file://$MODULE_DIR$/../../telegram-bot/target/scala-2.12/test-classes" />
|
|
||||||
<exclude-output />
|
|
||||||
<content url="file://$MODULE_DIR$/../../telegram-bot">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/../../telegram-bot/src/main/scala" isTestSource="false" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/../../telegram-bot/src/test/scala" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/../../telegram-bot/target/scala-2.12/src_managed/main" isTestSource="false" generated="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/../../telegram-bot/target/scala-2.12/src_managed/test" isTestSource="true" generated="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/../../telegram-bot/src/main/resources" type="java-resource" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/../../telegram-bot/target" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
<orderEntry type="library" name="sbt: com.chuusai:shapeless_2.12:2.3.3:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe.akka:akka-testkit_2.12:2.5.19:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe.akka:akka-stream_2.12:2.5.19:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe.akka:akka-protobuf_2.12:2.5.19:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe.akka:akka-persistence_2.12:2.5.19:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe.akka:akka-persistence-typed_2.12:2.5.19:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe.akka:akka-actor_2.12:2.5.19:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe.akka:akka-actor-typed_2.12:2.5.19:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe.akka:akka-actor-testkit-typed_2.12:2.5.19:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.fusesource.leveldbjni:leveldbjni-all:1.8:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: de.heikoseeberger:akka-http-circe_2.12:1.22.0:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.typelevel:machinist_2.12:0.6.5:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.typelevel:cats-macros_2.12:1.4.0:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.typelevel:cats-kernel_2.12:1.4.0:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.typelevel:cats-core_2.12:1.4.0:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.spire-math:jawn-parser_2.12:0.13.0:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.scala-lang.modules:scala-parser-combinators_2.12:1.1.1:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: io.circe:circe-parser_2.12:0.10.0:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: io.circe:circe-numbers_2.12:0.10.0:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: io.circe:circe-jawn_2.12:0.10.0:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: io.circe:circe-generic_2.12:0.10.0:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: io.circe:circe-core_2.12:0.10.0:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe.akka:akka-parsing_2.12:10.1.5:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe.akka:akka-http_2.12:10.1.5:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe.akka:akka-http-core_2.12:10.1.5:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe:config:1.3.3:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.reactivestreams:reactive-streams:1.0.2:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.scala-lang.modules:scala-java8-compat_2.12:0.8.0:jar" level="project" />
|
|
||||||
<orderEntry type="library" scope="TEST" name="sbt: org.scala-lang.modules:scala-xml_2.12:1.0.6:jar" level="project" />
|
|
||||||
<orderEntry type="library" scope="TEST" name="sbt: org.scalactic:scalactic_2.12:3.0.5:jar" level="project" />
|
|
||||||
<orderEntry type="library" scope="TEST" name="sbt: org.scalatest:scalatest_2.12:3.0.5:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.typelevel:macro-compat_2.12:1.1.1:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: com.typesafe:ssl-config-core_2.12:0.3.6:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.scala-lang:scala-library:2.12.8:jar" level="project" />
|
|
||||||
<orderEntry type="library" name="sbt: org.scala-lang:scala-reflect:2.12.8:jar" level="project" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
16
.idea/modules/telegram-bot1.iml
generated
16
.idea/modules/telegram-bot1.iml
generated
@@ -1,16 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module external.linked.project.id="telegram-bot1 [file:/home/nnm/development/telegram-bot1/]" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="SBT" type="JAVA_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
|
||||||
<output url="file://$MODULE_DIR$/../../target/scala-2.12/classes" />
|
|
||||||
<output-test url="file://$MODULE_DIR$/../../target/scala-2.12/test-classes" />
|
|
||||||
<exclude-output />
|
|
||||||
<content url="file://$MODULE_DIR$/../..">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/../../target/scala-2.12/src_managed/main" isTestSource="false" generated="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/../../target/scala-2.12/src_managed/test" isTestSource="true" generated="true" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/../../target" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
<orderEntry type="library" name="sbt: org.scala-lang:scala-library:2.12.8:jar" level="project" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
@@ -25,3 +25,4 @@ lazy val `telegram-bot` = (project in file("telegram-bot"))
|
|||||||
circeAkkaHttp
|
circeAkkaHttp
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
.enablePlugins(DockerPlugin)
|
||||||
|
|||||||
28
keys/telegram-bot.key
Normal file
28
keys/telegram-bot.key
Normal file
@@ -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-----
|
||||||
BIN
keys/telegram-bot.p12
Normal file
BIN
keys/telegram-bot.p12
Normal file
Binary file not shown.
21
keys/telegram-bot.pem
Normal file
21
keys/telegram-bot.pem
Normal file
@@ -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-----
|
||||||
@@ -1 +1,2 @@
|
|||||||
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")
|
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")
|
||||||
|
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.21")
|
||||||
18
telegram-bot/src/main/resources/application.conf
Normal file
18
telegram-bot/src/main/resources/application.conf
Normal file
@@ -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"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
telegram-bot/src/main/resources/logback.xml
Normal file
11
telegram-bot/src/main/resources/logback.xml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<configuration debug="true" scan="true" >
|
||||||
|
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
|
<encoder>
|
||||||
|
<pattern>%date [%level] %logger: %message%n%xException</pattern>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<root level="DEBUG">
|
||||||
|
<appender-ref ref="STDOUT"/>
|
||||||
|
</root>
|
||||||
|
</configuration>
|
||||||
BIN
telegram-bot/src/main/resources/telegram-bot.p12
Normal file
BIN
telegram-bot/src/main/resources/telegram-bot.p12
Normal file
Binary file not shown.
21
telegram-bot/src/main/resources/telegram-bot.pem
Normal file
21
telegram-bot/src/main/resources/telegram-bot.pem
Normal file
@@ -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-----
|
||||||
@@ -15,9 +15,15 @@ import scala.io.StdIn
|
|||||||
|
|
||||||
object Main {
|
object Main {
|
||||||
def main(args: Array[String]): Unit = {
|
def main(args: Array[String]): Unit = {
|
||||||
//val botId = "570855144:AAEv7b817cuq2JJI9f2kG5B9G3zW1x-btz4" // useless bot
|
val isProduction = System.getProperty("isProduction", "false").toBoolean
|
||||||
val botId = "693134480:AAE8JRXA6j1mkOKTaxapP6A-E4LPHRuiIf8" // delivery bot
|
|
||||||
val botBehavior = Behaviors.supervise(TelegramBot.behavior(botId, "0.0.0.0", 88)).onFailure(SupervisorStrategy.restart)
|
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")
|
val telegramBot = ActorSystem(botBehavior, "telegram-bot")
|
||||||
implicit val actorSystem: actor.ActorSystem = telegramBot.toUntyped
|
implicit val actorSystem: actor.ActorSystem = telegramBot.toUntyped
|
||||||
implicit val executionContext: ExecutionContextExecutor = telegramBot.dispatchers.lookup(DispatcherSelector.default())
|
implicit val executionContext: ExecutionContextExecutor = telegramBot.dispatchers.lookup(DispatcherSelector.default())
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ object TelegramBot {
|
|||||||
case object GetBotInfo
|
case object GetBotInfo
|
||||||
case object GetWebhookInfo
|
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")
|
ctx.log.info("action=start_bot")
|
||||||
|
|
||||||
implicit val untypedSystem: ActorSystem = ctx.system.toUntyped
|
implicit val untypedSystem: ActorSystem = ctx.system.toUntyped
|
||||||
@@ -44,7 +44,7 @@ object TelegramBot {
|
|||||||
val botUri = BotUri(botId)
|
val botUri = BotUri(botId)
|
||||||
val http: HttpExt = Http()
|
val http: HttpExt = Http()
|
||||||
val hookId = UUID.randomUUID().toString
|
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 httpsContext = createHttpsConnectionContext
|
||||||
val stashBuffer = StashBuffer[Command](10)
|
val stashBuffer = StashBuffer[Command](10)
|
||||||
val dialogManager = ctx.spawnAnonymous(Behaviors.supervise(DialogManager.behavior(botUri)).onFailure(SupervisorStrategy.restart))
|
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 BindingSuccess(binding: Http.ServerBinding) extends Command
|
||||||
case class BindingFailure(exception: Throwable) 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
|
http
|
||||||
.bindAndHandle(routes, interface, port, httpsContext)
|
.bindAndHandle(routes, interface, localPort, httpsContext)
|
||||||
.onComplete {
|
.onComplete {
|
||||||
case Success(binding) => ctx.self ! BindingSuccess(binding)
|
case Success(binding) => ctx.self ! BindingSuccess(binding)
|
||||||
case Failure(exception) => ctx.self ! BindingFailure(exception)
|
case Failure(exception) => ctx.self ! BindingFailure(exception)
|
||||||
@@ -81,7 +81,7 @@ object TelegramBot {
|
|||||||
case object UnbindingSuccess extends Command
|
case object UnbindingSuccess extends Command
|
||||||
case class UnbindingFailure(exception: Throwable) 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
|
binding
|
||||||
.unbind()
|
.unbind()
|
||||||
|
|||||||
Reference in New Issue
Block a user