Tool Others F95Checker [WillyJL]

5.00 star(s) 23 Votes

KaosKally

Newbie
Dec 21, 2019
78
89
It's planned, I was working on it long ago but didn't get that far. Considering the new rate limits as of last week, it seems even less feasible now.
Ah, I see. It makes sense that now it is even harder to implement it with the new rate limits. It would probably slow it down considerably if not even crashing it and the cache would be, I guess, considerably higher as well, at least on games that have 10-20 screens. Now, I have no idea how the app is working on these requests, so I might be completely off on this. but in my head, what I said makes sense.
 
  • Like
Reactions: WillyJL

WillyJL

Well-Known Member
Respected User
Mar 7, 2019
1,117
932
got 38 updates that seem bogus (version change to N/A)
fixed, sam's version api can return "Unknown" at times, previously the checker would ignore if "Unknown" was returned and use the version parsed from the thread. now, this step is performed on my server, and i had forgotten this detail. it was seeing that version api returned *something* and used that as the source of truth. ive fixed the logic, updated the server and cleared the cache for the affected games, you should be able to just refresh.

this im not too sure about.
https://f95zone.to/threads/quest-failed-chapter-2-christmas-special-frostworks.9774/ loads fine here in f95checker.
however theres definitely an issue with https://f95zone.to/threads/sunny-love-to-cheat-v0-3-1-satanica-hime.195485/ .
i see it fine, but the account i made that the cache api uses (FXXindexer) cannot see it, it returns an error page:
1731823630399.png
so the cache api is working as intended. question is, why can that account not see it but we can? Sam any ideas?
 
Last edited:

WillyJL

Well-Known Member
Respected User
Mar 7, 2019
1,117
932
I don't know bro......is it a problem with F95?Or is it my own problem?:oops:
you didnt even read what he said. his message literally says "this is a change from F95 that Willy is working on". you cant even read 11 words, no wonder you skipped reading the explanation in the recent messages.
 
  • Haha
Reactions: Legenden

FXXindexer

New Member
Nov 13, 2024
1
0
this im not too sure about.
https://f95zone.to/threads/quest-failed-chapter-2-christmas-special-frostworks.9774/ loads fine here in f95checker.
however theres definitely an issue with https://f95zone.to/threads/sunny-love-to-cheat-v0-3-1-satanica-hime.195485/ .
i see it fine, but the account i made that the cache api uses (FXXindexer) cannot see it, it returns an error page:
View attachment 4241504
so the cache api is working as intended. question is, why can that account not see it but we can? Sam any ideas?
a little birdie told me that some pages require 1 post to be viewed, here goes :unsure:
 

ascsd

Newbie
Jul 26, 2021
79
54
that would be a great idea, except for one thing: game updates. kinda the whole point of all this really lmao
if an update happens before cache expiration, server invalidates the cache and will re-fetch the thread from f95zone the next time someone asks for it. but if instead, the client doesnt ask again until cache expiration because it doesnt even know it was updated, then it would take up to 7 days to find the update for users.
lol i realize now i was mixed up with the 7 day wait of the old "full recheck". personally im not too fussed if i have to wait 7 days for an update, but thinking about it more, that is a major drawback if the dev releases a bugfix and you dont find out till a week later. thats without even considering users who wouldnt want to wait 7 days!

from my understanding, you are only checking if game X has an update when a user does a check, otherwise youd need to constantly check every game all the time.
so I assume you would have some cooldown for server rechecking a game's status, else the popular games would be getting requests to recheck constantly
guessing that cooldown would be too low for my suggestion to have a meaningful difference for the number of requests of the current userbase. welp, if you find the numbers are starting to add up, it might help abit
 
  • Like
Reactions: WillyJL

KaosKally

Newbie
Dec 21, 2019
78
89
So... I have the app running in the notification area and when I opened it now i got greeted with this nice error. I am running on the latest beta build that was posted last evening for me, aka 1227
Screenshot_1.png Screenshot_2.png
 

WillyJL

Well-Known Member
Respected User
Mar 7, 2019
1,117
932
from my understanding, you are only checking if game X has an update when a user does a check, otherwise youd need to constantly check every game all the time.
so I assume you would have some cooldown for server rechecking a game's status, else the popular games would be getting requests to recheck constantly
What I did is basically move the client logic to the server. During a fast check, server will see if 7 days have passed since last time each thread was cached, if so it will cache it again and return a new timestamp to indicate that data changed. As for getting updates in real time despite the 7 day cache timer, it checks the latest updates api every 5 minutes and simply invalidates the cache for newly updated games, so next time someone requests them they are re-cached
 
  • Like
Reactions: ascsd

WillyJL

Well-Known Member
Respected User
Mar 7, 2019
1,117
932
So... I have the app running in the notification area and when I opened it now i got greeted with this nice error. I am running on the latest beta build that was posted last evening for me, aka 1227
View attachment 4242389 View attachment 4242390
What on earth... it's failing to do a dns query for api.github.com... I don't see any reason why GitHub of all things would be blocked by your ISP or OS or antivirus, so I'm guessing it's just you didn't have internet at the time of refreshing. And yeah while handling this error it found a new one, I'll check if this possibility still exists in the code, but please update to newest build, I changed a bunch of stuff and it might be already fixed
 

KaosKally

Newbie
Dec 21, 2019
78
89
What on earth... it's failing to do a dns query for api.github.com... I don't see any reason why GitHub of all things would be blocked by your ISP or OS or antivirus, so I'm guessing it's just you didn't have internet at the time of refreshing. And yeah while handling this error it found a new one, I'll check if this possibility still exists in the code, but please update to newest build, I changed a bunch of stuff and it might be already fixed
Updated to 1229 and i assume this is still the latest one, so far no issues. Now if i think about it, I might have had internet down over night for a couple minutes and app probably did a check at that time. I live in Romania and we have nothing blocked, not on ISP or otherwise, well except the usual region error on YT or other sites.

Speaking of updates... I can't remember if I already asked or suggested a built in updater for the app, that pulls the latest release from github when it detects a new build. Not sure if it would work for the action tab tho as it needs an account for it...
 
  • Like
Reactions: WillyJL

WillyJL

Well-Known Member
Respected User
Mar 7, 2019
1,117
932
Updated to 1229 and i assume this is still the latest one, so far no issues. Now if i think about it, I might have had internet down over night for a couple minutes and app probably did a check at that time. I live in Romania and we have nothing blocked, not on ISP or otherwise, well except the usual region error on YT or other sites.

Speaking of updates... I can't remember if I already asked or suggested a built in updater for the app, that pulls the latest release from github when it detects a new build. Not sure if it would work for the action tab tho as it needs an account for it...
Yeah i don't really wanna get GitHub accounts involved into this tool lol
 

WillyJL

Well-Known Member
Respected User
Mar 7, 2019
1,117
932
The final recurring error is:
View attachment 4243231
This is a really old post, could that be why?
Aha, you had said that quest failed chapter 2 was blocked, but it's chapter 1. Since I didn't see chapter 2 as blocked, I didn't clear the cache for it. But it was chapter 1 that was blocked, just cleared the cache for it now, you should be all good now if you refresh
 
  • Like
Reactions: WhiteVanDaycare

Moffer88

New Member
Jul 2, 2020
1
1
This is a fantastic tool!

Unfortunately, a few days ago, I began to receive an error when trying to refresh the games list:

<<Something went wrong checking some of your games:
JSONDecodeError: Expectingvalue: line 1 column 1 (char 0)

The response body has been saved to:
[PATH]\f95Checker\check_broken.bin

Please submit a bug report on F95Zone or Github including this file.

More info
Traceback (most recent call last):
File "D:\a\F95Checker\F95Checker\modules\api.py", line 512, in fast_check
File "C:\hostedtoolcache\windows\Python\3.11.2\x64\Lib\json\__init__.py", line 346, in loads
File "C:\hostedtoolcache\windows\Python\3.11.2\x64\Lib\json\decoder.py", line 337, in decode
File "C:\hostedtoolcache\windows\Python\3.11.2\x64\Lib\json\decoder.py", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)>>

This is the content of check_broken.bin:


<html>
<head><title>429 Too Many Requests</title></head>
<body>
<center><h1>429 Too Many Requests</h1></center>
<hr><center>nginx</center>
</body>
</html>

I have a total games count of 3968. Is there a limit on this? Or the "Too many requests" error has nothing to do with it?

I would appreciate any help about this ;-)
 

KaosKally

Newbie
Dec 21, 2019
78
89
This is a fantastic tool!

Unfortunately, a few days ago, I began to receive an error when trying to refresh the games list:

<<Something went wrong checking some of your games:
JSONDecodeError: Expectingvalue: line 1 column 1 (char 0)

The response body has been saved to:
[PATH]\f95Checker\check_broken.bin

Please submit a bug report on F95Zone or Github including this file.

More info
Traceback (most recent call last):
File "D:\a\F95Checker\F95Checker\modules\api.py", line 512, in fast_check
File "C:\hostedtoolcache\windows\Python\3.11.2\x64\Lib\json\__init__.py", line 346, in loads
File "C:\hostedtoolcache\windows\Python\3.11.2\x64\Lib\json\decoder.py", line 337, in decode
File "C:\hostedtoolcache\windows\Python\3.11.2\x64\Lib\json\decoder.py", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)>>

This is the content of check_broken.bin:


<html>
<head><title>429 Too Many Requests</title></head>
<body>
<center><h1>429 Too Many Requests</h1></center>
<hr><center>nginx</center>
</body>
</html>

I have a total games count of 3968. Is there a limit on this? Or the "Too many requests" error has nothing to do with it?

I would appreciate any help about this ;-)
What version of the app are you using? The last version that I think is still beta 1229 fixed most of the issues we had. You would need to download it from the action tab on Github tho and it needs an account for that.
 
Last edited:
  • Like
Reactions: WillyJL

batblue

Newbie
Sep 6, 2021
53
26
Great idea for a fix!

On macOS, though, I'm getting SSL handshake errors when I try to refresh using beta 1229. Here's an example:

Code:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 1080, in _wrap_create_connection
  File "uvloop/loop.pyx", line 2084, in create_connection
  File "uvloop/loop.pyx", line 2079, in uvloop.loop.Loop.create_connection
  File "uvloop/sslproto.pyx", line 517, in uvloop.loop.SSLProtocol._on_handshake_complete
  File "uvloop/sslproto.pyx", line 499, in uvloop.loop.SSLProtocol._do_handshake
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/ssl.py", line 917, in do_handshake
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 566, in fast_check
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 213, in fetch
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/contextlib.py", line 210, in __aenter__
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 130, in request
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/client.py", line 1353, in __aenter__
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/client.py", line 657, in _request
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 564, in connect
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 975, in _create_connection
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 1350, in _create_direct_connection
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 1319, in _create_direct_connection
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 1082, in _wrap_create_connection
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host api.f95checker.dev:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)')]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 574, in fast_check
UnboundLocalError: cannot access local variable 'res' where it is not associated with a value

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/runner/work/F95Checker/F95Checker/modules/utils.py", line 87, in coro_wrapper
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 1130, in refresh
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 590, in fast_check
UnboundLocalError: cannot access local variable 'last_changes' where it is not associated with a value
I imagine either the packaged version of Python's CA certs are out of date somewhere, or you're using a self-signed cert on your server? I can take a look if the cause isn't obvious.
 

WillyJL

Well-Known Member
Respected User
Mar 7, 2019
1,117
932
Great idea for a fix!

On macOS, though, I'm getting SSL handshake errors when I try to refresh using beta 1229. Here's an example:

Code:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 1080, in _wrap_create_connection
  File "uvloop/loop.pyx", line 2084, in create_connection
  File "uvloop/loop.pyx", line 2079, in uvloop.loop.Loop.create_connection
  File "uvloop/sslproto.pyx", line 517, in uvloop.loop.SSLProtocol._on_handshake_complete
  File "uvloop/sslproto.pyx", line 499, in uvloop.loop.SSLProtocol._do_handshake
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/ssl.py", line 917, in do_handshake
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 566, in fast_check
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 213, in fetch
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/contextlib.py", line 210, in __aenter__
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 130, in request
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/client.py", line 1353, in __aenter__
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/client.py", line 657, in _request
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 564, in connect
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 975, in _create_connection
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 1350, in _create_direct_connection
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 1319, in _create_direct_connection
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/aiohttp/connector.py", line 1082, in _wrap_create_connection
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host api.f95checker.dev:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)')]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 574, in fast_check
UnboundLocalError: cannot access local variable 'res' where it is not associated with a value

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/runner/work/F95Checker/F95Checker/modules/utils.py", line 87, in coro_wrapper
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 1130, in refresh
  File "/Users/runner/work/F95Checker/F95Checker/modules/api.py", line 590, in fast_check
UnboundLocalError: cannot access local variable 'last_changes' where it is not associated with a value
I imagine either the packaged version of Python's CA certs are out of date somewhere, or you're using a self-signed cert on your server? I can take a look if the cause isn't obvious.
My server uses Cloudflare self signed certs, so no one would be able to securely connect to it except Cloudflare. And everyone else connects to Cloudflare, and I doubt they have invalid certs being used. So yeah something is probably going wrong either with your system's root CA or python's bundled ones (not sure if it does bundle them tho).
While working on all this I noticed that I was using ssl=False in aiohttp, probably from a time where younger and more naive me thought this was an acceptable fix for the issue. Unacceptable to use insecure ssl, so I re-enabled it, so it might be that you had this issue the whole time but aiohttp simply wasn't checking CA validity
 
  • Like
Reactions: batblue
Mar 23, 2021
103
92
How to find the latest beta version -
  1. Go to and select Actions
    1731884315267.png
  2. Select the most recent workflow (1229 in this case)
    1731884386023.png
  3. Scroll down and select the Artifact that matches your OS to download the program
    1731884489693.png
  4. You will find a zip file within the zip file, extract the files to where you want to run the checker from. On first run it will create your datastore, etc. If upgrading it is a good idea to create a backup copy of your datastore first (the location is listed in the OP of this thread).
 
5.00 star(s) 23 Votes