diff --git a/FoxTube/Classes/SearchPaameters.cs b/FoxTube/Classes/SearchParameters.cs
similarity index 90%
rename from FoxTube/Classes/SearchPaameters.cs
rename to FoxTube/Classes/SearchParameters.cs
index 17299bd..bd31364 100644
--- a/FoxTube/Classes/SearchPaameters.cs
+++ b/FoxTube/Classes/SearchParameters.cs
@@ -1,4 +1,5 @@
-using System;
+using Google.Apis.YouTube.v3.Data;
+using System;
using System.Collections.Generic;
using static Google.Apis.YouTube.v3.SearchResource.ListRequest;
@@ -34,11 +35,11 @@ namespace FoxTube
case Enumerations.ConversionType.Captions:
if (Captions)
return VideoCaptionEnum.ClosedCaption;
- else return null;
+ else return VideoCaptionEnum.Any;
case Enumerations.ConversionType.CreativeCommons:
if (CreativeCommons)
return VideoLicenseEnum.CreativeCommon;
- else return null;
+ else return VideoLicenseEnum.Any;
case Enumerations.ConversionType.Date:
switch(Date)
{
@@ -61,7 +62,7 @@ namespace FoxTube
case Enumerations.ConversionType.HD:
if (HD)
return VideoDefinitionEnum.High;
- else return null;
+ else return VideoDefinitionEnum.Any;
case Enumerations.ConversionType.LiveEvent:
if (LiveEvent)
return EventTypeEnum.Live;
@@ -79,7 +80,7 @@ namespace FoxTube
case Enumerations.ConversionType.ThreeD:
if (Is3D)
return VideoDimensionEnum.Value3d;
- else return null;
+ else return VideoDimensionEnum.Any;
case Enumerations.ConversionType.Type:
switch(Type)
{
@@ -100,6 +101,7 @@ namespace FoxTube
public string Term { get; private set; }
public string Channel { get; private set; }
+ public VideoCategory Category { get; set; }
public Filters Filter { get; private set; } = new Filters();
public SearchParameters(string term)
@@ -107,6 +109,13 @@ namespace FoxTube
Term = term;
}
+ public SearchParameters(VideoCategory category)
+ {
+ Category = category;
+ Filter = new Filters();
+ Filter.Type = Filters.Enumerations.Type.Video;
+ }
+
public SearchParameters(string term, Filters filters)
{
Term = term;
@@ -119,6 +128,7 @@ namespace FoxTube
Channel = channelId;
}
+
public SearchParameters(string term, string channelId, Filters filters)
{
Term = term;
@@ -130,6 +140,7 @@ namespace FoxTube
{
return $@"Term: {Term}
Channel id: {Channel}
+Category id: {Category}
Filters:
Order: {Filter.Order}
Type: {Filter.Type}
diff --git a/FoxTube/FoxTube.csproj b/FoxTube/FoxTube.csproj
index 07e15a2..2207327 100644
--- a/FoxTube/FoxTube.csproj
+++ b/FoxTube/FoxTube.csproj
@@ -107,7 +107,7 @@
-
+
diff --git a/FoxTube/Pages/Search.xaml.cs b/FoxTube/Pages/Search.xaml.cs
index 6f4dc51..2d91044 100644
--- a/FoxTube/Pages/Search.xaml.cs
+++ b/FoxTube/Pages/Search.xaml.cs
@@ -77,12 +77,20 @@ namespace FoxTube
{
Parameters = arg;
request = SecretsVault.Service.Search.List("id,snippet");
+
+ searchTerm.Text = $"{resources.GetString("/Search/header")} '{Parameters.Term}'";
if (!string.IsNullOrWhiteSpace(arg.Channel))
{
request.ChannelId = arg.Channel;
(type.Items[2] as ComboBoxItem).Visibility = Visibility.Collapsed;
(grid.Children[1] as CommandBar).Visibility = Visibility.Collapsed;
}
+ else if (arg.Category != null)
+ {
+ (filters.Children[0] as GridView).Items.Remove(type);
+ searchTerm.Text = $"{resources.GetString("/Search/category")} '{arg.Category.Snippet.Title}'";
+ request.VideoCategoryId = arg.Category.Id;
+ }
request.Q = arg.Term;
request.SafeSearch = (SearchResource.ListRequest.SafeSearchEnum)SettingsStorage.SafeSearch;
@@ -101,7 +109,7 @@ namespace FoxTube
request.VideoDefinition = (SearchResource.ListRequest.VideoDefinitionEnum)arg.Filter.GetParameter(SearchParameters.Filters.Enumerations.ConversionType.HD);
request.VideoDimension = (SearchResource.ListRequest.VideoDimensionEnum)arg.Filter.GetParameter(SearchParameters.Filters.Enumerations.ConversionType.ThreeD);
request.VideoCaption = (SearchResource.ListRequest.VideoCaptionEnum)arg.Filter.GetParameter(SearchParameters.Filters.Enumerations.ConversionType.Captions);
- request.EventType = (SearchResource.ListRequest.EventTypeEnum)arg.Filter.GetParameter(SearchParameters.Filters.Enumerations.ConversionType.LiveEvent);
+ request.EventType = (SearchResource.ListRequest.EventTypeEnum?)arg.Filter.GetParameter(SearchParameters.Filters.Enumerations.ConversionType.LiveEvent);
request.VideoLicense = (SearchResource.ListRequest.VideoLicenseEnum)arg.Filter.GetParameter(SearchParameters.Filters.Enumerations.ConversionType.CreativeCommons);
}
@@ -120,7 +128,6 @@ namespace FoxTube
features.SelectedItems.Add(features.Items[4]);
SearchListResponse response = await request.ExecuteAsync();
- searchTerm.Text = $"{resources.GetString("/Search/header")} '{Parameters.Term}'";
resultsCount.Text = $"{resources.GetString("/Search/found")}: {SetResults(response.PageInfo.TotalResults)} {resources.GetString("/Search/items")}";
if (!string.IsNullOrWhiteSpace(response.NextPageToken))
diff --git a/FoxTube/Pages/VideoPage.xaml b/FoxTube/Pages/VideoPage.xaml
index c889205..7a4bafc 100644
--- a/FoxTube/Pages/VideoPage.xaml
+++ b/FoxTube/Pages/VideoPage.xaml
@@ -66,7 +66,7 @@
-
+
diff --git a/FoxTube/Pages/VideoPage.xaml.cs b/FoxTube/Pages/VideoPage.xaml.cs
index b8f1e8e..5f2681b 100644
--- a/FoxTube/Pages/VideoPage.xaml.cs
+++ b/FoxTube/Pages/VideoPage.xaml.cs
@@ -14,6 +14,7 @@ using Windows.System;
using Windows.UI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Documents;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
using Windows.UI.Xaml.Navigation;
@@ -258,7 +259,32 @@ namespace FoxTube.Pages
{
//Setting meta
title.Text = item.Snippet.Localized.Title;
- date.Text = $"{resources.GetString("/VideoPage/publishedAt")}: {item.Snippet.PublishedAt} ({Methods.GetAgo(item.Snippet.PublishedAt.Value)})";
+ meta.Text = "";
+ meta.Inlines.Add(new Run
+ {
+ Text = $"{resources.GetString("/VideoPage/publishedAt")}: {item.Snippet.PublishedAt} ({Methods.GetAgo(item.Snippet.PublishedAt.Value)})"
+ });
+ if(!string.IsNullOrWhiteSpace(item.Snippet.CategoryId))
+ {
+ VideoCategoriesResource.ListRequest request = SecretsVault.Service.VideoCategories.List("snippet,id");
+ request.Id = item.Snippet.CategoryId;
+ request.Hl = SettingsStorage.RelevanceLanguage;
+ VideoCategoryListResponse response = await request.ExecuteAsync();
+ if(response.Items.Count != 0)
+ {
+ meta.Inlines.Add(new Run
+ {
+ Text = $" {resources.GetString("/VideoPage/inCat")} "
+ });
+ Hyperlink hl = new Hyperlink();
+ hl.Inlines.Add(new Run
+ {
+ Text = response.Items[0].Snippet.Title
+ });
+ hl.Click += (s, e) => Methods.MainPage.GoToSearch(new SearchParameters(response.Items[0]));
+ meta.Inlines.Add(hl);
+ }
+ }
description.FormatText(item.Snippet.Localized.Description);
//Setting channel button
diff --git a/FoxTube/Strings/en-US/Search.resw b/FoxTube/Strings/en-US/Search.resw
index 36c2fa0..d4910a3 100644
--- a/FoxTube/Strings/en-US/Search.resw
+++ b/FoxTube/Strings/en-US/Search.resw
@@ -129,6 +129,9 @@
Apply
+
+ Collection from
+
Creative Commons
diff --git a/FoxTube/Strings/en-US/VideoPage.resw b/FoxTube/Strings/en-US/VideoPage.resw
index 6860e65..64bfb73 100644
--- a/FoxTube/Strings/en-US/VideoPage.resw
+++ b/FoxTube/Strings/en-US/VideoPage.resw
@@ -309,4 +309,7 @@
Report this video
+
+ in
+
\ No newline at end of file
diff --git a/FoxTube/Strings/ru-RU/Search.resw b/FoxTube/Strings/ru-RU/Search.resw
index b2d2794..a5a0fb9 100644
--- a/FoxTube/Strings/ru-RU/Search.resw
+++ b/FoxTube/Strings/ru-RU/Search.resw
@@ -129,6 +129,9 @@
Применить
+
+ Коллекция категории
+
Лицензия Creative Commons
diff --git a/FoxTube/Strings/ru-RU/VideoPage.resw b/FoxTube/Strings/ru-RU/VideoPage.resw
index 525c73a..e46bdef 100644
--- a/FoxTube/Strings/ru-RU/VideoPage.resw
+++ b/FoxTube/Strings/ru-RU/VideoPage.resw
@@ -309,4 +309,7 @@
Пожаловаться на видео
+
+ в категории
+
\ No newline at end of file