Skip to content

Commit

Permalink
Parse post metadata from trail posts
Browse files Browse the repository at this point in the history
  • Loading branch information
syeopite committed Nov 26, 2023
1 parent f81efe1 commit 11a4611
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 4 deletions.
2 changes: 2 additions & 0 deletions src/priviblur_extractor/models/timeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ class BrokenBlog(NamedTuple):


class TimelinePostTrail(NamedTuple):
id: str
date: datetime.datetime
blog : Union[TimelineBlog]
content: Optional[list[dict]]
layout: Optional[list[dict]]
Expand Down
20 changes: 19 additions & 1 deletion src/priviblur_extractor/parsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,10 +196,14 @@ def __parse(target):

trails = []
for trail_post in trail:
trail_post_id = None
trail_post_creation_date = None
trail_blog = None
trail_content = None
trail_layout = None

has_error = False

try:
if raw_trail_blog := trail_post.get("blog"):
trail_blog = _TimelineBlogParser.process(raw_trail_blog, force_parse=True)
Expand All @@ -208,6 +212,11 @@ def __parse(target):

trail_content = trail_post["content"]
trail_layout = trail_post["layout"]

if trail_post_data := trail_post.get("post"):
trail_post_id = trail_post_data["id"]
trail_post_creation_date = datetime.datetime.fromtimestamp(trail_post_data["timestamp"])

except KeyError as e:
logger.warning(f"KeyError: '{e.args[0]}' while parsing post trail for post '{id}' from blog '{blog.name}'")

Expand All @@ -226,7 +235,16 @@ def __parse(target):
if trail_layout is None:
trail_layout = []

trails.append(models.timeline.TimelinePostTrail(trail_blog, trail_content, trail_layout))
has_error = True

trails.append(models.timeline.TimelinePostTrail(
trail_post_id,
trail_post_creation_date,
trail_blog,
trail_content,
trail_layout,
has_error
))


# Reblogged from data
Expand Down
11 changes: 8 additions & 3 deletions src/templates/macros/post_header.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,15 @@
<span class="link blog-name broken-blog" href="/{{element.blog.name}}">{{element.blog.name}}</span>
{% endif %}

{% if element.date is defined %}
{% if element.date %}
<span class="separator">•</span>
<span class="post-timestamp" title="{{element.date | format_datetime(locale="en")}}">
<a href="/{{element.blog.name}}/{{element.id}}/{{element.slug}}">
<span class="post-timestamp" title="{{element.date | format_datetime(locale="en")}}">
{% set post_url = "/" + element.blog.name|e + "/" + element.id %}
{% if element.slug %}
{% set post_url = post_url + "/" + element.slug | e %}
{% endif %}

<a href="{{post_url}}">
<time datetime="{{element.date.strftime("%Y-%m-%dT%H:%M")}}">{{element.date | format_date(locale="en")}}</time>
</a>
</span>
Expand Down

0 comments on commit 11a4611

Please sign in to comment.