Skip to main content

A simple and easy to use, fully asynchronous wrapper for the dsc.gg API.

Project description

dsc.py Badge Badge 2

A simple and easy to use, fully asynchronous wrapper for the dsc.gg API.

Installation

pip install dsc.py

Usage

Below you can find example usage of all of this library's methods and client initialization.
For reference regarding objects returned by the library, check this out

Initialize the client

import dsc

client = dsc.Client(key='YOUR_API_KEY')

Get a user

user = await client.get_user(USER_ID)

print(f"This user joined dsc.gg on {user.created_at}")

Get a link

link = await client.get_link('link')  # Can be either a slug or a full URL

print(f"This link owner's ID is: {link.owner_id}, and it leads to {link.redirect}")

Get an app

app = await client.get_app(APP_ID)

print(f"This app's owner's ID is {app.owner_id} and it was created at {app.created_at}")

Get top links

links = await client.get_top_links()

print(links[1].id)

Get a user's links (whitelist only)

links = await client.get_user_links(USER_ID)

print(links[0].redirect)

Get a user's apps (whitelist only)

apps = await client.get_user_apps(USER_ID)

print(any([app.verified for app in apps]))  # check if the user has any verified apps

Search (whitelist only)

links = await client.search('search_query', limit=50)  # optional limit

print(len(links))

Create a link

You can get fancy with this one, and create an embed to use with the link, see below. Please note that the color will not work, when creating, only when updating a link.

Create an embed
embed = dsc.Embed(
    color=dsc.Color.red(),
    title='Embed title',
    image='image url',
    description='Embed description'
)

Anything other than the slug and the redirect is optional! constructor.

res = await client.create_link('link slug', 'redirect', embed=embed)

if res.status == 200:
    print('Link created!')
else:
    print('An error occurred.')

Update a link

Similar to creating, except the link slug has to be an existing link, there's no need to pass type in.
Not passing some arguments into the embed will result in updating only these fields and leaving other ones as they are.

updated_embed = dsc.Embed(color=dsc.Color.red())
await client.update_link('link slug', password='youshallnotpass', unlisted=True, embed=updated_embed)

Delete a link

await client.delete_link('link slug')

Objects

dsc.py includes 4 objects - User, Link, Embed and Color. Every attribute of the object will be listed, datetime values are in UTC.


App

Attributes
  • id: int
  • owner_id: int
  • verified: bool
  • created_at: datetime
  • key: Optional[str] (present only if you own the app)
Methods
  • to_dict() - Return the object in the form of a dictionary

User

Attributes
  • id: int
  • premium: bool
  • verified: bool
  • joined_at: datetime
  • staff: bool
Methods
  • to_dict() - Return the object in the form of a dictionary

Link

Attributes
  • id: str
  • redirect: str
  • owner_id: int
  • embed: dsc.Embed (See the object below)
  • editors: List[int]
  • created_at: datetime
  • type: str ('bot', 'server', 'template' or 'link')
  • unlisted: str
  • disabled: bool
  • bumped_at: datetime
  • domain: str
Methods
  • to_dict() - Return the object in the form of a dictionary

Embed

Returned in responses or user created, embeds are a way to make your links stand out.

Attributes
  • color: dsc.Color (See the object below)
  • title: str
  • description: str
  • image str (image URL)
Methods
  • to_dict() - Return the object in the form of a dictionary
Class methods
  • from_dict(data: dict) - Return an Embed object initialized with values from the dictionary

Color

This is extremely similar to discord.py's Color, though allows passing strings as well.
All discord.py built-in color class-methods are here too, ex. dsc.Color.red()

Attributes
  • value: int
Methods
  • to_dict() - Return the object in the form of a dictionary
Class methods

Contributing

This package is opensource so anyone with adequate python experience can contribute to this project!

Reporting Issues

If you find any error/bug/mistake with the package or in the code feel free to create an issue and report it here.

Fix/Edit Content

If you want to contribute to this package, fork the repository, make your changes and then simply create a Pull Request!

Contact

If you want to contact me:
Mail - wulf.developer@gmail.com
Discord - wulf#9632

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsc.py-1.1.3.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

dsc.py-1.1.3-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file dsc.py-1.1.3.tar.gz.

File metadata

  • Download URL: dsc.py-1.1.3.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for dsc.py-1.1.3.tar.gz
Algorithm Hash digest
SHA256 50994435cd31416f5fe8b5ec6714b6299c450b72ec9bb62761fe7952cc293642
MD5 4b551c75a9b3e15969c0bcf70b421432
BLAKE2b-256 37026e4cc6fe3999f1db26d35fc7121386692421d40a7ed693225f669b990a60

See more details on using hashes here.

File details

Details for the file dsc.py-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: dsc.py-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for dsc.py-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dc0e12fb10f06d956d94a6bb660309221c4a1922d5d6eee4a758ff0b82115b20
MD5 5d3bf540a1c047fbe0d6a9a58a9f264e
BLAKE2b-256 16a77b73b836078d8b0e4c2d2cf04180d9daf50a4e9dd2d7b708d432f47b4e13

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page