Remember when you made an A+ post last year and everyone clapped bailey.tngl.io/remember-when
2
fork

Configure Feed

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

formatting

+70 -74
+4 -2
README.md
··· 1 1 # Remember When 2 2 3 3 ## Notes for streaming 4 + 4 5 - DO NOT DOX YOURSELF 5 6 - Can run file server with `caddy file-server` 6 7 - Don't let mic echo 7 8 8 - ## TODO 9 - - [ ] input for the users handle or did 9 + ## TODO 10 + 11 + - [x] input for the users handle or did 10 12 - [ ] that input will look up the users posts for that day a year ago 11 13 - [ ] show the posts using bluesky's embed (keep it nice and simple) 12 14 - [ ] add in oauth login to repost the post
+66 -72
index.html
··· 4 4 <meta charset="utf-8" /> 5 5 <title>Remember When</title> 6 6 <meta name="description" content="" /> 7 - <meta 8 - name="viewport" content="width=device-width, initial-scale=1" /> 7 + <meta name="viewport" content="width=device-width, initial-scale=1" /> 9 8 </head> 10 9 11 - 12 10 <body> 13 11 <div> 14 - <form id="lookupForm" > 12 + <form id="lookupForm"> 15 13 <h1>Remember when?</h1> 16 14 <label>Atmosphere account:</label> 17 - <input id="handle"></input> 15 + <input id="handle" /> 18 16 <button type="submit">Remember</button> 19 17 </form> 20 18 </div> 21 19 22 20 <script type="module"> 23 - import { 24 - LocalActorResolver, 25 - XrpcHandleResolver, 26 - CompositeDidDocumentResolver, 27 - PlcDidDocumentResolver, 28 - WebDidDocumentResolver, 29 - CompositeHandleResolver, 30 - DohJsonHandleResolver, 31 - WellKnownHandleResolver, 32 - } from "https://cdn.jsdelivr.net/npm/@atcute/identity-resolver/+esm"; 21 + import { 22 + LocalActorResolver, 23 + XrpcHandleResolver, 24 + CompositeDidDocumentResolver, 25 + PlcDidDocumentResolver, 26 + WebDidDocumentResolver, 27 + CompositeHandleResolver, 28 + DohJsonHandleResolver, 29 + WellKnownHandleResolver, 30 + } from "https://cdn.jsdelivr.net/npm/@atcute/identity-resolver/+esm"; 33 31 34 - import { 35 - getPdsEndpoint 36 - } from "https://cdn.jsdelivr.net/npm/@atcute/identity/+esm"; 32 + import { getPdsEndpoint } from "https://cdn.jsdelivr.net/npm/@atcute/identity/+esm"; 37 33 38 - import * as TID from "https://cdn.jsdelivr.net/npm/@atcute/tid/+esm"; 34 + import * as TID from "https://cdn.jsdelivr.net/npm/@atcute/tid/+esm"; 39 35 40 - const handleResolver = new CompositeHandleResolver({ 41 - methods: { 42 - dns: new DohJsonHandleResolver({ 43 - dohUrl: "https://cloudflare-dns.com/dns-query", 44 - }), 45 - http: new WellKnownHandleResolver(), 46 - }, 47 - }); 48 - 49 - const didResolver = new CompositeDidDocumentResolver({ 50 - methods: { 51 - plc: new PlcDidDocumentResolver(), 52 - web: new WebDidDocumentResolver(), 53 - }, 54 - }); 36 + const handleResolver = new CompositeHandleResolver({ 37 + methods: { 38 + dns: new DohJsonHandleResolver({ 39 + dohUrl: "https://cloudflare-dns.com/dns-query", 40 + }), 41 + http: new WellKnownHandleResolver(), 42 + }, 43 + }); 55 44 45 + const didResolver = new CompositeDidDocumentResolver({ 46 + methods: { 47 + plc: new PlcDidDocumentResolver(), 48 + web: new WebDidDocumentResolver(), 49 + }, 50 + }); 56 51 57 - async function lookupIdentifier(event) { 58 - try { 59 - event.preventDefault(); 60 - const identifier = document.getElementById("handle").value; 61 - let did; 62 - if (identifier.startsWith('did:')) { 63 - did = identifier; 64 - } else { 65 - did = await handleResolver.resolve(identifier); 66 - } 52 + async function lookupIdentifier(event) { 53 + try { 54 + event.preventDefault(); 55 + const identifier = document.getElementById("handle").value; 56 + let did; 57 + if (identifier.startsWith("did:")) { 58 + did = identifier; 59 + } else { 60 + did = await handleResolver.resolve(identifier); 61 + } 67 62 68 - const didDoc = await didResolver.resolve(did); 69 - const pds = getPdsEndpoint(didDoc); // #atproto_pds 70 - await findPostsFromThatDay(did, pds); 71 - } catch (e) { 72 - console.error(e); 73 - alert("Failed to resolve PDS endpoint: " + e.message); 63 + const didDoc = await didResolver.resolve(did); 64 + const pds = getPdsEndpoint(didDoc); // #atproto_pds 65 + await findPostsFromThatDay(did, pds); 66 + } catch (e) { 67 + console.error(e); 68 + alert("Failed to resolve PDS endpoint: " + e.message); 69 + } 74 70 } 75 - } 76 71 77 - async function findPostsFromThatDay(did, pds) { 78 - try { 79 - const thisDayLastYear = new Date(); 80 - thisDayLastYear.setFullYear(thisDayLastYear.getFullYear() - 1); 81 - thisDayLastYear.setHours(0,0,0,0); 82 - console.log(thisDayLastYear); 83 - const lastYearTimestamp = thisDayLastYear.getTime() * 1_000; 84 - const lastYearTid = TID.create(lastYearTimestamp, 23); 85 - console.log(lastYearTid); 86 - } catch (e) { 87 - console.error(e); 88 - alert("Failed to find posts from that day: " + e.message); 72 + async function findPostsFromThatDay(did, pds) { 73 + try { 74 + const thisDayLastYear = new Date(); 75 + thisDayLastYear.setFullYear( 76 + thisDayLastYear.getFullYear() - 1, 77 + ); 78 + thisDayLastYear.setHours(0, 0, 0, 0); 79 + console.log(thisDayLastYear); 80 + const lastYearTimestamp = thisDayLastYear.getTime() * 1_000; 81 + const lastYearTid = TID.create(lastYearTimestamp, 23); 82 + console.log(lastYearTid); 83 + } catch (e) { 84 + console.error(e); 85 + alert("Failed to find posts from that day: " + e.message); 86 + } 89 87 } 90 - } 91 88 92 - 93 - //Start up code on dom loaded 94 - document.addEventListener("DOMContentLoaded", function() { 95 - const lookUpForm = document.getElementById("lookupForm"); 96 - lookUpForm.addEventListener("submit", lookupIdentifier); 97 - }); 98 - 89 + //Start up code on dom loaded 90 + document.addEventListener("DOMContentLoaded", function () { 91 + const lookUpForm = document.getElementById("lookupForm"); 92 + lookUpForm.addEventListener("submit", lookupIdentifier); 93 + }); 99 94 </script> 100 - 101 95 </body> 102 96 </html>