A library that makes sending requests to the Geometry Dash servers and reading the responses easier. Based on dashlib by https://github.com/itzmetanjim
Project description
gmdlib
A Python library that makes sending requests to the Geometry Dash servers and reading the responses easier. Special thanks to WylieMaster and everybody else contributed to the GDDocs as it was the only source of information for the endpoints.
Library Documentation
Implemented features
- Level downloading.
- Level uploading.
- Level searching.
-
GDLevelclass (because the kind of level objects the server returns are unreadable) - User info fetching (using account ID).
- User class
GDUser - Commenting
- Posting
- Deleting comments
- Deleting posts
- User comment history fetching
- User post fetching
- Level comment fetching
- Liking/disliking
- Getting users by Player ID
- Leaderboard fetching
- Icon kit object
Features to implement
- Level Leaderboard fetching
- Icon image generation
How to use
Installing
Use the following command to install this library-
python -m pip install gmdlib
Level Downloading
Use the downloadLevel() function to download levels. Example code-
from dashlib import *
retray=downloadLevel(6508283) #1.5 seconds
print(retray.levelName) #ReTraY
print(retray.levelID) #6508283
print(retray.password) #1532211
print(retray.stars) #2
Alternatively, use fetchLevel() or fetchLevels as these are faster, but the level string (the data for the level),password,upload and update date, and the low detail mode status is not available.
from gmdlib import *
retray=fetchLevel(6508283) #0.5 seconds
some_levels=fetchLevels([128,6508283,4454123]) #still 0.5s as this is in a single request.
print(retray.levelName) #ReTraY
print(some_levels[0].levelName,some_levels[1].levelName,some_levels[2].levelName) #1st level, ReTraY, Sonar
Level Searching
Use the searchForLevels() function to search for levels. Example code-
res=searchForLevels(type=TYPE_SEARCH,page=0,query="bloodbath",difficultyFilter=FILTER_DEMON,demonFilter=DEMONFILTER_EXTREME)
print(res[0].levelName) #Bloodbath
print(res[0].levelID) #res[0].levelID
Parameters
type: Use TYPE_SEARCH,TYPE_MOSTDOWNLOAD,TYPE_MOSTLIKE,etc constants to set the type of the search,
page: The page number.
query: For TYPE_SEARCH, this is the search query,
For TYPE_USERSLEVELS, this is the user ID of the user's levels to search,
For TYPE_LISTOFID, this is a comma seperated list of level IDs
difficultyFilter: Use FILTER_NA and FILTER_EASY to FILTER_DEMON or None(default) to filter the difficulty
demonFilter: If difficultyFilter is FILTER_DEMON, then use DEMONFILTER_EASY,DEMONFILTER_MEDIUM,...,DEMONFILTER_EXTREME to filter which kind of demon to search, or use None(default).
length: Use LENGTH_TINY to LENGTH_XL and LENGTH_PLAT to filter by level length, or use None (default).
uncompleted,completed,featured,original,twoPlayer,coins,epic,legendary,mythic,noStar,star:
If any of these are True, filters by levels that have the respective property. If False, does not apply that filter.
(so if completed=False it will show BOTH the levels that are completed and those that are not.)
completedLevelIDs: If using uncompleted or completed=True, this list specifies which level IDs are completed. Otherwise, it does not matter.
followedUsers: If type=TYPE_FOLLOWED, this is a list of user IDs that are followed.\
User info fetching
You can get user info using the getUserInfo() function. Example-\
from gmdlib import *
user=getUserInfo(14134) #AeonAir's account ID.
print(user.username) #AeonAir
print(user.diamonds) #45396 (however many diamonds he has)
print(user.secretCoins) #164
print(user.stars) #40840
print(user.moons) #456
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gmdlib-1-py3-none-any.whl.
File metadata
- Download URL: gmdlib-1-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c757a34de071efdd7736c0596ec55feee14f06cec79eb7f6990634b983b8d2a1
|
|
| MD5 |
4ad734cd875dd484c18b67c60cc20815
|
|
| BLAKE2b-256 |
e84c647b453444a9ea19989e4a34efbdd6e249cac10e39e0ea5418b139427972
|