frutiger aero theme done, video also shows live theme switching.
Viewing pins now work! i had to write a new scraper for pinterest’s graphql endpoint which was a bit difficult, as well as integrate the new pin/item viewing functionality into the layout engine, but i think it works alright. I’m still having some issues with my scraper though, where the pinterest endpoint returns an error. I think that im seeing rate-limiting from pinterest, but that’s another problem i will have to try to tackle. I’ve been thinking about making aesthetica a wails-based desktop app instead so my server does not have to handle all requests to pinterest, because my requests will start being blocked if more users join. I’ve now also started hosting the project on https://aesthetica.axell.me
I removed the experimental thing where the feed would always display the result for searching “takanaka” and now it displays search results for the name of a random aesthetic scraped from aesthetics wiki. i also added search functionality.
I managed to come up with a pretty clever solution to keep the pagination history. Every time you press next, a htmx page link that brings up the current page gets added to a div. Using CSS’s :nth-last-child(2), only the page link that links to the previous page is shown. You can see this working if you look at the DOM tree in this video.
Because I don’t want to use javascript to calculate the layout, I’ve written a server side layouting engine that places the items based on viewport height, meaning i can calculate the layout for any device. I’ve integrated this into the pagination system, but i will need to build a little more abstractions on the scraper around Pinterest’s pagination system to get the previous button to work properly. Also styling of course.
I’ve started the project and worked on some basics. I have a functioning crawler for Pinterest and I’ve started on the frontend. Even though I’ve done it a lot i kind of hate web development, especially React. I’ve recently started learning about htmx and the idea of hypermedia, managing state on the server and writing interactivity in HTML instead of using JS or bullshit like jsx that compile to 500mb+ of JS anyway really spoke to me. It feels a lot more clean and “pure”. As for the server, i am developing my own little abstractions around Go’s absolutely fantastic standard library (especially html/template) alongside this project. In the screenshot, the crawler is grabbing the first five results for searching “takanaka” on Pinterest.