Exemplo n.º 1
0
        private bool CallFollwitMovie(WebMovieDetailed movie, FollwitWatchStatus state)
        {
            try
            {
                // create movie
                if (movie.ExternalId.Count(x => x.Site == "IMDB") == 0)
                {
                    Log.Info("Follwit: IMDB id of movie {0} unknown, not sending", movie.Title);
                    return(false);
                }

                // and send it
                var fm = new FollwitMovie()
                {
                    Username = Configuration["username"],
                    Password = Configuration["passwordHash"],
                    IMDBId   = movie.ExternalId.First(x => x.Site == "IMDB").Id
                };

                var ret = FollwitAPI.UpdateMovieState(fm, state);
                if (ret.Response != "success")
                {
                    Log.Warn("Follwit: failed to update watch status of movie '{0}' ({1})", movie.Title, movie.Id);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Log.Warn("Follwit: failed to update movie watch status", ex);
                return(false);
            }
            return(true);
        }
Exemplo n.º 2
0
        internal static WebMovieDetailed MovieDetailed(MediaItem item)
        {
            WebMovieBasic webMovieBasic = MovieBasic(item);

            MediaItemAspect movieAspect = MediaItemAspectExtensions.GetAspect(item, (MediaItemAspectMetadata)MovieAspect.Metadata);
            MediaItemAspect videoAspect = MediaItemAspectExtensions.GetAspect(item, (MediaItemAspectMetadata)VideoAspect.Metadata);
            IList <MultipleMediaItemAspect> audioAspects;
            List <string> languages = new List <string>();

            if (MediaItemAspect.TryGetAspects(item.Aspects, VideoAudioStreamAspect.Metadata, out audioAspects))
            {
                foreach (MultipleMediaItemAspect audioAspect in audioAspects)
                {
                    string language = audioAspect.GetAttributeValue <string>(VideoAudioStreamAspect.ATTR_AUDIOLANGUAGE);
                    if (!string.IsNullOrEmpty(language) && !languages.Contains(language))
                    {
                        languages.Add(language);
                    }
                }
            }

            WebMovieDetailed webMovieDetailed = new WebMovieDetailed
            {
                IsProtected = webMovieBasic.IsProtected,
                Type        = webMovieBasic.Type,
                Watched     = webMovieBasic.Watched,
                Runtime     = webMovieBasic.Runtime,
                DateAdded   = webMovieBasic.DateAdded,
                Id          = webMovieBasic.Id,
                PID         = webMovieBasic.PID,
                Title       = webMovieBasic.Title,
                ExternalId  = webMovieBasic.ExternalId,
                Rating      = webMovieBasic.Rating,
                Year        = webMovieBasic.Year,
                Actors      = webMovieBasic.Actors,
                Genres      = webMovieBasic.Genres,
                Path        = webMovieBasic.Path,
                Artwork     = webMovieBasic.Artwork,
                Tagline     = movieAspect.GetAttributeValue <string>(MovieAspect.ATTR_TAGLINE) ?? string.Empty,
                Summary     = videoAspect.GetAttributeValue <string>(VideoAspect.ATTR_STORYPLOT) ?? string.Empty,
                Language    = string.Join(", ", languages.ToArray())
            };

            IEnumerable <string> aspectWriters = videoAspect.GetCollectionAttribute <string>(VideoAspect.ATTR_WRITERS);

            if (aspectWriters != null)
            {
                webMovieDetailed.Writers = aspectWriters.Distinct().ToList();
            }

            IEnumerable <string> aspectDirectors = videoAspect.GetCollectionAttribute <string>(VideoAspect.ATTR_DIRECTORS);

            if (aspectDirectors != null)
            {
                webMovieDetailed.Directors = aspectDirectors.Distinct().ToList();
            }

            return(webMovieDetailed);
        }
Exemplo n.º 3
0
        private void cmdInitMovie_Click(object sender, EventArgs e)
        {
            mIdentifier = "Test_" + new Random().Next(0, 1000000).ToString();
            WebMovieDetailed movie = mMovies[cbMovies.SelectedIndex];

            mName = movie.Title;
            Log("Init Stream with movie " + movie.Title);
            bool success = mWebStreamClient.InitStream(WebMediaType.Movie, movieProvider, movie.Id.ToString(), 0, CLIENT_NAME, mIdentifier, null);

            Log("Success = " + success);
            LoadMediaInfo(mWebStreamClient.GetMediaInfo(WebMediaType.Movie, movieProvider, movie.Id.ToString(), 0));
        }
Exemplo n.º 4
0
        private WebMovieDetailed NodeToMovieDetailed(XElement item)
        {
            WebMovieDetailed movie = NodeToMovie <WebMovieDetailed>(item);

            if (movie == null)
            {
                return(null);
            }

            if (item.Attribute("Description") != null)
            {
                movie.Summary = item.Attribute("Description").Value;
            }

            // director
            if (item.Attribute("Director") != null)
            {
                movie.Directors.Add(item.Attribute("Director").Value);
            }

            // tagline
            if (item.Element("CustomFields") != null && item.Element("CustomFields").Attribute("TagLine") != null)
            {
                movie.Tagline = item.Element("CustomFields").Attribute("TagLine").Value.Trim();
            }

            // writers
            if (item.Element("CustomFields") != null && item.Element("CustomFields").Attribute("Writer") != null)
            {
                // I've no clue what the things in parentheses mean here, but let's remove them
                string writer = item.Element("CustomFields").Attribute("Writer").Value;
                movie.Writers = item.Element("CustomFields")
                                .Attribute("Writer").Value
                                .Split(',', '|')
                                .Select(x => stripActorName.Replace(x, "$1").Trim())
                                .ToList();
            }

            return(movie);
        }
Exemplo n.º 5
0
 public bool CancelWatchingMovie(WebMovieDetailed movie)
 {
     return(CallFollwitMovie(movie, FollwitWatchStatus.CancelWatching));
 }
Exemplo n.º 6
0
 public bool FinishMovie(WebMovieDetailed movie)
 {
     return(CallFollwitMovie(movie, FollwitWatchStatus.Watched));
 }
Exemplo n.º 7
0
 public bool WatchingMovie(WebMovieDetailed movie, int progress)
 {
     // Follw.it doesn't require to send a status each X minutes or something
     return(true);
 }
Exemplo n.º 8
0
 public bool CancelWatchingMovie(WebMovieDetailed movie)
 {
     return(CallMovieAPI(movie, TraktWatchStatus.CancelWatching, null));
 }
Exemplo n.º 9
0
 public bool WatchingMovie(WebMovieDetailed movie, int progress)
 {
     return(CallMovieAPI(movie, TraktWatchStatus.Watching, progress));
 }
Exemplo n.º 10
0
 public bool StartWatchingMovie(WebMovieDetailed movie)
 {
     return(CallMovieAPI(movie, TraktWatchStatus.Watching, 0));
 }
Exemplo n.º 11
0
 public bool CancelWatchingMovie(WebMovieDetailed movie)
 {
     Log.Debug("WSD: Canceled movie {0}", movie.Title);
     return(true);
 }
Exemplo n.º 12
0
 public bool FinishMovie(WebMovieDetailed movie)
 {
     Log.Debug("WSD: Finished movie {0}", movie.Title);
     return(true);
 }
Exemplo n.º 13
0
 public bool WatchingMovie(WebMovieDetailed movie, int progress)
 {
     Log.Debug("WSD: Watching movie {0} ({1}%)", movie.Title, progress);
     return(true);
 }
Exemplo n.º 14
0
 public bool StartWatchingMovie(WebMovieDetailed movie)
 {
     Log.Debug("WSD: Start watching movie {0}", movie.Title);
     return(true);
 }
Exemplo n.º 15
0
 public MovieViewModel(WebMovieDetailed movie)
 {
     Movie = movie;
 }
Exemplo n.º 16
0
 public bool FinishMovie(WebMovieDetailed movie)
 {
     return(CallMovieAPI(movie, TraktWatchStatus.Scrobble, 100));
 }
Exemplo n.º 17
0
 public MovieViewModel(WebMovieDetailed movie)
 {
     Movie = movie;
     Id    = Movie.Id;
 }