#metabrainz

/

      • akashgp09_ joined the channel
      • Zhele has quit
      • Zhele joined the channel
      • minimiggs joined the channel
      • minimiggs has quit
      • dseomn has quit
      • dseomn joined the channel
      • texke joined the channel
      • lucifer
        alastairp: I have added the config option to restrict dataset download and pushed the changes. You can also test on similarity.ab.
      • monkey: I worked on fixing eslint in Actions. how does this look? https://github.com/amCap1712/listenbrainz-serve...
      • In AB, we have annotations as well. My hunch is that's because there Eslint runs outside docker in AB setup. https://github.com/metabrainz/acousticbrainz-se...
      • We can try to do that in LB as well if we think its useful.
      • akshaaatt[m]
        Hi lucifer ! I went through https://github.com/timusus/KTagLib and even worked heavily on our tagger.
      • Should we add cover arts to this since it's just gonna be the local storage?
      • Overall I feel we can complete the tagger with the cover arts+tags+songs lookup
      • It even makes sense. Otherwise around January I myself had a hard time understanding the functionality of the tagger when I first used it on the app.
      • I think Picard desktop does a great job at fetching the albums from the server with the cover arts included
      • With this addition and the bug fixes, the app tagger should be good to go. Any comments lucifer ?
      • lucifer
        akshaaatt[m]: sure, I think adding cover arts support to KTagLib makes sense but it'll need much work. We can look into that after other parts of the Tagger are done.
      • akshaaatt[m]
        Cool
      • lucifer
        also, Kotlin Native is in much better shape now it might be easier to work with it. JNI is scary.
      • akshaaatt[m]
        Ikr!
      • monkey
        lucifer: I think having eslint checks as inline annotations is the best. As we're moving to actions I think it wouls be a good improvement!
      • lucifer
      • i figured out why docker output was not being annotated. its some dark actions magic but works now.
      • and i can add this in similar way for pytest as well so python tests gain the annotations as well :D
      • monkey
        So we were 1. not defining the file extensions right and 2. exporting to checkstyle format when we shouldn't have?
      • And 3. that --max-warnings 0
      • lucifer
        yes right. that's the things needed for the first colored output i showed without annotations.
      • for annotations, we need one more step to register a problem matcher an action specific concept
      • monkey
        Right. We've got that set up on BB
      • I find it very useful for new contributors
      • lucifer
        yup, BB is the on the project left to migrate. i'll work on it today.
      • *one
      • monkey
        No, I meant we've got Linting annotations showing in the PRs
      • Let me fish an example
      • The linting annotations appear straight alongside the code
      • lucifer
        ah ok. I see. indeed useful.
      • monkey
        Mayeb it's because we run linting as an action? https://github.com/bookbrainz/bookbrainz-site/b...
      • lucifer
        right, the custom action that generates the annotations.
      • for LB, we wanted to reuse as much of test infrastructure as possible so I didn't add another action.
      • Toasty joined the channel
      • BrainzGit
        [listenbrainz-server] 14amCap1712 opened pull request #1497 (03master…eslint-ci): LB-875: Github action linting doesn't report errors https://github.com/metabrainz/listenbrainz-serv...
      • monkey
        `"^\\s+(\\d+):(\\d+)\\s+(error|warning|info)\\s+(.*)\\s\\s+(.*)$"` eek !
      • Toasty has quit
      • ruaok waves
      • ruaok
        zas: one of the server is ready, but is no the important one. did you get the emails?
      • zas
        yes, I did
      • I'm busy atm (trying to cope with CD releases backlog, scans, etc...) but I'll look into it this afternoon
      • dunno if we should change our plan or no, but I don't think that's a good idea to start this on a friday anyway, so it will be next week
      • lucifer
        monkey: with some more dark magic, https://github.com/amCap1712/listenbrainz-serve...
      • monkey
        Oh nice !
      • Looking forward to CSS container queries, that's gonna be well useful for ListenBrainz: https://ishadeed.com/article/container-queries-...
      • ruaok
      • Heads up! The eff article about has been published. There may be more traffic etc
      • Zas: ^^
      • +us
      • yyoung
        Hi yvanzo, about error handling, I decide to add an extra property named 'target' on the validation result of URLCleanup, indicating the target of error. The 3 targets of errors are link, relationship and entity, the default option is link if URLCleanup
      • URLCleanup's validate function simply returns {result: false}
      • And if there're existing error messages I'll add the target according to that.
      • Also, the default error message "This URL is not allowed for the selected link type, or is incorrectly formatted." will be splitted
      • I would like to have your opinion since it would require a lot of work if I start updating URLCleanup.js :)
      • zas
        ruaok: ok ;)
      • yvanzo
        hi yyoung, ‘link’ is ambiguous as it can mean either ‘relationship’ or ‘URL‘
      • yyoung
        yvanzo: OK, so I'll change it to URL
      • yvanzo
        ’entity’ target seems to be a special case for ’URL’
      • yyoung
        Initially I thought of sorting by error type, e.g. invalid url, incompatible entity, inappropriate relationship type, but that seems too much
      • Here by URL I mean the URL is invalid or inappropriate page for this type of relationship
      • Still seems controversial for messages like, "Please link to the main page for the artist, not a specific release."
      • monkey
        That's a really nice concise article !
      • yvanzo
        yyoung: Adding a ’target’ property is fine at least. ’URL’ and ‘relationship’ too. Not sure ‘entity’ helps with anything.
      • (’URL’ and ‘relationship’ as values)
      • The default should probably be no value though as it might affect either URL or relationship or both.
      • yyoung
        'entity' is because we haven't decide the target of incompatible entity error, or should I just assign an arbitrary target for that and decide later?
      • <The default should probably be no value> Sure but I believe that would introduce a lot of extra code :)
      • yvanzo
        I doubt that all current errors can be mapped to either ’URL’ or ’relationship’ (or ’entity’), so better have a fallback, that will make transitioning easier.
      • That fallback can be either a catch-all value ’any’ or no value (that is no ’target’) by default.
      • yyoung
        Sure, and what about entity errors?
      • BrainzGit
        [listenbrainz-server] 14amCap1712 merged pull request #1497 (03master…eslint-ci): LB-875: Github action linting doesn't report errors https://github.com/metabrainz/listenbrainz-serv...
      • CatCat
      • 👏 👏 👏
      • lucifer
        > Sony paid $260 million for Gracenote.
      • 🤯
      • CatCat
        the next sentence though. that if they paid us $1500 a month they'd be better of :D
      • yvanzo
        yyoung: you can keep it as a different value for now if you prefer, and merge it with URL later on if it isn’t useful.
      • akshaaatt[m]
        Never heard of Gracenote before this
      • We are way better I feel. Our approach is clear and to the point. All these other players seem to be dangling
      • shivam-kapila
        The article was so well put. Really enjoyed reading MusicBrainz journey
      • akshaaatt[m]
        Hi lucifer So I did a lot of research today!
      • https://bitbucket.org/ijabz/jaudiotagger/src/ma... This is what we need. I was understanding and migrating from JNI to this today. It does work.
      • Because there are some new rules in place of reading the contents of a file on android. The hack that I know of is, you temporarily copy the file to a new location and then use the contents of that copy to manage/edit everything
      • If I understand how that JNI guy did this hack, there would be no stopping us 🤓
      • lucifer
        akshaaatt[m]: we used JAudioTagger before TagLib but it was limited than Taglib so we went replaced it with taglib. JAudioTagger uses java's image apis under the hood which are not available on Android (because Android is not truly Java which sucks 😞 )
      • akshaaatt[m]
        Oof lmao
      • lucifer
        in short, we'll need to rewrite entire JAudioTagger image handling code to make it work on android
      • akshaaatt[m]
        Tbh why are these libraries so complicated
      • lucifer
        this issue plagues many android libraries because Android does not support all Java apis.
      • one reason is this that there are a large number of media formats all of which require special cased handling.
      • akshaaatt[m]
        The jaudiotagger did let me fetch all the audio files and some metadata though
      • lucifer
        yes, that'll work the image part is what won't work.
      • if you browse, the git history you'll find a version of app using JAudioTagger
      • akshaaatt[m]
        However I agree there must be something to what you are saying. Plus these libraries are humongous and I don't see if that's doing the justice to the work done under the hood
      • So we stick with the TagLib?
      • lucifer
        yes, i dont know of a viable alternative as of now.
      • one issue why we dont have such libraries in Java is because JNI is hard. things will become so much easier with Project Panama
      • but Android might never support that so who knows
      • akshaaatt[m]
        Damn
      • I think Apple won't even allow for the tagger feature then]
      • iOS app will be way limited then
      • I think the main highlights of our apps are gonna be the lookups, listen service, critiques, collections and our varied database.
      • Wow ListenBrainz is so cool! Kudos to all the developers!
      • shivam-kapila
        Its my favorite OSS project till now :)
      • akshaaatt[m]
        I think before today I had a tough time understanding the website a bit of how to get started. I connected my spotify account today and voila
      • Amazing.
      • So tell me, under the hood we use the Spotify API for getting the listens to the backend?
      • shivam-kapila
        Yeah. The spotify reader gets a list of connected accounts and then queries the Spotify API to fetch new listens
      • akshaaatt[m]
        Wow that's amazing!
      • So do we have a tie up with spotify for this or we pay them some cut for doing this?
      • lucifer
        no, there's no tieup. we just use their public api for this.
      • akshaaatt[m]
        Okayy! Interesting
      • shivam-kapila
        Nope. When a user connects their account we get the tokens and those are enough to authorize. Dont need a tie up as we are just using the public API.
      • akshaaatt[m]
        Since we are an open sourced organziation, can't spotify just fork the work and directly add it to their interface?
      • lucifer
        alastairp: looks like our sentry release setup broke a few days ago https://sentry.metabrainz.org/metabrainz/listen... some of the last releases have git commit shas instead of dates
      • akshaaatt[m]
        <shivam-kapila "Nope. When a user connects their"> Cooool
      • alastairp
        lucifer: interesting. is that because we have been building from github?
      • lucifer
        alastairp: could be. probably a wrongly set environment variable.
      • akshaaatt[m]
        Btw can we add a feature on the listenbrainz website to search for other users by their username?
      • And lucifer are we going to add this gem of listenbrainz directly into the android app?
      • All these charts and analytics
      • This would basically create a social media of music listeners
      • We could setup people on blind dates based on their music tastes XD 😇
      • lucifer
        akshaaatt[m]: i had begun adding listens submission to the app. its currently in the alpha state. adding other lb things is also on the cards in the near future if we want
      • shivam-kapila
        > We could setup people on blind dates based on their music tastes XD 😇
      • lucifer
        we had disucssed the social media aspect of LB in the last summit, jasondk's SoC project is also a step in that direction.
      • shivam-kapila
        TinderBrainz
      • akshaaatt[m]
        No but once we have linked our account to listenbrainz, why do we need a service running on the app? Isn't the backend already fetching the data?
      • <shivam-kapila "TinderBrainz"> I am up
      • <lucifer "we had disucssed the social medi"> Wow cool
      • lucifer
        for spotify, we have a spotify reader service which runs on MeB server and polls listens from spotify accounts for users.
      • we also have an api, using which users can submit listens from different apps.
      • the app submits listens from different apps using the api.
      • akshaaatt[m]
        Right
      • lucifer
        ruaok, should we add a metric for listens imported by spotify reader?
      • akshaaatt[m]
        Niceeee. I think the data can also reflect the source of the listens?
      • lucifer
        yes, there's a field for specifiyng source of listens.
      • shivam-kapila
        lucifer: that would be helpful in studying why unique listens is only a fraction out of all the incoming ones
      • ruaok
        Yes great idea!
      • BrainzGit
        [listenbrainz-server] 14amCap1712 opened pull request #1498 (03master…github-tag): Use tag to set GIT_COMMIT_SHA https://github.com/metabrainz/listenbrainz-serv...