Skip to content

Commit

Permalink
Addying vue tab
Browse files Browse the repository at this point in the history
  • Loading branch information
sir-kain committed Sep 15, 2019
1 parent 5c6661e commit 1091cb9
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 5 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"name": "vscode-mediaplayer",
"displayName": "vscode-mediaplayer",
"description": "vscode extension to play media",
"publisher": "sirkane",
"version": "0.0.1",
"engines": {
"vscode": "^1.34.0"
Expand Down
3 changes: 2 additions & 1 deletion src/data/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ export const Commands = {
favTrack: "vsmp.pl.favTrack",
unFavTrack: "vsmp.pl.unFavTrack",
openFolder: "vsmp.openFolder",
searchMedia: "vsmp.searchMedia"
searchMedia: "vsmp.searchMedia",
viewTrackDetail: "vsmp.viewTrackDetail"
};
1 change: 1 addition & 0 deletions src/data/models/Track.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ export interface Track {
title: string;
icon: string | null;
url: string;
description: string | null;
}
10 changes: 8 additions & 2 deletions src/data/resources.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,17 @@ export async function searchTracks(provider: string, name: string): Promise<Trac
break;
case "YouTube":
tracks = await youtube.searchVideos(name, 20);
console.log(tracks);
tracks = tracks.map((data: any) => {
return {
title: data.title,
icon: data.raw.snippet.thumbnails.default.url,
url: `https://www.youtube.com/watch?v=${data.id}`
url: `https://www.youtube.com/watch?v=${data.id}`,
description: data.description
};
});

console.log('tracks ==>', tracks);
break;
case "Podcast":
res = await fetch("https://listen-api.listennotes.com/api/v2/search?type=episode&q=" + encodeURIComponent(name), {
Expand All @@ -43,11 +47,13 @@ export async function searchTracks(provider: string, name: string): Promise<Trac
}
});
let resJson = await res.json();
console.log('resJson[] ==>', resJson['results']);
tracks = resJson["results"].map((data: any) => {
return {
title: data.title_original,
icon: data.thumbnail,
url: data.audio
url: data.audio,
description: data.description_original
};
});
break;
Expand Down
43 changes: 41 additions & 2 deletions src/extension.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ExtensionContext, commands, window, Uri, StatusBarAlignment } from "vscode";
import { ExtensionContext, commands, window, Uri, StatusBarAlignment, workspace, ViewColumn } from "vscode";
import * as ressources from "./data/resources";
import { playHandler, jumpToPrevHandler, jumpToNextHandler, pauseHandler, nextHandler, prevHandler, resumeHandler, loadPlaylistHandler, getTimePositionFormated } from "./commands";
import { Commands } from "./data/constants";
Expand Down Expand Up @@ -92,6 +92,25 @@ function registerCommands() {
const tracks = fileContent.filter(content => content !== track);
fileHandler.writeFile(config.favFile, tracks);
});

commands.registerCommand(Commands.viewTrackDetail, (track: Track) => {
console.log('track ==>', track);
// const uri = Uri.parse("ok:" + track.title);
// Create and show panel

commands.executeCommand('markdown.api.render', track.description).then(result => {
console.log(`rendered markdown: ${result}`);
const panel = window.createWebviewPanel(
'vscmp',
track.title,
ViewColumn.One,
{}
);

// And set its HTML content
panel.webview.html = getWebviewContent(track, result);
});
});
}

async function initializer() {
Expand Down Expand Up @@ -315,4 +334,24 @@ mpv.on('timeposition', async (timePosInSecond: number) => {

mpv.on('crashed', () => {
console.log("crached");
});
});

function getWebviewContent(track: Track, result: any) {
return `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>${track.title}</title>
</head>
<body>
<div>
<h2> ${track.title} </h2>
<img src="${track.icon}" width="200" />
<p>
${result}
</p>
</div>
</body>
</html>`;
}

0 comments on commit 1091cb9

Please sign in to comment.