From 45c19cac206a800fe151a0a569089431ca02e55f Mon Sep 17 00:00:00 2001 From: h Date: Mon, 19 Oct 2026 02:23:47 +0000 Subject: [PATCH] feat(backend): edit versions are kept in groups and channels by default --- .../a2c4e6f8b1d3_edit_versions_everywhere.py | 32 +++++++++++++++++++ backend/src/userbot/handlers/edits.py | 2 +- backend/src/utils/policy/defaults.py | 4 +-- 3 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 backend/migrations/versions/a2c4e6f8b1d3_edit_versions_everywhere.py diff --git a/backend/migrations/versions/a2c4e6f8b1d3_edit_versions_everywhere.py b/backend/migrations/versions/a2c4e6f8b1d3_edit_versions_everywhere.py new file mode 100644 index 0000000..fac2fc1 --- /dev/null +++ b/backend/migrations/versions/a2c4e6f8b1d3_edit_versions_everywhere.py @@ -0,0 +1,32 @@ +"""edit versions everywhere + +Revision ID: a2c4e6f8b1d3 +Revises: c9e2a7f4b1d8 +Create Date: 2026-10-19 02:30:00.000000 + +""" + +from collections.abc import Sequence + +from alembic import op + +revision: str = "a2c4e6f8b1d3" +down_revision: str | None = "c9e2a7f4b1d8" +branch_labels: str | Sequence[str] | None = None +depends_on: str | Sequence[str] | None = None + + +def upgrade() -> None: + op.execute( + "UPDATE capture_policy SET track_edits_deletes = TRUE, updated_at = now() " + "WHERE scope_type IN ('default_group', 'default_channel') " + "AND NOT track_edits_deletes" + ) + + +def downgrade() -> None: + op.execute( + "UPDATE capture_policy SET track_edits_deletes = FALSE, updated_at = now() " + "WHERE scope_type IN ('default_group', 'default_channel') " + "AND track_edits_deletes" + ) diff --git a/backend/src/userbot/handlers/edits.py b/backend/src/userbot/handlers/edits.py index f200735..66c2813 100644 --- a/backend/src/userbot/handlers/edits.py +++ b/backend/src/userbot/handlers/edits.py @@ -25,7 +25,7 @@ async def on_edited_message(client: PyroClient, message: Message) -> None: meta = meta_from_chat(chat, ctx.contacts.ids) await ctx.watches.on_edit(seen_message(chat_id, message)) toggles = ctx.resolve(meta) - if not toggles.track_edits_deletes: + if not (toggles.messages and toggles.track_edits_deletes): return changed = await repository.add_version( ctx.pool, ctx.account_id, message_row(message, chat_id, message.date) diff --git a/backend/src/utils/policy/defaults.py b/backend/src/utils/policy/defaults.py index 4e35bf9..d588c5c 100644 --- a/backend/src/utils/policy/defaults.py +++ b/backend/src/utils/policy/defaults.py @@ -1,8 +1,8 @@ from utils.policy.models import CaptureToggles, ChatKind DEFAULTS: dict[ChatKind, CaptureToggles] = { - ChatKind.CHANNEL: CaptureToggles(), - ChatKind.GROUP: CaptureToggles(messages=True), + ChatKind.CHANNEL: CaptureToggles(track_edits_deletes=True), + ChatKind.GROUP: CaptureToggles(messages=True, track_edits_deletes=True), ChatKind.DM: CaptureToggles( messages=True, media=True,