コード例 #1
0
        public void RefreshTraktActivity()
        {
            try
            {
                System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                {
                    TraktActivity.Clear();
                    TraktShouts.Clear();
                });

                JMMServerBinary.Contract_Trakt_Activity traktActivity = JMMServerVM.Instance.clientBinaryHTTP.GetTraktFriendInfo(20,
                                                                                                                                 false, true, false);

                if (traktActivity.HasTraktAccount)
                {
                    string blankImageName = @"/Images/blankposter.png";
                    if (AppSettings.DashMetroImageType == DashboardMetroImageType.Fanart)
                    {
                        blankImageName = @"/Images/blankfanart.png";
                    }

                    int numItems = 0;

                    // first get all the shouts
                    foreach (JMMServerBinary.Contract_Trakt_FriendActivity contractAct in traktActivity.TraktFriendActivity)
                    {
                        if (contractAct.ActivityAction == (int)TraktActivityAction.Shout)
                        {
                            if (contractAct.ActivityType == (int)TraktActivityType.Episode)
                            {
                                Trakt_ActivityShoutEpisodeVM shoutEp = new Trakt_ActivityShoutEpisodeVM(contractAct);

                                TraktShoutTile tile = new TraktShoutTile()
                                {
                                    ShowName            = shoutEp.Shout.ShowTitle,
                                    ShowPicture         = blankImageName,
                                    Details             = shoutEp.Shout.EpisodeDescription + Environment.NewLine + shoutEp.Shout.Text,
                                    ShoutDateString     = shoutEp.ActivityDateString,
                                    FriendName          = shoutEp.User.Username,
                                    FriendPicture       = blankImageName,
                                    OnlineShowPicture   = shoutEp.Shout.OnlineImagePath,
                                    OnlineFriendPicture = shoutEp.User.Avatar,
                                    URL      = shoutEp.Shout.Episode_Url,
                                    TileSize = "Large",
                                    Height   = 100
                                };

                                TraktShouts.Add(tile);
                                imagesToDownload.Add(tile);
                                numItems = 1;
                            }
                            else
                            {
                                Trakt_ActivityShoutShowVM shoutShow = new Trakt_ActivityShoutShowVM(contractAct);

                                TraktShoutTile tile = new TraktShoutTile()
                                {
                                    ShowName            = shoutShow.Shout.ShowTitle,
                                    ShowPicture         = blankImageName,
                                    Details             = shoutShow.Shout.Text,
                                    ShoutDateString     = shoutShow.ActivityDateString,
                                    FriendName          = shoutShow.User.Username,
                                    FriendPicture       = blankImageName,
                                    URL                 = shoutShow.Shout.TraktShow.url,
                                    OnlineShowPicture   = shoutShow.Shout.OnlineImagePath,
                                    OnlineFriendPicture = shoutShow.User.Avatar,
                                    TileSize            = "Large",
                                    Height              = 100
                                };

                                TraktShouts.Add(tile);
                                imagesToDownload.Add(tile);
                                numItems = 1;
                            }
                        }
                    }

                    if (TraktShouts.Count > 0)
                    {
                        System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                        {
                            TraktActivity.Add(TraktShouts[0]);
                        });
                    }

                    traktActivity = JMMServerVM.Instance.clientBinaryHTTP.GetTraktFriendInfo(AppSettings.DashMetro_TraktActivity_Items + 1,
                                                                                             false, false, true);

                    foreach (JMMServerBinary.Contract_Trakt_FriendActivity contractAct in traktActivity.TraktFriendActivity)
                    {
                        if (numItems == AppSettings.DashMetro_TraktActivity_Items)
                        {
                            break;
                        }

                        if (contractAct.ActivityAction == (int)TraktActivityAction.Scrobble)
                        {
                            Trakt_ActivityScrobbleVM scrobble = new Trakt_ActivityScrobbleVM(contractAct);

                            TraktActivityTile tile = new TraktActivityTile()
                            {
                                Scrobble       = scrobble,
                                ShowName       = scrobble.Episode.ShowTitle,
                                ShowPicture    = blankImageName,
                                EpisodeDetails = scrobble.Episode.EpisodeDescription,
                                URL            = scrobble.Episode.Episode_Url,
                                FriendName     = scrobble.User.Username,
                                FriendPicture  = blankImageName,
                                TileSize       = "Large",
                                Height         = 100
                            };

                            numItems++;

                            System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                            {
                                TraktActivity.Add(tile);
                            });

                            imagesToDownload.Add(tile);
                        }
                    }
                }
                else
                {
                    Trakt_SignupVM signup = new Trakt_SignupVM();
                    System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                    {
                        TraktActivity.Add(signup);
                    });
                }

                OnFinishedProcess(new FinishedProcessEventArgs(DashboardMetroProcessType.TraktActivity));
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
            finally
            {
            }
        }
コード例 #2
0
ファイル: DashboardVM.cs プロジェクト: dizzydezz/jmm
		public void RefreshTraktFriends(bool traktScrobbles, bool traktShouts)
		{
			try
			{
				System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate()
				{
					TraktActivity.Clear();
				});

				JMMServerBinary.Contract_Trakt_Activity traktActivity = JMMServerVM.Instance.clientBinaryHTTP.GetTraktFriendInfo(AppSettings.Dash_TraktFriends_Items,
					AppSettings.Dash_TraktFriends_AnimeOnly, traktShouts, traktScrobbles);

				List<object> activity = new List<object>();

				if (traktActivity.HasTraktAccount)
				{
					foreach (JMMServerBinary.Contract_Trakt_FriendFrequest contractFriend in traktActivity.TraktFriendRequests)
					{
						Trakt_FriendRequestVM req = new Trakt_FriendRequestVM(contractFriend);
						activity.Add(req);
					}

					foreach (JMMServerBinary.Contract_Trakt_FriendActivity contractAct in traktActivity.TraktFriendActivity)
					{
						if (contractAct.ActivityAction == (int)TraktActivityAction.Scrobble)
						{
							Trakt_ActivityScrobbleVM scrobble = new Trakt_ActivityScrobbleVM(contractAct);

							if (!string.IsNullOrEmpty(scrobble.UserFullImagePath) && !File.Exists(scrobble.UserFullImagePath))
							{
								// re-download the friends avatar image
								try
								{
									System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate()
									{
										ImageDownloadRequest req = new ImageDownloadRequest(ImageEntityType.Trakt_ActivityScrobble, scrobble, true);
										MainWindow.imageHelper.DownloadImage(req);
									});
									
								}
								catch (Exception ex)
								{
									logger.ErrorException(ex.ToString(), ex);
								}
							}

							activity.Add(scrobble);
						}
						else if (contractAct.ActivityAction == (int)TraktActivityAction.Shout)
						{
							if (contractAct.ActivityType == (int)TraktActivityType.Episode)
							{
								Trakt_ActivityShoutEpisodeVM shoutEp = new Trakt_ActivityShoutEpisodeVM(contractAct);
								activity.Add(shoutEp);
							}
							else
							{
								Trakt_ActivityShoutShowVM shoutShow = new Trakt_ActivityShoutShowVM(contractAct);
								activity.Add(shoutShow);
							}
						}
					}

					foreach (JMMServerBinary.Contract_Trakt_Friend contract in traktActivity.TraktFriends)
					{
						if (contract.WatchedEpisodes != null && contract.WatchedEpisodes.Count > 0)
						{
							Trakt_FriendVM friend = new Trakt_FriendVM(contract);
							activity.Add(friend);
						}
					}
				}
				else
				{
					Trakt_SignupVM signup = new Trakt_SignupVM();
					activity.Add(signup);
				}

				System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate()
				{
					foreach (object act in activity)
						TraktActivity.Add(act);
					ViewTraktActivity.Refresh();
				});
				
			}
			catch (Exception ex)
			{
				logger.ErrorException(ex.ToString(), ex);
			}
			finally
			{
			}
		}
コード例 #3
0
        public void RefreshTraktFriends(bool traktScrobbles, bool traktShouts)
        {
            try
            {
                System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                {
                    TraktActivity.Clear();
                });

                JMMServerBinary.Contract_Trakt_Activity traktActivity = JMMServerVM.Instance.clientBinaryHTTP.GetTraktFriendInfo(AppSettings.Dash_TraktFriends_Items,
                                                                                                                                 AppSettings.Dash_TraktFriends_AnimeOnly, traktShouts, traktScrobbles);

                List <object> activity = new List <object>();

                if (traktActivity.HasTraktAccount)
                {
                    foreach (JMMServerBinary.Contract_Trakt_FriendFrequest contractFriend in traktActivity.TraktFriendRequests)
                    {
                        Trakt_FriendRequestVM req = new Trakt_FriendRequestVM(contractFriend);
                        activity.Add(req);
                    }

                    foreach (JMMServerBinary.Contract_Trakt_FriendActivity contractAct in traktActivity.TraktFriendActivity)
                    {
                        if (contractAct.ActivityAction == (int)TraktActivityAction.Scrobble)
                        {
                            Trakt_ActivityScrobbleVM scrobble = new Trakt_ActivityScrobbleVM(contractAct);

                            if (!string.IsNullOrEmpty(scrobble.UserFullImagePath) && !File.Exists(scrobble.UserFullImagePath))
                            {
                                // re-download the friends avatar image
                                try
                                {
                                    System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                                    {
                                        ImageDownloadRequest req = new ImageDownloadRequest(ImageEntityType.Trakt_ActivityScrobble, scrobble, true);
                                        MainWindow.imageHelper.DownloadImage(req);
                                    });
                                }
                                catch (Exception ex)
                                {
                                    logger.ErrorException(ex.ToString(), ex);
                                }
                            }

                            activity.Add(scrobble);
                        }
                        else if (contractAct.ActivityAction == (int)TraktActivityAction.Shout)
                        {
                            if (contractAct.ActivityType == (int)TraktActivityType.Episode)
                            {
                                Trakt_ActivityShoutEpisodeVM shoutEp = new Trakt_ActivityShoutEpisodeVM(contractAct);
                                activity.Add(shoutEp);
                            }
                            else
                            {
                                Trakt_ActivityShoutShowVM shoutShow = new Trakt_ActivityShoutShowVM(contractAct);
                                activity.Add(shoutShow);
                            }
                        }
                    }

                    foreach (JMMServerBinary.Contract_Trakt_Friend contract in traktActivity.TraktFriends)
                    {
                        if (contract.WatchedEpisodes != null && contract.WatchedEpisodes.Count > 0)
                        {
                            Trakt_FriendVM friend = new Trakt_FriendVM(contract);
                            activity.Add(friend);
                        }
                    }
                }
                else
                {
                    Trakt_SignupVM signup = new Trakt_SignupVM();
                    activity.Add(signup);
                }

                System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                {
                    foreach (object act in activity)
                    {
                        TraktActivity.Add(act);
                    }
                    ViewTraktActivity.Refresh();
                });
            }
            catch (Exception ex)
            {
                logger.ErrorException(ex.ToString(), ex);
            }
            finally
            {
            }
        }
コード例 #4
0
ファイル: DashboardMetroVM.cs プロジェクト: dizzydezz/jmm
		public void RefreshTraktActivity()
		{
			try
			{
				System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate()
				{
					TraktActivity.Clear();
					TraktShouts.Clear();
				});

				JMMServerBinary.Contract_Trakt_Activity traktActivity = JMMServerVM.Instance.clientBinaryHTTP.GetTraktFriendInfo(20,
					false, true, false);

				if (traktActivity.HasTraktAccount)
				{

					string blankImageName = @"/Images/blankposter.png";
					if (AppSettings.DashMetroImageType == DashboardMetroImageType.Fanart)
						blankImageName = @"/Images/blankfanart.png";

					int numItems = 0;

					// first get all the shouts
					foreach (JMMServerBinary.Contract_Trakt_FriendActivity contractAct in traktActivity.TraktFriendActivity)
					{
						if (contractAct.ActivityAction == (int)TraktActivityAction.Shout)
						{
							if (contractAct.ActivityType == (int)TraktActivityType.Episode)
							{
								Trakt_ActivityShoutEpisodeVM shoutEp = new Trakt_ActivityShoutEpisodeVM(contractAct);

								TraktShoutTile tile = new TraktShoutTile()
								{
									ShowName = shoutEp.Shout.ShowTitle,
									ShowPicture = blankImageName,
									Details = shoutEp.Shout.EpisodeDescription + Environment.NewLine + shoutEp.Shout.Text,
									ShoutDateString = shoutEp.ActivityDateString,
									FriendName = shoutEp.User.Username,
									FriendPicture = blankImageName,
									OnlineShowPicture = shoutEp.Shout.OnlineImagePath,
									OnlineFriendPicture = shoutEp.User.Avatar,
									URL = shoutEp.Shout.Episode_Url,
									TileSize = "Large",
									Height = 100
								};

								TraktShouts.Add(tile);
								imagesToDownload.Add(tile);
								numItems = 1;
							}
							else
							{
								Trakt_ActivityShoutShowVM shoutShow = new Trakt_ActivityShoutShowVM(contractAct);

								TraktShoutTile tile = new TraktShoutTile()
								{
									ShowName = shoutShow.Shout.ShowTitle,
									ShowPicture = blankImageName,
									Details = shoutShow.Shout.Text,
									ShoutDateString = shoutShow.ActivityDateString,
									FriendName = shoutShow.User.Username,
									FriendPicture = blankImageName,
									URL = shoutShow.Shout.TraktShow.url,
									OnlineShowPicture = shoutShow.Shout.OnlineImagePath,
									OnlineFriendPicture = shoutShow.User.Avatar,
									TileSize = "Large",
									Height = 100
								};

								TraktShouts.Add(tile);
								imagesToDownload.Add(tile);
								numItems = 1;
							}
						}


					}

					if (TraktShouts.Count > 0)
					{
						System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate()
						{
							TraktActivity.Add(TraktShouts[0]);
						});
					}

					traktActivity = JMMServerVM.Instance.clientBinaryHTTP.GetTraktFriendInfo(AppSettings.DashMetro_TraktActivity_Items + 1,
						false, false, true);

					foreach (JMMServerBinary.Contract_Trakt_FriendActivity contractAct in traktActivity.TraktFriendActivity)
					{
						if (numItems == AppSettings.DashMetro_TraktActivity_Items) break;

						if (contractAct.ActivityAction == (int)TraktActivityAction.Scrobble)
						{
							Trakt_ActivityScrobbleVM scrobble = new Trakt_ActivityScrobbleVM(contractAct);

							TraktActivityTile tile = new TraktActivityTile()
							{
								Scrobble = scrobble,
								ShowName = scrobble.Episode.ShowTitle,
								ShowPicture = blankImageName,
								EpisodeDetails = scrobble.Episode.EpisodeDescription,
								URL = scrobble.Episode.Episode_Url,
								FriendName = scrobble.User.Username,
								FriendPicture = blankImageName,
								TileSize = "Large",
								Height = 100
							};

							numItems++;

							System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate()
							{
								TraktActivity.Add(tile);
							});

							imagesToDownload.Add(tile);
						}
					}
				}
				else
				{
					Trakt_SignupVM signup = new Trakt_SignupVM();
					System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate()
					{
						TraktActivity.Add(signup);
					});
				}

				OnFinishedProcess(new FinishedProcessEventArgs(DashboardMetroProcessType.TraktActivity));
			}
			catch (Exception ex)
			{
				Utils.ShowErrorMessage(ex);
			}
			finally
			{
			}
		}