Bluesky app fork with some witchin' additions 馃挮
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 143 lines 5.7 kB view raw
1{% extends "base.html" %} 2 3{% block head_title %} 4{%- if postView -%} 5 @{{ postView.Author.Handle }} on Bluesky 6{%- elif requiresAuth and profileHandle -%} 7 @{{ profileHandle }} on Bluesky 8{%- else -%} 9 Bluesky 10{%- endif -%} 11{% endblock %} 12 13{% block html_head_extra -%} 14{%- if postView -%} 15 <meta property="og:type" content="article"> 16 <meta property="profile:username" content="{{ postView.Author.Handle }}"> 17 {%- if requestURI %} 18 <meta property="og:url" content="{{ requestURI }}"> 19 <link rel="canonical" href="{{ requestURI|canonicalize_url }}" /> 20 {% endif -%} 21 {%- if postView.Author.DisplayName %} 22 <meta property="og:title" content="{{ postView.Author.DisplayName }} (@{{ postView.Author.Handle }})"> 23 {% else %} 24 <meta property="og:title" content="@{{ postView.Author.Handle }}"> 25 {% endif -%} 26 {%- if postText %} 27 <meta name="description" content="{{ postText }}"> 28 <meta property="og:description" content="{{ postText }}"> 29 <meta property="twitter:description" content="{{ postText }}"> 30 {% endif -%} 31 {%- if imgThumbUrls %} 32 {% for imgThumbUrl in imgThumbUrls %} 33 <meta property="og:image" content="{{ imgThumbUrl }}"> 34 <meta property="twitter:image" content="{{ imgThumbUrl }}"> 35 {% endfor %} 36 <meta name="twitter:card" content="summary_large_image"> 37 {%- if videoUrl %} 38 <meta property="og:video" content="{{ videoUrl }}"> 39 <meta property="og:video:type" content="{{ videoType }}"> 40 {%- if videoWidth %} 41 <meta property="og:video:width" content="{{ videoWidth }}"> 42 <meta property="og:video:height" content="{{ videoHeight }}"> 43 {% endif -%} 44 {% endif -%} 45 {% else %} 46 <meta property="og:image" content="{{ postView.Author.Avatar|avatar_thumbnail }}"> 47 <meta property="twitter:image" content="{{ postView.Author.Avatar|avatar_thumbnail }}"> 48 <meta name="twitter:card" content="summary"> 49 {% endif %} 50 <meta name="twitter:label1" content="Posted At"> 51 <meta name="twitter:value1" content="{{ postView.IndexedAt }}"> 52 {%- if postView.LikeCount %} 53 <meta name="twitter:label2" content="Likes"> 54 <meta name="twitter:value2" content="{{ postView.LikeCount }}"> 55 {% endif -%} 56 {%- if postView.ReplyCount %} 57 <meta name="twitter:label3" content="Replies"> 58 <meta name="twitter:value3" content="{{ postView.ReplyCount }}"> 59 {% endif -%} 60 {%- if postView.RepostCount %} 61 <meta name="twitter:label4" content="Reposts"> 62 <meta name="twitter:value4" content="{{ postView.RepostCount }}"> 63 {% endif -%} 64 <meta property="article:published_time" content="{{ postView.IndexedAt }}"> 65 <link rel="alternate" type="application/json+oembed" href="https://embed.bsky.app/oembed?format=json&url={{ postView.Uri | urlencode }}" /> 66 <link rel="alternate" href="{{ postView.Uri }}" /> 67 <script type="application/ld+json"> 68 { 69 "@context": "https://schema.org", 70 "@type": "DiscussionForumPosting", 71 "author": { 72 "@type": "Person", 73 {%- if postView.Author.DisplayName %} 74 "name": "{{ postView.Author.DisplayName }}", 75 "alternateName": "@{{ postView.Author.Handle }}", 76 {% else %} 77 "name": "@{{ postView.Author.Handle }}", 78 {% endif -%} 79 "url": "https://bsky.app/profile/{{ postView.Author.Handle }}" 80 }, 81 {%- if postText %} 82 "text": "{{ postText }}", 83 {% endif %} 84 {%- if imageThumbUrls %} 85 "image": "{{ imageThumbUrls[0] }}", 86 {% endif %} 87 "datePublished": "{{ postView.IndexedAt }}", 88 "interactionStatistic": [ 89 { 90 "@type": "InteractionCounter", 91 "interactionType": "https://schema.org/LikeAction", 92 "userInteractionCount": {{ postView.LikeCount }} 93 }, 94 { 95 "@type": "InteractionCounter", 96 "interactionType": "https://schema.org/CommentAction", 97 "userInteractionCount": {{ postView.ReplyCount }} 98 }, 99 { 100 "@type": "InteractionCounter", 101 "interactionType": "https://schema.org/ShareAction", 102 "userInteractionCount": {{ postView.RepostCount + postView.QuoteCount }} 103 } 104 ] 105 } 106 </script> 107{%- elif requiresAuth and profileHandle -%} 108 <meta property="og:type" content="article"> 109 <meta property="profile:username" content="{{ profileHandle }}"> 110 {%- if requestURI %} 111 <meta property="og:url" content="{{ requestURI }}"> 112 <link rel="canonical" href="{{ requestURI|canonicalize_url }}" /> 113 {% endif -%} 114 {%- if profileDisplayName %} 115 <meta property="og:title" content="{{ profileDisplayName }} (@{{ profileHandle }})"> 116 {% else %} 117 <meta property="og:title" content="@{{ profileHandle }}"> 118 {% endif -%} 119 <meta name="description" content="This author has chosen to make their posts visible only to people who are signed in."> 120 <meta property="og:description" content="This author has chosen to make their posts visible only to people who are signed in."> 121 <meta property="twitter:description" content="This author has chosen to make their posts visible only to people who are signed in."> 122 <meta name="twitter:card" content="summary"> 123{% endif -%} 124{%- endblock %} 125 126{% block noscript_extra -%} 127{%- if postView -%} 128<div id="bsky_post_summary"> 129 <h3>Post</h3> 130 <p id="bsky_display_name">{{ postView.Author.DisplayName }}</p> 131 <p id="bsky_handle">{{ postView.Author.Handle }}</p> 132 <p id="bsky_did">{{ postView.Author.Did }}</p> 133 <p id="bsky_post_text">{{ postText }}</p> 134 <p id="bsky_post_indexedat">{{ postView.IndexedAt }}</p> 135</div> 136{%- elif requiresAuth and profileHandle -%} 137<div id="bsky_post_summary"> 138 <h3>Post</h3> 139 <p id="bsky_handle">{{ profileHandle }}</p> 140 <p id="bsky_post_text">This author has chosen to make their posts visible only to people who are signed in.</p> 141</div> 142{% endif -%} 143{%- endblock %}