madebydanny.uk written in html, css, and a lot of JavaScript I don't understand madeydanny.uk
html css javascript

bug fixes

+55 -55
+26 -25
css/index.css
··· 2 2 background-color: white; 3 3 color: white; 4 4 /* Desktop wallpaper */ 5 - background-image: url("https://imrs.madebydanny.uk?url=https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/site-assets/wallpaperflare.com_wallpaper.jpg"); 5 + background-image: url("https://imrs.madebydanny.uk?url=https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/site-assets/com.atproto.sync.png"); 6 6 background-position: center center; 7 7 background-size: cover; 8 8 background-attachment: fixed; ··· 47 47 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3), 48 48 0 0 0 1px rgba(255, 255, 255, 0.1) inset; 49 49 transition: transform 0.3s ease, box-shadow 0.3s ease; 50 + color: white; 50 51 } 51 52 52 53 .white-card:hover { ··· 195 196 font-size: 28px; 196 197 font-weight: bold; 197 198 margin-bottom: 5px; 198 - color: #2F7D61; 199 + color: white; 199 200 } 200 201 #handle { 201 202 font-size: 16px; 202 - color: #2F7D61; 203 + color: white; 203 204 margin-bottom: 15px; 204 205 } 205 206 #bio { 206 - color: #2F7D61; 207 + color: white; 207 208 line-height: 1.7; 208 209 white-space: pre-wrap; 209 210 margin-bottom: 15px; ··· 213 214 display: flex; 214 215 gap: 25px; 215 216 font-size: 14px; 216 - color: #2F7D61; 217 + color: white; 217 218 } 218 219 #stats span { 219 - color: #2F7D61; 220 + color: white; 220 221 font-weight: bold; 221 222 } 222 223 .bsky-loading { ··· 281 282 282 283 .post-display-name { 283 284 font-weight: bold; 284 - color: #2F7D61; 285 + color: white; 285 286 font-size: 16px; 286 287 cursor: pointer; 287 288 transition: color 0.2s ease; ··· 292 293 } 293 294 294 295 .post-handle { 295 - color: #2F7D61; 296 + color: white; 296 297 font-size: 14px; 297 298 cursor: pointer; 298 299 transition: color 0.2s ease; ··· 304 305 } 305 306 306 307 .post-timestamp { 307 - color: #2F7D61; 308 + color: white; 308 309 font-size: 13px; 309 310 } 310 311 311 312 .post-text { 312 - color: #2F7D61; 313 + color: white; 313 314 line-height: 1.7; 314 315 margin-bottom: 15px; 315 316 white-space: pre-wrap; ··· 385 386 } 386 387 387 388 .post-embed-url { 388 - color: #2F7D61; 389 + color: white; 389 390 font-size: 12px; 390 391 } 391 392 ··· 400 401 401 402 .post-stats i { 402 403 margin-right: 6px; 403 - color: #2F7D61; 404 + color: white; 404 405 } 405 406 406 407 .post-stats div { 407 - color:#2F7D61; 408 + color:white; 408 409 } 409 410 410 411 .view-post-link { 411 412 display: inline-block; 412 413 margin-top: 12px; 413 - color: #2F7D61; 414 + color: white; 414 415 text-decoration: none; 415 416 font-size: 14px; 416 417 font-weight: 500; ··· 568 569 font-size: 1.6em; 569 570 font-weight: 700; 570 571 margin-bottom: 20px; 571 - color: #2F7D61; 572 + color: white; 572 573 display: flex; 573 574 align-items: left; 574 575 justify-content: left; ··· 576 577 } 577 578 578 579 #simple-photo-gallery h2 i { 579 - color: #2F7D61; 580 + color: white; 580 581 } 581 582 582 583 .gallery { ··· 600 601 .gallery-item:hover { 601 602 transform: scale(1.08) rotate(2deg); 602 603 box-shadow: #2F7D61; 603 - border-color: #2F7D61; 604 + border-color: white; 604 605 z-index: 10; 605 606 } 606 607 ··· 749 750 } 750 751 751 752 .project-item h3 a:hover, .tangled-item h3 a:hover { 752 - color: #79F7A4; 753 + color: white; 753 754 } 754 755 755 756 .project-item h3 a::after, .tangled-item h3 a::after { ··· 772 773 } 773 774 774 775 .project-item p strong, .tangled-item p strong { 775 - color: #2F7D61; 776 + color: white; 776 777 font-weight: 600; 777 778 } 778 779 779 780 /* Tangled repo specific styling */ 780 781 .tangled-item .fa-server { 781 - color: #79F7A4; 782 + color: white; 782 783 } 783 784 784 785 .tangled-item .fa-clock { 785 - color: #79F7A4; 786 + color: white; 786 787 margin-right: 6px; 787 788 } 788 789 ··· 791 792 font-size: 1.6em; 792 793 font-weight: 700; 793 794 margin-bottom: 20px; 794 - color: #2F7D61; 795 + color: white; 795 796 display: flex; 796 797 align-items: center; 797 798 gap: 12px; 798 799 padding-bottom: 12px; 799 - border-bottom: 2px solid #2F7D61; 800 + border-bottom: 2px solid white; 800 801 } 801 802 802 803 #projects h2 i, #tangled-repo h2 i, #leaflets h2 i, #thanks h2 i { 803 - color: #2F7D61; 804 + color: white; 804 805 font-size: 0.9em; 805 806 } 806 807 ··· 855 856 856 857 #leaflets #rss a, 857 858 #rss .feedItem a { 858 - color: #2F7D61; 859 + color: white; 859 860 text-decoration: none; 860 861 transition: color 0.3s ease; 861 862 display: inline-flex;
+3 -4
followonbsky.html
··· 35 35 by <a href="?did=did:plc:l37td5yhxl2irrzrgvei4qay">@madebydanny.uk</a>, 36 36 add a client <a href="https://tally.so/r/nrzQDl" target="_blank" rel="noopener">here</a> 37 37 </p> 38 - </main> 39 - 40 - <script src="/js/bsky.js"></script> 41 - <!-- Default Statcounter code for Made by Danny UK 38 + <!-- Default Statcounter code for Made by Danny UK 42 39 https://madebydanny.uk --> 43 40 <script type="text/javascript"> 44 41 var sc_project=13180172; ··· 56 53 alt="Web Analytics Made Easy - Statcounter" 57 54 referrerPolicy="no-referrer-when-downgrade"></a></div></noscript> 58 55 <!-- End of Statcounter Code --> 56 + </main> 57 + <script src="/js/bsky.js"></script> 59 58 </body> 60 59 </html>
+1 -1
index.html
··· 110 110 </div> 111 111 <div id="thanks" class="white-card" style="margin-top: 20px;"> 112 112 <h2><i class="fa-solid fa-heart"></i> Made Possible Thanks To</h2> 113 - Made possible thanks to <a href="https://madebydanny.uk/followonbsky.html?did=mbdio.uk">@mbdio.uk</a>, <a href="https://madebydanny.uk/followonbsky.html?did=tangled.org">@tangled.org</a>, <a href="https://madebydanny.uk/followonbsky.html?did=wisp.place">@wisp.place</a>, <a href="https://madebydanny.uk/followonbsky.html?did=/nekomimi.pet">@nekomimi.pet</a>, <a href="https://madebydanny.uk/followonbsky.html?did=juli.ee">@juli.ee</a>, <a href="https://lovable.dev">lovable.dev</a>, <a href="https://pdsls.dev">@pdsls.dev</a>, <a href="https://cloudflare.com">cloudflare.com</a>, <a href="https://madebydanny.uk/followonbsky.html?did=/vscode.dev">@vscode.dev</a>, <a href="https://github.com">@github.com</a>, <a href="https://madebydanny.uk/followonbsky.html?did=jack.xyz">jack.xyz</a>, <a href="https://upcloud.com">upcloud.com</a>, <a href="https://tailscale.com">tailscale.com</a>, <a href="https://raspberrypi.com">raspberrypi.com</a>, Ubuntu, Apple, Reddit, <a href="www.youtube.com/@LinusTechTips">Linus Tech Tips</a>, <a href="https://w3schools.com">W3Schools</a> and you 113 + Made possible thanks to <a href="https://madebydanny.uk/followonbsky.html?did=tangled.org">@tangled.org</a>, <a href="https://madebydanny.uk/followonbsky.html?did=wisp.place">@wisp.place</a>, <a href="https://madebydanny.uk/followonbsky.html?did=nekomimi.pet">@nekomimi.pet</a>, <a href="https://madebydanny.uk/followonbsky.html?did=juli.ee">@juli.ee</a>, <a href="https://lovable.dev">lovable.dev</a>, <a href="https://pdsls.dev">@pdsls.dev</a>, <a href="https://cloudflare.com">cloudflare.com</a>, <a href="https://madebydanny.uk/followonbsky.html?did=/vscode.dev">@vscode.dev</a>, <a href="https://github.com">@github.com</a>, <a href="https://madebydanny.uk/followonbsky.html?did=jack.xyz">jack.xyz</a>, <a href="https://upcloud.com">upcloud.com</a>, <a href="https://tailscale.com">tailscale.com</a>, <a href="https://raspberrypi.com">raspberrypi.com</a>, <a href="https://ubuntu.com">Ubuntu</a>, <a href="https://apple.com">Apple</a>, <a href="https://reddit.com">Reddit</a>, <a href="www.youtube.com/@LinusTechTips">Linus Tech Tips</a>, <a href="https://w3schools.com">W3Schools</a> and you 114 114 </div> 115 115 <div id="footer" class="white-card"> 116 116 &copy;2024-25 Daniel Morrisey, Powered by the <a href="https://atproto.com">AT Protocol</a>, <a href="https://upcloud.com">UpCloud</a> & <a href="https://cloudflare.com">Cloudflare</a>
+12 -12
js/bsky.js
··· 1 1 (function () { 2 2 const clients = [ 3 - { name: "Bluesky", base: "https://bsky.app/profile/", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/bsky.webp", cls: "bsky" }, 4 - { name: "Blacksky", base: "https://blacksky.community/profile/", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/blacksky.webp", cls: "blacksky" }, 5 - { name: "Anisota", base: "https://anisota.net/profile/", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/anissota.webp", cls: "anisota" }, 6 - { name: "Deer Social", base: "https://deer.social/profile/", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/deer.webp", cls: "deer" }, 7 - { name: "Catsky", base: "https://catsky.social/profile/", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/catsky.webp", cls: "catsky" }, 8 - { name: "Red Dwarf", base: "https://reddwarf.app/profile/", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/redd.ico", cls: "redd" }, 9 - { name: "Deer (aylac fork)", base: "https://deer.aylac.top/profile/", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/aylac.webp", cls: "deer" }, 10 - { name: "Tangled", base: "https://tangled.org/", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/tangled.webp", cls: "tangled" }, 11 - { name: "Nooki", base: "https://nooki.me/user/", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/nooki.webp", cls: "nooki" }, 12 - { name: "Stream Place", base: "https://stream.place/", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/splace.ico", cls: "splace" }, 13 - { name: "Bitchsky", base: "https://bitchsky.app/profile/", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/bitch.svg", cls: "bitch" }, 14 - { name: "PDSls", base: "https://pdsls.dev/at://", icon: "http://upcloud.madebydanny.uk/cdn/madebydanny.uk/followonbsky/pdsls.webp", cls: "bsky" }, 3 + { name: "Bluesky", base: "https://bsky.app/profile/", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/bsky.webp", cls: "bsky" }, 4 + { name: "Blacksky", base: "https://blacksky.community/profile/", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/blacksky.webp", cls: "blacksky" }, 5 + { name: "Anisota", base: "https://anisota.net/profile/", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/anissota.webp", cls: "anisota" }, 6 + { name: "Deer Social", base: "https://deer.social/profile/", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/deer.webp", cls: "deer" }, 7 + { name: "Catsky", base: "https://catsky.social/profile/", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/catsky.webp", cls: "catsky" }, 8 + { name: "Red Dwarf", base: "https://reddwarf.app/profile/", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/redd.ico", cls: "redd" }, 9 + { name: "Deer (aylac fork)", base: "https://deer.aylac.top/profile/", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/aylac.webp", cls: "deer" }, 10 + { name: "Tangled", base: "https://tangled.org/", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/tangled.webp", cls: "tangled" }, 11 + { name: "Nooki", base: "https://nooki.me/user/", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/nooki.webp", cls: "nooki" }, 12 + { name: "Stream Place", base: "https://stream.place/", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/splace.ico", cls: "splace" }, 13 + { name: "Bitchsky", base: "https://bitchsky.app/profile/", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/bitch.svg", cls: "bitch" }, 14 + { name: "PDSls", base: "https://pdsls.dev/at://", icon: "https://cloudflareisawesome.madebydanny.uk/madebydanny.uk/followonbsky/pdsls.webp", cls: "bsky" }, 15 15 ]; 16 16 17 17 const avatarEl = document.getElementById('avatar');
+13 -13
js/index.js
··· 42 42 }); 43 43 document.getElementById("lastUpdated").textContent = formatted; 44 44 } catch (err) { 45 - document.getElementById("lastUpdated").textContent = "Faild to reach Bluesky PDS mbdio.uk"; 45 + document.getElementById("lastUpdated").textContent = "Faild to reach Bluesky PDS pds.madebydanny.uk"; 46 46 console.error(err); 47 47 } 48 48 } ··· 57 57 58 58 try { 59 59 const response = await fetch(apiUrl); 60 - if (!response.ok) throw new Error('Faild to reach Bluesky PDS mbdio.uk'); 60 + if (!response.ok) throw new Error('Faild to reach Bluesky PDS pds.madebydanny.uk'); 61 61 62 62 const data = await response.json(); 63 63 ··· 95 95 bannerElement.style.display = 'block'; 96 96 } 97 97 98 - userElement.textContent = data.displayName || data.handle || 'Faild to reach Bluesky PDS mbdio.uk'; 98 + userElement.textContent = data.displayName || data.handle || 'Faild to reach Bluesky PDS pds.madebydanny.uk'; 99 99 handleElement.textContent = '@' + data.handle; 100 - bioElement.textContent = data.description || 'Faild to reach Bluesky PDS mbdio.uk'; 100 + bioElement.textContent = data.description || 'Faild to reach Bluesky PDS pds.madebydanny.uk'; 101 101 102 102 statsElement.innerHTML = ` 103 103 <div><span>${data.postsCount || 0}</span> Posts</div> ··· 107 107 108 108 } catch (error) { 109 109 console.error('Error fetching Bluesky profile:', error); 110 - document.querySelector('.bsky-loading').textContent = 'Faild to reach Bluesky PDS mbdio.uk'; 110 + document.querySelector('.bsky-loading').textContent = 'Faild to reach Bluesky PDS pds.madebydanny.uk'; 111 111 } 112 112 } 113 113 ··· 153 153 154 154 try { 155 155 const response = await fetch(apiUrl); 156 - if (!response.ok) throw new Error('Faild to reach Bluesky PDS mbdio.uk'); 156 + if (!response.ok) throw new Error('Faild to reach Bluesky PDS pds.madebydanny.uk'); 157 157 158 158 const data = await response.json(); 159 159 160 160 if (!data.feed || data.feed.length === 0) { 161 - document.getElementById('latest-bsky-post').innerHTML = '<p>Faild to reach Bluesky PDS mbdio.uk</p>'; 161 + document.getElementById('latest-bsky-post').innerHTML = '<p>Faild to reach Bluesky PDS pds.madebydanny.uk</p>'; 162 162 return; 163 163 } 164 164 ··· 286 286 // ============================================ 287 287 288 288 async function fetchAbout() { 289 - const apiUrl = 'https://mbdio.uk/xrpc/com.atproto.repo.getRecord?repo=did:plc:l37td5yhxl2irrzrgvei4qay&collection=uk.madebydanny.about&rkey=3m52wrxl4c52b'; 289 + const apiUrl = 'https://pds.madebydanny.uk/xrpc/com.atproto.repo.getRecord?repo=did:plc:l37td5yhxl2irrzrgvei4qay&collection=uk.madebydanny.about&rkey=3m52wrxl4c52b'; 290 290 291 291 try { 292 292 const response = await fetch(apiUrl); ··· 323 323 324 324 for (const element of textElements) { 325 325 const rkey = element.getAttribute('data-rkey'); 326 - const apiUrl = `https://mbdio.uk/xrpc/com.atproto.repo.getRecord?repo=did:plc:l37td5yhxl2irrzrgvei4qay&collection=uk.madebydanny.text&rkey=${rkey}`; 326 + const apiUrl = `https://pds.madebydanny.uk/xrpc/com.atproto.repo.getRecord?repo=did:plc:l37td5yhxl2irrzrgvei4qay&collection=uk.madebydanny.text&rkey=${rkey}`; 327 327 328 328 try { 329 329 const response = await fetch(apiUrl); ··· 352 352 353 353 async function fetchProjects() { 354 354 const projectsElement = document.querySelector('#projects'); 355 - const apiUrl = 'https://mbdio.uk/xrpc/com.atproto.repo.getRecord?repo=did:plc:l37td5yhxl2irrzrgvei4qay&collection=uk.madebydanny.projects&rkey=3m52x73hzqf2b'; 355 + const apiUrl = 'https://pds.madebydanny.uk/xrpc/com.atproto.repo.getRecord?repo=did:plc:l37td5yhxl2irrzrgvei4qay&collection=uk.madebydanny.projects&rkey=3m52x73hzqf2b'; 356 356 357 357 try { 358 358 const response = await fetch(apiUrl); ··· 384 384 const statusElement = document.getElementById('current-status'); 385 385 if (!statusElement) return; 386 386 387 - const apiUrl = 'https://mbdio.uk/xrpc/com.atproto.repo.getRecord?repo=did:plc:l37td5yhxl2irrzrgvei4qay&collection=uk.madebydanny.status&rkey=3m53jj6shtn2b'; 387 + const apiUrl = 'https://pds.madebydanny.uk/xrpc/com.atproto.repo.getRecord?repo=did:plc:l37td5yhxl2irrzrgvei4qay&collection=uk.madebydanny.status&rkey=3m53jj6shtn2b'; 388 388 389 389 try { 390 390 const response = await fetch(apiUrl); ··· 408 408 409 409 async function fetchTangledRepo() { 410 410 const tangledRepoElement = document.querySelector('#tangled-repo'); 411 - const profileUrl = 'https://mbdio.uk/xrpc/com.atproto.repo.getRecord?repo=did:plc:l37td5yhxl2irrzrgvei4qay&collection=sh.tangled.actor.profile&rkey=self'; 411 + const profileUrl = 'https://pds.madebydanny.uk/xrpc/com.atproto.repo.getRecord?repo=did:plc:l37td5yhxl2irrzrgvei4qay&collection=sh.tangled.actor.profile&rkey=self'; 412 412 413 413 try { 414 414 const profileResponse = await fetch(profileUrl); ··· 431 431 const collection = uriParts[1]; 432 432 const rkey = uriParts[2]; 433 433 434 - const repoUrl = `https://mbdio.uk/xrpc/com.atproto.repo.getRecord?repo=${did}&collection=${collection}&rkey=${rkey}`; 434 + const repoUrl = `https://pds.madebydanny.uk/xrpc/com.atproto.repo.getRecord?repo=${did}&collection=${collection}&rkey=${rkey}`; 435 435 const repoResponse = await fetch(repoUrl); 436 436 437 437 if (!repoResponse.ok) throw new Error('Failed to fetch repo');