- Mar 7, 2019
- 1,111
- 922
local star ratings are planned, tags are planned but only as a filter optionHello thank you for the tool! A feature to add: categories/custom flags/tags/colors/rating. Looks too messy without it.
local star ratings are planned, tags are planned but only as a filter optionHello thank you for the tool! A feature to add: categories/custom flags/tags/colors/rating. Looks too messy without it.
I will quote WillyJL here from a few weeks ago:...connection error (already tried the certificate solution) and then multiple error screen for each thread like:
View attachment 1672831 View attachment 1672832
Not sure if I should try to refresh again or change the "max retries per request" or "max threads for refresh"
Those two settings are best left alone.yea well thats a common timeout error, simply your internet was working a little slow at some point...
I'll make everything a bit clearer:looks like after an incalculable amount of link added( View attachment 1672817 ), the app will bug with freeze, connection error (already tried the certificate solution) and then multiple error screen for each thread like:
View attachment 1672831 View attachment 1672832
Not sure if I should try to refresh again or change the "max retries per request" or "max threads for refresh"
Damn right it's a disaster ! It gave me a BSOD and didn't save work (nothing dramatic tho, I lost near nothing in the end)In your situation it's kind of a disaster
Again i can only quote the dev here:Got some kind of new error messages, never seen them before. It had the same error on like 8 other games but they all looked the same so I just only took 2 screenshots.
As the dev has shared, that error can happen too if your list of games is huge as the checker will try to make many requests.yea well thats a common timeout error, simply your internet was working a little slow at some point...
I am getting similar errors on linux. I cannot login or add any games on a fresh install of 8.5 downloaded from Github Releases. This is also present in the latest github commitGetting this when trying to update or add any new entry.
View attachment 1700390
34c9dede26806b7157a092c1e4ea2920aef1b73b
Traceback (most recent call last):
File "/home/me/Games/F95Zone/F95Checker/modules/api.py", line 108, in login
globals.token = token_soup.select_one('input[name="_xfToken"]').get('value')
AttributeError: 'NoneType' object has no attribute 'get'
~/.f95checker/f95checker.json
).Thanks, I was able to add theIt seems those _xfToken errors happens as the module soup tries to extract data from the cookie during login (all through the Checker, not your browser)
I don't know for sure how you trick the tool to do the login procedure again but you could always add the cookie data manually as explained here (win version, linux path for the .json should be~/.f95checker/f95checker.json
).
xf_csrf
and xf_user
cookie values from Firefox's dev tools after clearing cookies and logging in to F95Zone directed, but the same error still occurs. Just for fun, I also tried adding xf_session
to the list of cookies, but that didn't work, either.Something went wrong...
Traceback (most recent call last):
File "/home/andrew/Games/F95Zone/F95Checker/modules/api.py", line 108, in login
globals.token = token_soup.select_one('input[name="_xfToken"]').get('value')
AttributeError: 'NoneType' object has no attribute 'get'
_xfToken
? I did not see that cookie in Firefox at all.will add to planned featuresCould you add a option to increase interface? The GUI looks too small.
Getting this when trying to update or add any new entry.
View attachment 1700390
I am getting similar errors on linux. I cannot login or add any games on a fresh install of 8.5 downloaded from Github Releases. This is also present in the latest github commit34c9dede26806b7157a092c1e4ea2920aef1b73b
Python:Traceback (most recent call last): File "/home/me/Games/F95Zone/F95Checker/modules/api.py", line 108, in login globals.token = token_soup.select_one('input[name="_xfToken"]').get('value') AttributeError: 'NoneType' object has no attribute 'get'
It seems those _xfToken errors happens as the module soup tries to extract data from the cookie during login (all through the Checker, not your browser)
I don't know for sure how you trick the tool to do the login procedure again but you could always add the cookie data manually as explained here (win version, linux path for the .json should be~/.f95checker/f95checker.json
).
yea so f95zone is a forum like site, and likealmost any other forum like website they are based on xenforo. im not too sure what it means, but all i know is that the xfToken (meaning of course xenforo token) is needed for loading certain pages properly. i think it has something to do with the session. almost like the session info is calculated based on your user data and token combined, so to be logged in you need all three and not having even one of these can cause issues with login. again all this might not be exact, this is speculation and also i havent touched that code in quite a while so it might not even remember correctly.Thanks, I was able to add thexf_csrf
andxf_user
cookie values from Firefox's dev tools after clearing cookies and logging in to F95Zone directed, but the same error still occurs. Just for fun, I also tried addingxf_session
to the list of cookies, but that didn't work, either.
Perhaps the program is looking for a nonexistent cookie,Python:Something went wrong... Traceback (most recent call last): File "/home/andrew/Games/F95Zone/F95Checker/modules/api.py", line 108, in login globals.token = token_soup.select_one('input[name="_xfToken"]').get('value') AttributeError: 'NoneType' object has no attribute 'get'
_xfToken
? I did not see that cookie in Firefox at all.
yea so f95zone is a forum like site, and likealmost any other forum like website they are based on xenforo. im not too sure what it means, but all i know is that the xfToken (meaning of course xenforo token) is needed for loading certain pages properly. i think it has something to do with the session. almost like the session info is calculated based on your user data and token combined, so to be logged in you need all three and not having even one of these can cause issues with login. again all this might not be exact, this is speculation and also i havent touched that code in quite a while so it might not even remember correctly.
anyway, this xfToken is included in any webpage you request from f95zone, somewhere in the html head section. so what i do with the tool is the first time you connect you instead request the homepage just to obtain the token, and then go on with the other requests as normal since you now have the token.
if the token is missing from the html, then if will not be able to get the value and so it throws that error. there could be many reasons as to why the token is not there, but generally speaking its because your connection never actually made it to f95zone. from past experience i can tell you it is most likely cloudflare bitching around, maybe cos it thinks your ip is suspicious or something else. i suggest trying with a vpn or on another network. could also be a firewall issue afaik
EDIT: actually i have started experiencing this issue myself too. and if you open f95zone in a regular browser you can see that before getting to the page you are briefly on a DDoS-Guard page, similar to the previous cloudflare issue. however i dont know if / how i can fix this yet, and the severity of the issue...
diff --git a/modules/callbacks.py b/modules/callbacks.py
index 36731da..00327cb 100644
--- a/modules/callbacks.py
+++ b/modules/callbacks.py
@@ -79,7 +79,15 @@ async def add_game(*kw):
globals.gui.add_input.setFocus()
return
+ # if we are given a link to a page deeper in the thread trim it off
+ trim = link.rfind('/page-')
+ if trim != -1:
+ link = link[:trim+1]
game_id = link[link.rfind('.')+1:link.rfind('/')]
+ # if the URL is in the form f95zone.to/threads/#####/
+ # we will get the wrong game_id, so clean it up. No need to test,
+ # if the text isn't found nothing will change.
+ game_id = game_id.replace('to/threads/','')
# Config
if game_id in globals.config["games"]:
I have around 400 games and I'm also having trouble with the app being very slow and getting random errors. If I set threads to 80 will it still check every game ?I'll make everything a bit clearer:
Each game to be checked means 1 request. Then you add another one for checking alerts + dms (they both get fetched in a single request).
So in your case you have 802 games + alerts + dms = 803 requests.
How I check the games is through a special type of web request. I'll briefly explain:
The most common request is GET: you ask the website and receive headers (info) + content (the webpage).
Then you have POST (and similars): you give the website some data and receive headers + response.
Finally you have HEAD: same as GET, but you only receive headers.
This is important because the headers are generally very small compared to the content which is quite (it contains the whole code for the webpage you see in your browser). Now what I do is connect to a game thread page, which includes the title (look at the top here: f95zone.to/threads/f95checker-8-5-willyjl.44173/...) with special characters removed. When you connect to said URL but the title changed, the URL will be different too so you will be redirected (for example to f95zone.to/threads/f95checker-8-6-willyjl.44173/...). The redirection part happens in the headers so I don't need to fetch the whole webpage, only the headers. So I use HEAD requests. Basically if the headers of the HEAD request contain a redirect, I know the title changed so the game was very likely updated, while if there is no redirect the game should be the same.
Now HEAD requests and very light, so up until a certain point they can be sent all together. This is what the threads do:
Each thread runs at the same time and makes a request to all the URLs it is assigned, one after the other. If there is the same amount, or more, of threads compared to requests, then each thread makes a single request, so they all happen at the same time. If there are more requests than threads, then each thread will make its first request then make a second one after, and so on until all are finished.
This means that if your PC / internet connection can handle all the threads, it will go very fast, but if it cannot it will get stuck (like it did for you). I put the option to change the amount of threads because it's a very delicate balance that you need to find for yourself: too many threads will get them stuck, too few threads means that it takes longer since it could do more at the same time. But 800 threads is A LOT, that is your issue. Yes the current way thread count works is kinda stupid, idk what I was thinking... but for your case I suggest trying like 80 threads? This way your PC and connection should be able to handle 80 connections at the same time, and each thread will make 10 total requests (one after the other). (maybe make it 81 threads, so it can also get the last 3 requests within those 10 request cycles)
On the other hand the max retries is a very different concept. Each request that a thread makes might fail and return an error. If this happens it will be tried again, until the max number of retries is reached, at which point you get a message box for it.
In your situation it's kind of a disaster: you are trying to make 800 connections at the same time, which is nearly impossible, and because of that it gets stuck and they all fail because of timeout (they were stuck and took too long). Since they failed (timeout) they will all try again, and as before, try all try again at the same time.
I say keep 80 threads and 3 retries. Something like that should be fine.