discord-cdn.dart
Use Discord as a CDN.
Upload images to Discord and serve them using Discord blazing fast CDN.
How to use
Right now you can upload images using the Bot HTTP REST API, which is implemented in the BotDiscordClient
class. To use it in your app, it is as simple as:
final botToken = '<bot_token>';
final channelId = '<channel_id>';
final discordClient = withBotToken(botToken);
final uploadImageResult = await discordClient.uploadImage(
image: DiscordUploadableImage(
bytes: dart_logo_bytes,
format: 'jpeg',
name: 'my super cool image',
),
channelId: channelId,
);
Why use discord-cdn.dart?
The main use case that inspired the development of this package, is to provide developers (mostly indie) a way to store and retrieve for free and in a fast manner.
Side Effects
Powered by Dart null sound + dartz
monads, this package is free of null issues and side effects. This is to prevent the throw of any exception that may not be known and caught by developers, and to make sure that information is consistent by contract.
The uploadImage
returns an Either
monad that either returns the the URL of the image available on Discord CDN on the right hand, or ResponseError
instance on the left hand that is typed to several possible Discord API errors (see available errors here).
Bugs and Contributions
Found any bug (including typos) in the package? Do you have any suggestion or feature to include for future releases? Please create an issue via GitHub in order to track each contribution. Also, pull requests are very welcome!
Disclaimer
This is not an official library/SDK implemented by the Discord team, but rather a developer implementation that uses it.