test_tmdb 0.0.2-alpha.2

  • README.md
  • CHANGELOG.md
  • Installing
  • Versions
  • 65

tmdb #

A TheMoviedb.org (TMDB) library for Dart.

Features #

  • Access to all API methods
  • Support for both console (dart:io) and web (dart:html) applications
  • User authentication, either with a username and password (obtains new session ID) or with a previously obtained session ID
  • You need to provide your own API key

Documentation #

See the full documentation.

Usage #

First import the proper library for the platform.

If your code is running on the Dart VM (where you'd use dart:io) then:

import 'package:tmdb/io.dart';

If your code runs on the browser (where you'd use dart:html) then:

import 'package:tmdb/html.dart';

With the library imported you can just create a new instance (providing your API key) and access all of its methods.

For example, a simple console application to get the top rated movies would look like this:

// Import the proper library
import 'package:tmdb/io.dart';

main() async {
  // Create a new TMDBApi instance
  TMDBApi tmdb = new TMDBApi('YOUR_API_KEY_HERE');

  // Get the top rated movies
  Map topRated = await tmdb.movies.getTopRated();

  // Loop through the results and print the title, year, and rating
  topRated['results'].forEach((v) {
    var title = v['title'];
    var year = DateTime.parse(v['release_date']).year;
    var rating = v['vote_average'].toStringAsFixed(1);
    print("$title ($year) * $rating/10");
  });
}

Authentication #

If you already have a valid session ID for the user, you can just feed it to the library and start using any method that requires authentication:

// Create instance
TMDBApi tmdb = new TMDBApi('YOUR_API_KEY_HERE');

// Set the session ID
tmdb.authentication.sessionId = 'SESSION_ID_HERE';

// Get the user's information
var info = await tmdb.account.getInfo();

If you don't have a session ID for the user you want to authenticate you can easily obtain one using the login method.

// Create instance
TMDBApi tmdb = new TMDBApi('YOUR_API_KEY_HERE');

// Log in with a username and password
await tmdb.authentication.login('USERNAME_HERE', 'PASSWORD_HERE');

// The session ID is now stored in tmdb.authentication.sessionId
// so you can start using any API method.
// SAVE THE SESSION ID FOR FUTURE USE.

// Get the user's information
var info = await tmdb.account.getInfo();

IMPORTANT: You should only use the login method once for each user because the API will generate a new session ID every time you do so. Once you have obtained it you should save it somewhere safe and feed it to the library whenever you need to (which is usually right after calling new TMDBApi()).

Futures vs async/await #

The easiest way to call the API methods is using the async/await syntax provided by Dart, like on the examples above.

To use it you just need to add the async modifier to the function that will be calling the asynchronous methods from this library. Then, prefix the actual call with await.

printMovieInfo(id) async {
  var info = await tmdb.movies.getInfo(id);
  print(info);
}

Or even

printMovieInfo(id) async {
  print(await tmdb.movies.getInfo(id));
}

If for any reason you can't or don't want to use async/await, you can just use the Futures directly:

printMovieInfo(id) {
  tmdb.movies.getInfo(id).then((info) {
    print(info);
  });
}

Features and bugs #

Please file feature requests and bugs at the issue tracker.

Change Log #

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

Unreleased #

0.0.2-alpha.1 - 2015-12-18

Fixed #

  • CHANGELOG links.

Changed #

  • Bump version number. Again. Because I screwed up earlier.

0.0.1-alpha.3 - 2015-12-18

Changed #

  • Version format.

0.0.1-alpha2 - 2015-12-18

Fixed #

  • README formatting.

0.0.1-alpha1 - 2015-12-18 #

Added #

  • All API methods implemented but untested. Highly unstable.

Use this package as a library

1. Depend on it

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


dependencies:
  test_tmdb: ^0.0.2-alpha.2

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:test_tmdb/core.dart';
import 'package:test_tmdb/html.dart';
import 'package:test_tmdb/io.dart';
  
Version Uploaded Documentation Archive
0.0.2-alpha.2 Dec 15, 2018 Go to the documentation of test_tmdb 0.0.2-alpha.2 Download test_tmdb 0.0.2-alpha.2 archive
0.0.2-alpha.1 Dec 15, 2018 Go to the documentation of test_tmdb 0.0.2-alpha.1 Download test_tmdb 0.0.2-alpha.1 archive
Popularity:
Describes how popular the package is relative to other packages. [more]
43
Health:
Code health derived from static analysis. [more]
94
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
75
Overall:
Weighted score of the above. [more]
65
Learn more about scoring.

We analyzed this package on Jun 17, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.3.2
  • pana: 0.12.18

Platforms

Detected platforms: web

Platform components identified in package: html.

Health suggestions

Fix lib/src/groups/account.dart. (-1.99 points)

Analysis of lib/src/groups/account.dart reported 4 hints:

line 165 col 57: Use = to separate a named parameter from its default value.

line 178 col 54: Use = to separate a named parameter from its default value.

line 191 col 59: Use = to separate a named parameter from its default value.

line 204 col 56: Use = to separate a named parameter from its default value.

Fix lib/core.dart. (-1.49 points)

Analysis of lib/core.dart reported 3 hints:

line 75 col 21: Use = to separate a named parameter from its default value.

line 75 col 56: Use = to separate a named parameter from its default value.

line 164 col 40: Use = to separate a named parameter from its default value.

Fix lib/src/groups/authentication.dart. (-1 points)

Analysis of lib/src/groups/authentication.dart reported 2 hints:

line 19 col 3: Avoid return types on setters.

line 20 col 3: Avoid return types on setters.

Fix additional 5 files with analysis or formatting issues. (-2 points)

Additional issues in the following files:

  • lib/src/params.dart (2 hints)
  • lib/html.dart (1 hint)
  • lib/io.dart (1 hint)
  • lib/src/groups/genres.dart (Run dartfmt to format lib/src/groups/genres.dart.)
  • lib/src/groups/lists.dart (Run dartfmt to format lib/src/groups/lists.dart.)

Maintenance issues and suggestions

Support latest dependencies. (-10 points)

The version constraint in pubspec.yaml does not support the latest published versions for 1 dependency (1 direct: http).

Package is pre-v0.1 release. (-10 points)

While nothing is inherently wrong with versions of 0.0.*, it might mean that the author is still experimenting with the general direction of the API.

Package is pre-release. (-5 points)

Pre-release versions should be used with caution; their API can change in breaking ways.

Maintain an example.

None of the files in the package's example/ directory matches known example patterns.

Common filename patterns include main.dart, example.dart, and test_tmdb.dart. Packages with multiple examples should provide example/README.md.

For more information see the pub package layout conventions.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0 <3.0.0
http ^0.11.3+16 0.11.3+17 0.12.0+2
Transitive dependencies
async 2.2.0
charcode 1.1.2
collection 1.14.11
http_parser 3.1.3
meta 1.1.7
path 1.6.2
source_span 1.5.5
string_scanner 1.0.4
term_glyph 1.1.0
typed_data 1.1.6