Tool Others F95Checker [WillyJL]

5.00 star(s) 23 Votes

WillyJL

Veni, vidi, vici
Donor
Respected User
Mar 7, 2019
1,318
1,121
And this has been this way for ages on 10.2.
That's because you only used 10.2. It was changed almost a year ago at this point in beta

Check the readme / OP FAQ, it explains the checkboxes. But in layman's terms, the installed checkbox is used to compare what you have installed to the latest version (half checked means outdated version is installed), while the finished checkbox is used to compare what you have played to the currently installed version (half checked means you had previously finished playing an older version than what you have currently installed). If you have both checkboxes fully marked, then an update happens, the installed checkbox is half set because the installed version is not the latest one, but the finished checkbox remains fully set because you finished playing the version you have installed. Once you update the game and mark the latest version as installed, then the finished checkbox will change to half set, to indicate that you have more content installed than what you had previously finished playing.
Half set installed = update available
Half set finished = more content to play in installed version
Both could be half set too: consider latest is 1.0 and you have both checkboxes fully set. 1.1 update comes, now installed is half set (1.0 installed != 1.1 latest). You update the game, now finished is half set (1.0 finished != 1.1 installed), installed is fully set (1.1 installed == 1.1 latest). A new 1.2 update comes before you play the update that you installed, now both are half set, because you haven't finished playing content for the version you installed, and there is also an update available (1.0 finished != 1.1 installed, 1.1 installed != 1.2 latest). At this point you install the 1.2 update, installed is fully set (1.2 installed == 1.2 latest) and finished is half set (1.0 finished != 1.2 installed).
 
Last edited:

Wolfram99

Member
Aug 20, 2023
253
356
That's because you only used 10.2. It was changed almost a year ago at this point in beta

Check the readme / OP FAQ, it explains the checkboxes. But in layman's terms, the installed checkbox is used to compare what you have installed to the latest version (half checked means outdated version is installed), while the finished checkbox is used to compare what you have played to the currently installed version (half checked means you had previously finished playing an older version than what you have currently installed). If you have both checkboxes fully marked, then an update happens, the installed checkbox is half set because the installed version is not the latest one, but the finished checkbox remains fully set because you finished playing the version you have installed. Once you update the game and mark the latest version as installed, then the finished checkbox will change to half set, to indicate that you have more content installed than what you had previously finished playing.
Half set installed = update available
Half set finished = more content to play in installed version
Both could be half set too: consider latest is 1.0 and you have both checkboxes fully set. 1.1 update comes, now installed is half set (1.0 installed != 1.1 latest). You update the game, now finished is half set (1.0 finished != 1.1 installed), installed is fully set (1.1 installed == 1.1 latest). A new 1.2 update comes before you play the update that you installed, now both are half set, because you haven't finished playing content for the version you installed, and there is also an update available (1.0 finished != 1.1 installed, 1.1 installed != 1.2 latest). At this point you install the 1.2 update, installed is fully set (1.2 installed == 1.2 latest) and finished is half set (1.0 finished != 1.2 installed).
Not a big fan of this change then.
Would have been fine if Finished and installed would both go half-checked with a new update. Because now it looks like i finished the update and uninstalled the game when an update drops.
Will try to frankenstein the 10.2 checkmark logic to 11.0 later.
 
  • Like
Reactions: Danv

Wolfram99

Member
Aug 20, 2023
253
356
how exactly does this:
View attachment 4270315
convey "uninstalled the game"?
When the finished mark is fully set, the installed is of less importance.
This conveys to me that i haven't played the latest update yet.
You don't have permission to view the spoiler content. Log in or register now.

While this conveys to me that i have played and uninstalled it, although i haven't.
You don't have permission to view the spoiler content. Log in or register now.

And one checkmark modifying the other one is too convoluted.
 
Last edited:

WillyJL

Veni, vidi, vici
Donor
Respected User
Mar 7, 2019
1,318
1,121
the installed is of less importance.
based on what metric? if youre talking about order in which games are shown, you can change this. for example, i have mine showing stuff that i havent updated yet (as in, installed checkbox is half set) before fully updated games. by that point, i can easily gauge "importance" by the order in my list of games, stuff that is higher up has been updated / i havent played yet, which is more important than stuff that i have already finished and is already updated to latest. i had already mentioned this to you, but from prior conversations i feel like you upgraded to beta after i sent the below message, so maybe consider giving it a shot now.

an alternative solution is to change your sorting mode. what i do is this:
View attachment 4250078
that way, the order in the list is
- more content to play in installed version, update available
- more content to play in installed version, latest version is installed
- finished playing installed version, update available
- finished playing installed version, latest version is installed
- never marked finished playing, update available
- never marked finished playing, latest version is installed
- never marked finished playing, never installed
its a more logical order to do things in, and new updates will mean than an update is available (as per installed checkbox) and will move closer to the top of the list with this sorting mode
if thats not what you mean, then we'll just have to respectfully agree to disagree, and i wish you luck on making it work how you want it to.
i changed it to where it makes more sense to me (having an update installed, and having played that update / a previous update, are separate concepts and it is useful to track them separately), and you're the first person as far as i recall to disagree (maybe 1 or 2 previously said something similar, but if i remember correctly they came aroudn to it when they better understood the logic / intended usage flow) so unfortunately i will not be changing it back / adding even more complexity by making it an option.
 

ascsd

Newbie
Jul 26, 2021
99
74
When the finished mark is fully set, the installed is of less importance.
This conveys to me that i haven't played the latest update yet.
You don't have permission to view the spoiler content. Log in or register now.

While this conveys to me that i have played and uninstalled it, although i haven't.
You don't have permission to view the spoiler content. Log in or register now.

And one checkmark modifying the other one is too convoluted.
this is how i interpret the boxes (which is helped by sorting my games in a certain order: 1. Finished arrow up, 2. installed arrow down, 3. last updated arrow up)

1732592814169.png

1. finished and installed half checked: new update for a game i am currently playing (ie havent finshed) is available

2. finish half checked, installed full checked, play is white: playing latest content

3. finish half checked, installed full checked, play is RED: new update is available that i need to download.
i get to this state when the update modal shows the game has enough content for me to update, so i click "installed" even before i download & install.
and i have either already deleted the game files when i finished playing the older content (to save space) or i delete it then and there to force the red play button to know i need to download.

4. finished full check, installed half checked: new update is available for a game i've finished but its too small, eg bug fixes, so i dont want to download it. i dont do anything in the update modal

5. finished full check, installed full checked: when i finish the latest content, i click on finished.

hopefully that makes sense, it does in my head so idk if i explained it well enough
 
Last edited:

Wolfram99

Member
Aug 20, 2023
253
356
Technically the 11.0logic is sound.
If both the finished and intalled checkmarks would go half-checked when an update drops, that would visually convey to me that there is new content to play.
While the full Finished mark only disapears when you mark the game Installed is sort of confusing.
The Installed checkmark affecting the Finished checkmark is too much interdependency for my taste.


Honestly, i would change the UI element of Installed version number, to Last finished version number. In my mind i would rather track the versions i played, instead of installed, since sometimes an "installed but not finished" version sits in my DL folder so long that a new update drops before i can touch it.
 

WillyJL

Veni, vidi, vici
Donor
Respected User
Mar 7, 2019
1,318
1,121
View attachment 4270450
Getting this when I check the downloads tab of any game on beta 11 1294.
cant reproduce this. can you please send your resources/fonts/materialdesignicons-webfont.7.4.47.ttf file? i think it is corrupted, for whatever reason. after sending it, try to reinstall the beta
 

FaceCrap

Ghost of torrents passed
Donor
Oct 1, 2020
1,305
886
build 1296
Sometimes after a refresh, my sorting settings get messed up, this was also present in the previous builds.
Ah, So I'm not alone, I get that sometimes when managing Executables for more than one game in succession.

Questions:
1) If that happens, do the sorting indicators still show the original sorting?
2) Does switching to another tab and switching back to the 'affected' tab restore the chosen sorting order?
 
Last edited:

FaceCrap

Ghost of torrents passed
Donor
Oct 1, 2020
1,305
886
If you right-click the header bar, there's three options to allow you to choose which versions are shown. Checking all three will make it much more visible how the checkbox logic functions.
1732641339505.png

In my mind i would rather track the versions i played, instead of installed, since sometimes an "installed but not finished" version sits in my DL folder so long that a new update drops before i can touch it.
And that's precisely why the 'Finished' checkbox stays fully checked after the first update, because when your situation arises, then it turns to 'half-checked, meaning you have the game installed, but you never touched it, and since then a new update came out. e.g.
1732642082060.png
You would probably argue to turn it unchecked, but that would mean you never touched the game to begin with...

As you can see in the first screenshot, I have all three checked, so that as shown in the second screenshot I can see at a glance not only why the checkboxes show the way they show, but also that I once downloaded and finished the final version, subsequently downloaded a Steam version but never touched it, and since then a new update came out. Exactly the situation you described. Something that would not have been visible if the Finished checkbox had been cleared.

As a reminder to understand the three-state logic.

Downloaded/Installed checkbox:
Clear
: Added but never downloaded (*)(!)
Checked: Downloaded (or first time added)
Half-Checked: Downloaded but a newer version exists
(*): Yes, I know you can also mark it as Downloaded on adding the game to the checker but that is only the initital state. The benefit of doing so will allow you to gauge the update cycle time.
(!)NOTE: If you do have this button checked on add, remember to toggle this button the first time you actually download and play it, so that the timeline will show the first time you actually downloaded/installed it.

Finished Checkbox:
Clear
: Never touched the game (downloaded or not)
Checked: Finished playing the downloaded version
Half-Checked: Never finished the downloaded version and newer version came out.
 
Last edited:

FaceCrap

Ghost of torrents passed
Donor
Oct 1, 2020
1,305
886
There’s a default main tab, and I keep all my games in custom tab
Damn, only one tab besides the default? I've got a tab for every status type, true custom games, plus some dedicated collection tabs...
sounds like you're not using tabs to their full potential.
 

WillyJL

Veni, vidi, vici
Donor
Respected User
Mar 7, 2019
1,318
1,121
something had gone wrong in the cache api latest updates watcher, not sure what exactly tho. in the logs there was a timeout error, but the error handling just makes it sleep 5 minutes then resume again, so by all means it shouldve still been running. just in case, i also changed the logic to use the same exact latest updates API call that the website does, with sort=date and also including a _=(current timestamp) to make sure it doesnt get an old result. theyre fixed now
happened again, but this time i had some more logging. latest updates watcher connected to f95zone to get the latest updates data, threw a timeout error, logged it, then slept for 5 minutes before trying again, all normal. when trying again, it appears to get stuck. it says that it started looking for latest updates, got into the for loop and the first item was games category, then nothing. after the logging for what category its checking, it prepares a redis command pipeline (queues multiple commands to be executed in one web request, this way multiple cache invalidations are done in batch) and right after it connects to f95zone again. so either the redis pipeline is doing something weird and blocking forever, maybe because the previous pipeline object from previus operation was not used, or theres something going terribly wrong in the aiohttp session, where after one timeout it is unable to make any more requests. restarted the api for now but need to figure this issue out.

EDIT: whats even weirder is that other tasks using the same aiohttp session continued fine: grabbing threads and parsing data from them for updating cached info uses the same aiohttp session as the latest updates watcher, and threads kept being fetched normally but latest updates didnt... so its not a aiohttp session global issue, and its not an internet issue... i tested locally by artificially timing out the request, and it resumed fine, so doesnt seem like the redis pipeline is causing issues either...
 
Last edited:

FaceCrap

Ghost of torrents passed
Donor
Oct 1, 2020
1,305
886
happened again.
...snipped...
I am going out on a limb here, but from what you described, it sounds to me like the tasks that didn't get blocked were those fetching threads (i.e. different GETs) and the one task that did get blocked was for the same Latest Updates page (the same GET).

Could it be that somewhere something gets cached? Or that (some) variables don't get reset to their starting values for that task? Resulting in whatever caused the first timeout left things in a state different than what should be?
 
Last edited:
  • Like
Reactions: WillyJL

WillyJL

Veni, vidi, vici
Donor
Respected User
Mar 7, 2019
1,318
1,121
I am going out on a limb here, but from what you described, it sounds to me like the tasks that didn't get blocked were those fetching threads (i.e. different GETs) and the one task that did get blocked was for the same Latest Updates page (the same GET).

Could it be that somewhere something gets cached? Or that (some) variables don't get reset to their starting values for that task? Resulting in whatever caused the first timeout left things in a state different than what should be?
url for latest updates data changes every time, i didnt do this before but after it happened the first time i added a _=<timestamp> to the request url, the same way that it does when you open it from the forum. cache issues sound unlikely to me. and even if it was a cache issue somewhere, aiohttp's timeout system shouldve kicked in and interrupted the request once it took more than 30 seconds overall in this case.
the fact that this didnt timeout means either something went terribly wrong in the timeout logic for the aiohttp session, or something else is getting stuck, after it has finished getting stuff from f95.

the fact that other async tasks like fetching threads kept working might be explained by the fact that timeouts are task-based, its basically tracking how long each task has elapsed inside the timeout window from what i can tell, so maybe it isnt properly removing the task from the timeout list, but i cant replicate it artificially by simulating a timeout by sleeping in multiple places of the request code so either this is not the issue or its a very rare edge case

as for the part of code after, i dont see any obvious issues with it or anything that would cause a deadlock, so yeah...

for now i think i'll add some more logging in between parts of the latest updates fetcher, and also gonna add an overall timeout (independent and different implementation than aiohttp) to each iteration of the updates watcher so it should be able to catch when something (un)related to aiohttp takes too long. also gonna upgrade aiohttp to latest version
 

WillyJL

Veni, vidi, vici
Donor
Respected User
Mar 7, 2019
1,318
1,121
rentalunshipped982 BrockLanders blackop simple_human FaceCrap
so, if this doesnt fix the sorting / filtering bug, idk what will.
i think i understand what is happening: gui thread checks recalculate_ids, if true it sets to false and starts filtering and sorting; however, it is possible that between executing the line that reads the value and the very next one that sets it to false, something else changes the value, and it gets lost. race condition basically. ive changed it to where setting recalculate_ids needs to acquire a lock (aka a mutex), so that while the gui reads the value and sets it to false, if something else is trying to set it to true it has to wait, and this new true will be picked up next frame and sorted again.
if this still doesnt fix it, i have a last resort of putting the *whole* recalculating logic inside the mutex, not only the flag telling it to recalculate_ids.
let me know if you find the sort bug again on build 1301. also, if nothing else pops up, id say this is basically ready for release, consider it a RC1 :D
 

WillyJL

Veni, vidi, vici
Donor
Respected User
Mar 7, 2019
1,318
1,121
Is it possible to make custom images not reset when the banner on the game's page gets updated ?
For example, the game Gakko No Monogatari changes its banner with every update, and it’s a GIF banner that’s always around 10-15 MB. My custom image keeps resetting. There are many games like this.

I compressed the images for all the games in my library and managed to reduce the size from 2 GB to 130 MB.
But games that constantly update their banners keep messing it up, adding another 200-300 MB.
i eventually plan to add an option to compress images, as for not updating when a custom image is set this should be fixable
 
  • Like
Reactions: simple_human

WillyJL

Veni, vidi, vici
Donor
Respected User
Mar 7, 2019
1,318
1,121
WillyJL

Sometimes the program crashes, this issue has been around for quite a while. It appeared around at the same time as the 'sorting problem'. I could be wrong, but all these problems started around build 1174. But I can say for sure that such problems did not occur with build 1166

Just now, it crashed when I had the filter for HTML games enabled. I turned it off, switched to another tab, and it crashed. Tried it again, but it's fine, no crashing.


sorting issues are still there.


yes it still show the original sorting, which was before the bug
before bug View attachment 4274910 , after bug View attachment 4274909

No. like I said switching tabs doesn't fix it.
did this happen on build 1301? that is supposed to fix the issue
 
5.00 star(s) 23 Votes