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_PICKLE_KEY=CHANGE_ME_LONG_RANDOM
|
||||
# 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_PICKLE_KEY=LONG_RANDOM_SECRET
|
||||
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.
|
||||
|
||||
@@ -21,6 +21,7 @@ type MatrixClient struct {
|
||||
AccessToken string
|
||||
RoomID string
|
||||
Limit int
|
||||
TimeLocation *time.Location
|
||||
httpClient *http.Client
|
||||
crypto *cryptohelper.CryptoHelper
|
||||
}
|
||||
@@ -50,6 +51,12 @@ func newMatrixClientFromEnv() *MatrixClient {
|
||||
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" {
|
||||
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) {
|
||||
ts := time.UnixMilli(ev.Timestamp).Local().Format("02.01.2006 15:04")
|
||||
ts := m.formatTimestamp(ev.Timestamp)
|
||||
sender := shortMatrixSender(string(ev.Sender))
|
||||
|
||||
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) {
|
||||
if ev == nil {
|
||||
return "", false
|
||||
|
||||
@@ -16,3 +16,4 @@ services:
|
||||
MATRIX_ENABLE_CRYPTO: "${MATRIX_ENABLE_CRYPTO:-1}"
|
||||
MATRIX_PICKLE_KEY: "${MATRIX_PICKLE_KEY:-}"
|
||||
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