mirror of
https://codeberg.org/rimu/pyfedi
synced 2025-02-03 00:31:25 -08:00
post.body needs to have something in it because that field is used for the search index
This commit is contained in:
parent
33b8b65f1b
commit
57550f02b9
2 changed files with 16 additions and 7 deletions
|
@ -30,7 +30,8 @@ from app.utils import get_request, allowlist_html, get_setting, ap_datetime, mar
|
||||||
is_image_url, domain_from_url, gibberish, ensure_directory_exists, markdown_to_text, head_request, post_ranking, \
|
is_image_url, domain_from_url, gibberish, ensure_directory_exists, markdown_to_text, head_request, post_ranking, \
|
||||||
shorten_string, reply_already_exists, reply_is_just_link_to_gif_reaction, confidence, remove_tracking_from_link, \
|
shorten_string, reply_already_exists, reply_is_just_link_to_gif_reaction, confidence, remove_tracking_from_link, \
|
||||||
blocked_phrases, microblog_content_to_title, generate_image_from_video_url, is_video_url, reply_is_stupid, \
|
blocked_phrases, microblog_content_to_title, generate_image_from_video_url, is_video_url, reply_is_stupid, \
|
||||||
notification_subscribers, communities_banned_from, lemmy_markdown_to_html, actor_contains_blocked_words
|
notification_subscribers, communities_banned_from, lemmy_markdown_to_html, actor_contains_blocked_words, \
|
||||||
|
html_to_text
|
||||||
|
|
||||||
|
|
||||||
def public_key():
|
def public_key():
|
||||||
|
@ -811,7 +812,7 @@ def post_json_to_model(activity_log, post_json, user, community) -> Post:
|
||||||
elif 'content' in post_json:
|
elif 'content' in post_json:
|
||||||
if post_json['mediaType'] == 'text/html':
|
if post_json['mediaType'] == 'text/html':
|
||||||
post.body_html = allowlist_html(post_json['content'])
|
post.body_html = allowlist_html(post_json['content'])
|
||||||
post.body = ''
|
post.body = html_to_text(post.body_html)
|
||||||
elif post_json['mediaType'] == 'text/markdown':
|
elif post_json['mediaType'] == 'text/markdown':
|
||||||
post.body = post_json['content']
|
post.body = post_json['content']
|
||||||
post.body_html = markdown_to_html(post.body)
|
post.body_html = markdown_to_html(post.body)
|
||||||
|
@ -1613,13 +1614,13 @@ def create_post(activity_log: ActivityPubLog, community: Community, request_json
|
||||||
elif 'content' in request_json['object'] and request_json['object']['content'] is not None: # Kbin
|
elif 'content' in request_json['object'] and request_json['object']['content'] is not None: # Kbin
|
||||||
if 'mediaType' in request_json['object'] and request_json['object']['mediaType'] == 'text/html':
|
if 'mediaType' in request_json['object'] and request_json['object']['mediaType'] == 'text/html':
|
||||||
post.body_html = allowlist_html(request_json['object']['content'])
|
post.body_html = allowlist_html(request_json['object']['content'])
|
||||||
post.body = ''
|
post.body = html_to_text(post.body_html)
|
||||||
elif 'mediaType' in request_json['object'] and request_json['object']['mediaType'] == 'text/markdown':
|
elif 'mediaType' in request_json['object'] and request_json['object']['mediaType'] == 'text/markdown':
|
||||||
post.body = request_json['object']['content']
|
post.body = request_json['object']['content']
|
||||||
post.body_html = markdown_to_html(post.body)
|
post.body_html = markdown_to_html(post.body)
|
||||||
else:
|
else:
|
||||||
post.body_html = allowlist_html(request_json['object']['content'])
|
post.body_html = allowlist_html(request_json['object']['content'])
|
||||||
post.body = ''
|
post.body = html_to_text(post.body_html)
|
||||||
if name == "[Microblog]":
|
if name == "[Microblog]":
|
||||||
name += ' ' + microblog_content_to_title(post.body_html)
|
name += ' ' + microblog_content_to_title(post.body_html)
|
||||||
if '[NSFL]' in name.upper() or '(NSFL)' in name.upper():
|
if '[NSFL]' in name.upper() or '(NSFL)' in name.upper():
|
||||||
|
@ -1839,13 +1840,13 @@ def update_post_from_activity(post: Post, request_json: dict):
|
||||||
elif 'content' in request_json['object'] and request_json['object']['content'] is not None: # Kbin
|
elif 'content' in request_json['object'] and request_json['object']['content'] is not None: # Kbin
|
||||||
if 'mediaType' in request_json['object'] and request_json['object']['mediaType'] == 'text/html':
|
if 'mediaType' in request_json['object'] and request_json['object']['mediaType'] == 'text/html':
|
||||||
post.body_html = allowlist_html(request_json['object']['content'])
|
post.body_html = allowlist_html(request_json['object']['content'])
|
||||||
post.body = ''
|
post.body = html_to_text(post.body_html)
|
||||||
elif 'mediaType' in request_json['object'] and request_json['object']['mediaType'] == 'text/markdown':
|
elif 'mediaType' in request_json['object'] and request_json['object']['mediaType'] == 'text/markdown':
|
||||||
post.body = request_json['object']['content']
|
post.body = request_json['object']['content']
|
||||||
post.body_html = markdown_to_html(post.body)
|
post.body_html = markdown_to_html(post.body)
|
||||||
else:
|
else:
|
||||||
post.body_html = allowlist_html(request_json['object']['content'])
|
post.body_html = allowlist_html(request_json['object']['content'])
|
||||||
post.body = ''
|
post.body = html_to_text(post.body_html)
|
||||||
if name == "[Microblog]":
|
if name == "[Microblog]":
|
||||||
name += ' ' + microblog_content_to_title(post.body_html)
|
name += ' ' + microblog_content_to_title(post.body_html)
|
||||||
nsfl_in_title = '[NSFL]' in name.upper() or '(NSFL)' in name.upper()
|
nsfl_in_title = '[NSFL]' in name.upper() or '(NSFL)' in name.upper()
|
||||||
|
|
10
app/cli.py
10
app/cli.py
|
@ -25,7 +25,7 @@ from app.models import Settings, BannedInstances, Interest, Role, User, RolePerm
|
||||||
utcnow, Site, Instance, File, Notification, Post, CommunityMember, NotificationSubscription, PostReply, Language, \
|
utcnow, Site, Instance, File, Notification, Post, CommunityMember, NotificationSubscription, PostReply, Language, \
|
||||||
Tag, InstanceRole
|
Tag, InstanceRole
|
||||||
from app.utils import file_get_contents, retrieve_block_list, blocked_domains, retrieve_peertube_block_list, \
|
from app.utils import file_get_contents, retrieve_block_list, blocked_domains, retrieve_peertube_block_list, \
|
||||||
shorten_string, get_request
|
shorten_string, get_request, html_to_text
|
||||||
|
|
||||||
|
|
||||||
def register(app):
|
def register(app):
|
||||||
|
@ -274,6 +274,14 @@ def register(app):
|
||||||
if filesize > 0 and num_content > 0:
|
if filesize > 0 and num_content > 0:
|
||||||
print(f'{user.id},"{user.ap_id}",{filesize},{num_content}')
|
print(f'{user.id},"{user.ap_id}",{filesize},{num_content}')
|
||||||
|
|
||||||
|
@app.cli.command("repair-search")
|
||||||
|
def repair_search():
|
||||||
|
with app.app_context():
|
||||||
|
for post in Post.query.filter(Post.body == '', Post.body_html != ''):
|
||||||
|
post.body = html_to_text(post.body_html)
|
||||||
|
db.session.commit()
|
||||||
|
print('Done')
|
||||||
|
|
||||||
def list_files(directory):
|
def list_files(directory):
|
||||||
for root, dirs, files in os.walk(directory):
|
for root, dirs, files in os.walk(directory):
|
||||||
for file in files:
|
for file in files:
|
||||||
|
|
Loading…
Add table
Reference in a new issue