gelbooru

Last updated:

0 purchases

gelbooru Image
gelbooru Images
Add to Cart

Description:

gelbooru

An Gelboory API client written in Dart and powered by the http package !
Compatible with all Dart supported platforms, this package allows you to interact with the Gelbooru API in a more Dart idiomatic way.
Features #

Implements all the #5 endpoints of the Gelbooru API
No scrapping, all requests are made to the API properly, gently and respecting the API rate limits.
Use Dart's native http package for making requests allowing for using more advanced implementation on the fly.

Getting started #
Run the following command:
# You may also add the http and xml packages for their respective exceptions
$ dart pub add gelbooru
copied to clipboard
Usage #
import 'dart:io';

import 'package:gelbooru/gelbooru.dart';

/// Get last 10 posts from Gelbooru
void main() async {
final client = GelbooruClient(baseUrl: 'https://gelbooru.com');

/// You can also you a custom http based client
/// like the cupertino_http package
/// final client = GelbooruClient(baseUrl: 'https://gelbooru.com', httpClient: CupertinoClient.fromSessionConfiguration(config));

/// The [PostResponsePage] is a iterable of [Post]
/// with also the metadata of the request
/// such as the [offset], [limit] and [count]
final PostResponsePage posts = await client.getPosts(
limit: 10,
page: 1,
tags: 'rating:safe',
);

/// [PostResponsePage] is iterable so it can use all the method from [UnmodifiableListView]
if(posts.isEmpty) {
print('No posts found');
return;
}

for(final Post post in posts) {
print('Post id: ${post.id} @ Tags : ${post.tags.join(', ')} @ Link : ${post.fileUrl}');
}


/// Same as above for the tags, comments, and users
/// The [TagResponsePage], [CommentResponsePage] and [UserResponsePage] are iterable of [Tag], [Comment] and [User]

final TagResponsePage tags = await client.getTags(
limit: 10,
page: 1,
order: TagOrder.count,
orderBy: TagOrderBy.desc,
);

final CommentResponsePage comments = await client.getComments(
limit: 10,
page: 1,
);

final UserResponsePage users = await client.getUsers(
limit: 10,
page: 1,
);

exit(0);
}

copied to clipboard
Quirks and sparks #

The GelbooruClient is a stateless object, you can use it as a singleton or create a new instance for each request.
There's no check to see if the API is up or not, if the API is down, the client will throw a ClientException from the http package.

No AI project / AI free Project #
Use the project or any parts for any commercial (meaning generating revenue) purposes WITHOUT written authorization from the project owner
See the LICENSE file for more details.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.