add markup metadata to sig; reparse sigs on init
This commit is contained in:
@@ -48,21 +48,38 @@ def create_deleted_user():
|
|||||||
"permission": PermissionLevel.SYSTEM.value,
|
"permission": PermissionLevel.SYSTEM.value,
|
||||||
})
|
})
|
||||||
|
|
||||||
def reparse_posts():
|
def reparse_babycode():
|
||||||
|
print('Re-parsing babycode, this may take a while...')
|
||||||
from .db import db
|
from .db import db
|
||||||
post_histories = PostHistory.findall([
|
post_histories = PostHistory.findall([
|
||||||
('markup_language', '=', 'babycode'),
|
('markup_language', '=', 'babycode'),
|
||||||
('format_version', 'IS NOT', BABYCODE_VERSION)
|
('format_version', 'IS NOT', BABYCODE_VERSION)
|
||||||
])
|
])
|
||||||
if len(post_histories) == 0:
|
if len(post_histories) > 0:
|
||||||
return
|
print('Re-parsing user posts...')
|
||||||
print('Re-parsing babycode, this may take a while...')
|
with db.transaction():
|
||||||
with db.transaction():
|
for ph in post_histories:
|
||||||
for ph in post_histories:
|
ph.update({
|
||||||
ph.update({
|
'content': babycode_to_html(ph['original_markup']),
|
||||||
'content': babycode_to_html(ph['original_markup']),
|
'format_version': BABYCODE_VERSION,
|
||||||
'format_version': BABYCODE_VERSION,
|
})
|
||||||
|
print('Re-parsing posts done.')
|
||||||
|
|
||||||
|
users_with_sigs = Users.findall([
|
||||||
|
('signature_markup_language', '=', 'babycode'),
|
||||||
|
('signature_format_version', 'IS NOT', BABYCODE_VERSION),
|
||||||
|
('signature_original_markup', 'IS NOT', '')
|
||||||
|
])
|
||||||
|
if len(users_with_sigs) > 0:
|
||||||
|
print('Re-parsing user sigs...')
|
||||||
|
with db.transaction():
|
||||||
|
for user in users_with_sigs:
|
||||||
|
user.update({
|
||||||
|
'signature_rendered': babycode_to_html(user['signature_original_markup']),
|
||||||
|
'signature_format_version': BABYCODE_VERSION,
|
||||||
})
|
})
|
||||||
|
print(f'Re-parsed {len(users_with_sigs)} user sigs.')
|
||||||
|
|
||||||
print('Re-parsing done.')
|
print('Re-parsing done.')
|
||||||
|
|
||||||
def create_app():
|
def create_app():
|
||||||
@@ -105,7 +122,7 @@ def create_app():
|
|||||||
create_admin()
|
create_admin()
|
||||||
create_deleted_user()
|
create_deleted_user()
|
||||||
|
|
||||||
reparse_posts()
|
reparse_babycode()
|
||||||
|
|
||||||
from app.routes.app import bp as app_bp
|
from app.routes.app import bp as app_bp
|
||||||
from app.routes.topics import bp as topics_bp
|
from app.routes.topics import bp as topics_bp
|
||||||
|
|||||||
@@ -5,12 +5,17 @@ def migrate_old_avatars():
|
|||||||
new_path = f"/static{avatar['file_path']}"
|
new_path = f"/static{avatar['file_path']}"
|
||||||
db.execute('UPDATE avatars SET file_path = ? WHERE id = ?', new_path, avatar['id'])
|
db.execute('UPDATE avatars SET file_path = ? WHERE id = ?', new_path, avatar['id'])
|
||||||
|
|
||||||
|
def add_signature_format():
|
||||||
|
db.execute('ALTER TABLE "users" ADD COLUMN "signature_markup_language" TEXT NOT NULL DEFAULT "babycode"')
|
||||||
|
db.execute('ALTER TABLE "users" ADD COLUMN "signature_format_version" INTEGER DEFAULT NULL')
|
||||||
|
|
||||||
# format: [str|tuple(str, any...)|callable]
|
# format: [str|tuple(str, any...)|callable]
|
||||||
MIGRATIONS = [
|
MIGRATIONS = [
|
||||||
migrate_old_avatars,
|
migrate_old_avatars,
|
||||||
'DELETE FROM sessions', # delete old lua porom sessions
|
'DELETE FROM sessions', # delete old lua porom sessions
|
||||||
'ALTER TABLE "users" ADD COLUMN "invited_by" INTEGER REFERENCES users(id)', # invitation system
|
'ALTER TABLE "users" ADD COLUMN "invited_by" INTEGER REFERENCES users(id)', # invitation system
|
||||||
'ALTER TABLE "post_history" ADD COLUMN "format_version" INTEGER DEFAULT NULL',
|
'ALTER TABLE "post_history" ADD COLUMN "format_version" INTEGER DEFAULT NULL',
|
||||||
|
add_signature_format,
|
||||||
]
|
]
|
||||||
|
|
||||||
def run_migrations():
|
def run_migrations():
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from flask import (
|
|||||||
)
|
)
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from ..db import db
|
from ..db import db
|
||||||
from ..lib.babycode import babycode_to_html
|
from ..lib.babycode import babycode_to_html, BABYCODE_VERSION
|
||||||
from ..models import Users, Sessions, Subscriptions, Avatars, PasswordResetLinks, InviteKeys
|
from ..models import Users, Sessions, Subscriptions, Avatars, PasswordResetLinks, InviteKeys
|
||||||
from ..constants import InfoboxKind, PermissionLevel
|
from ..constants import InfoboxKind, PermissionLevel
|
||||||
from ..auth import digest, verify
|
from ..auth import digest, verify
|
||||||
@@ -307,14 +307,19 @@ def settings_form(username):
|
|||||||
if topic_sort_by == 'activity' or topic_sort_by == 'thread':
|
if topic_sort_by == 'activity' or topic_sort_by == 'thread':
|
||||||
sort_by = session['sort_by'] = topic_sort_by
|
sort_by = session['sort_by'] = topic_sort_by
|
||||||
status = request.form.get('status', default="")[:100]
|
status = request.form.get('status', default="")[:100]
|
||||||
original_sig = request.form.get('signature', default='')
|
original_sig = request.form.get('signature', default='').strip()
|
||||||
rendered_sig = babycode_to_html(original_sig)
|
if original_sig:
|
||||||
|
rendered_sig = babycode_to_html(original_sig)
|
||||||
|
else:
|
||||||
|
rendered_sig = ''
|
||||||
session['subscribe_by_default'] = request.form.get('subscribe_by_default', default='off') == 'on'
|
session['subscribe_by_default'] = request.form.get('subscribe_by_default', default='off') == 'on'
|
||||||
|
|
||||||
user.update({
|
user.update({
|
||||||
'status': status,
|
'status': status,
|
||||||
'signature_original_markup': original_sig,
|
'signature_original_markup': original_sig,
|
||||||
'signature_rendered': rendered_sig,
|
'signature_rendered': rendered_sig,
|
||||||
|
'signature_format_version': BABYCODE_VERSION,
|
||||||
|
'signature_markup_language': 'babycode',
|
||||||
})
|
})
|
||||||
flash('Settings updated.', InfoboxKind.INFO)
|
flash('Settings updated.', InfoboxKind.INFO)
|
||||||
return redirect(url_for('.settings', username=user.username))
|
return redirect(url_for('.settings', username=user.username))
|
||||||
|
|||||||
Reference in New Issue
Block a user