Compare commits

..

No commits in common. "b6ff40600562ef34d874b070a6b1f60d043d8515" and "13307e15a8c447493f4872814d550ce50cfbf957" have entirely different histories.

6 changed files with 20 additions and 69 deletions

View File

@ -1,16 +0,0 @@
stages:
- build
build:
image: mcr.microsoft.com/dotnet/sdk:8.0
stage: build
only:
- master
artifacts:
paths:
- publish
script:
- apt update -y
- apt install -y make zip tar
- make all

View File

@ -1,7 +0,0 @@
steps:
- name: build
image: mcr.microsoft.com/dotnet/sdk:8.0
commands:
- apt update -y
- apt install -y make zip tar
- make all

View File

@ -1,10 +0,0 @@
steps:
- name: deploy
image: woodpeckerci/plugin-release
settings:
files:
- 'publish/*/*'
api_key:
from_secret: ACCESS_TOKEN
depends_on:
- build

View File

@ -6,7 +6,7 @@
<title>TYTD Lite</title> <title>TYTD Lite</title>
<link rel="stylesheet" href="./beer.min.css"> <link rel="stylesheet" href="./beer.min.css">
<link rel="stylesheet" href="./theme.css"> <link rel="stylesheet" href="./theme.css">
<link rel="manifest" href="./site.webmanifest"> <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon">
</head> </head>
<body> <body>
<header> <header>

View File

@ -1,11 +1,6 @@
{{if notavailable}} {{if notavailable}}
<article class="error"> <article class="error">
<p>This video is unavailable on YouTube.</p> <p>This video is unavailable on YouTube</p>
</article>
{{end}}
{{if offline}}
<article class="error">
<p>We can't access YouTube right now.</p>
</article> </article>
{{end}} {{end}}
{{if invalidurl}} {{if invalidurl}}

View File

@ -142,8 +142,8 @@ server.Server.StartServer(port);
var video=VideoId.TryParse(v); var video=VideoId.TryParse(v);
if(video.HasValue) if(video.HasValue)
{ {
var (_v,rfy,off)=await GetSavedVideoAsync(video.Value); var (_v,rfy)=await GetSavedVideoAsync(video.Value);
await ctx.SendJsonAsync(new{Video=_v,RemovedFromYouTube=rfy,Offline=off}); await ctx.SendJsonAsync(new{Video=_v,RemovedFromYouTube=rfy});
} }
else else
await ctx.SendNotFoundAsync(); await ctx.SendNotFoundAsync();
@ -220,7 +220,7 @@ server.Server.StartServer(port);
await PreformTask(video.Value,res,new Progress<double>(e=>{ await PreformTask(video.Value,res,new Progress<double>(e=>{
})); }));
var (svideo,_,_) = await GetSavedVideoAsync(video.Value); var (svideo,_) = await GetSavedVideoAsync(video.Value);
switch(res) switch(res)
{ {
@ -263,11 +263,10 @@ server.Server.StartServer(port);
} }
} }
private async Task<(SavedVideo video,bool removedByYt,bool offline)> GetSavedVideoAsync(VideoId id) private async Task<(SavedVideo video,bool removedByYt)> GetSavedVideoAsync(VideoId id)
{ {
string _id = id.Value; string _id = id.Value;
bool removedByYt=false; bool removedByYt=false;
bool offline=false;
SavedVideo video=new SavedVideo(); SavedVideo video=new SavedVideo();
await LockAsync(async()=>{ await LockAsync(async()=>{
var _video=Videos.FindOne(e=>e.VideoId == _id); var _video=Videos.FindOne(e=>e.VideoId == _id);
@ -300,11 +299,6 @@ server.Server.StartServer(port);
_=ex; _=ex;
removedByYt=true; removedByYt=true;
} }
catch(Exception ex)
{
_=ex;
offline=true;
}
} }
} }
else else
@ -336,7 +330,7 @@ server.Server.StartServer(port);
} }
} }
}); });
return (video,removedByYt,offline); return (video,removedByYt);
} }
private async Task DownloadThumbnailsAsync(VideoId id) private async Task DownloadThumbnailsAsync(VideoId id)
@ -653,10 +647,8 @@ server.Server.StartServer(port);
{ {
case "PreMuxed": case "PreMuxed":
{ {
var (video,removedByYT,off) = await GetSavedVideoAsync(id); var (video,removedByYT) = await GetSavedVideoAsync(id);
if(off && !Directory.Exists(Path.Combine(ServerPath,"PreMuxed")) && !File.Exists(Path.Combine(ServerPath,"PreMuxed",$"{video.VideoId}.{(video.PreMuxed != null ? video.PreMuxed.Container : "mp4")}")))
throw new VideoUnavailableException("We don't have access to YouTube");
if(removedByYT && !Directory.Exists(Path.Combine(ServerPath,"PreMuxed")) && !File.Exists(Path.Combine(ServerPath,"PreMuxed",$"{video.VideoId}.{(video.PreMuxed != null ? video.PreMuxed.Container : "mp4")}"))) if(removedByYT && !Directory.Exists(Path.Combine(ServerPath,"PreMuxed")) && !File.Exists(Path.Combine(ServerPath,"PreMuxed",$"{video.VideoId}.{(video.PreMuxed != null ? video.PreMuxed.Container : "mp4")}")))
throw new VideoUnavailableException("We dont have the video either"); throw new VideoUnavailableException("We dont have the video either");
@ -665,9 +657,8 @@ server.Server.StartServer(port);
break; break;
case "AudioOnly": case "AudioOnly":
{ {
var (video,removedByYT,off) = await GetSavedVideoAsync(id); var (video,removedByYT) = await GetSavedVideoAsync(id);
if(off && !Directory.Exists(Path.Combine(ServerPath,"AudioOnly")) && !File.Exists(Path.Combine(ServerPath,"AudioOnly",$"{video.VideoId}.{(video.AudioOnly != null ? video.AudioOnly.Container : "mp4")}")))
throw new VideoUnavailableException("We don't have access to YouTube");
if(removedByYT && !Directory.Exists(Path.Combine(ServerPath,"AudioOnly")) && !File.Exists(Path.Combine(ServerPath,"AudioOnly",$"{video.VideoId}.{(video.AudioOnly != null ? video.AudioOnly.Container : "mp4")}"))) if(removedByYT && !Directory.Exists(Path.Combine(ServerPath,"AudioOnly")) && !File.Exists(Path.Combine(ServerPath,"AudioOnly",$"{video.VideoId}.{(video.AudioOnly != null ? video.AudioOnly.Container : "mp4")}")))
throw new VideoUnavailableException("We dont have the video either"); throw new VideoUnavailableException("We dont have the video either");
@ -676,9 +667,8 @@ server.Server.StartServer(port);
break; break;
case "VideoOnly": case "VideoOnly":
{ {
var (video,removedByYT,off) = await GetSavedVideoAsync(id); var (video,removedByYT) = await GetSavedVideoAsync(id);
if(off && !Directory.Exists(Path.Combine(ServerPath,"VideoOnly")) && !File.Exists(Path.Combine(ServerPath,"VideoOnly",$"{video.VideoId}.{(video.VideoOnly != null ? video.VideoOnly.Container : "mp4")}")))
throw new VideoUnavailableException("We don't have access to YouTube");
if(removedByYT && !Directory.Exists(Path.Combine(ServerPath,"VideoOnly")) && !File.Exists(Path.Combine(ServerPath,"VideoOnly",$"{video.VideoId}.{(video.VideoOnly != null ? video.VideoOnly.Container : "mp4")}"))) if(removedByYT && !Directory.Exists(Path.Combine(ServerPath,"VideoOnly")) && !File.Exists(Path.Combine(ServerPath,"VideoOnly",$"{video.VideoId}.{(video.VideoOnly != null ? video.VideoOnly.Container : "mp4")}")))
throw new VideoUnavailableException("We dont have the video either"); throw new VideoUnavailableException("We dont have the video either");
@ -687,7 +677,7 @@ server.Server.StartServer(port);
break; break;
case "MP3": case "MP3":
{ {
var (video,removedByYT,off) = await GetSavedVideoAsync(id); var (video,removedByYT) = await GetSavedVideoAsync(id);
if(!HasConverter && !Directory.Exists(Path.Combine(ServerPath,"MP3")) && !File.Exists(Path.Combine(ServerPath,"MP3",$"{id}.mp3"))) if(!HasConverter && !Directory.Exists(Path.Combine(ServerPath,"MP3")) && !File.Exists(Path.Combine(ServerPath,"MP3",$"{id}.mp3")))
throw new OperationCanceledException("We don't have the converter."); throw new OperationCanceledException("We don't have the converter.");
@ -697,7 +687,7 @@ server.Server.StartServer(port);
break; break;
case "MP4": case "MP4":
{ {
var (video,removedByYT,off) = await GetSavedVideoAsync(id); var (video,removedByYT) = await GetSavedVideoAsync(id);
if(!HasConverter && !Directory.Exists(Path.Combine(ServerPath,"MP4")) && !File.Exists(Path.Combine(ServerPath,"MP4",$"{id}.mp4"))) if(!HasConverter && !Directory.Exists(Path.Combine(ServerPath,"MP4")) && !File.Exists(Path.Combine(ServerPath,"MP4",$"{id}.mp4")))
throw new OperationCanceledException("We don't have the converter."); throw new OperationCanceledException("We don't have the converter.");
@ -707,7 +697,7 @@ server.Server.StartServer(port);
break; break;
case "MKV": case "MKV":
{ {
var (video,removedByYT,off) = await GetSavedVideoAsync(id); var (video,removedByYT) = await GetSavedVideoAsync(id);
if(!HasConverter && !Directory.Exists(Path.Combine(ServerPath,"MKV")) && !File.Exists(Path.Combine(ServerPath,"MKV",$"{id}.mkv"))) if(!HasConverter && !Directory.Exists(Path.Combine(ServerPath,"MKV")) && !File.Exists(Path.Combine(ServerPath,"MKV",$"{id}.mkv")))
throw new OperationCanceledException("We don't have the converter."); throw new OperationCanceledException("We don't have the converter.");
@ -746,13 +736,12 @@ server.Server.StartServer(port);
if(id.HasValue) if(id.HasValue)
{ {
(SavedVideo video,bool notavailable,bool offline)=await GetSavedVideoAsync(id.Value); (SavedVideo video,bool notavailable)=await GetSavedVideoAsync(id.Value);
bool premuxed = (notavailable || offline) ? await StreamExistsAsync(video,"PreMuxed") : true; bool premuxed = notavailable ? await StreamExistsAsync(video,"PreMuxed") : true;
bool audioonly = (notavailable || offline) ? await StreamExistsAsync(video,"AudioOnly") : true; bool audioonly = notavailable ? await StreamExistsAsync(video,"AudioOnly") : true;
bool videoonly = (notavailable || offline) ? await StreamExistsAsync(video,"VideoOnly") : true; bool videoonly = notavailable ? await StreamExistsAsync(video,"VideoOnly") : true;
bool converter=HasConverter; //change me bool converter=HasConverter; //change me
result = new { result = new {
offline,
notavailable, notavailable,
premuxed, premuxed,
audioonly, audioonly,