Check if account is shadowbanned on the run - #2059
Conversation
There was a problem hiding this comment.
Yes, there is a better way.
common = [16, 19, 27, 29, 32, 41, 43, 46, 52, 54, 60, 69, 72, 74, 98, 118,
120, 129, 161, 165, 167, 177, 183, 187, 194, 198, 209, 218]
rare_ids = [x for x in range(1, 250) if x not in common]
There was a problem hiding this comment.
I meant better way finding common pokemons than using this kind of list of IDs.Tthis is mostly cosmetic change, but looks better, you are right :)
There was a problem hiding this comment.
@aRengo the rare_ids list is constructed from range, but IDs of common pokemons are substracted from the list. So the range is not complete, that's the whole point :D
|
I just added the rest of confirmed common pokemons, source reddit. EDIT: Checking store for missing items does not seem to be a reliable way to check for shadowban. The account has to be flagged too for this to happen, but flag != shadowban. So no point in doing another check this way, if it can't check for shadowban alone... |
|
@Thetacz 2: Preferably not. The idea of using the shop to identify blind accounts (because they could only see coins) was a good one, but it's apparently not true for everyone. As an alternative, I suggest looking at scan data: it seems blind accounts don't get all details the regular accounts are getting, as the But we've also started working on a PGoClient wrapper around PGoAPI, which could include a status such as banned/flagged/blind, and which could automatically update the account status after every request. @aRengo 3: Look at the flow for banned accounts. Iirc, we remove them from queue, output to logs, and never retry that account. |
|
Now it properly recycles the accounts (in case the shadowbans get lifted after some time - stil not confirmed). I can either leave it as it is and those accounts will get re-tried after user specified time, set some fixed time for shadowbanned (needs more reaserch, being done at #pogodev) or completely discard the account (or leave it there and add if that will skip shadowbanned accounts) |
|
@sebastienvercammen Just compared response from shadowbanned and not. Those responses only differ in visible pokemons (aside from account specific - types of pokemon it seen, stats etc...). They both have the same amount of EDIT: missclick on close, sry :/ |
There was a problem hiding this comment.
Please use the logger (%s) instead of string with {} some stuff {} in it.format(foo,bar)
There was a problem hiding this comment.
@Alderon86 I used %s before, but changed it for consistency with line #836. If you insist so much, I will change it in a heatbeat. :)
There was a problem hiding this comment.
Or should I split the mesage to more lines? (Similar way as is done in models.py when logging empty spawnpoint - line 2375)
There was a problem hiding this comment.
status['message'] = (
'Account %s could not find pokemon ID: %s. ' +
'Possibly shadowbanned, switching accounts... ' ,e.account['username'], e.missed_ids)
There was a problem hiding this comment.
status['message'] = (
'Account %s could not find pokemon ID: %s. ' +
'Possibly shadowbanned, switching accounts... ', e.account['username'], e.missed_ids)
There was a problem hiding this comment.
https://stackoverflow.com/a/11589591
But you are right, looks nicer.
|
1.Bulba and any other of the starter pokemons are not common. Ofc just my two cents |
|
Does anyone know how to implement mapbox leaflet in place of gmap? For Internet browsing and others. I have other instances that do a scan and wanted an interface booklet |
|
It seems that No.77 Ponyta should also be included in the common_ids. |
|
@Buncertainc Do you have some source for that? Or any location of Ponyta nest, so I can test it? |
|
@Thetacz No, Sorry. It's only from my accounts' experience. I have several blinded accounts which are able to find Ponyta. |
|
@Thetacz Ponyta nest @ 30.168453, -95.7407196 |
|
@wellington1092 This is not the place for that. @Thetacz Awaiting changes, or ready for review? |
|
@Buncertainc Thanks for the tip, it seems to be true. |
|
What about a new column "blind" in workerstatus? If an account hits the shadowban set blind to '1', else '0'. Edit: Or a column named "Status" with OK/Blind/Banned as options |
|
@pokemonkiel That seems like out of scope of this PR as that should be solved by proper account manager. Generally I like the idea, but accounts get unshadowbanned, so there would have to be a way to check and reset the flag in DB. And that is definitely out of scope and work for proper account manager...Now we just send accounts to rest. |
|
I'm currently trying your PR. I understand the logic behind your PR, but why is the warning "spawnpoint xxx has no Pokemon N times in a row." not used in a way or an other in the detection ? |
|
An option would be to make the list a flag with current list as default and let map maintainers adjust them during an event. |
|
This is the current list common_list for the live event: common_ids = [16, 19, 23, 27, 29, 32, 37, 41, 43, 46, 52, 54, 58, 60,
69, 72, 74, 77, 81, 90, 98, 118, 120, 129, 155, 161, 165,
167, 177, 183, 187, 191, 194, 198, 209, 218, 220, 228]If you find anything else being common, let us know. I am not sure about Lapras # 131. |
|
I am not sure about this system I do see what -redacted- does a lot simpler just check wild + nearby for rare pokemons, nearby list is large and is uncommon to don't have any rare pokemon in the list. |
|
Re-check list and rebase, please :-) |
|
There is a conflict with |
|
Sadly I don't have any free time now. Soonest date I can get to this is 4 days from now, but more probable is next week. Sorry guys for keeping you waiting with broken code. |
|
No hurry 👍 enjoy! |
It's ALIVE!!!!!
b30b384 to
44baabd
Compare
|
Missclick on wrong branch, reopening and working again :) |
Happy Travis is happy
|
Nice :) |
|
So happy to see this. Have been so patient. |
|
So i have a weird bug. I restarted my server and i got this error: If i rename my shadow ban file to somethhing else. it works. The file hasn't been touched in awhile. The formatting seems all proper (UTF-8). there is nothing missing. no extra space. nothing. it fixes itself if i remove accounts out. It happened with 17 accounts in it. Thoughts? Edit Its happened with less accounts now. |
|
@boby361 This is still PR so things change from time to time and some are not backwards compatible. I added 4th field to the file, timestamp. Your old file has probably only 3 fields. So either check the code and add proper timestamp or delete it and let it create a new one. |
|
Yeah the file only contains lines with the 4 fields. Everything seems to work properly. It's just weird how it randomly throws this issue. I have other people having the same issue with the same fix (using the same fork. Although it's just a up to date RM develop branch + this PR) it happened to me on windows server 2016 although one of my scanning contributors had same issue on Ubuntu. |
A subtle blend of sLoPPy's detection and PR RocketMap#2059 with a bunch of tweaks of my own. Looks for "non-common" Pokemon on each scan to update non-rare scan counts accordingly. No account switching, just logs. TODO: Put this stuff in a database
|
Hi. Any progress with this PR?. Now we have Temp Ban and shadow bans again. I think is time to put an eye in this PR. |
|
@jorgitoh Then go ahead and finish it yourself, it's open source. Otherwise stay silent if you have nothing to contribute. |
A subtle blend of sLoPPy's detection and PR RocketMap#2059 with a bunch of tweaks of my own. Looks for "non-common" Pokemon on each scan to update non-rare scan counts accordingly. No account switching, just logs. TODO: Put this stuff in a database
A subtle blend of sLoPPy's detection and PR RocketMap#2059 with a bunch of tweaks of my own. Looks for "non-common" Pokemon on each scan to update non-rare scan counts accordingly. No account switching, just logs. TODO: Put this stuff in a database
A subtle blend of sLoPPy's detection and PR RocketMap#2059 with a bunch of tweaks of my own. Looks for "non-common" Pokemon on each scan to update non-rare scan counts accordingly. No account switching, just logs. TODO: Put this stuff in a database
A subtle blend of sLoPPy's detection and PR RocketMap#2059 with a bunch of tweaks of my own. Looks for "non-common" Pokemon on each scan to update non-rare scan counts accordingly. No account switching, just logs. TODO: Put this stuff in a database
A subtle blend of sLoPPy's detection and PR RocketMap#2059 with a bunch of tweaks of my own. Looks for "non-common" Pokemon on each scan to update non-rare scan counts accordingly. No account switching, just logs. TODO: Put this stuff in a database
A subtle blend of sLoPPy's detection and PR RocketMap#2059 with a bunch of tweaks of my own. Looks for "non-common" Pokemon on each scan to update non-rare scan counts accordingly. No account switching, just logs. TODO: Put this stuff in a database
A subtle blend of sLoPPy's detection and PR RocketMap#2059 with a bunch of tweaks of my own. Looks for "non-common" Pokemon on each scan to update non-rare scan counts accordingly. No account switching, just logs. TODO: Put this stuff in a database

This PR aims to identify if accounts are shadowbanned / get shadowban on the run.
Description
One can identify shadowbanned accounts by missing pokemons in their scan. So if current account sees only "common" pokemons and no "rares", it pulls nearby active pokemons from database and compares them to what the current account sees. If there are any rare pokemons around and the current account can't see them, it sends a warning with pokemon IDs saying, the account is shadowbanned. It also writes the account to "acc_shadowbanned.csv" (only if not there yet) and sends it to recycler for -ari + 24h.
It also counts consecutive non-rare scans and if the number exceeds 20, it sends the account to recycle for -ari. It does not write to "acc_shadowbanned.csv" in this case, because this is not 100% reliable, as some rural areas can have only common pokemons. The number of consecutive counts is so high on purpose, because we have to give the previous method some time to work. This way fresh accounts get into rotation and we can use the 1st method.
Motivation and Context
Who would not want to know, if their account gets blinded? And sort them out...
How Has This Been Tested?
I was running -st 20 with blinded accounts few hours to identify common pokemons. Than I took few of these accounts and let them run the same area with not yet blinded accounts. Here is a log of found blinded account:

Screenshots (if appropriate):
Types of changes
Checklist: