mirror of
https://github.com/xCyanGrizzly/DragonsStash.git
synced 2026-05-11 06:11:15 +00:00
feat: add preview management, channel controls, invite polish, and recovery
- Auto-extract preview images from ZIP/RAR/7z archives during ingestion - Upload custom preview images via package drawer - Select preview from archive contents with on-demand extraction UI - Manually add Telegram channels by t.me link, username, or invite link - Invite code UX: bulk create, copy link, usage tracking, delete confirm - Incomplete upload recovery: verify dest messages on worker startup - Rebuild package DB by scanning destination channel with live progress Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -438,3 +438,35 @@ export async function getExistingChannelsByTelegramId(): Promise<Map<string, str
|
||||
export async function getAccountById(accountId: string) {
|
||||
return db.telegramAccount.findUnique({ where: { id: accountId } });
|
||||
}
|
||||
|
||||
/**
|
||||
* Find packages that have a destMessageId set (appear uploaded) but may
|
||||
* reference messages that no longer exist in Telegram. These need
|
||||
* verification on startup.
|
||||
*
|
||||
* Groups by destChannelId so the caller can batch-verify per channel.
|
||||
*/
|
||||
export async function getPackagesWithDestMessage() {
|
||||
return db.package.findMany({
|
||||
where: { destMessageId: { not: null }, destChannelId: { not: null } },
|
||||
select: {
|
||||
id: true,
|
||||
fileName: true,
|
||||
contentHash: true,
|
||||
destChannelId: true,
|
||||
destMessageId: true,
|
||||
sourceChannel: { select: { telegramId: true } },
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset a package's destination fields so it will be re-processed
|
||||
* on the next ingestion run (treated as not-yet-uploaded).
|
||||
*/
|
||||
export async function resetPackageDestination(packageId: string) {
|
||||
return db.package.update({
|
||||
where: { id: packageId },
|
||||
data: { destChannelId: null, destMessageId: null },
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user