/// <summary> /// Sends Scrobble data to Trakt /// </summary> /// <param name="scrobbleData">The Data to send</param> /// <param name="status">The mode to send it as</param> /// <returns>The response from Trakt</returns> public static TraktResponse ScrobbleMovie(TraktMovieScrobble scrobbleData, TraktScrobbleState status) { //If we are cancelling a scrobble we don't need data if (status != TraktScrobbleState.cancelwatching) { // check that we have everything we need // server can accept title if movie id is not supplied if (scrobbleData == null) { TraktResponse error = new TraktResponse { Error = "Not enough information to send to server", Status = "failure" }; return error; } } // serialize Scrobble object to JSON and send to server string response = Transmit(string.Format(TraktConfig.URL.ScrobbleMovie, status.ToString()), scrobbleData.ToJSON()); // return success or failure return response.FromJSON<TraktResponse>(); }
private bool CallMovieAPI(WebMovieBasic movie, TraktScrobbleState state, int progress) { TraktMovieScrobble data = new TraktMovieScrobble() { MediaCenter = TraktConfig.MediaCenter, MediaCenterBuildDate = TraktConfig.MediaCenterDate, MediaCenterVersion = TraktConfig.MediaCenterVersion, PluginVersion = TraktConfig.PluginVersion, Password = GetPasswordHash(), UserName = username, Duration = movie.Runtime.ToString(), IMDBID = movie.IMDBId, Progress = progress.ToString(), Title = movie.Title, TMDBID = movie.TMDBId, Year = movie.Year.ToString() }; TraktResponse response = TraktAPI.ScrobbleMovie(data, state); if (response.Status != "success") { Log.Warn("Trakt: failed to update watch status of movie '{0}' ({1}): {2}", movie.Title, movie.Id, response.Error); return false; } else { return true; } }