tenor 1.0.9 copy "tenor: ^1.0.9" to clipboard
tenor: ^1.0.9 copied to clipboard

Fetch, Search Tenor Gifs on dart client and server + on Flutter. Request for popular suggestions or categories amoung users around the world.

Tenor #

Pub Package License: MIT Issue Forks Stars

Fetch, Search GIF more easily and customised manner from Tenor #

Table of Contents #

Lets Get Started #

1. Depend on it #

Add this to your package's pubspec.yaml file:

dependencies:
  tenor:

2. Install it #

You can install packages from the command line:

with pub:

$  pub get

with Flutter:

$  flutter packages get

3. Import it #

Now in your Dart code, you can use:

import 'package:tenor/tenor.dart';

Usage #

Initialize Tenor #

Initialize Tenor library

Tenor tenor = Tenor(apiKey: 'ApiKey', language: TenorLanguage.English);

Select the Language Codes #

TenorLanguage provides codes for different ISO 639-1 language code

var englishCode = TenorLanguage.English;

Returns response containing a list of the current global trending GIFs. The trending stream is updated regularly throughout the day.

Important: limit: 1 <= limit <= 50

// Future<TenorResponse?> requestTrendingGIF({
//   int limit = 20,
//   ContentFilter contentFilter = ContentFilter.off,
//   GifSize size = GifSize.all,
//   MediaFilter mediaFilter = MediaFilter.minimal,
// })

Tenor tenor = Tenor(apiKey: 'Tenor Api');

// fetch trending Gif
TenorResponse? res = await tenor.requestTrendingGIF(limit: 5);
res?.results.forEach((TenorResult tenorResult) {
  var title = tenorResult.title;
  var media = tenorResult.media;
  print('$title: gif : ${media?.gif?.previewUrl?.toString()}');
});

Search GIF #

Returns response containing a list of the searched Gif from Tenor.

Important: limit: 1 <= limit <= 50

// Future<TenorResponse?> searchGIF(
//   String search, {
//   int limit = 20,
//   ContentFilter contentFilter = ContentFilter.off,
//   GifSize size = GifSize.all,
//   MediaFilter mediaFilter = MediaFilter.minimal,
// })

Tenor tenor = Tenor(apiKey: 'Tenor Api');

// search Gif
TenorResponse? res = await tenor.searchGIF('universe', limit: 5);
res?.results.forEach((TenorResult tenorResult) {
  var title = tenorResult.title;
  var media = tenorResult.media;
  print('$title: gif : ${media?.gif?.previewUrl?.toString()}');
});

Fetch Random GIF #

Get a randomized list of GIFs for a given search term. This differs from the search function which returns a rank ordered list of GIFs for a given search term.

Important: limit: 1 <= limit <= 50

// Future<TenorResponse?> randomGIF(
//   String search, {
//   int limit = 20,
//   ContentFilter contentFilter = ContentFilter.off,
//   GifSize size = GifSize.all,
//   MediaFilter mediaFilter = MediaFilter.minimal,
// })

Tenor tenor = Tenor(apiKey: 'Tenor Api');

// random Gif
TenorResponse? res = await tenor.randomGIF('universe', limit: 5);
res?.results.forEach((TenorResult tenorResult) {
  var title = tenorResult.title;
  var media = tenorResult.media;
  print('$title: gif : ${media?.gif?.previewUrl?.toString()}');
});

Search Suggestions #

Search suggestions helps a user narrow their search or discover related search terms to find a more precise GIF. Results are returned in order of what is most likely to drive a share for a given term, based on historic user search and share behavior.

Important: limit: 1 <= limit <= 50

// Future<List<String>> searchSuggestions(
//   String search, {
//   int limit = 20,
// })

Tenor tenor = Tenor(apiKey: 'Tenor Api');

// suggestions
List<String> suggestions = await tenor.searchSuggestions('universe', limit: 5);

Returns response containing a list of the current trending search terms. The list is updated Hourly by Tenor’s AI.

Important: limit: 1 <= limit <= 50

// Future<List<String>> trendingSearch(
//   int limit = 20,
// })

Tenor tenor = Tenor(apiKey: 'Tenor Api');

// trending search results
List<String> suggestions = await tenor.trendingSearch(limit: 5);

Auto complete #

Returns response containing a list of completed search terms given a partial search term. The list is sorted by Tenor’s AI and the number of results will decrease as Tenor’s AI becomes more certain.

Important: limit: 1 <= limit <= 50

// Future<List<String>> autoComplete(
//   String search, {
//   int limit = 20,
// })

Tenor tenor = Tenor(apiKey: 'Tenor Api');

// auto complete results
List<String> autoCompleted = await tenor.autoComplete('un', limit: 5);

Fetching Categories #

Requests Categories from tenor

// Future<List<TenorCategories?>> requestCategories({
//   ContentFilter contentFilter = ContentFilter.off,
//   CategoryType categoryType = CategoryType.featured,
// })

Tenor tenor = Tenor(apiKey: 'Tenor Api');

// list of categories
List<TenorCategories?> categories = await tenor.requestCategories();
Donate

Fetching Options #

key description
limit eg. limit the number of GIF to be fetched. limit can vary from 1 to 50
contentFilter (values: off, low, medium, high) specify the content safety filter level. eg. contentFilter: ContentFilter.low
mediaFilter (values: basic, minimal) Reduce the Number of GIF formats returned in response. minimal- (tinygif, gif, and mp4). basic- (nanomp4, tinygif, tinymp4, gif, mp4, and nanogif) eg. mediaFilter: MediaFilter.minimal
size GIFs with aspect ratios that fit with in the selected range. values: (all, wide, standard), all - no constraints, wide - 0.42 <= aspect ratio <= 2.36, standard - .56 <= aspect ratio <= 1.78

Fetch Next Set of GIF Response #

fetchNext() is used to get next set of response for the current query

// Future<TenorResponse?> fetchNext({int limit = 20});

// here the fetchNext function is used to call next set of GIF which is sequenced after current response

TenorResponse? firstSetResponse = await tenor. /*.... Functions used to get TenorResponse? ....*/

TenorResponse? nextResult = await firstSetResponse?.fetchNext();

nextResult?.results.forEach((tenorResult) {
  var title = tenorResult.title;
  var media = tenorResult.media;
  print('$title: gif : ${media?.gif?.previewUrl?.toString()}');
});

Fetching Next Options #

key description
limit eg. limit the number of GIF to be fetched. limit can vary from 1 to 50

Donate #

What's next ? 🤔 #

  • We are thinking what we should give next after giving all these features. ( Your donation would help me to collect money to buy Mac M1 for faster work. )
  • If you have any new feature request then go ahead and ping me, I'll integrate it.
16
likes
130
pub points
72%
popularity

Publisher

verified publisherjustkawal.dev

Fetch, Search Tenor Gifs on dart client and server + on Flutter. Request for popular suggestions or categories amoung users around the world.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

collection, equatable, universal_io

More

Packages that depend on tenor