Exemple #1
0
 protected void AddImageUrl(string url)
 {
     ImageUrlsSource.Add(url);
     OnPropertyChanged(nameof(FirstImageUrl));
     OnPropertyChanged(nameof(HasImageUrl));
     OnPropertyChanged(nameof(IsMultipulImages));
 }
Exemple #2
0
        public LiveInfoViewModel(VideoInfo liveVideoInfo, HohoemaPlaylist playlist, PageManager pageManager)
        {
            LiveVideoInfo = liveVideoInfo;
            PageManager   = pageManager;
            Playlist      = playlist;

            LiveId             = liveVideoInfo.Video.Id;
            CommunityName      = LiveVideoInfo.Community?.Name;
            CommunityThumbnail = LiveVideoInfo.Community?.Thumbnail;
            CommunityGlobalId  = LiveVideoInfo.Community?.GlobalId;
            CommunityType      = LiveVideoInfo.Video.ProviderType;

            LiveTitle             = LiveVideoInfo.Video.Title;
            ViewCounter           = int.Parse(LiveVideoInfo.Video.ViewCounter);
            CommentCount          = int.Parse(LiveVideoInfo.Video.CommentCount);
            OpenTime              = LiveVideoInfo.Video.OpenTime;
            StartTime             = LiveVideoInfo.Video.StartTime;
            EndTime               = LiveVideoInfo.Video.EndTime;
            IsTimeshiftEnabled    = LiveVideoInfo.Video.TimeshiftEnabled;
            IsCommunityMemberOnly = LiveVideoInfo.Video.CommunityOnly;

            Title      = LiveVideoInfo.Video.Title;
            OptionText = LiveVideoInfo.Community?.Name;
            ImageUrlsSource.Add(LiveVideoInfo.Community?.Thumbnail);

            var duration = EndTime - StartTime;

            if (LiveVideoInfo.Video.StartTime < DateTime.Now)
            {
                // 予約
                DurationText = "";
            }
            else if (LiveVideoInfo.Video.EndTime < DateTime.Now)
            {
                // 終了
                if (duration.Hours > 0)
                {
                    DurationText = $"({duration.Hours}時間 {duration.Minutes}分)";
                }
                else
                {
                    DurationText = $"({duration.Minutes}分)";
                }
            }
            else
            {
                // 放送中
                // 終了
                if (duration.Hours > 0)
                {
                    DurationText = $"{duration.Hours}時間 {duration.Minutes}分 経過";
                }
                else
                {
                    DurationText = $"{duration.Minutes}分 経過";
                }
            }

            Description = DurationText;
        }
Exemple #3
0
        public CommunityInfoControlViewModel(Mntone.Nico2.Searches.Community.NicoCommynity commu, PageManager pageManager)
        {
            PageManager      = pageManager;
            CommunityId      = commu.Id;
            Name             = commu.Name;
            ShortDescription = commu.ShortDescription;
            UpdateDate       = commu.DateTime;
            IconUrl          = commu.IconUrl.AbsoluteUri;

            Level       = commu.Level;
            MemberCount = commu.MemberCount;
            VideoCount  = commu.VideoCount;

            Title       = commu.Name;
            Description = commu.ShortDescription;
            ImageUrlsSource.Add(commu.IconUrl.OriginalString);
        }
Exemple #4
0
        public MylistGroupListItem(MylistGroupData mylistGroup, PageManager pageManager)
        {
            _PageManager = pageManager;

            Title       = mylistGroup.Name;
            Description = mylistGroup.Description;
            GroupId     = mylistGroup.Id;
            OptionText  = (mylistGroup.GetIsPublic() ? "公開" : "非公開") + $" - {mylistGroup.Count}件";

            ThemeColor = mylistGroup.GetIconType().ToColor();
            if (mylistGroup.ThumbnailUrls != null)
            {
                foreach (var thumbnailUri in mylistGroup.ThumbnailUrls)
                {
                    ImageUrlsSource.Add(thumbnailUri.OriginalString);
                }
            }
        }
Exemple #5
0
        // 個別マイリストから取得したデータによる初期化
        public VideoInfoControlViewModel(VideoInfo data, NicoVideo nicoVideo, PageManager pageManager)
            : this(nicoVideo, pageManager)
        {
            Title      = data.Video.Title;
            RawVideoId = data.Video.Id;
            OptionText = data.Video.UploadTime.ToString();
            if (!string.IsNullOrWhiteSpace(data.Video.ThumbnailUrl.OriginalString))
            {
                ImageUrlsSource.Add(data.Video.ThumbnailUrl.OriginalString);
            }

            if (!nicoVideo.IsDeleted)
            {
                Description = $"再生:{data.Video.ViewCount}";
            }

            ImageCaption = data.Video.Length.ToString(); // TODO: ユーザーフレンドリィ時間

            VideoId = RawVideoId;
        }
Exemple #6
0
        public void SetupFromThumbnail(NicoVideo info)
        {
            // NG判定
            if (_IsNGEnabled)
            {
                var ngResult = NicoVideo.CheckUserNGVideo();
                IsVisible = ngResult == null;
                if (ngResult != null)
                {
                    var ngDesc = !string.IsNullOrWhiteSpace(ngResult.NGDescription) ? ngResult.NGDescription : ngResult.Content;
                    InvisibleDescription = $"NG動画";
                }
            }

            Title      = info.Title;
            OptionText = info.PostedAt.ToString("yyyy/MM/dd HH:mm");
            if (!string.IsNullOrWhiteSpace(info.ThumbnailUrl))
            {
                if (!ImageUrlsSource.Any(x => x == info.ThumbnailUrl))
                {
                    ImageUrlsSource.Add(info.ThumbnailUrl);
                }
            }

            if (!info.IsDeleted)
            {
                Description = $"再生:{info.ViewCount.ToString("N0")} コメ:{info.CommentCount.ToString("N0")} マイ:{info.MylistCount.ToString("N0")}";
            }

            string timeText;

            if (info.VideoLength.Hours > 0)
            {
                timeText = info.VideoLength.ToString(@"hh\:mm\:ss");
            }
            else
            {
                timeText = info.VideoLength.ToString(@"mm\:ss");
            }
            ImageCaption = timeText;
        }
Exemple #7
0
        public MylistSearchListingItem(MylistGroup mylistgroup, PageManager pageManager)
        {
            _PageManager = pageManager;

            Name        = mylistgroup.Name;
            Description = mylistgroup.Description;
            ItemCount   = mylistgroup.ItemCount;
            GroupId     = mylistgroup.Id;
            UpdateTime  = mylistgroup.UpdateTime;

            Title = mylistgroup.Name;
            var thumbnails = mylistgroup.VideoInfoItems?.Select(x => x.Video.ThumbnailUrl.OriginalString);

            if (thumbnails != null)
            {
                foreach (var thumbnail in thumbnails)
                {
                    ImageUrlsSource.Add(thumbnail);
                }
            }

            SampleVideos = mylistgroup.VideoInfoItems?.Select(x => x.Video).ToList() ?? new List <Mntone.Nico2.Searches.Video.Video>();
        }