UNPKG

hexo-tag-music-player

Version:

hexo简约的tag音乐播放器

62 lines (59 loc) 2.19 kB
/* global hexo */ 'use strict'; const path = require('path'); const fs = require('hexo-fs'); const source_dir = hexo.source_dir; const base_dir = hexo.base_dir; const { createProxyMiddleware } = require('http-proxy-middleware') /* nginx用的反代理 */ const apiProxy = createProxyMiddleware('/api', { target: 'http://music.163.com/api/', changeOrigin: true, pathRewrite: { '^/api/': '/', // rewrite path 将链接中的 /api/ 替换为 '/' }, }); hexo.extend.filter.register('server_middleware', function (app) { // 表示以 api 开头的请求将被转发 app.use('/api', apiProxy); }); // 是否是vercel环境 if (hexo.config['tag_music_player']['vercel']) { const content = `module.exports = (req, res) => { require('hexo-tag-music-player/api/index.js')(req, res) }`; if (!fs.existsSync(path.join(base_dir, 'api/index.js'))) { if (!fs.existsSync(path.join(base_dir, 'api'))) { fs.writeFile(path.join(base_dir, 'api/index.js'), content, { flag: 'w' }); } else { fs.writeFile(path.join(base_dir, 'api/index.js'), content, { flag: 'w' }); } } else { // 获得文件内容 const content2 = fs.readFileSync(path.join(base_dir, 'api/index.js')); // 如果有api/index.js但是内容没有,就添加 if (!content2.includes(`require('hexo-tag-music-player/api/index.js')(req, res)`)) { const content3 = content2.split('\n'); content3.forEach((item, index) => { if (item.includes('module.exports = (req, res)')) { content3.splice(index + 1, 0, `//tag-music-player用的反代理\nrequire('hexo-tag-music-player/api/index.js')(req, res)`); fs.writeFile(path.join(base_dir, 'api/index.js'), content3.join('\n'), { flag: 'w' }); } }); } } } /* hexo-tag */ const listMode = require('./util/list-mode'); const { log } = require('console'); hexo.extend.tag.register('musicPlay', function (args) { switch (args[0]) { case 'list': return listMode(args, source_dir); break; case 'singe': console.log('singe'); break; default: return '模式(mode)参数错误'; } }, { async: true });