add versioning to markup languages and reparse old format version posts

This commit is contained in:
2025-08-16 05:28:44 +03:00
parent 382080ceaa
commit cf4bf3caa3
5 changed files with 34 additions and 8 deletions

View File

@ -1,6 +1,6 @@
from flask import Flask, session
from dotenv import load_dotenv
from .models import Avatars, Users
from .models import Avatars, Users, PostHistory, Posts
from .auth import digest
from .routes.users import is_logged_in, get_active_user
from .routes.threads import get_post_url
@ -9,7 +9,7 @@ from .constants import (
InfoboxKind, InfoboxIcons, InfoboxHTMLClass,
REACTION_EMOJI,
)
from .lib.babycode import babycode_to_html, EMOJI
from .lib.babycode import babycode_to_html, EMOJI, BABYCODE_VERSION
from datetime import datetime
import os
import time
@ -48,6 +48,23 @@ def create_deleted_user():
"permission": PermissionLevel.SYSTEM.value,
})
def reparse_posts():
from .db import db
post_histories = PostHistory.findall([
('markup_language', '=', 'babycode'),
('format_version', 'IS NOT', BABYCODE_VERSION)
])
if len(post_histories) == 0:
return
print('Re-parsing babycode, this may take a while...')
with db.transaction():
for ph in post_histories:
ph.update({
'content': babycode_to_html(ph['original_markup']),
'format_version': BABYCODE_VERSION,
})
print('Re-parsing done.')
def create_app():
app = Flask(__name__)
app.config.from_file('../config/pyrom_config.toml', load=tomllib.load, text=False)
@ -76,6 +93,8 @@ def create_app():
create_admin()
create_deleted_user()
reparse_posts()
from app.routes.app import bp as app_bp
from app.routes.topics import bp as topics_bp
from app.routes.threads import bp as threads_bp