Giter Site home page Giter Site logo

Comments (14)

SHOEGAZEssb avatar SHOEGAZEssb commented on June 12, 2024 2

I actually identified the cause of the bug. A recent change in my scrobble display listview style has caused the listview to disable its virtualization. Basically what happens is that all 50000 items are loaded at once and the application can't keep up. I think I can work around this, I just need some days figuring it out.

from last.fm-scrubbler-wpf.

SHOEGAZEssb avatar SHOEGAZEssb commented on June 12, 2024 1

I can reproduce the bug, I'll try to find a fix but I actually have no idea what the problem is.
The csv file is parsed fine, but for some reason it can't be displayed.

from last.fm-scrubbler-wpf.

cywtf avatar cywtf commented on June 12, 2024 1

I got some spare time today and did a bit of testing with versions 1.18, 1.19. Maybe we can shed some light on the issue.

1.18

What works:
I can successfully parse the CSV file from @lucianasena in 1.18.0.0 and all the scrobbles can be displayed in the list. It shows 52198 rows.

What doesn't work
When I click in “select all” the program becomes unresponsive.

I tested a smaller version of the file, with 970 rows. It parsed the file very quick and it also managed to select all the files. It also scrobbled all files successfully in a test account.

  • Is there a maximum amount of rows that the program can process?
  • Do you have any idea what is the reason for the program to crash with 50 thousand rows but parse and scrobble them properly with less than one thousand?
  • I couldn't find a log file in this version.. is there one?

Also when I opened the CVS file in Libre Office in order to make it smaller, it asked me which character set, I chose UTF-8, but it had another by default, Western Europe ISP 8859. Is this relevant?

1.19

What works
Nothing yet

What doesnt work
The program cant parse the CSV file anymore. It gets stuck in Reading CSV file…
However, even though the program becomes unresponsive and eventually shuts itself down, the log file says Successfully parsed CSV file. Parsed 52198 rows.

  • Why?

from last.fm-scrubbler-wpf.

SHOEGAZEssb avatar SHOEGAZEssb commented on June 12, 2024 1

Firstly, thanks for putting your time and effort into this.
Knowing it works in 1.18 is good information. I'll try to find out what changed and caused the bug. (I could already rule out external package versions)

About your problems with 1.18: When you click "Select All" it just takes a while to select all of the records. I might be able to optimize this part, but it just takes a while for that many rows. The more rows the longer the "Select All" process will take. And yes, there is no logging in 1.18. I'm not 100% sure about encoding but I want to make encoding settable in the future anyways so it shouldnt be a problem. (I already tested all encodings and the csv file could still not be displayed in 1.20)

About 1.19: The csv file is actually parsed successfully, it just can't be displayed. When I removed the control that displayed the rows the program did not get unresponsive. Apparently something changed between 1.18 and 1.19 that causes this bug. I'll have to look further into it.

from last.fm-scrubbler-wpf.

cywtf avatar cywtf commented on June 12, 2024 1

I have to give an update again, as I continued testing:

All versions (1.18, 1.19 and 1.20) can parse and scrobble a file that has up to 5000 rows. I tried different amount of rows for all these versions, and eventually they crash, I don't know yet the reason, but 5000 rows is a number that all of them can parse. It could also be my VM.. maybe you can try a bigger file if you run Windows and see if you don't have any sort of memory restrictions.

Because there is a limitation on 2800 scrobbles per day, a workaround would be to directly add in the documentation that if the CVS file has more than those rows, that users should first split the file into smaller chunks using for example filesplit as you suggested, and that would work in all the versions of your software, doing one chunk a day.

Unfortunately for me, as I have been scrobbling since 2006, that would mean that I would end up importing my last.fm scrobbles in 50 days ( •_•)

from last.fm-scrubbler-wpf.

SHOEGAZEssb avatar SHOEGAZEssb commented on June 12, 2024 1

I think I fixed it. Could you try with this attached version please?
Debug.zip

from last.fm-scrubbler-wpf.

cywtf avatar cywtf commented on June 12, 2024 1

That works very smooth. Good job!

from last.fm-scrubbler-wpf.

lucianasena avatar lucianasena commented on June 12, 2024

I'm not using a VM, but I'm having exactly the same problem. I'm also using Windows 10.

from last.fm-scrubbler-wpf.

SHOEGAZEssb avatar SHOEGAZEssb commented on June 12, 2024

Please upload the csv files you are using

from last.fm-scrubbler-wpf.

lucianasena avatar lucianasena commented on June 12, 2024

Please upload the csv files you are using

I uploaded mine: link

from last.fm-scrubbler-wpf.

SHOEGAZEssb avatar SHOEGAZEssb commented on June 12, 2024

I am pretty sure it has something to do with malformed rows of the csv file. Probably some encoding bullshit. Can't seem to find a fix tho :(

from last.fm-scrubbler-wpf.

lucianasena avatar lucianasena commented on June 12, 2024

Ok :(

from last.fm-scrubbler-wpf.

lucianasena avatar lucianasena commented on June 12, 2024

Thank you! Although, when I try to scrobble my 52192 tracks, it gives an error saying that these tracks would break the daily scrobble cap. Hahaha, I didn't even know that existed.

from last.fm-scrubbler-wpf.

SHOEGAZEssb avatar SHOEGAZEssb commented on June 12, 2024

Its there since a few versions. Some people scrobbled so many tracks that it caused outages of the last.fm server. The last.fm dev team contacted me directly and made me implement a scrobble limit ^^

from last.fm-scrubbler-wpf.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.