From a48812cb58ea238db0ff76127e4c0734d19505ed Mon Sep 17 00:00:00 2001 From: snobu Date: Wed, 8 Apr 2020 09:20:31 +0300 Subject: [PATCH] Moved things around --- Metadata.ts | 29 +++++------------------------ Thumbnail.ts | 27 +++++++++++++++++++++++++++ Types.ts | 1 + 3 files changed, 33 insertions(+), 24 deletions(-) create mode 100644 Thumbnail.ts diff --git a/Metadata.ts b/Metadata.ts index 3ab46ba..20d199d 100644 --- a/Metadata.ts +++ b/Metadata.ts @@ -2,12 +2,14 @@ import axios from 'axios'; import { terminal as term } from 'terminal-kit'; import { Metadata, Session } from './Types'; import fs from 'fs'; +import os from 'os'; export async function getVideoMetadata(videoGuids: string[], session: Session): Promise { let metadata: Metadata[] = []; let title: string; let playbackUrl: string; + let posterImage: string; await Promise.all(videoGuids.map(async guid => { let apiUrl = `${session.ApiGatewayUri}videos/${guid}?api-version=${session.ApiGatewayVersion}`; @@ -25,35 +27,14 @@ export async function getVideoMetadata(videoGuids: string[], session: Session): item["mimeType"] == "application/vnd.apple.mpegurl") .map((item: { [x: string]: string }) => { return item["playbackUrl"]; })[0]; - let posterImageUrl = response.data["posterImage"]["medium"]["url"]; - - let a = async () => { - response = await axios.get(posterImageUrl, { - headers: { - Authorization: `Bearer ${session.AccessToken}` - }, - responseType: 'stream' - }); - - const writer = fs.createWriteStream('.thumbnail.png'); - response.data.pipe(writer); - - return new Promise((resolve, reject) => { - writer.on('finish', resolve); - writer.on('error', reject); - }); - - }; - - await a(); - - term.drawImage('.thumbnail.png', { shrink: { width: 50, height: 50 } }); + posterImage = response.data["posterImage"]["medium"]["url"]; term.brightMagenta(`\n title = ${title}\n playbackUrl = ${playbackUrl}\n`); metadata.push({ title: title, - playbackUrl: playbackUrl + playbackUrl: playbackUrl, + posterImage: posterImage }); })); diff --git a/Thumbnail.ts b/Thumbnail.ts new file mode 100644 index 0000000..a9d0a63 --- /dev/null +++ b/Thumbnail.ts @@ -0,0 +1,27 @@ +import os from 'os'; +import { terminal as term } from 'terminal-kit'; + + +if (os.platform() !== "win32") { + term.brightWhite("Platform is not Windows, let's draw some thumbnails!\n"); + let a = async () => { + response = await axios.get(posterImageUrl, { + headers: { + Authorization: `Bearer ${session.AccessToken}` + }, + responseType: 'stream' + }); + + const writer = fs.createWriteStream('.thumbnail.png'); + response.data.pipe(writer); + + return new Promise((resolve, reject) => { + writer.on('finish', resolve); + writer.on('error', reject); + }); + + }; + await a(); +} + +term.drawImage('.thumbnail.png', { shrink: { width: 50, height: 50 } }); \ No newline at end of file diff --git a/Types.ts b/Types.ts index 451c94c..adec86f 100644 --- a/Types.ts +++ b/Types.ts @@ -7,4 +7,5 @@ export type Session = { export type Metadata = { title: string; playbackUrl: string; + posterImage: string; } \ No newline at end of file