Add spinny on upload

Signed-off-by: Sam Therapy <sam@samtherapy.net>
This commit is contained in:
Sam Therapy 2022-06-19 16:17:04 +02:00
parent 428ee0d71c
commit 578e8ea540
Signed by: sam
GPG key ID: 4D8B07C18F31ACBD
2 changed files with 14 additions and 2 deletions

View file

@ -18,6 +18,14 @@ deno install --allow-read --allow-write --allow-run "https://git.froth.zone/sam/
you may need to add this to your PATH. An alternative I have is setting
`DENO_INSTALL_ROOT` to `~/.local/bin`, which I have in my PATH.
## Upgrading
You can upgrade in a similar way to installing:
```bash
deno cache --reload "https://git.froth.zone/sam/cytube-json-generator/raw/branch/master/generator.ts"
```
then [install](#installation) again.
## Usage
`generator video.mp4 subs.srt` will generate a JSON file for the video and

View file

@ -5,6 +5,7 @@ import {
underline,
} from "https://deno.land/std@0.139.0/fmt/colors.ts";
import { readableStreamFromReader } from "https://deno.land/std@0.139.0/streams/mod.ts";
import Kia from "https://deno.land/x/kia@0.4.1/mod.ts";
import srt2webvtt from "https://git.froth.zone/sam/srt-to-vtt/raw/branch/master/mod.ts";
async function main(): Promise<void> {
@ -169,7 +170,8 @@ async function ffprobe(videoFile: string): Promise<Record<string, unknown>> {
* @returns the URL of the uploaded file directly
*/
async function upload(location: string): Promise<string> {
console.log(`Uploading ${location}, this will take time...`);
const kia: Kia = new Kia(`Uploading ${location}, this will take time...`);
kia.start();
const file = await Deno.open(location, { read: true });
const stream = readableStreamFromReader(file);
@ -182,12 +184,14 @@ async function upload(location: string): Promise<string> {
},
body: stream,
}).catch(() => {
kia.fail(`Error uploading ${location}: fetch failed`);
Deno.exit(1);
});
const jsondata = await res.json().catch(() => {
kia.fail(`Error uploading ${location}: JSON response malformed`);
Deno.exit(1);
});
console.log(`Successfully uploaded ${location} to ${jsondata.url}.\n`);
kia.succeed(`Successfully uploaded ${location} to ${jsondata.url}.\n`);
return jsondata.direct_url;
}