+5
.env.example
+7
README.md
···ok wowee!! just so you know this isn't fully cooked yet so there's a lot of features missing. there's a lot of stuff that goes into one of these things as it turns out. but if you really want to:
···+* [constellation](https://constellation.microcosm.blue) and [slingshot](https://slingshot.microcosm.blue) for a lot of data fetching to reduce load on PDS + dependence on bsky.app+* [pdsls.dev](https://pdsls.dev) for helping me figure out what API endpoints to call from the network tabok wowee!! just so you know this isn't fully cooked yet so there's a lot of features missing. there's a lot of stuff that goes into one of these things as it turns out. but if you really want to:
+2
config.php
···define('FRONTPAGE_FEED', "at://did:plc:ffkgesg3jsv2j7aagkzrtcvt/app.bsky.feed.generator/aaagllxbcbsje");define('FAVORITE_FEEDS', [ // list of feeds you want to display in the sidebar to users not logged in
···define('FRONTPAGE_FEED', "at://did:plc:ffkgesg3jsv2j7aagkzrtcvt/app.bsky.feed.generator/aaagllxbcbsje");define('FAVORITE_FEEDS', [ // list of feeds you want to display in the sidebar to users not logged in
+46
css/_partials/_fonts.scss
···
···
+31
css/_partials/_layout.scss
···
+1
css/main.scss
+2
-2
css/themes/blank.scss
+2
-2
css/themes/catppuccin.scss
+2
-2
css/themes/dracula.scss
+2
-2
css/themes/rosepine.scss
+2
-2
css/themes/solarized.scss
fonts/RecursiveMonoCslSt-BdItalic.woff2
This is a binary file and will not be displayed.
fonts/RecursiveMonoCslSt-Bold.woff2
This is a binary file and will not be displayed.
fonts/RecursiveMonoCslSt-Italic.woff2
This is a binary file and will not be displayed.
fonts/RecursiveMonoCslSt-Regular.woff2
This is a binary file and will not be displayed.
fonts/alegreyasc-bold-webfont.woff
This is a binary file and will not be displayed.
fonts/alegreyasc-bold-webfont.woff2
This is a binary file and will not be displayed.
fonts/alegreyasc-bolditalic-webfont.woff
This is a binary file and will not be displayed.
fonts/alegreyasc-bolditalic-webfont.woff2
This is a binary file and will not be displayed.
fonts/alegreyasc-italic-webfont.woff
This is a binary file and will not be displayed.
fonts/alegreyasc-italic-webfont.woff2
This is a binary file and will not be displayed.
fonts/alegreyasc-regular-webfont.woff
This is a binary file and will not be displayed.
fonts/alegreyasc-regular-webfont.woff2
This is a binary file and will not be displayed.
fonts/geometria-bold-webfont.woff
This is a binary file and will not be displayed.
fonts/geometria-bold-webfont.woff2
This is a binary file and will not be displayed.
fonts/geometria-bolditalic-webfont.woff
This is a binary file and will not be displayed.
fonts/geometria-bolditalic-webfont.woff2
This is a binary file and will not be displayed.
fonts/geometria-italic-webfont.woff
This is a binary file and will not be displayed.
fonts/geometria-italic-webfont.woff2
This is a binary file and will not be displayed.
fonts/geometria-webfont.woff
This is a binary file and will not be displayed.
fonts/geometria-webfont.woff2
This is a binary file and will not be displayed.
+12
-1
index.php
···-<body class="<?= Smallnest\Helpers\getTheme() ? Smallnest\Helpers\getTheme() : DEFAULT_THEME; ?>">···<a href="<?= Smallnest\Helpers\getUrl('terms', PRETTY_URLS); ?>">terms</a> • <a href="<?= Smallnest\Helpers\getUrl('privacy', PRETTY_URLS); ?>">privacy</a> • <a href="<?= Smallnest\Helpers\getUrl('about', PRETTY_URLS); ?>">about</a><br /><br />
···+data-theme="<?= Smallnest\Helpers\getTheme() ? Smallnest\Helpers\getTheme() : DEFAULT_THEME; ?>"···<a href="<?= Smallnest\Helpers\getUrl('terms', PRETTY_URLS); ?>">terms</a> • <a href="<?= Smallnest\Helpers\getUrl('privacy', PRETTY_URLS); ?>">privacy</a> • <a href="<?= Smallnest\Helpers\getUrl('about', PRETTY_URLS); ?>">about</a><br /><br />
+10
-3
js/themes.mjs
···
+183
-99
lib/bskyToucher.php
······-$ret = $httpClient->request("GET", $this->slingshotBase.'com.atproto.repo.getRecord?collection='.$collection.'&repo='.$repo.'&rkey='.$rkey);·········$profileLink = $prettyUrls ? "/profile/".$author->handle : "/?p=profile&handle=".$author->handle;-$postLink = $prettyUrls ? $profileLink."/post/".$post->postId : $profileLink."&post=".$post->postId;······-<button type="button" class="btn-invis" popovertarget="img-full-$context->postId"><img src="$embed->thumb" alt="$altSanitized" /></button>·········-preg_match('/^at:\/\/(did:plc:[a-z0-9]+)\/app.bsky.feed.post\/([a-z0-9]+)$/', $post->reply->parent->uri, $atUriSplit);······$ret = $this->getConstellationLinkData($post, "app.bsky.feed.post", ".embed.record.record.uri");······-$userData = json_decode(file_get_contents($this->bskyApiBase.$this->apiEndpoints['getUserPosts']."?actor=".$user.$cursorString));···-$feedData = $this->getConstellationLinkData($atUri, "app.bsky.feed.post", ".embed.record.uri", $limit, $cursor);···
·········+function getConstellationLinkData($target, $collection, $path, $limit = 50, $offset = 0, $endpoint = '') {······$profileLink = $prettyUrls ? "/profile/".$author->handle : "/?p=profile&handle=".$author->handle;······+<button type="button" class="btn-invis" popovertarget="img-full-$context->postId"><img src="$embed->thumb" alt="$altSanitized" /></button>······+preg_match('/at:\/\/(did:plc:[a-z0-9]+)\/([a-zA-Z0-9\.])\/([a-z0-9]+)/', $embeds[0], $recComponents);······+$ret = $this->getConstellationLinkData($post, "app.bsky.feed.like", ".subject.uri", "/distinct-dids");···+$ret = $this->getConstellationLinkData($post, "app.bsky.feed.repost", ".subject.uri", "/distinct-dids");$ret = $this->getConstellationLinkData($post, "app.bsky.feed.post", ".embed.record.record.uri");···+$ret = $this->getConstellationLinkData($post, "app.bsky.feed.post", ".embed.record.record.uri");···+preg_match('/^at:\/\/(did:plc:[a-z0-9]+)\/app.bsky.feed.post\/([a-z0-9]+)$/', $post->reply->parent->uri, $atUriSplit);···+//$feedData = $this->getConstellationLinkData($atUri, "app.bsky.feed.post", ".embed.record.uri", $limit, $cursor);···
+7
lib/helpers.php
+31
pages/post.php
···
···