Matrix app service instead of client
This commit is contained in:
1 parent
ade520749a
commit
b4ce6600a4
22 files changed
+2918
-9
No files matched your search
+2
-1
@@ -26,7 +26,8 @@ dependencies {
|
||||
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
|
||||
implementation("io.github.microutils:kotlin-logging-jvm:2.0.6")
|
||||
// https://mvnrepository.com/artifact/net.folivo/matrix-spring-boot-bot
|
||||
implementation (group = "net.folivo", name = "matrix-spring-boot-bot", version = "0.4.5")
|
||||
implementation ("net.folivo:matrix-spring-boot-bot:0.4.5")
|
||||
// implementation (group = "net.folivo", name = "matrix-spring-boot-bot", version = "0.4.6")
|
||||
developmentOnly("org.springframework.boot:spring-boot-devtools")
|
||||
runtimeOnly("com.h2database:h2")
|
||||
runtimeOnly("io.r2dbc:r2dbc-h2")
|
||||
|
||||
+1
-1
@@ -19,4 +19,4 @@ Add synapse in /etc/hosts as localhost alias.
|
||||
`docker restart synapse`
|
||||
|
||||
## Inspect containter
|
||||
`docker exec -t -i synapse /bin/bash`
|
||||
`docker exec -t -i synapse /bin/bash`
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,13 @@
|
||||
version: '3.3'
|
||||
services:
|
||||
matrix-synapse:
|
||||
image: matrixdotorg/synapse:latest
|
||||
container_name: synapse
|
||||
volumes:
|
||||
- ./synapse_data:/data
|
||||
environment:
|
||||
- SYNAPSE_REPORT_STATS=false
|
||||
- UID=1000
|
||||
- GID=1000
|
||||
ports:
|
||||
- 8008:8008
|
||||
@@ -0,0 +1,5 @@
|
||||
homeserver.db
|
||||
media_store
|
||||
|
||||
!.gitignore
|
||||
!homeserver.yaml
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,21 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDazCCAlOgAwIBAgIURQQZKTG7wENaPp3bnAVLUMhkBJEwDQYJKoZIhvcNAQEL
|
||||
BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
|
||||
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTAzMTQxNzE0MTZaFw0yMjAz
|
||||
MTQxNzE0MTZaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
|
||||
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
|
||||
AQUAA4IBDwAwggEKAoIBAQD4RoutMqZ9zzuowIZ02N5DneNdTUPp8KTP3ewCTp5B
|
||||
pQB2ht06pEgb7AY0xjlxfwt+lEXc4aeN/B741frLDe6buts8IsedfL0Ub2KHfoqo
|
||||
o3qAimn9+fgoHwZYsls3OJK+fKbPNefp+m65SkZHz4ufQhg2TSLsW0BWATnxnbd8
|
||||
OQIXrCxtV/UKE2iaXfrlmaVSCqFeL4z7Rr+PJ8LiwOFMDLleLMsPiIo8CtR7u/lg
|
||||
65zWI34rhdjwMq9tYXmZtq5sSpS83L/3InQDOvyhNt8vdNS8qL+v7tNhpHldBYqt
|
||||
WJaC/QPeRGXQfa89qYZssZ+k32/i7del2raF8RxkcyVtAgMBAAGjUzBRMB0GA1Ud
|
||||
DgQWBBREbPhToZrilLuC26iiFNj8t+K0hDAfBgNVHSMEGDAWgBREbPhToZrilLuC
|
||||
26iiFNj8t+K0hDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAF
|
||||
NtdTjLsVLhfS0q5tVKQFZ6Ek1CcuyUVeAvTxWDinZVfXzuNFdF1DeDlMwP3gKufz
|
||||
RIAI//k3ISFMwXN0TzgETC86ck4edxpB08E5RKpBZhOrm7PZtoQ5h4hPpOgSG1pp
|
||||
gPvzIzCEtC8Uaf0zpr+2AAm/2+DLgTDzdnO/cxN3UloydW9BslFM1PTeZ7TphT8X
|
||||
3PgDzDBa/IACdTwIhh6RH03l7BhzvKbp5uXnwRSWrf/q1R3mErrsjq9Awx6GECWu
|
||||
Y6YLsHjm05ELHs8r7STQC5Wq+vtfut/iDUNgnNFHmpiaedC1Md3qdnIIMeYrjBjo
|
||||
ru7ot2RLcptsr9w7qd7C
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEA+EaLrTKmfc87qMCGdNjeQ53jXU1D6fCkz93sAk6eQaUAdobd
|
||||
OqRIG+wGNMY5cX8LfpRF3OGnjfwe+NX6yw3um7rbPCLHnXy9FG9ih36KqKN6gIpp
|
||||
/fn4KB8GWLJbNziSvnymzzXn6fpuuUpGR8+Ln0IYNk0i7FtAVgE58Z23fDkCF6ws
|
||||
bVf1ChNoml365ZmlUgqhXi+M+0a/jyfC4sDhTAy5XizLD4iKPArUe7v5YOuc1iN+
|
||||
K4XY8DKvbWF5mbaubEqUvNy/9yJ0Azr8oTbfL3TUvKi/r+7TYaR5XQWKrViWgv0D
|
||||
3kRl0H2vPamGbLGfpN9v4u3Xpdq2hfEcZHMlbQIDAQABAoIBACTQoSmflxyUvC37
|
||||
znRJLDwuj2ZobKel7Wp9Z9+3tLPbOcRZnzhw39h0GT9+HUp9IkE0z18/fs8JEbao
|
||||
VDYD7Nvey1+RcLQjqQ38rkmVNA5pn2KsI6drh6a7Yv+IAwqfMvNYHIwhXDBP2FdV
|
||||
cjJ3ziZhcKGssn8F0PZv3B2921Vp++brFuVtDxvFdhRSSLtcwKI7L5SaOKsA8j2f
|
||||
8Yspq1eigkgCTYTFn1+wdjn3FxyndCV7IFs2BvgdHDBTcB/o6DipXVvK+Px1B3Cp
|
||||
g+ioAHiqn4EkxFkz/ceiscjpUZuITPS+e6aF5Qar7xO5VmeThhNlmsoCFW1nwaea
|
||||
wjwH6CkCgYEA/DxBU1N0o0ZObOnt1eb/LvrSRmxiNH8RKIbb8QL9gQ9Hx1GbP+5N
|
||||
JN5rayBNEg8UAtr0tvbil+ofoxpwlpSGFsFBG5NRcH1LIIHD1Sf0gkGc78ojdCT8
|
||||
O4PcWnCWjLtLIgZCVBxTupa1vsWmUMBzqTxdxn92ECLcPFvo21SRIYsCgYEA+/sp
|
||||
J2Do1lpUjkRDwWAIauHJ01ZHcA5epu2vXXZOnGw+OvPX8a493kwwJDjjrfOgDLTC
|
||||
1FDDBMzbCQUHUa1w3ZfsSOyheHr/8xlVUJ3gz98q+aizaJLJ8lZraL8lvsC9uogf
|
||||
x7P9iTp+SpIHQ1jXp+9WdFgeEgXVkK2GY1bzw+cCgYBiVOcuodFNuaHnSccDZZtD
|
||||
6FpDRAuA5ax9vR1PNtg3EQrthD3ezXrbja4YxC3nhWNKvas7DMJHcOlGf4821M31
|
||||
Xv+PzX2pOd8o3A3JMlta0FNrE8WAiM6gMQadZ1j5oiZnLEN9YNGvYwOVTJ5KyswM
|
||||
RNFWCeiv37c1/Kqpnq05gwKBgGys2QXzxNfV44vsIzC+Y0L9mFb+ahcJC4eBEVYE
|
||||
1UifYoN4cVT5qhM61rR4mLGIVinEuBZrsoBafck5EvwGCpx3jl+xNr7IhaTp8yKu
|
||||
xKvCez1rpdzfGhvba72kWvoXFHzjgplVpm5N/PPaYSmJopD6J1ZMPsPVIlOgk0o6
|
||||
0S1XAoGBALm8/9Gyer2jtfL/WZDILEeOV/rG13ELspTIx0pcbHkvZKFXrddu27E0
|
||||
e89SqTCIXhn3nFLvk4pdWjJbE2QA4uS99vV5HXIpvvEBgwzid5hyqxE3b7xuQwl6
|
||||
bAJld+V2lh5e1tQuaX/bF7B87k4ODlZFatCzhrOXBKMdRm4SkzSk
|
||||
-----END RSA PRIVATE KEY-----
|
||||
@@ -0,0 +1,11 @@
|
||||
id: "Okupa mi coche"
|
||||
url: "http://172.17.0.1:8081"
|
||||
as_token: "30c05ae90a248a4188e620216fa72e349803310ec83e2a77b34fe90be6081f46"
|
||||
hs_token: "312df522183efd404ec1cd22d2ffa4bbc76a8c1ccf541dd692eef281356bb74e"
|
||||
sender_localpart: "okupamicoche"
|
||||
namespaces:
|
||||
users: [ ]
|
||||
aliases:
|
||||
- regex: "#viaje_.*"
|
||||
exclusive: true
|
||||
rooms: [ ]
|
||||
@@ -0,0 +1,22 @@
|
||||
version: 1
|
||||
|
||||
formatters:
|
||||
precise:
|
||||
format: '%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s - %(message)s'
|
||||
|
||||
handlers:
|
||||
console:
|
||||
class: logging.StreamHandler
|
||||
formatter: precise
|
||||
|
||||
loggers:
|
||||
synapse.storage.SQL:
|
||||
# beware: increasing this to DEBUG will make synapse log sensitive
|
||||
# information such as access tokens.
|
||||
level: INFO
|
||||
|
||||
root:
|
||||
level: INFO
|
||||
handlers: [console]
|
||||
|
||||
disable_existing_loggers: false
|
||||
@@ -0,0 +1 @@
|
||||
ed25519 a_cGhG bkRaBjufoVnCJ8Vk3S0h7cF4/7zDmQwM6Q+vnDj3baw
|
||||
@@ -12,13 +12,14 @@ import java.util.stream.Collectors
|
||||
class MatrixService(private val matrixClient: MatrixClient): MatrixApi {
|
||||
private val logger = KotlinLogging.logger {}
|
||||
|
||||
override suspend fun createRoom(name: String, alias: String, usersToInvite: Set<User>): String {
|
||||
override suspend fun createRoom(name: String, alias: String, usersToInvite: Set<User>, topic: String?): String {
|
||||
logger.debug { "Creating room name=$name alias=$alias" }
|
||||
val usersToInviteId = usersToInvite.stream().map { user -> MatrixId.UserId(user.matrixId) }
|
||||
val roomId = matrixClient.roomsApi.createRoom(
|
||||
name = name,
|
||||
roomAliasId = MatrixId.RoomAliasId("#$alias:synapse"),
|
||||
invite = usersToInviteId.collect(Collectors.toSet())
|
||||
invite = usersToInviteId.collect(Collectors.toSet()),
|
||||
topic = topic
|
||||
)
|
||||
return roomId.full
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ class CreateRoomForTravel(private val matrixApi: MatrixApi) {
|
||||
suspend fun createRoomForTravel(travel: Travel): String {
|
||||
val name = createRoomName(travel)
|
||||
val alias = createRoomAlias(travel)
|
||||
return matrixApi.createRoom(name, alias, travel.users())
|
||||
return matrixApi.createRoom(name, alias, travel.users(), travel.description)
|
||||
}
|
||||
|
||||
private fun createRoomName(travel: Travel): String {
|
||||
|
||||
@@ -7,7 +7,7 @@ interface MatrixApi {
|
||||
* Create room and invite users.
|
||||
* @return Room Id.
|
||||
*/
|
||||
suspend fun createRoom(name: String, alias: String, usersToInvite: Set<User>): String
|
||||
suspend fun createRoom(name: String, alias: String, usersToInvite: Set<User>, topic: String?): String
|
||||
|
||||
suspend fun inviteUser(roomId: String, user: User)
|
||||
}
|
||||
@@ -25,11 +25,11 @@ matrix:
|
||||
serverName: synapse
|
||||
# The localpart (username) of the user associated with the application service
|
||||
# or just the username of your bot.
|
||||
username: test
|
||||
username: okupamicoche
|
||||
# (optional) Display name for the bot user.
|
||||
displayname: Okupa mi coche
|
||||
# (optional) The mode you want to use to create a bot. Default is CLIENT. The other is APPSERVICE.
|
||||
mode: CLIENT
|
||||
mode: APPSERVICE
|
||||
# (optional) Configure how users managed by your bot do automatically join rooms.
|
||||
# ENABLED allows automatic joins to every invited room.
|
||||
# DISABLED disables this feature.
|
||||
@@ -57,4 +57,13 @@ matrix:
|
||||
# (optional) Use http or https. Default is true (so uses https).
|
||||
secure: false
|
||||
# The token to authenticate against the Homeserver.
|
||||
token: MDAxNWxvY2F0aW9uIHN5bmFwc2UKMDAxM2lkZW50aWZpZXIga2V5CjAwMTBjaWQgZ2VuID0gMQowMDIwY2lkIHVzZXJfaWQgPSBAdGVzdDpzeW5hcHNlCjAwMTZjaWQgdHlwZSA9IGFjY2VzcwowMDIxY2lkIG5vbmNlID0gMGNZN240LTBVVF43LDAqaQowMDJmc2lnbmF0dXJlII52qsn8HZL-aZJ_7xdWTK7-JHqdRklbn9MZ77ieh-hBCg
|
||||
token: 30c05ae90a248a4188e620216fa72e349803310ec83e2a77b34fe90be6081f46
|
||||
appservice:
|
||||
# A unique token for Homeservers to use to authenticate requests to application services.
|
||||
hsToken: 312df522183efd404ec1cd22d2ffa4bbc76a8c1ccf541dd692eef281356bb74e
|
||||
# A list of users, aliases and rooms namespaces that the application service controls.
|
||||
namespaces:
|
||||
users: [ ]
|
||||
aliases:
|
||||
- localpartRegex: "#viaje_.*"
|
||||
rooms: [ ]
|
||||
Reference in new issue
Block a user