lucifer: mm, any thought about grabbing the listen before validating it in the lfm api?
rik1 joined the channel
I mean - incoming compat listen -> convert duration immediately to number -> validate as normal
heyarne[m] joined the channel
and then validator requires durations to be a number
yyoung[m] joined the channel
intrnl_[m] joined the channel
lucifer
alastairp: yes, thats the alternative but i chose the current impl because that's what we do for listened_at/timestamp field as well. but i guess we could also change both.
alastairp
lucifer: yeah, fine to leave as-is for now, maybe a ticket if you think that we could improve it in the future?
lucifer
sure sound good
BrainzGit
[listenbrainz-server] 14amCap1712 merged pull request #2142 (03master…fix-duration-chek): Improve handling of duration/duration_ms fields in listen submission json https://github.com/metabrainz/listenbrainz-serv...
[listenbrainz-server] 14amCap1712 opened pull request #2143 (03master…improve-api-compat-tests): Use wait_for_query_to_have_items in api_compat tests https://github.com/metabrainz/listenbrainz-serv...
lucifer
alastairp: monkey: mayhem: any PRs to merge? will do a release
alastairp
other than the hundred that you just merged, no :)
lucifer: maybe that wordpress one?
you said you wanted to test it on beta
mayhem
lucifer: nothing for me
lucifer
ah right, let me do that now
monkey
Nothing ready for me either
lucifer
alastairp: one issue discovered when testing on beta. added comment
alastairp
thx
lucifer
i'll wait for this PR before doing a release.
alastairp
good catch lucifer, I guess because I have my api url on local dev to same host as the webserver
lucifer
yup right in local dev, api and website are served from same host/url.
monkey: on the subject of blog urls on LB, one title appears as `GSoC’22: CritiqueBrainz reviews for BookBrainz entities`
something probably needs to be decoded in the api response.
alastairp
lucifer: force pushed this change
lucifer: oops, do we need to fix that too, then?
lucifer
alastairp: separate PR is fine for that i think. it already exists in the master
alastairp
it's unusual, theoreitcally we didn't do anything different compared to getting this data from wordpress
looking at this, we probably need to render the field as html to fix the issue.
alastairp
yep
lucifer
it also returns the content in the response which seems wasteful but now that we are caching on the backend, not much of an issue.
alastairp
the content of the blog?
lucifer
yes
alastairp
yeah, we could make this smaller
in fact, we could also render the cache data directly on the flask template too... 🤔
lucifer
indeed.
but for later improvements anyway
alastairp
yep
lucifer
and it may also interact with the SPA/SSR work so probably best to change at that time
alastairp
yep, true. so keeping it in react helps with that in the future anyway
lucifer
updated beta. works fine now. thanks!
BrainzGit
[listenbrainz-server] 14amCap1712 merged pull request #2132 (03master…blog-local-cache): Cache wordpress API locally in LB and serve to clients from the cache https://github.com/metabrainz/listenbrainz-serv...
checking msb db was correctly transferred, will bring up on new image after checks
mayhem
single page application? where can I find out more about this plan?
mayhem skeptical
lucifer
monkey probably has more details on aims and the plan but iirc one of the aims was that BP continues playing when switching pages on LB.
mayhem
here are many UX dragons down that road, but I understand the motivation.
monkey
Right, so currently navigating from one part of the website to another = browser navigation = BP playback stops, which we want to avoid. We also have other issues with having to create special modals for some features (think CB reviews, the new personalized recommend feature, etc.) which we have to create on each of our entry point pages, which makes the code duplicated and hard to maintain
And also means that we don't have all the features available on all the parts of the website. Ideally we want to have the same menu options and features in any listencard anywhere on the website
And you guessed it, the way to deal with all this at once is to have a single page app with routing managed in react
Which is pretty much standard for React front-end websites. We just have an odd combination currently with the python templates serving a single separate react page.
The main UX dragon is preserving normal browser navigation behavior, which these days is just handled perfectly by the routing package.
The other somewhat related project is server-side rendering, where the server does the initial rendering of the react page into HTML that is sent to the client, rather than sending a mostly empty page and only then rendering the react bits. Pages load a lot faster for users visually, you can use the website even if you have javascript disabled, and it's also good for SEO (which is probably moot in our case)
alastairp: mayhem: the script seems to have worked fine to me except it duplicates the last transferred row which caused unique index building on msid to fail. i removed the 3-4 offending rows manually. do you want to check/verify before i bring up ts writer again?
alastairp
did the index build?
lucifer
yes the unique index built fine now
alastairp
that sounds like good validation for me
mayhem
agreed
lucifer
fwiw, i checked the last row in old db and new db. compared counts to verify other than this. and everything seems sane
[listenbrainz-server] 14MonkeyDo opened pull request #2144 (03master…monkey-lint-dev-no-error): Don't fail webpack build for style issues in development https://github.com/metabrainz/listenbrainz-serv...
alastairp
lucifer: oh right, I misunderstood the error. this is because there is one row which is too big?
I wasn't aware of this limitation in postgres
lucifer
alastairp: yes, at least 1 row.
alastairp
what index did we have in msb previously? was it over less columns?
lucifer
yeah me neither.
alastairp
or was it because we did an index over the hash instead of the data?