gd-programming / gd.docs Goto Github PK
View Code? Open in Web Editor NEW๐ Documentation for Geometry Dash.
Home Page: https://docs.gd-programming.org/
License: MIT License
๐ Documentation for Geometry Dash.
Home Page: https://docs.gd-programming.org/
License: MIT License
s1: attempts - 8354
s7: randomSeed
s9: coins you got - 5819
I dont't know s2-s6 and s8
the "GJP" link on this page is broken:
https://docs.gdprogra.me/#/endpoints/deleteGJAccComment20
In testSong.md
doc file, there is a dumb mistake.
The title:
WARNING: THIS IS A GET REQUEST
The code:
requests.post(some_other_things)
See what I mean ?
Including:
the link to the inner level string on this page is the wrong url.
https://docs.gdprogra.me/#/resources/client/level
It leads to https://docs.gdprogra.me/#/level-components/inner-level-string
it should lead to https://docs.gdprogra.me/#/resources/client/level-components/inner-level-string
looks like the url is missing resources/client/
Take any .md file in the endpoints directory and run the snippet and it will result in a 403 Forbidden.
Why? Because: 1. the 'User-Agent' header should be empty and 2. the base endpoint url should start with the www subdomain
# currently
import requests
data = {
"secret": "Wmfd2893gb7",
"targetAccountID": 173831
}
req = requests.post('http://boomlings.com/database/getGJUserInfo20.php', data=data)
print(req.text)
# what it should be
import requests
data = {
"secret": "Wmfd2893gb7",
"targetAccountID": 173831
}
req = requests.post('http://www.boomlings.com/database/getGJUserInfo20.php', data=data, headers={"User-Agent": ""})
print(req.text)
notice the www subdomain and headers argument
not a pressing issue but it isn't so good if the docs' code snippets don't work
How to decode/encode gjp2?
Someone mentioned this in GDP, content for messages didn't specify xor step. Other endpoints are also probably missing key info.
Don't have time to look into it personally so making the issue just in case anyone wants to contribute
hi so this is something unrelated to my pull request that i found, light bg does NOT use the hsv v value to interpolate but it actually uses the sum of the r, g and b. i did find this in 1.9's code but 2.1 seems to behave identically from my testing.
almost-python pseudocode below for how it actually works, assuming rgb values are 0
-255
and hsv's sv values are 0
-100
:
def lightBG(background: RGB, player1: RGB):
hsv = background.toHSV()
hsv.s -= 20 # pretend this is clamped between 0 and 100
hsv.v += 20 # this too
lightBG = hsv.toRGB()
f = (background.r + background.g + background.b) / 150
if f < 1:
lightBG.r = lightBG.r * f + player1.r * (1 - f)
lightBG.g = lightBG.g * f + player1.g * (1 - f)
lightBG.b = lightBG.b * f + player1.b * (1 - f)
return rgb
i found the hsv offsets in 1.9's PlayLayer::getLightBGColor
and the actual interpolation was done in PlayLayer::updateVisibility
, no idea if they're in the same functions in 2.1 though
when you click on gjp on #/endpoints/uploadGJComment21 its takes you nowhere
on:
https://docs.gdprogra.me/#/resources/client/level-components/inner-level-string
if you scroll a bit down, if you click on the link for the attributes part for speed, gamemode, color id etc. it just commits a fucky wucky ๐๐๐๐
I was looking at the server response for a user, and I noticed that there doesn't seem to be a diamond count anywhere. Does the server return that somewhere else?
ugv_30 - clicked ok btn in TOSPopup
gv_0122 - menu music
gv_0125 - Music in Practice
gv_0109 - Detailed Info
gv_0135 - Hide Attempts
gv_0134 - Hide Attempts Practice
gv_0136 - Extra LDM
gv_0129 - Hide Portal Guide
gv_0130 - Show Orb Guide
So I've been messing around decompiled gd apk files and found out that some of things in .so files are not encoded and you can freely edit them. And my question is how to change from boomlings servers to my servers. Because when i change http://www.boomlings.com to my url and then compile it just crashes after start. thanks for anwser
page that doesn't exist: https://docs.gdprogra.me/#/topics/encryption/gjp
page that links to it: https://docs.gdprogra.me/#/endpoints/acceptGJFriendRequest20
It redirects to UploadFriendRequest20, which makes it say unavailable. Its easy to fix, just change it to redirect to uploadFriendRequest20
~ โฏโฏโฏ wget -U "" --post-data 'accountID=2795&type=1&secret=Wmfd2893gb7' https://www.boomlings.com/database/getAccountURL.php -O - -o /dev/null ; printf "\n"
http://www.robtopgames.net
Same thing with type 2.
Referenced from https://docs.gdprogra.me/#/endpoints/getAccountURL
restoreGJItems.php is associated with submitGJUserInfo.php, but there is no information about this file
i'm new to github so i don't know if this is the appropriate place to ask. how would i send a change username request without using the account management website?
On the uploadGJComment21 page I clicked the GJP thing to see details about that, but it took me to the 404 page for some reason.
There are some mistakes that need to be fixed.
Properly add endpoints and what they do to the documentation.
AES padding is incorrect. You can use the code in GDCrypto as a reference, iirc it's called "doPKCS7" and "removePKCS7".
After the end of every request from getGJLevels21.php, there seems to be this weird UUID thing. (f424a5e278a6971ea4af35b2324cd1ad8c5c8166)
Does anyone know what this is?
In master/docs/resources/client/level-components/level-object.md, Editor Layer 1 is listed as a bool when it is an integer.
submitGJUserInfo.php is a file that's used in the "restore" functionality before the current save system was implemented. You can't make the server process the data anymore, but it's still found in both the game's code and on the servers. As far as I know it's not documented anywhere. I've made a pull request #116 that adds documentation for it as well as fixing the GJP issue (which several previous issues have adressed)
I want to look how to make a request to updateGJDesc20.php but instead i receive an info about updateGJUserScore22.php
In the README file, there is still a link that redirects to the old link of GD Docs (gdprogra.me) that does not work anymore (it loads infinitely) and some users opens issues for that.
Just replace it to the new link: https://docs.gd-programming.org/ (the link is here as a note for others users)
This involves numerical values that by themselves are not self-explanatory, e.g. 1 representing the Ship, when interpreted as a gamemode, 4 representing the XL length of a level, etc.
A error that occurs when visiting the gamesave part of the site.
Error:
Uh oh, you did a fucky wucky
Wonder how you got here. Maybe an invalid link?
I'd suggest reporting about it to the team as best as you can.
I found in data folder in server database this level data and I have question how is it encoded? I'm asking it here because Discord link in documentation doesnt work. Code:
The website has been redirecting me to a scam website with this ww25 at the start, no https:// just that
Please change it to another link
Boomlings servers require to use www
, however in most examples, it's uses no www
Example:
(https://wyliemaster.github.io/gddocs/#/endpoints/levels/getGJLevelScoresPlat)
import requests
data = {
"accountID": 173831, # DevExit's account ID
"gjp": "********", # This would be DevExit's password encoded with GJP encryption
"levelID": 98170000,
"type": 1, # Leaving this out would only show friends. This shows global.
"secret": "Wmfd2893gb7"
}
req = requests.post("http://boomlings.com/database/getGJLevelScoresPlat.php", data=data)
print(req.text)
How it should be:
import requests
data = {
"accountID": 173831, # DevExit's account ID
"gjp": "********", # This would be DevExit's password encoded with GJP encryption
"levelID": 98170000,
"type": 1, # Leaving this out would only show friends. This shows global.
"secret": "Wmfd2893gb7"
}
req = requests.post("http://www.boomlings.com/database/getGJLevelScoresPlat.php", data=data)
print(req.text)
By doing a search-replace it could be easily fixed
(i'm not on my main computer, so I can't really try to do a pr)
Uh oh, you did a fucky wucky
Wonder how you got here. Maybe an invalid link?
I'd suggest reporting about it to the team as best as you can.
When i try to check the chk of level leaderboard with my GDPS...
This is my code.
//variables
$attempts = $s1 - 8354;
$jumps = $s2 - 3991;
$coins = $s9 - 5819;
$seconds = $s3 - 4085;
$played = empty($s6) ? 0 : 1;
//best differences
$bd = base64_decode($s6);
$bd = $XOR->cipher($bd, 41274);
//check chk
$chk = base64_decode($chk);
$chk = $XOR->cipher($chk, 39673);
$hash = $accountID . $levelID . $percent . $jumps . $attempts . $s4 . $bd . "1" . $coins . $s10 . $s7;
$hash = sha1($hash . "yPg6pUrtWn0J");
if ($hash !== $chk) return -1;
Clicking on the downloadGJMessage20 link leads to /endpoints/downloadGJMessageo20
instead of /endpoints/downloadGJMessage20
when I visit http://docs.gdprogra.me/#/ I see this:
Exactly! It doesn't have all the parameters, the response is not described and the example is literally for another endpoint.
(hope it gets fixed in #114)
There are many pages on the site that cannot be found, the only way to access them is to use the direct URL or read the markdown file in this repo... Would be nice to access them using the main page.
notably noStar
but there could be more
for some reason, when I tried to follow https://docs.gdprogra.me/#/endpoints/uploadGJLevel21, this part gets me.
generate_chk(key="41274", values=[generate_upload_seed(levelString)], salt="xI25fpAapCQg")
generate_upload_seed() is not declared in previous articles or I'm just missing a point?
Hi, I tried a code to upload an account comment on my account with a Python programm.
I did the following :
import requests
data = {
"accountID": 14819640,
"gjp": "my encrypted gjp here",
"comment": "VGhpcyBjb21tZW50IHdhcyBzZW5kIHdpdGggYSBQeXRob24gcHJvZ3JhbW0gYnkgSEdTdHlsZSAh",
"secret": "Wmfd2893gb7"
}
r = requests.post('http://boomlings.com/database/uploadGJAccComment20.php', data=data)
print(r.text)
Note that the comment is URL-Safe Base64 Encoded.
The account ID is my Geometry Dash account ID (I fond it on https://gdbrowser.com/u/HGStyle)
But here is the response on an online HTML code viewer : https://codebeautify.org/htmlviewer/y2245a045
CloudFlare is blocking my request. But why ?
I allready tried using the package cloudscraper
because this package bypasses CloudFlare verification, but it does not work.
I tried with a proxy too, and with custom User-Agent in headers, but it still does not work.
Can someone help me please ?
Thanks in advance !
request | response |
---|---|
|
|
request | response |
---|---|
|
|
request | response |
---|---|
|
|
request | response |
---|---|
|
|
https://github.com/gd-programming/gd.docs/blob/docs/docs/encoding/checks.md#level-leaderboard table is incorrect:
gd.docs/docs/encoding/checks.md
Lines 131 to 146 in fd540a4
here is my theory what inputs to chk sha1 hash are: https://docs.google.com/spreadsheets/d/1waEPGS9qCFvSQxfA4fysIHf9YrOm9KxHycszvJcL3vs/edit (blue background cells) but that's just a theory a game theory!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.