From 5765b9a29cefcdb58c80147fa091fdecc2af0689 Mon Sep 17 00:00:00 2001 From: freamon Date: Sun, 19 Jan 2025 19:33:51 +0000 Subject: [PATCH] Remove obsolete function --- app/activitypub/util.py | 114 ---------------------------------------- app/community/util.py | 2 +- 2 files changed, 1 insertion(+), 115 deletions(-) diff --git a/app/activitypub/util.py b/app/activitypub/util.py index ebb3dda3..608f1946 100644 --- a/app/activitypub/util.py +++ b/app/activitypub/util.py @@ -885,120 +885,6 @@ def actor_json_to_model(activity_json, address, server): return community -def post_json_to_model(activity_log, post_json, user, community) -> Post: - try: - nsfl_in_title = '[NSFL]' in post_json['name'].upper() or '(NSFL)' in post_json['name'].upper() - post = Post(user_id=user.id, community_id=community.id, - title=html.unescape(post_json['name']), - comments_enabled=post_json['commentsEnabled'] if 'commentsEnabled' in post_json else True, - sticky=post_json['stickied'] if 'stickied' in post_json else False, - nsfw=post_json['sensitive'], - nsfl=post_json['nsfl'] if 'nsfl' in post_json else nsfl_in_title, - ap_id=post_json['id'], - type=constants.POST_TYPE_ARTICLE, - posted_at=post_json['published'], - last_active=post_json['published'], - instance_id=user.instance_id, - indexable = user.indexable - ) - if 'content' in post_json: - if post_json['mediaType'] == 'text/html': - post.body_html = allowlist_html(post_json['content']) - if 'source' in post_json and post_json['source']['mediaType'] == 'text/markdown': - post.body = post_json['source']['content'] - post.body_html = markdown_to_html(post.body) # prefer Markdown if provided, overwrite version obtained from HTML - else: - post.body = html_to_text(post.body_html) - elif post_json['mediaType'] == 'text/markdown': - post.body = post_json['content'] - post.body_html = markdown_to_html(post.body) - if 'attachment' in post_json and len(post_json['attachment']) > 0 and 'type' in post_json['attachment'][0]: - alt_text = None - if post_json['attachment'][0]['type'] == 'Link': - post.url = post_json['attachment'][0]['href'] # Lemmy < 0.19.4 - if post_json['attachment'][0]['type'] == 'Image': - post.url = post_json['attachment'][0]['url'] # PieFed, Lemmy >= 0.19.4 - if 'name' in post_json['attachment'][0]: - alt_text = post_json['attachment'][0]['name'] - if post.url: - if is_image_url(post.url): - post.type = POST_TYPE_IMAGE - image = File(source_url=post.url) - if alt_text: - image.alt_text = alt_text - db.session.add(image) - post.image = image - elif is_video_url(post.url): - post.type = POST_TYPE_VIDEO - else: - post.type = POST_TYPE_LINK - post.url = remove_tracking_from_link(post.url) - domain = domain_from_url(post.url) - - # notify about links to banned websites. - already_notified = set() # often admins and mods are the same people - avoid notifying them twice - if domain: - if domain.notify_mods: - for community_member in post.community.moderators(): - notify = Notification(title='Suspicious content', url=post.ap_id, user_id=community_member.user_id, author_id=user.id) - db.session.add(notify) - already_notified.add(community_member.user_id) - - if domain.notify_admins: - for admin in Site.admins(): - if admin.id not in already_notified: - notify = Notification(title='Suspicious content', url=post.ap_id, user_id=admin.id, author_id=user.id) - db.session.add(notify) - admin.unread_notifications += 1 - if domain.banned: - post = None - activity_log.exception_message = domain.name + ' is blocked by admin' - if not domain.banned: - domain.post_count += 1 - post.domain = domain - - if post is not None: - if post_json['type'] == 'Video': - post.type = POST_TYPE_VIDEO - post.url = post_json['id'] - if 'icon' in post_json and isinstance(post_json['icon'], list): - icon = File(source_url=post_json['icon'][-1]['url']) - db.session.add(icon) - post.image = icon - - if 'language' in post_json: - language = find_language_or_create(post_json['language']['identifier'], post_json['language']['name']) - if language: - post.language_id = language.id - - if 'tag' in post_json: - for json_tag in post_json['tag']: - if json_tag['type'] == 'Hashtag': - # Lemmy adds the community slug as a hashtag on every post in the community, which we want to ignore - if json_tag['name'][1:].lower() != community.name.lower(): - hashtag = find_hashtag_or_create(json_tag['name']) - if hashtag: - post.tags.append(hashtag) - - if 'image' in post_json and post.image is None: - image = File(source_url=post_json['image']['url']) - db.session.add(image) - post.image = image - db.session.add(post) - community.post_count += 1 - user.post_count += 1 - activity_log.result = 'success' - db.session.commit() - - if post.image_id: - make_image_sizes(post.image_id, 170, 512, 'posts') # the 512 sized image is for masonry view - - return post - except KeyError as e: - current_app.logger.error(f'KeyError in post_json_to_model: ' + str(post_json)) - return None - - # Save two different versions of a File, after downloading it from file.source_url. Set a width parameter to None to avoid generating one of that size def make_image_sizes(file_id, thumbnail_width=50, medium_width=120, directory='posts', toxic_community=False): if current_app.debug: diff --git a/app/community/util.py b/app/community/util.py index 50e23023..c2a3dba8 100644 --- a/app/community/util.py +++ b/app/community/util.py @@ -11,7 +11,7 @@ from pillow_heif import register_heif_opener from app import db, cache, celery from app.activitypub.signature import post_request, default_context, signed_get_request -from app.activitypub.util import find_actor_or_create, actor_json_to_model, post_json_to_model, ensure_domains_match, \ +from app.activitypub.util import find_actor_or_create, actor_json_to_model, ensure_domains_match, \ find_hashtag_or_create, create_post from app.constants import POST_TYPE_ARTICLE, POST_TYPE_LINK, POST_TYPE_IMAGE, POST_TYPE_VIDEO, NOTIF_POST, \ POST_TYPE_POLL