-
Notifications
You must be signed in to change notification settings - Fork 50
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
515 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
91 changes: 91 additions & 0 deletions
91
BilibiliLiveDanmuPreviewer/BilibiliLiveDanmuPreviewerModule.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
global using BilibiliApi.Clients; | ||
global using BilibiliApi.Model.RoomInfo; | ||
global using BilibiliLiveDanmuPreviewer; | ||
global using JetBrains.Annotations; | ||
global using Microsoft; | ||
global using Microsoft.Extensions.Configuration; | ||
global using Microsoft.Extensions.DependencyInjection; | ||
global using Microsoft.Extensions.DependencyInjection.Extensions; | ||
global using Microsoft.Extensions.Logging; | ||
global using Serilog; | ||
global using System.Net; | ||
global using System.Reactive.Linq; | ||
global using Volo.Abp; | ||
global using Volo.Abp.Autofac; | ||
global using Volo.Abp.DependencyInjection; | ||
global using Volo.Abp.Modularity; | ||
global using ILogger = Microsoft.Extensions.Logging.ILogger; | ||
|
||
namespace BilibiliLiveDanmuPreviewer; | ||
|
||
[DependsOn( | ||
typeof(AbpAutofacModule) | ||
)] | ||
[UsedImplicitly] | ||
internal class BilibiliLiveDanmuPreviewerModule : AbpModule | ||
{ | ||
public override Task PreConfigureServicesAsync(ServiceConfigurationContext context) | ||
{ | ||
context.Services.ReplaceConfiguration(new ConfigurationBuilder().AddJsonFile(@"appsettings.json", true, true).Build()); | ||
|
||
return Task.CompletedTask; | ||
} | ||
|
||
public override Task ConfigureServicesAsync(ServiceConfigurationContext context) | ||
{ | ||
IConfiguration configuration = context.Services.GetConfiguration(); | ||
|
||
context.Services.AddLogging(loggingBuilder => loggingBuilder.AddSerilog(new LoggerConfiguration().ReadFrom.Configuration(configuration).CreateLogger(), true)); | ||
#if DEBUG | ||
Serilog.Debugging.SelfLog.Enable(msg => | ||
{ | ||
System.Diagnostics.Debug.Print(msg); | ||
System.Diagnostics.Debugger.Break(); | ||
}); | ||
#endif | ||
|
||
context.Services.AddHttpClient(@"bilibili").ConfigureHttpClient((provider, client) => | ||
{ | ||
client.DefaultRequestVersion = HttpVersion.Version20; | ||
client.Timeout = TimeSpan.FromSeconds(10); | ||
client.DefaultRequestHeaders.Accept.ParseAdd(@"application/json, text/javascript, */*; q=0.01"); | ||
client.DefaultRequestHeaders.Referrer = new Uri(@"https://live.bilibili.com/"); | ||
IConfiguration config = provider.GetRequiredService<IConfiguration>(); | ||
IConfigurationSection httpClientConfig = config.GetSection(@"HttpClient"); | ||
string? cookie = httpClientConfig.GetValue<string>(@"Cookie"); | ||
string? userAgent = httpClientConfig.GetValue<string>(@"UserAgent"); | ||
if (!string.IsNullOrWhiteSpace(cookie)) | ||
{ | ||
client.DefaultRequestHeaders.Add(@"Cookie", cookie); | ||
} | ||
if (!string.IsNullOrWhiteSpace(userAgent)) | ||
{ | ||
client.DefaultRequestHeaders.UserAgent.Clear(); | ||
client.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent); | ||
} | ||
}); | ||
|
||
context.Services.TryAddSingleton(provider => | ||
{ | ||
IHttpClientFactory httpClientFactory = provider.GetRequiredService<IHttpClientFactory>(); | ||
return new BilibiliApiClient(httpClientFactory.CreateClient(@"bilibili")); | ||
}); | ||
|
||
context.Services.AddDistributedMemoryCache(); | ||
|
||
context.Services.TryAddTransient<IDanmuClient, WssDanmuClient>(); | ||
|
||
return Task.CompletedTask; | ||
} | ||
|
||
public override Task OnApplicationShutdownAsync(ApplicationShutdownContext context) | ||
{ | ||
context.ServiceProvider.GetRequiredService<ILoggerProvider>().Dispose(); | ||
|
||
return Task.CompletedTask; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
namespace BilibiliLiveDanmuPreviewer; | ||
|
||
public enum InteractiveType | ||
{ | ||
进入 = 1, | ||
关注 = 2, | ||
分享直播间 = 3, | ||
特别关注 = 4, | ||
互相关注 = 5, | ||
点赞 = 6 | ||
} |
Oops, something went wrong.