uploadGJLevelList.php
Uploads a created list to the servers.
Parameters
| Parameter | Explanation |
|---|---|
gameVersion * | A number representing the game's version. The current value is 22 for 2.2 |
accountID * | The player's account ID (not to be confused with user ID). Used for authorization |
gjp2 * | The player's account password, encoded with GJP2. Used for authorization |
listID * | The ID of the list if updating to a newer version, otherwise 0 |
listName * | The name of the list, in plain text |
listDesc * | The description of the list, in URL-safe base64 |
listLevels * | All level IDs included in the list, separated by , |
difficulty * | The list's difficulty face. -1 is N/A, and then it's 0-10 where 0 is Auto and 10 is Extreme Demon |
listVersion * | Always 0 |
original * | The ID of the original list if the list was copied, otherwise 0 |
unlisted * | Set to 2 if the list should be unlisted, and to 1 if the list should be unlisted and only viewable by friends |
seed * | See the upload list chk |
seed2 * | 5 randomly generated characters from [A-Za-z0-9] |
secret * | Common Secret: Wmfd2893gb7 |
binaryVersion a | A number representing the game's small version. The current value is 51 for 2.209 on PC and mobile |
udid a | The player's UDID (Unique Device Identifier). Used to identify unregistered users |
uuid a | The player's user ID. See the previous format here |
dvs a | A number representing the OS platform the player is using. Corresponds to the Cocos2d CC_TARGET_PLATFORM macro: 1 for iOS, 2 for Android, 3 for Windows, 8 for macOS |
Response
Returns the ID of the uploaded list, or -1 if the request was rejected. Oddly, this endpoint returns a wide variety of error codes for errors that traditionally return a generic error code, but the game displays the generic error message for all of them (while also displaying the error code if it is not -1).
Example
Python
py
import requests
import random
from string import ascii_letters, digits # so we don't have to type [A-Za-z0-9] by hand
possible_letters = ascii_letters + digits
seed = ("").join(random.choices(possible_letters, k=5))
data = {
"gameVersion": 22,
"accountID": 173831, # This is DevExit's account ID
"gjp2": "*******", # This would be DevExit's password encoded with GJP2 encryption
"listLevels": "128,132,133,134,136", # These are the IDs of the levels in the list
"listID": 0,
"listName": "First Levels", # This is the list name
"listDesc": "QSB0ZXN0IGxpc3QgZm9yIHRoZSBHRCBEb2NzIQ==", # "A test list for the GD Docs!"
"listVersion": 0,
"original": 0,
"difficulty": 3, # This indicates a Hard difficulty face
"unlisted": 2, # This list is unlisted, but does exist!
"levelString": levelString, # The level string for the level described above
"seed": seed,
"seed2": '', # TODO,
"secret": "Wmfd2893gb7"
}
headers = {
"User-Agent": ""
}
url = "https://www.boomlings.com/database/uploadGJLevelList.php"
req = requests.post(url=url, data=data, headers=headers)
print(req.text)Response
plain
297650