astro_avtourist/frontend/scripts/fix-h2.ts
2026-05-07 17:16:25 +05:00

39 lines
No EOL
1.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<string, string> = {
'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('<h2>')) {
content = content.replace(/<h2>[^<]+<\/h2>/, `<h2>${newTitle}</h2>`);
}
await pb.collection('posts').update(post.id, { content });
console.log(`${post.slug}: ${newTitle}`);
}
}
main();