Completed core (except WL and history retrieval)
This commit is contained in:
@@ -1,10 +0,0 @@
|
||||
namespace FoxTube.Models
|
||||
{
|
||||
public class SuspendedUser
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Email { get; set; }
|
||||
public string Avatar { get; set; }
|
||||
public string RefreshToken { get; set; }
|
||||
}
|
||||
}
|
||||
+24
-19
@@ -5,54 +5,59 @@ using Google.Apis.Services;
|
||||
using Google.Apis.YouTube.v3;
|
||||
using Google.Apis.YouTube.v3.Data;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using YouTube;
|
||||
using YoutubeExplode;
|
||||
|
||||
namespace FoxTube.Models
|
||||
{
|
||||
public class User
|
||||
{
|
||||
public Userinfoplus UserInfo { get; }
|
||||
public UserCredential Credential { get; }
|
||||
public Userinfoplus UserInfo { get; private set; }
|
||||
public UserCredential Credential { get; private set; }
|
||||
public Channel Channel { get; private set; }
|
||||
public List<Subscription> Subscriptions { get; } = new List<Subscription>();
|
||||
public ExtendedYouTubeService Service { get; }
|
||||
|
||||
public User(UserCredential credential)
|
||||
public ExtendedYouTubeService Service { get; private set; }
|
||||
public YoutubeClient Client { get; private set; }
|
||||
|
||||
public static async Task<User> GetUser(UserCredential credential)
|
||||
{
|
||||
Credential = credential;
|
||||
User user = new User();
|
||||
|
||||
user.Credential = credential;
|
||||
BaseClientService.Initializer initializer = new BaseClientService.Initializer
|
||||
{
|
||||
ApplicationName = "FoxTube",
|
||||
HttpClientInitializer = Credential
|
||||
HttpClientInitializer = credential
|
||||
};
|
||||
|
||||
Service = new ExtendedYouTubeService(initializer);
|
||||
user.Service = new ExtendedYouTubeService(initializer);
|
||||
|
||||
UserInfo = new Oauth2Service(initializer).Userinfo.Get().Execute();
|
||||
user.UserInfo = await new Oauth2Service(initializer).Userinfo.Get().ExecuteAsync();
|
||||
|
||||
// TODO: Retrieve history and WL
|
||||
|
||||
SubscriptionsResource.ListRequest subRequest = Service.Subscriptions.List("snippet");
|
||||
SubscriptionsResource.ListRequest subRequest = user.Service.Subscriptions.List("snippet");
|
||||
subRequest.Mine = true;
|
||||
subRequest.MaxResults = 50;
|
||||
subRequest.Order = SubscriptionsResource.ListRequest.OrderEnum.Relevance;
|
||||
SubscriptionListResponse subResponse;
|
||||
string nextToken = null;
|
||||
Subscriptions.Clear();
|
||||
|
||||
do
|
||||
{
|
||||
subRequest.PageToken = nextToken;
|
||||
subResponse = subRequest.Execute();
|
||||
foreach (Subscription s in subResponse.Items)
|
||||
Subscriptions.Add(s);
|
||||
nextToken = subResponse.NextPageToken;
|
||||
subResponse = await subRequest.ExecuteAsync();
|
||||
subRequest.PageToken = subResponse.NextPageToken;
|
||||
|
||||
} while (!string.IsNullOrWhiteSpace(nextToken));
|
||||
user.Subscriptions.AddRange(subResponse.Items);
|
||||
|
||||
var request = Service.Channels.List("snippet,contentDetails,brandingSettings");
|
||||
} while (!string.IsNullOrWhiteSpace(subRequest.PageToken));
|
||||
|
||||
var request = user.Service.Channels.List("snippet,contentDetails,brandingSettings");
|
||||
request.Mine = true;
|
||||
Channel = request.Execute().Items[0];
|
||||
user.Channel = request.Execute().Items[0];
|
||||
|
||||
return user;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user