Youtube support

This commit is contained in:
syuilo 2016-09-14 13:25:37 +09:00
parent 3f2cc08607
commit 80f479f9ea
4 changed files with 31 additions and 1 deletions

View File

@ -9,7 +9,8 @@ require('babel-polyfill');
const plugins: IPlugin[] = [ const plugins: IPlugin[] = [
require('./plugins/wikipedia'), require('./plugins/wikipedia'),
require('./plugins/soundcloud') require('./plugins/soundcloud'),
require('./plugins/youtube')
]; ];
export default async (url: string, options?: Options): Promise<string> => { export default async (url: string, options?: Options): Promise<string> => {

View File

@ -0,0 +1,27 @@
import * as URL from 'url';
const pug = require('pug');
import Options from '../../options';
exports.test = (url: URL.Url) =>
url.hostname == 'youtube.com' ||
url.hostname == 'www.youtube.com' ||
url.hostname == 'youtu.be'
;
exports.compile = async (url: URL.Url, opts: Options) => {
let videoId: string;
switch (url.hostname) {
case 'www.youtube.com':
case 'youtube.com':
videoId = url.query.v;
break;
case 'youtu.be':
videoId = url.pathname;
break;
}
return pug.renderFile(`${__dirname}/view.pug`, {
videoId
});
};

View File

@ -0,0 +1 @@
iframe.youtube(src='https://www.youtube.com/embed/' + videoId, width='380', height='250', frameborder='0', allowfullscreen)

View File

@ -30,6 +30,7 @@
"./src/options.ts", "./src/options.ts",
"./src/general/index.ts", "./src/general/index.ts",
"./src/plugins/wikipedia/index.ts", "./src/plugins/wikipedia/index.ts",
"./src/plugins/youtube/index.ts",
"./src/plugins/soundcloud/index.ts" "./src/plugins/soundcloud/index.ts"
] ]
} }