add fedipage datamodel

This commit is contained in:
2025-09-21 19:07:33 +02:00
parent c679d9fa3b
commit 864a1f4aef
7 changed files with 781 additions and 191 deletions
+26 -147
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>$profile.display_name - $profile.username</title>
<title>$page.displayName - $page.username</title>
<style>
* {
margin: 0;
@@ -267,179 +267,58 @@
<body>
<div class="container">
<div class="header">
<img id="banner" class="banner" alt="Banner" src="$profile.header">
<img id="banner" class="banner" alt="Banner" src="$page.headerUrl">
</div>
<div class="profile-section">
<img id="avatar" class="profile-avatar" alt="Avatar" src="$profile.avatar">
<img id="avatar" class="profile-avatar" alt="Avatar" src="$page.avatarUrl">
<div class="profile-info">
<div id="displayName" class="display-name">$profile.display_name</div>
<div id="username" class="username"><a href="$profile.url">@$profile.username</a></div>
<div id="bio" class="bio">$profile.note</div>
<div id="displayName" class="display-name">$page.displayName</div>
<div id="username" class="username"><a href="$page.url">$page.username</a></div>
<div id="bio" class="bio">$page.description</div>
<div class="stats">
<span id="followingCount">$profile.following_count Folgt</span>
<span id="followersCount">$profile.followers_count Follower</span>
<span id="statusesCount">$profile.statuses_count Beiträge</span>
<span id="followingCount">$page.following Folgt</span>
<span id="followersCount">$page.followers Follower</span>
<span id="statusesCount">$page.posts Beiträge</span>
</div>
</div>
</div>
<!--
<div class="controls">
<div class="checkbox-group">
<label>
<input type="checkbox" id="includeBoosts">
Geteilte Inhalte anzeigen
</label>
<label>
<input type="checkbox" id="includeReplies">
Antworten anzeigen
</label>
<button class="refresh-btn" onclick="loadPosts()">Aktualisieren</button>
</div>
</div>
-->
<!--
<div id="loading" class="loading">Lade Daten...</div>
<div id="error" class="error" style="display: none;"></div>
-->
<div id="posts" class="posts">
#foreach( $post in $pinned )
#set ( $image_class = 'single' )
#set ( $post_date = $dateformatter.format( $post.created_at ) )
#foreach( $post in $page.timeline )
<div class="post">
#set ( $image_class = 'single' )
#set ( $post_date = $dateformatter.format( $post.createdAt ) )
#if ( $post.pinned )
<div class="boost-indicator">📌 Angeheftet</div>
#end
#if ( $post.boosted )
<div class="boost-indicator">🔄 $page.displayName hat geteilt</div>
#end
<div class="post-header">
<img class="post-avatar" src="$post.account.avatar" alt="Avatar">
<img class="post-avatar" src="$post.authorAvatarUrl" alt="Avatar">
<div class="post-user">
<div class="post-display-name">$post.account.display_name</div>
<div class="post-username"><a href="$post.account.url">@$post.account.acct</a></div>
<div class="post-display-name">$post.authorDisplayName</div>
<div class="post-username"><a href="$post.authorUrl">$post.authorHandle</a></div>
</div>
<div class="post-date"><a href="$post.url" target="_blank">$post_date</a></div>
<div class="post-date"><a href="$post.postUrl" target="_blank">$post_date</a></div>
</div>
<div class="post-content">$post.content</div>
#if( $post.media_attachments.length > 0 )
#if( $post.media_attachments.length > 1 )
#set ( $image_class = 'double' )
#end
#if( $post.media_attachments.length > 2 )
#set ( $image_class = 'multiple' )
#end
<div class="post-media">
<div class="media-grid $image_class">
#foreach( $media_item in $post.media_attachments )
#foreach( $medium in $post.media )
<div class="media-item">
<img src="$media_item.preview_url" alt="$media_item.description" onclick="window.open('$media_item.url', '_blank')">
<img src="$medium.mediumImage" alt="$medium.description" onclick="window.open('$medium.mediumUrl', '_blank')">
</div>
#end
</div>
</div>
#else
#if( $post.card )
<div class="post-media">
<div class="media-grid single">
<div class="media-item">
<img src="$post.card.image" alt="$post.card.description" onclick="window.open('$post.card.url', '_blank')">
</div>
</div>
</div>
#end
#end
<div class="post-stats">
<span>🔄 $post.reblogs_count</span>
<span>⭐ $post.favourites_count</span>
<span>💬 $post.replies_count</span>
<span>🔄 $post.boosts</span>
<span>⭐ $post.likes</span>
<span>💬 $post.comments</span>
</div>
</div>
#end
#foreach( $post in $timeline )
#set ( $image_class = 'single' )
<div class="post">
#if( $post.reblog.account )
#set ( $post_date = $dateformatter.format( $post.reblog.created_at ) )
#if( $post.reblog.media_attachments.length > 1 )
#set ( $image_class = 'double' )
#end
#if( $post.reblog.media_attachments.length > 2 )
#set ( $image_class = 'multiple' )
#end
<div class="boost-indicator">🔄 $post.account.display_name hat geteilt</div>
<div class="post-header">
<img class="post-avatar" src="$post.reblog.account.avatar" alt="Avatar">
<div class="post-user">
<div class="post-display-name">$post.reblog.account.display_name</div>
<div class="post-username"><a href="$post.reblog.account.url">@$post.reblog.account.acct</a></div>
</div>
<div class="post-date"><a href="$post.reblog.url" target="_blank">$post_date</a></div>
</div>
<div class="post-content">$post.reblog.content</div>
#if( $post.reblog.media_attachments.length > 0 )
<div class="post-media">
<div class="media-grid $image_class">
#foreach( $media_item in $post.reblog.media_attachments )
<div class="media-item">
<img src="$media_item.preview_url" alt="$media_item.description" onclick="window.open('$media_item.url', '_blank')">
</div>
#end
</div>
</div>
#else
#if( $post.reblog.card )
<div class="post-media">
<div class="media-grid single">
<div class="media-item">
<img src="$post.reblog.card.image" alt="$post.reblog.card.description" onclick="window.open('$post.reblog.card.url', '_blank')">
</div>
</div>
</div>
#end
#end
#else
#set ( $post_date = $dateformatter.format( $post.created_at ) )
#if( $post.media_attachments.length > 1 )
#set ( $image_class = 'double' )
#end
#if( $post.media_attachments.length > 2 )
#set ( $image_class = 'multiple' )
#end
<div class="post-header">
<img class="post-avatar" src="$post.account.avatar" alt="Avatar">
<div class="post-user">
<div class="post-display-name">$post.account.display_name</div>
<div class="post-username"><a href="$post.account.url">@$post.account.acct</a></div>
</div>
<div class="post-date"><a href="$post.url" target="_blank">$post_date</a></div>
</div>
<div class="post-content">$post.content</div>
#if( $post.media_attachments.length > 0 )
<div class="post-media">
<div class="media-grid $image_class">
#foreach( $media_item in $post.media_attachments )
<div class="media-item">
<img src="$media_item.preview_url" alt="$media_item.description" onclick="window.open('$media_item.url', '_blank')">
</div>
#end
</div>
</div>
#else
#if( $post.card )
<div class="post-media">
<div class="media-grid single">
<div class="media-item">
<img src="$post.card.image" alt="$post.card.description" onclick="window.open('$post.card.url', '_blank')">
</div>
</div>
</div>
#end
#end
<div class="post-stats">
<span>🔄 $post.reblogs_count</span>
<span>⭐ $post.favourites_count</span>
<span>💬 $post.replies_count</span>
</div>
#end
</div>
#end
</div>
</div>