Matrix-Zeitzone konfigurierbar machen (Default Europe/Berlin)
This commit is contained in:
@@ -12,3 +12,4 @@ DB_DSN=farmcal:CHANGE_ME@tcp(127.0.0.1:3306)/farmcal?parseTime=true
|
|||||||
# MATRIX_ENABLE_CRYPTO=1
|
# MATRIX_ENABLE_CRYPTO=1
|
||||||
# MATRIX_PICKLE_KEY=CHANGE_ME_LONG_RANDOM
|
# MATRIX_PICKLE_KEY=CHANGE_ME_LONG_RANDOM
|
||||||
# MATRIX_CRYPTO_STORE_PATH=/tmp/farmcal-matrix-crypto.db
|
# MATRIX_CRYPTO_STORE_PATH=/tmp/farmcal-matrix-crypto.db
|
||||||
|
# MATRIX_TIMEZONE=Europe/Berlin
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ MATRIX_LIMIT=25
|
|||||||
MATRIX_ENABLE_CRYPTO=1
|
MATRIX_ENABLE_CRYPTO=1
|
||||||
MATRIX_PICKLE_KEY=LONG_RANDOM_SECRET
|
MATRIX_PICKLE_KEY=LONG_RANDOM_SECRET
|
||||||
MATRIX_CRYPTO_STORE_PATH=/tmp/farmcal-matrix-crypto.db
|
MATRIX_CRYPTO_STORE_PATH=/tmp/farmcal-matrix-crypto.db
|
||||||
|
MATRIX_TIMEZONE=Europe/Berlin
|
||||||
```
|
```
|
||||||
|
|
||||||
- `MATRIX_ACCESS_TOKEN` sollte ein User-Token mit Leserechten fuer den Raum sein.
|
- `MATRIX_ACCESS_TOKEN` sollte ein User-Token mit Leserechten fuer den Raum sein.
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ type MatrixClient struct {
|
|||||||
AccessToken string
|
AccessToken string
|
||||||
RoomID string
|
RoomID string
|
||||||
Limit int
|
Limit int
|
||||||
|
TimeLocation *time.Location
|
||||||
httpClient *http.Client
|
httpClient *http.Client
|
||||||
crypto *cryptohelper.CryptoHelper
|
crypto *cryptohelper.CryptoHelper
|
||||||
}
|
}
|
||||||
@@ -50,6 +51,12 @@ func newMatrixClientFromEnv() *MatrixClient {
|
|||||||
Timeout: 8 * time.Second,
|
Timeout: 8 * time.Second,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
locName := strings.TrimSpace(readEnv("MATRIX_TIMEZONE", "Europe/Berlin"))
|
||||||
|
if loc, err := time.LoadLocation(locName); err == nil {
|
||||||
|
m.TimeLocation = loc
|
||||||
|
} else {
|
||||||
|
m.TimeLocation = time.Local
|
||||||
|
}
|
||||||
|
|
||||||
if readEnv("MATRIX_ENABLE_CRYPTO", "1") != "0" {
|
if readEnv("MATRIX_ENABLE_CRYPTO", "1") != "0" {
|
||||||
m.crypto = initMatrixCrypto(hs, token)
|
m.crypto = initMatrixCrypto(hs, token)
|
||||||
@@ -128,7 +135,7 @@ func (m *MatrixClient) FetchRecentMessages(ctx context.Context) ([]MatrixMessage
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *MatrixClient) mapEventToMessage(ctx context.Context, ev *event.Event) (MatrixMessage, bool) {
|
func (m *MatrixClient) mapEventToMessage(ctx context.Context, ev *event.Event) (MatrixMessage, bool) {
|
||||||
ts := time.UnixMilli(ev.Timestamp).Local().Format("02.01.2006 15:04")
|
ts := m.formatTimestamp(ev.Timestamp)
|
||||||
sender := shortMatrixSender(string(ev.Sender))
|
sender := shortMatrixSender(string(ev.Sender))
|
||||||
|
|
||||||
switch ev.Type {
|
switch ev.Type {
|
||||||
@@ -152,6 +159,14 @@ func (m *MatrixClient) mapEventToMessage(ctx context.Context, ev *event.Event) (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *MatrixClient) formatTimestamp(tsMillis int64) string {
|
||||||
|
loc := m.TimeLocation
|
||||||
|
if loc == nil {
|
||||||
|
loc = time.Local
|
||||||
|
}
|
||||||
|
return time.UnixMilli(tsMillis).In(loc).Format("02.01.2006 15:04")
|
||||||
|
}
|
||||||
|
|
||||||
func extractBody(ev *event.Event) (string, bool) {
|
func extractBody(ev *event.Event) (string, bool) {
|
||||||
if ev == nil {
|
if ev == nil {
|
||||||
return "", false
|
return "", false
|
||||||
|
|||||||
@@ -16,3 +16,4 @@ services:
|
|||||||
MATRIX_ENABLE_CRYPTO: "${MATRIX_ENABLE_CRYPTO:-1}"
|
MATRIX_ENABLE_CRYPTO: "${MATRIX_ENABLE_CRYPTO:-1}"
|
||||||
MATRIX_PICKLE_KEY: "${MATRIX_PICKLE_KEY:-}"
|
MATRIX_PICKLE_KEY: "${MATRIX_PICKLE_KEY:-}"
|
||||||
MATRIX_CRYPTO_STORE_PATH: "${MATRIX_CRYPTO_STORE_PATH:-/tmp/farmcal-matrix-crypto.db}"
|
MATRIX_CRYPTO_STORE_PATH: "${MATRIX_CRYPTO_STORE_PATH:-/tmp/farmcal-matrix-crypto.db}"
|
||||||
|
MATRIX_TIMEZONE: "${MATRIX_TIMEZONE:-Europe/Berlin}"
|
||||||
|
|||||||
Reference in New Issue
Block a user