Should we add cover arts to this since it's just gonna be the local storage?
2021-06-04 15500, 2021
akshaaatt[m]
Overall I feel we can complete the tagger with the cover arts+tags+songs lookup
2021-06-04 15544, 2021
akshaaatt[m]
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.
2021-06-04 15536, 2021
akshaaatt[m]
I think Picard desktop does a great job at fetching the albums from the server with the cover arts included
2021-06-04 15512, 2021
akshaaatt[m]
With this addition and the bug fixes, the app tagger should be good to go. Any comments lucifer ?
2021-06-04 15501, 2021
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.
2021-06-04 15523, 2021
akshaaatt[m]
Cool
2021-06-04 15520, 2021
lucifer
also, Kotlin Native is in much better shape now it might be easier to work with it. JNI is scary.
2021-06-04 15535, 2021
akshaaatt[m]
Ikr!
2021-06-04 15518, 2021
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!
Heads up! The eff article about has been published. There may be more traffic etc
2021-06-04 15534, 2021
ruaok
Zas: ^^
2021-06-04 15558, 2021
ruaok
+us
2021-06-04 15516, 2021
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
2021-06-04 15551, 2021
yyoung
URLCleanup's validate function simply returns {result: false}
2021-06-04 15523, 2021
yyoung
And if there're existing error messages I'll add the target according to that.
2021-06-04 15555, 2021
yyoung
Also, the default error message "This URL is not allowed for the selected link type, or is incorrectly formatted." will be splitted
2021-06-04 15557, 2021
yyoung
I would like to have your opinion since it would require a lot of work if I start updating URLCleanup.js :)
2021-06-04 15558, 2021
zas
ruaok: ok ;)
2021-06-04 15531, 2021
yvanzo
hi yyoung, ‘link’ is ambiguous as it can mean either ‘relationship’ or ‘URL‘
2021-06-04 15501, 2021
yyoung
yvanzo: OK, so I'll change it to URL
2021-06-04 15557, 2021
yvanzo
’entity’ target seems to be a special case for ’URL’
2021-06-04 15514, 2021
yyoung
Initially I thought of sorting by error type, e.g. invalid url, incompatible entity, inappropriate relationship type, but that seems too much
2021-06-04 15513, 2021
yyoung
Here by URL I mean the URL is invalid or inappropriate page for this type of relationship
2021-06-04 15516, 2021
yyoung
Still seems controversial for messages like, "Please link to the main page for the artist, not a specific release."
2021-06-04 15541, 2021
monkey
That's a really nice concise article !
2021-06-04 15546, 2021
yvanzo
yyoung: Adding a ’target’ property is fine at least. ’URL’ and ‘relationship’ too. Not sure ‘entity’ helps with anything.
2021-06-04 15521, 2021
yvanzo
(’URL’ and ‘relationship’ as values)
2021-06-04 15553, 2021
yvanzo
The default should probably be no value though as it might affect either URL or relationship or both.
2021-06-04 15505, 2021
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?
2021-06-04 15552, 2021
yyoung
<The default should probably be no value> Sure but I believe that would introduce a lot of extra code :)
2021-06-04 15549, 2021
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.
2021-06-04 15540, 2021
yvanzo
That fallback can be either a catch-all value ’any’ or no value (that is no ’target’) by default.
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
2021-06-04 15500, 2021
akshaaatt[m]
If I understand how that JNI guy did this hack, there would be no stopping us 🤓
2021-06-04 15512, 2021
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 😞 )
2021-06-04 15558, 2021
akshaaatt[m]
Oof lmao
2021-06-04 15501, 2021
lucifer
in short, we'll need to rewrite entire JAudioTagger image handling code to make it work on android
2021-06-04 15505, 2021
akshaaatt[m]
Tbh why are these libraries so complicated
2021-06-04 15536, 2021
lucifer
this issue plagues many android libraries because Android does not support all Java apis.
2021-06-04 15513, 2021
lucifer
one reason is this that there are a large number of media formats all of which require special cased handling.
2021-06-04 15517, 2021
akshaaatt[m]
The jaudiotagger did let me fetch all the audio files and some metadata though
2021-06-04 15550, 2021
lucifer
yes, that'll work the image part is what won't work.
2021-06-04 15510, 2021
lucifer
if you browse, the git history you'll find a version of app using JAudioTagger
2021-06-04 15525, 2021
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
2021-06-04 15502, 2021
akshaaatt[m]
So we stick with the TagLib?
2021-06-04 15523, 2021
lucifer
yes, i dont know of a viable alternative as of now.
2021-06-04 15520, 2021
lucifer
one issue why we dont have such libraries in Java is because JNI is hard. things will become so much easier with Project Panama
2021-06-04 15547, 2021
lucifer
but Android might never support that so who knows
2021-06-04 15549, 2021
akshaaatt[m]
Damn
2021-06-04 15556, 2021
akshaaatt[m]
I think Apple won't even allow for the tagger feature then]
2021-06-04 15520, 2021
akshaaatt[m]
iOS app will be way limited then
2021-06-04 15529, 2021
akshaaatt[m]
I think the main highlights of our apps are gonna be the lookups, listen service, critiques, collections and our varied database.
2021-06-04 15513, 2021
akshaaatt[m]
Wow ListenBrainz is so cool! Kudos to all the developers!
2021-06-04 15530, 2021
shivam-kapila
Its my favorite OSS project till now :)
2021-06-04 15541, 2021
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
2021-06-04 15554, 2021
akshaaatt[m]
Amazing.
2021-06-04 15535, 2021
akshaaatt[m]
So tell me, under the hood we use the Spotify API for getting the listens to the backend?
2021-06-04 15518, 2021
shivam-kapila
Yeah. The spotify reader gets a list of connected accounts and then queries the Spotify API to fetch new listens
2021-06-04 15506, 2021
akshaaatt[m]
Wow that's amazing!
2021-06-04 15525, 2021
akshaaatt[m]
So do we have a tie up with spotify for this or we pay them some cut for doing this?
2021-06-04 15518, 2021
lucifer
no, there's no tieup. we just use their public api for this.
2021-06-04 15543, 2021
akshaaatt[m]
Okayy! Interesting
2021-06-04 15504, 2021
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.
2021-06-04 15515, 2021
akshaaatt[m]
Since we are an open sourced organziation, can't spotify just fork the work and directly add it to their interface?
<shivam-kapila "Nope. When a user connects their"> Cooool
2021-06-04 15543, 2021
alastairp
lucifer: interesting. is that because we have been building from github?
2021-06-04 15506, 2021
lucifer
alastairp: could be. probably a wrongly set environment variable.
2021-06-04 15553, 2021
akshaaatt[m]
Btw can we add a feature on the listenbrainz website to search for other users by their username?
2021-06-04 15517, 2021
akshaaatt[m]
And lucifer are we going to add this gem of listenbrainz directly into the android app?
2021-06-04 15531, 2021
akshaaatt[m]
All these charts and analytics
2021-06-04 15551, 2021
akshaaatt[m]
This would basically create a social media of music listeners
2021-06-04 15528, 2021
akshaaatt[m]
We could setup people on blind dates based on their music tastes XD 😇
2021-06-04 15550, 2021
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
2021-06-04 15530, 2021
shivam-kapila
> We could setup people on blind dates based on their music tastes XD 😇
2021-06-04 15532, 2021
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.
2021-06-04 15536, 2021
shivam-kapila
TinderBrainz
2021-06-04 15517, 2021
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?
2021-06-04 15524, 2021
akshaaatt[m]
<shivam-kapila "TinderBrainz"> I am up
2021-06-04 15558, 2021
akshaaatt[m]
<lucifer "we had disucssed the social medi"> Wow cool
2021-06-04 15514, 2021
lucifer
for spotify, we have a spotify reader service which runs on MeB server and polls listens from spotify accounts for users.
2021-06-04 15500, 2021
lucifer
we also have an api, using which users can submit listens from different apps.
2021-06-04 15519, 2021
lucifer
the app submits listens from different apps using the api.
2021-06-04 15525, 2021
akshaaatt[m]
Right
2021-06-04 15511, 2021
lucifer
ruaok, should we add a metric for listens imported by spotify reader?
2021-06-04 15532, 2021
akshaaatt[m]
Niceeee. I think the data can also reflect the source of the listens?
2021-06-04 15506, 2021
lucifer
yes, there's a field for specifiyng source of listens.
2021-06-04 15506, 2021
shivam-kapila
lucifer: that would be helpful in studying why unique listens is only a fraction out of all the incoming ones