This repository was archived by the owner on Sep 12, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathProgram.cs
More file actions
140 lines (92 loc) · 3 KB
/
Copy pathProgram.cs
File metadata and controls
140 lines (92 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using System.Runtime.InteropServices.JavaScript;
using Microsoft.AspNetCore.HttpLogging;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using System.Text;
using Lincon;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddAntiforgery();
builder.Services.AddMvcCore();
builder.Services.AddControllers()
.AddXmlSerializerFormatters();
// to create db on your other machine
// https://learn.microsoft.com/en-us/ef/core/get-started/overview/first-app?tabs=netcore-cli
builder.Services.AddHttpLogging(logging =>
{
logging.LoggingFields = HttpLoggingFields.All;
logging.RequestHeaders.Add("sec-ch-ua");
logging.ResponseHeaders.Add("MyResponseHeader");
logging.MediaTypeOptions.AddText("application/javascript");
logging.RequestBodyLogLimit = 4096;
logging.ResponseBodyLogLimit = 4096;
logging.CombineLogs = true;
});
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddOpenApiDocument(config =>
{
config.DocumentName = "Lincon";
config.Title = "Lincon";
config.Version = "v1";
});
var app = builder.Build();
app.UseHttpLogging();
app.UseOpenApi();
app.UseSwaggerUi(config =>
{
config.DocumentTitle = "TodoAPI";
config.Path = "/swagger";
config.DocumentPath = "/swagger/{documentName}/swagger.json";
config.DocExpansion = "list";
});
// download/update yt-dlp
await YoutubeDLSharp.Utils.DownloadBinaries(true); // set to false so it auto updates, will be a TINY but slower on startup
Console.WriteLine("Welcome to Lincoln!");
//
// call classes here (read my lips NO new controllers)
// web pages (home and maybe classic login)
HandleWebpages.HandlePages(app);
// device registration crap
DeviceRegistration.HandleDevices(app);
// categories
HandleCategories.Handle(app);
// search
SearchFeed.HandleFeed(app);
// playlist search
PlaylistSnippetsFeed.HandleFeed(app);
// standard feeds
StandardFeeds.HandleFeed(app);
// comments
CommentFeed.HandleFeed(app);
// releated
RelatedFeed.HandleFeed(app);
// user info
UserFeeds.HandleFeed(app);
// playlists info
PlaylistInfoFeed.HandleFeed(app);
// user uploads
UploadsFeed.HandleFeed(app);
// video file/video playback
GetVideo.HandleVideos(app);
// auth/login stuff
HandleLogin.HandleStuff(app);
// default subs
DefaultSubscriptionsFeed.HandleFeed(app);
// default rec
RecommendationsFeed.HandleFeed(app);
// default new subs videos
NewSubscriptionVideosFeed.HandleFeed(app);
// default subtivty feed
SubtivityFeed.HandleFeed(app);
// defaut watch history
WatchHistoryFeed.HandleFeed(app);
// default favourites feed (aka liked videos)
FavouritesFeed.HandleFeed(app);
// defaut watch later
WatchLaterFeed.HandleFeed(app);
// default playlists
DefaultPlaylists.HandleFeed(app);
// default user interactions
UserInteractions.HandleFeed(app);
app.Run();