push: enable push encryption key
[skip cd]
This commit is contained in:
@@ -10,12 +10,12 @@ require (
|
||||
github.com/gotd/td v0.111.0
|
||||
github.com/rs/zerolog v1.33.0
|
||||
github.com/stretchr/testify v1.9.0
|
||||
go.mau.fi/util v0.8.2-0.20241113135441-636f8643f367
|
||||
go.mau.fi/util v0.8.2
|
||||
go.mau.fi/zerozap v0.1.1
|
||||
go.uber.org/zap v1.27.0
|
||||
golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f
|
||||
golang.org/x/net v0.31.0
|
||||
maunium.net/go/mautrix v0.21.2-0.20241114125808-21aa3291f31f
|
||||
maunium.net/go/mautrix v0.22.1-0.20241119140028-4bc4bc00465a
|
||||
)
|
||||
|
||||
require (
|
||||
|
||||
@@ -74,8 +74,8 @@ github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY=
|
||||
github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28=
|
||||
github.com/yuin/goldmark v1.7.8 h1:iERMLn0/QJeHFhxSt3p6PeN9mGnvIKSpG9YYorDMnic=
|
||||
github.com/yuin/goldmark v1.7.8/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
|
||||
go.mau.fi/util v0.8.2-0.20241113135441-636f8643f367 h1:GU0TYiAOU79p6r3jf3e4k5cdgnPxOcJWkWeWampdAjw=
|
||||
go.mau.fi/util v0.8.2-0.20241113135441-636f8643f367/go.mod h1:SVzC++wSl8Yq4YVQRClLPa1frNpSVDVP6mfkw/OvDbc=
|
||||
go.mau.fi/util v0.8.2 h1:zWbVHwdRKwI6U9AusmZ8bwgcLosikwbb4GGqLrNr1YE=
|
||||
go.mau.fi/util v0.8.2/go.mod h1:BHHC9R2WLMJd1bwTZfTcFxUgRFmUgUmiWcT4RbzUgiA=
|
||||
go.mau.fi/zeroconfig v0.1.3 h1:As9wYDKmktjmNZW5i1vn8zvJlmGKHeVxHVIBMXsm4kM=
|
||||
go.mau.fi/zeroconfig v0.1.3/go.mod h1:NcSJkf180JT+1IId76PcMuLTNa1CzsFFZ0nBygIQM70=
|
||||
go.mau.fi/zerozap v0.1.1 h1:mxE/dW4wtkqBYOXOEEzXldk5qKB+ahsZXjoTGnvEhZQ=
|
||||
@@ -117,8 +117,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
maunium.net/go/mauflag v1.0.0 h1:YiaRc0tEI3toYtJMRIfjP+jklH45uDHtT80nUamyD4M=
|
||||
maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA=
|
||||
maunium.net/go/mautrix v0.21.2-0.20241114125808-21aa3291f31f h1:NyPane3nuWA3Pisj7Z0uG1rmNDOkDFSrXEB8xGN0gzs=
|
||||
maunium.net/go/mautrix v0.21.2-0.20241114125808-21aa3291f31f/go.mod h1:X7VB/wOIUo6c3wACyVwA//v2k8BpMLFB2rvaX2Y0984=
|
||||
maunium.net/go/mautrix v0.22.1-0.20241119140028-4bc4bc00465a h1:mClMaxDq8iiBEvoHgi2chKZiRMzhU7idN9ihhqaLpWI=
|
||||
maunium.net/go/mautrix v0.22.1-0.20241119140028-4bc4bc00465a/go.mod h1:oqwf9WYC/brqucM+heYk4gX11O59nP+ljvyxVhndFIM=
|
||||
nhooyr.io/websocket v1.8.17 h1:KEVeLJkUywCKVsnLIDlD/5gtayKp8VoCkksHCGGfT9Y=
|
||||
nhooyr.io/websocket v1.8.17/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c=
|
||||
rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY=
|
||||
|
||||
@@ -188,6 +188,8 @@ type UserLoginMetadata struct {
|
||||
TakeoutDialogCrawlCursor networkid.PortalID `json:"takeout_portal_crawl_cursor,omitempty"`
|
||||
|
||||
PinnedDialogs []networkid.PortalID `json:"pinned_dialogs,omitempty"`
|
||||
|
||||
PushEncryptionKey []byte `json:"push_encryption_key,omitempty"`
|
||||
}
|
||||
|
||||
func (s *UserLoginSession) Load(_ context.Context) (*session.Data, error) {
|
||||
|
||||
+11
-2
@@ -5,12 +5,21 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/gotd/td/tg"
|
||||
"go.mau.fi/util/random"
|
||||
"maunium.net/go/mautrix/bridgev2"
|
||||
)
|
||||
|
||||
var _ bridgev2.PushableNetworkAPI = (*TelegramClient)(nil)
|
||||
|
||||
func (t *TelegramClient) RegisterPushNotifications(ctx context.Context, pushType bridgev2.PushType, token string) error {
|
||||
meta := t.userLogin.Metadata.(*UserLoginMetadata)
|
||||
if meta.PushEncryptionKey == nil {
|
||||
meta.PushEncryptionKey = random.Bytes(256)
|
||||
err := t.userLogin.Save(ctx)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to save push encryption key: %w", err)
|
||||
}
|
||||
}
|
||||
var tokenType int
|
||||
switch pushType {
|
||||
case bridgev2.PushTypeWeb:
|
||||
@@ -27,12 +36,12 @@ func (t *TelegramClient) RegisterPushNotifications(ctx context.Context, pushType
|
||||
TokenType: tokenType,
|
||||
Token: token,
|
||||
AppSandbox: false,
|
||||
Secret: nil,
|
||||
Secret: meta.PushEncryptionKey,
|
||||
OtherUIDs: nil, // TODO set properly
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func (t *TelegramClient) GetPushConfigs() *bridgev2.PushConfig {
|
||||
return &bridgev2.PushConfig{}
|
||||
return &bridgev2.PushConfig{Native: true}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user