浏览代码

get currently playing track added

tags/v1.1.0^2
anastasijasavov 3 年前
父节点
当前提交
f5b8244489

+ 19
- 19
GrpcShared/DTO/Track/TrackResponse.cs 查看文件

@@ -11,60 +11,60 @@ namespace GrpcShared.DTO.Track
public class TrackResponse
{
[ProtoMember(1)]
public int? Timestamp{ get; set; }
public string? timestamp{ get; set; }
[ProtoMember(2)]
public int? Progress_ms { get; set; }
public int? progress_ms { get; set; }
[ProtoMember(3)]
public bool? Is_playing { get; set; }
public bool? is_playing { get; set; }
[ProtoMember(4)]
public Item? Item { get; set; }
public Item? item { get; set; }

}
[ProtoContract]
public class Item
{
[ProtoMember(1)]
public Album? Album { get; set; }
public Album? album { get; set; }
[ProtoMember(2)]
public Artist[]? Artists { get; set; }
public Artist[]? artists { get; set; }
[ProtoMember(3)]
public string? Id { get; set; }
public string? id { get; set; }
[ProtoMember(4)]
public string? Name { get; set; }
public string? name { get; set; }
[ProtoMember(5)]
public string? Href { get; set; }
public string? href { get; set; }

}
[ProtoContract]
public class Album
{
[ProtoMember(1)]
public string? Id { get; set; }
public string? id { get; set; }
[ProtoMember(2)]
public string? Name { get; set; }
public string? name { get; set; }
[ProtoMember(3)]
public Image[]? Images { get; set; }
public Image[]? images { get; set; }
[ProtoMember(4)]
public string? Href { get; set; }
public string? href { get; set; }
}
[ProtoContract]
public class Artist
{
[ProtoMember(1)]
public string? Id { get; set; }
public string? id { get; set; }
[ProtoMember(2)]
public string? Name { get; set; }
public string? name { get; set; }
[ProtoMember(3)]
public string? Href { get; set; }
public string? href { get; set; }
}
[ProtoContract]
public class Image
{
[ProtoMember(1)]
public int? Height{ get; set; }
public int? height{ get; set; }
[ProtoMember(2)]
public string? Url { get; set; }
public string? url { get; set; }
[ProtoMember(3)]
public int? Width { get; set; }
public int? width { get; set; }
}
}

+ 1
- 0
IdentityProvider/Program.cs 查看文件

@@ -72,6 +72,7 @@ app.MapControllers();
//app.MapGrpcService<WeatherService>();
app.MapGrpcService<AuthService>().EnableGrpcWeb();
app.MapGrpcService<TrackService>().EnableGrpcWeb();
app.MapGrpcService<StatsService>().EnableGrpcWeb();

app.MapCodeFirstGrpcReflectionService();


+ 1
- 1
NemAnCore/Pages/FetchData.razor 查看文件

@@ -49,7 +49,7 @@
private async Task Click(){

var token = await sessionStorage.GetItemAsync<string>("token");
TokenMessage tm = new() { Token = token };
TokenMessage tm = new(token) ;
SearchRequest request = new() { Query = "aitch", Type = "track", Token = token };
SearchResponse searchResponse = await SearchService.GetListSearchAsync(request);

+ 4
- 12
NemAnCore/Pages/Home.razor 查看文件

@@ -8,21 +8,13 @@
<h3>Home</h3>

<p>login radi</p>
<AuthorizeView>
<Authorized>
<p>autorizovan si</p>
</Authorized>
<NotAuthorized>
<LoginRedirect/>
</NotAuthorized>
</AuthorizeView>

@code {
protected override async Task OnInitializedAsync()
{
//string tokenS = await sessionStorage.GetItemAsync<string>("token");
//TokenMessage token = new TokenMessage(tokenS);
string tokenS = await sessionStorage.GetItemAsync<string>("token");
TokenMessage token = new TokenMessage(tokenS);

//TrackResponse response = await spotifyService.GetCurrentlyPlayingTrack(token);
TrackResponse response = await spotifyService.GetCurrentlyPlayingTrack(token);
}
}

+ 2
- 2
NemAnCore/Pages/Login.razor 查看文件

@@ -19,7 +19,7 @@
</Authorized>
<NotAuthorized>
Nisi autorizovan.
<button class="btn btn-primary" @onclick="Login">Autorizuj</button>
<button class="btn btn-primary" @onclick="LoginUser">Autorizuj</button>
</NotAuthorized>
</AuthorizeView>

@@ -41,7 +41,7 @@ Dobrodošli u našu NemAn aplikaciju.
message = "Cao";
}

private async Task Login()
private async Task LoginUser()
{
//var response = await SearchService.GetListSearchAsync(new GrpcShared.DTO.Search.SearchRequest() { Query="venom", Type = "track"});
CodeRequest authParams = await AuthService.GetAuthParams();

+ 0
- 1
NemAnCore/Program.cs 查看文件

@@ -3,7 +3,6 @@ using Blazored.SessionStorage;
using Grpc.Net.Client;
using Grpc.Net.Client.Web;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using NemAnBlazor;

+ 18
- 18
NemAnCore/Services/AuthClientService.cs 查看文件

@@ -27,30 +27,30 @@ namespace NemAnBlazor.Services
return await _serviceClient.GetAccessToken(request);
}

public override async Task<AuthenticationState> GetAuthenticationStateAsync()
{
string token = await _sessionStorage.GetItemAsync<string>("token");
//public override async Task<AuthenticationState> GetAuthenticationStateAsync()
//{
// string token = await _sessionStorage.GetItemAsync<string>("token");

//token = "BQBMgFm6jnFNWWeZEMGIRP_f-ENPid7Kw8JubAyuWAe4JK0S1DPFGlaAdZ_Fey6ePkCnz8-cqC0oyRmrciWUy5ISUTQKDe8PTQn4iBRMYCgM0n4GnS1xAErHJcm4Vpu2TAngk-4vQUOfTQRcedNTfCaHKP4uFJgTlTI7JHGrtB-_EZLnFcZ2OQe31oFQIJ1wM3ZtvwnN";
if (token == null) return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity()));
// //token = "BQBMgFm6jnFNWWeZEMGIRP_f-ENPid7Kw8JubAyuWAe4JK0S1DPFGlaAdZ_Fey6ePkCnz8-cqC0oyRmrciWUy5ISUTQKDe8PTQn4iBRMYCgM0n4GnS1xAErHJcm4Vpu2TAngk-4vQUOfTQRcedNTfCaHKP4uFJgTlTI7JHGrtB-_EZLnFcZ2OQe31oFQIJ1wM3ZtvwnN";
// if (token == null) return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity()));
var userInfo = await _serviceClient.GetUserInfo(new TokenMessage ( token ));
// var userInfo = await _serviceClient.GetUserInfo(new TokenMessage ( token ));

List<Claim> claims = new();
// List<Claim> claims = new();

claims.Add(new Claim("email", userInfo.email!));
claims.Add(new Claim("id", userInfo.id!));
claims.Add(new Claim("name", userInfo.display_name!));
// claims.Add(new Claim("email", userInfo.email!));
// claims.Add(new Claim("id", userInfo.id!));
// claims.Add(new Claim("name", userInfo.display_name!));

ClaimsIdentity identity = new(claims, "jwt");
//ClaimsIdentity identity = new();
ClaimsPrincipal user = new(identity);
AuthenticationState state = new(user);
// ClaimsIdentity identity = new(claims, "jwt");
// //ClaimsIdentity identity = new();
// ClaimsPrincipal user = new(identity);
// AuthenticationState state = new(user);

NotifyAuthenticationStateChanged(Task.FromResult(state));
// NotifyAuthenticationStateChanged(Task.FromResult(state));

return state;
}
// return state;
//}

public async Task<CodeRequest> GetAuthParams()
{
@@ -71,7 +71,7 @@ namespace NemAnBlazor.Services
//token = "BQBMgFm6jnFNWWeZEMGIRP_f-ENPid7Kw8JubAyuWAe4JK0S1DPFGlaAdZ_Fey6ePkCnz8-cqC0oyRmrciWUy5ISUTQKDe8PTQn4iBRMYCgM0n4GnS1xAErHJcm4Vpu2TAngk-4vQUOfTQRcedNTfCaHKP4uFJgTlTI7JHGrtB-_EZLnFcZ2OQe31oFQIJ1wM3ZtvwnN";
if (token == null) return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity()));

var userInfo = await _serviceClient.GetUserInfo(new TokenMessage { Token = token });
var userInfo = await _serviceClient.GetUserInfo(new TokenMessage (token));

List<Claim> claims = new();


+ 4
- 4
gRPCServer/Services/StatsService.cs 查看文件

@@ -18,10 +18,10 @@ namespace SpotifyService.Services

public async Task<TrackResponse> GetCurrentlyPlayingTrack(TokenMessage token)
{
var client = _httpClientFactory.CreateClient();
client.DefaultRequestHeaders.Add(HeaderNames.Authorization, "Bearer " + token);
var searchResult = await client.GetAsync($"player/currently-playing");
var client = _httpClientFactory.CreateClient("HttpClient");
client.DefaultRequestHeaders.Add(HeaderNames.Authorization, "Bearer " + token.Token);
var searchResult = await client.GetAsync($"me/player/currently-playing");

var responses = JsonConvert.DeserializeObject<TrackResponse>(await searchResult.Content.ReadAsStringAsync())!;


正在加载...
取消
保存