import PocketBase from 'pocketbase'; const PB_URL = 'http://127.0.0.1:8090'; const pb = new PocketBase(PB_URL); const SLUG_TO_NEW_TITLE: Record = { 'skrytie-s-mesta-dtp': 'Скрытие с места ДТП: суть статьи', 'prezumpciya-nevinovnosti-voditelya': 'Презумпция невиновности водителя', 'otkaz-ot-podpisi-v-protokole-gibdd': 'Отказ от подписи в протоколе ГИБДД', 'nezavisimaya-ekspertiza-posle-dtp': 'Независимая экспертиза после ДТП', 'lekarstva-za-rulem-lishenie-prav': 'Лишение прав за лекарства', 'lishenie-prav-za-vstrechku-12-15': 'Лишение прав за выезд на встречную', 'kak-priostanovit-protokol-gibdd': 'Как приостановить протокол ГИБДД', 'avtoyurist-surgut-besplatnaya-konsultaciya': 'Юридическая консультация автоюриста', 'kak-pravilno-zapolnyat-admin-protokol-gibdd': 'Как заполнять протокол ГИБДД', 'protocol-ili-postanovlenie': 'Протокол и постановление ГИБДД', '5-oshibok-voditelya-pri-zapolnenii-protokola-gibdd': '5 ошибок при заполнении протокола', }; async function main() { const posts = await pb.collection('posts').getList(1, 500); for (const post of posts.items) { const newTitle = SLUG_TO_NEW_TITLE[post.slug as string]; if (!newTitle) continue; let content = post.content as string; // Заменяем старый H2 на новый if (content.includes('

')) { content = content.replace(/

[^<]+<\/h2>/, `

${newTitle}

`); } await pb.collection('posts').update(post.id, { content }); console.log(`✓ ${post.slug}: ${newTitle}`); } } main();