Merge "app/matrix enable telegram in matrix.0x3c.pl"
diff --git a/app/matrix/matrix.0x3c.pl.jsonnet b/app/matrix/matrix.0x3c.pl.jsonnet
index 3ecb2e4..76de45f 100644
--- a/app/matrix/matrix.0x3c.pl.jsonnet
+++ b/app/matrix/matrix.0x3c.pl.jsonnet
@@ -23,4 +23,38 @@
             "welcomeBackgroundUrl": "https://media.0x3c.pl/file/0x3c-mastodon/0x3c-pixelsort.png"
         },
     },
+
+    appservices: {
+        "telegram-prod": telegram.AppServiceTelegram("prod") {
+            cfg+: {
+                image: cfg.images.appserviceTelegram,
+                storageClassName: cfg.storageClassName,
+                metadata: app.metadata("appservice-telegram-prod"),
+
+                config+: {
+                    homeserver+: {
+                        address: "https://%s" % [cfg.webDomain],
+                        domain: cfg.serverName,
+                    },
+                    appservice+: {
+                        id: "telegram",
+                        bot_avatar: "https://media.0x3c.pl/file/0x3c-mastodon/posejbot2.png",
+                    },
+                    telegram+: {
+                        # not7cd: it may be convinient to use same bot credentials for both appservices
+                        api_id: (std.split(importstr "secrets/plain/appservice-telegram-0x3c-api-id", "\n"))[0],
+                        api_hash: (std.split(importstr "secrets/plain/appservice-telegram-0x3c-api-hash", "\n"))[0],
+                        bot_token: (std.split(importstr "secrets/plain/appservice-telegram-0x3c-token", "\n"))[0],
+                    },
+                    bridge+: {
+                        permissions+: {
+                            "0x3c.pl": "puppeting",
+                            "@not7cd:0x3c.pl": "admin", // propabbly
+                            "@q3k:0x3c.pl": "admin",
+                        },
+                    },
+                },
+            },
+        },
+    },
 }
diff --git a/app/matrix/secrets/cipher/appservice-telegram-0x3c-api-hash b/app/matrix/secrets/cipher/appservice-telegram-0x3c-api-hash
new file mode 100644
index 0000000..5b754c4
--- /dev/null
+++ b/app/matrix/secrets/cipher/appservice-telegram-0x3c-api-hash
@@ -0,0 +1,40 @@
+-----BEGIN PGP MESSAGE-----
+
+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
+=++sr
+-----END PGP MESSAGE-----
diff --git a/app/matrix/secrets/cipher/appservice-telegram-0x3c-api-id b/app/matrix/secrets/cipher/appservice-telegram-0x3c-api-id
new file mode 100644
index 0000000..4ff723e
--- /dev/null
+++ b/app/matrix/secrets/cipher/appservice-telegram-0x3c-api-id
@@ -0,0 +1,40 @@
+-----BEGIN PGP MESSAGE-----
+
+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
+B0uzGMcgdOe4Neu3LXzf
+=qixn
+-----END PGP MESSAGE-----
diff --git a/app/matrix/secrets/cipher/appservice-telegram-0x3c-token b/app/matrix/secrets/cipher/appservice-telegram-0x3c-token
new file mode 100644
index 0000000..9e55321
--- /dev/null
+++ b/app/matrix/secrets/cipher/appservice-telegram-0x3c-token
@@ -0,0 +1,41 @@
+-----BEGIN PGP MESSAGE-----
+
+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
+TBfSBfU=
+=vje0
+-----END PGP MESSAGE-----