From 5d05d7ab056b864cdd7f094d57f2571e3ab10efd Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 29 Mar 2026 14:05:17 +0300 Subject: [PATCH] store: normalize ids in telegram_file and add index --- pkg/connector/media/transfer.go | 3 ++- pkg/connector/store/upgrades/00-latest.sql | 4 +++- pkg/connector/store/upgrades/07-telegram-file-fixes.sql | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 pkg/connector/store/upgrades/07-telegram-file-fixes.sql diff --git a/pkg/connector/media/transfer.go b/pkg/connector/media/transfer.go index d0408980..58770c3b 100644 --- a/pkg/connector/media/transfer.go +++ b/pkg/connector/media/transfer.go @@ -22,6 +22,7 @@ import ( "fmt" "io" "os" + "strings" "github.com/rs/zerolog" "maunium.net/go/mautrix/bridgev2" @@ -96,7 +97,7 @@ func getLocationID(loc any) (locID store.TelegramFileLocationID) { default: panic(fmt.Errorf("unknown location type %T", location)) } - return store.TelegramFileLocationID(id) + return store.TelegramFileLocationID(strings.TrimRight(id, "-")) } // Transferer is a utility for downloading media from Telegram and uploading it diff --git a/pkg/connector/store/upgrades/00-latest.sql b/pkg/connector/store/upgrades/00-latest.sql index 556f4256..f7e790a3 100644 --- a/pkg/connector/store/upgrades/00-latest.sql +++ b/pkg/connector/store/upgrades/00-latest.sql @@ -1,4 +1,4 @@ --- v0 -> v6 (compatible with v2+): Latest revision +-- v0 -> v7 (compatible with v2+): Latest revision CREATE TABLE telegram_user_state ( user_id BIGINT NOT NULL PRIMARY KEY, @@ -52,6 +52,8 @@ CREATE TABLE telegram_file ( size BIGINT ); +CREATE INDEX telegram_file_mxc_idx ON telegram_file (mxc); + CREATE TABLE telegram_topic ( channel_id BIGINT NOT NULL, topic_id BIGINT NOT NULL, diff --git a/pkg/connector/store/upgrades/07-telegram-file-fixes.sql b/pkg/connector/store/upgrades/07-telegram-file-fixes.sql new file mode 100644 index 00000000..8b7b5a68 --- /dev/null +++ b/pkg/connector/store/upgrades/07-telegram-file-fixes.sql @@ -0,0 +1,3 @@ +-- v7 (compatible with v2+): Add index and fix values in telegram_file +UPDATE telegram_file SET id=REPLACE(id, '-', '') WHERE id LIKE '%-'; +CREATE INDEX telegram_file_mxc_idx ON telegram_file (mxc);