Add X-Super-Properties to all user-account requests#1510
Conversation
|
@AlmightyLks triggered CI runs |
|
So far this has been working for a few hours on an account that got disabled twice without this change, first after 2 days of non stop exporting, then after 15 minutes of exporting. |
|
Sending only a subset of properties is not really the way to go, though it is a lot better than none |
|
Please do not use linux for the user agent/platform, because sometimes when using linux + a vpn, discord returns 403 |
|
Here are the docs for the X-Super-Properties header if anyone needs them: https://docs.discord.food/reference#example-client-properties-(web) |
Can't confirm that, export been running for about 5 hours on linux with my vpn on, all works fine. |
|
Linux properties are indeed usually more sensitive unfortunately |
|
I am open to have it changed to something legitimate for windows |
|
Feedback: On a new account that has not been penalized before, after applying the changes from this PR, I received a 24h ban after ~30 hours of continuous crawling (totaling around 1 million messages). Not sure whether it is normal. |
|
Currently this pr only adds some properties in the xsp header, might wanna add all of them; though I can't say for sure that's why your account got banned |
|
any update on this |
|
Not from my end. @Tyrrrz will have to make a call for how to proceed This PR of mine seems incomplete in terms of x-super-properties as is right now |
|
I did build from your prime branch and still got banned the second time I tried. |
|
@copilot resolve the merge conflicts in this pull request |
|
How's the progress on this? I'm a bit too hesitant to export stuff while knowing that I could get even temporarily suspended, and I'm sure a lot of people who know that it's been an issue are in a similar boat. Would be great to see this fix patched in soon, if possible! ❤️ |
|
I think we'd have to implement others missing props, and use windows instead of linux in the user agent. These are the missing properties that can be hardcoded: [property: JsonPropertyName("browser")] string Browser = "Chrome",
[property: JsonPropertyName("device")] string Device = "",
[property: JsonPropertyName("system_locale")] string SystemLocale = "en-US",
[property: JsonPropertyName("os_version")] string OperatingSystemVersion = "10",
[property: JsonPropertyName("referrer")] string Referrer = "",
[property: JsonPropertyName("referring_domain")] string ReferringDomain = "",
[property: JsonPropertyName("referrer_current")] string CurrentReferrer = "",
[property: JsonPropertyName("referring_domain_current")] string CurrentReferringDomain = "",
[property: JsonPropertyName("search_engine_current")] string SearchEngineCurrent = "",
[property: JsonPropertyName("mp_keyword_current")] string MpKeywordCurrent = "",
[property: JsonPropertyName("release_channel")] string ReleaseChannel = "stable",
[property: JsonPropertyName("client_event_source")] string? ClientEventSource = null,
[property: JsonPropertyName("has_client_mods")] bool HasClientMods = false,And those cant be hardcoded [property: JsonPropertyName("browser_user_agent")] string BrowserUserAgent,
[property: JsonPropertyName("browser_version")] string BrowserVersion,
[property: JsonPropertyName("client_heartbeat_session_id")] Guid ClientHeartbeatSessionId, |
Possibly fixes #1497
Building off @wavedevgit 's engagement, and @dolfies 's knowledge; Credit where credit is due