All Projects → miguelhasse → Net.TMDb

miguelhasse / Net.TMDb

Licence: MIT license
Client library for accessing the TMDb API in .NET

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to Net.TMDb

flutter getx the moviedb
The Movie DB App with Flutter GetX State Management
Stars: ✭ 79 (+243.48%)
Mutual labels:  themoviedb
Notflix
📱Netflix like application using SwiftUI and Combine
Stars: ✭ 76 (+230.43%)
Mutual labels:  themoviedb
TVToday
iOS TV Shows app with TMDb Api. RxSwift, MVVM, Clean Architecture. Tuist + Swift Package Manager
Stars: ✭ 27 (+17.39%)
Mutual labels:  themoviedb
laravel-tmdb
Interact with TMDB data in your Laravel application.
Stars: ✭ 25 (+8.7%)
Mutual labels:  themoviedb
PopMovies
Aplicativo em Android para organização dos seus filmes favoritos.
Stars: ✭ 41 (+78.26%)
Mutual labels:  themoviedb
WatchSomething
Project that uses an API to list movies and tv shows that are latest, popular, top rated & on air.
Stars: ✭ 11 (-52.17%)
Mutual labels:  themoviedb
tmdb bot
IMDB Telegram bot clone using TMDB to get info about movies and TV shows.
Stars: ✭ 22 (-4.35%)
Mutual labels:  themoviedb
popmovies-web
Starter project using nodejs expressjs and angular 2
Stars: ✭ 17 (-26.09%)
Mutual labels:  themoviedb

The Movie Database Client for .NET

NuGet Status

Implements asynchronous operations and includes support for portable class libraries.

Available on NuGet Gallery

To install the Hasseware.TheMovieDB package, run the following command in the Package Manager Console

PM> Install-Package Hasseware.TheMovieDB

Usage samples

static async Task Sample(CancellationToken cancellationToken)
{
    using (var client = new ServiceClient("<ApiKey>"))
	{
		for (int i = 1, count = 1000; i <= count; i++)
		{
		    var movies = await client.Movies.GetTopRatedAsync(null, i, cancellationToken);
			count = movies.PageCount; // keep track of the actual page count
		
			foreach (Movie m in movies.Results)
			{
				var movie = await client.Movies.GetAsync(m.Id, null, true, cancellationToken);
		
				var personIds = movie.Credits.Cast.Select(s => s.Id)
					.Union(movie.Credits.Crew.Select(s => s.Id));
		
				foreach (var id in personIds)
				{
					var person = await client.People.GetAsync(id, true, cancellationToken);
		
					foreach (var img in person.Images.Results)
					{
						string filepath = Path.Combine("People", img.FilePath.TrimStart('/'));
						await DownloadImage(img.FilePath, filepath, cancellationToken);
					}
				}
			}
		}
	}
}

static async Task DownloadImage(string filename, string localpath, CancellationToken cancellationToken)
{
    if (!File.Exists(localpath))
    {
        string folder = Path.GetDirectoryName(localpath);
        Directory.CreateDirectory(folder);

        var storage = new StorageClient();
        using (var fileStream = new FileStream(localpath, FileMode.Create, 
			FileAccess.Write, FileShare.None, short.MaxValue, true))
        {
            try { await storage.DownloadAsync(filename, fileStream, cancellationToken); }
            catch (Exception ex) { System.Diagnostics.Trace.TraceError(ex.ToString()); }
        }
    }
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].