添加更多源

main
amuliang 2023-08-02 22:49:56 +08:00
parent 5e8a049014
commit 5f58cbfe3b
9 changed files with 213 additions and 74 deletions

View File

@ -6,7 +6,7 @@ const { storeMusic, storeLrc, storePic } = require('./model/StoreModel');
const { SuccessResult, ErrorResult } = require('./model/ResultModel'); const { SuccessResult, ErrorResult } = require('./model/ResultModel');
const { QQSource } = require('./source/QQSource'); const { QQSource } = require('./source/QQSource');
const { MyFreemp3QQSource } = require('./source/MyFreemp3QQSource'); const mfm = require('./source/MyFreemp3Source');
// 防止进程中断 // 防止进程中断
// process.on('uncaughtException', function (err) { // process.on('uncaughtException', function (err) {
@ -15,8 +15,20 @@ const { MyFreemp3QQSource } = require('./source/MyFreemp3QQSource');
// *********************************************************************** // ***********************************************************************
// 注册源 // 注册源
const searcher = new SearchModel(); const searcher = new SearchModel();
searcher.registerSourceModel(new QQSource()); //searcher.registerSourceModel(new QQSource());
searcher.registerSourceModel(new MyFreemp3QQSource()); searcher.registerSourceModel(new mfm.MyFreemp3QQSource());
searcher.registerSourceModel(new mfm.MyFreemp3NeteaseSource());
searcher.registerSourceModel(new mfm.MyFreemp3KugouSource());
searcher.registerSourceModel(new mfm.MyFreemp3KuwoSource());
searcher.registerSourceModel(new mfm.MyFreemp3MiguSource());
searcher.registerSourceModel(new mfm.MyFreemp3QianqianSource());
searcher.registerSourceModel(new mfm.MyFreemp3QingtingSource());
searcher.registerSourceModel(new mfm.MyFreemp3XimalayaSource());
searcher.registerSourceModel(new mfm.MyFreemp3LizhiSource());
searcher.registerSourceModel(new mfm.MyFreemp3KgSource());
searcher.registerSourceModel(new mfm.MyFreemp31tingSource());
searcher.registerSourceModel(new mfm.MyFreemp35singycSource());
searcher.registerSourceModel(new mfm.MyFreemp35singfcSource());
// *********************************************************************** // ***********************************************************************

View File

@ -1,52 +0,0 @@
const { SourceModel } = require('../model/SourceModel');
class MyFreemp3QQSource extends SourceModel {
constructor() {
super();
this.name = "MyFreemp3_QQ";
}
async search(keywords) {
keywords = encodeURIComponent(keywords);
// POST请求
let options = {
url: `http://myfreemp3.sharerj.com/?name=${keywords}&type=qq`,
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
//'Host': 'myfreemp3.sharerj.com',
//'Origin': 'http://myfreemp3.sharerj.com',
//'Referer': `http://myfreemp3.sharerj.com/?name=${keywords}&type=qq`,
//'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.183',
//'Accept': 'application/json, text/javascript, */*; q=0.01',
'X-Requested-With': 'XMLHttpRequest', //此行必须填写
//'Cookie': '__gads=ID=f167a79e430852c8-227b3bd2b6e70079:T=1690680059:RT=1690680059:S=ALNI_MZixvU2-9BVQv0qTuN2kVnZttuZIQ; __gpi=UID=00000d30f9e155c5:T=1690680059:RT=1690680059:S=ALNI_MZtwSz24f5LJ-tGCRKRuzz0AFH5rA'
},
json: true, //将body解析为json
body: `input=${keywords}&filter=name&type=qq&page=1`
};
let result = await this.request(options);
if(result.data instanceof Array) {
result = result.data.map(item => {
return {
title: item.title,
author: item.author,
url: item.url,
link: item.link,
lrc: item.lrc,
pic: item.pic,
source_name: this.getName()
}
});
}else {
result = result;
}
return result;
}
}
module.exports = {
MyFreemp3QQSource
}

View File

@ -0,0 +1,173 @@
const { SourceModel } = require('../model/SourceModel');
class MyFreemp3Source {
}
class MyFreemp3Source extends SourceModel {
constructor() {
super();
this.type = 'qq';
this.name = "MyFreemp3_QQ";
}
async search(keywords) {
keywords = encodeURIComponent(keywords);
// POST请求
let options = {
url: `http://myfreemp3.sharerj.com/?name=${keywords}&type=${this.type}`,
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
//'Host': 'myfreemp3.sharerj.com',
//'Origin': 'http://myfreemp3.sharerj.com',
//'Referer': `http://myfreemp3.sharerj.com/?name=${keywords}&type=qq`,
//'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.183',
//'Accept': 'application/json, text/javascript, */*; q=0.01',
'X-Requested-With': 'XMLHttpRequest', //此行必须填写
//'Cookie': '__gads=ID=f167a79e430852c8-227b3bd2b6e70079:T=1690680059:RT=1690680059:S=ALNI_MZixvU2-9BVQv0qTuN2kVnZttuZIQ; __gpi=UID=00000d30f9e155c5:T=1690680059:RT=1690680059:S=ALNI_MZtwSz24f5LJ-tGCRKRuzz0AFH5rA'
},
json: true, //将body解析为json
body: `input=${keywords}&filter=name&type=${this.type}&page=1`
};
let result = await this.request(options);
if(result.data instanceof Array) {
result = result.data.map(item => {
return {
title: item.title,
author: item.author,
url: item.url,
link: item.link,
lrc: item.lrc,
pic: item.pic,
source_name: this.getName()
}
});
}else {
result = result;
}
return result;
}
}
class MyFreemp3QQSource extends MyFreemp3Source {
constructor() {
super();
this.type = 'qq';
this.name = "MyFreemp3_QQ";
}
}
class MyFreemp3NeteaseSource extends MyFreemp3Source {
constructor() {
super();
this.type = 'netease';
this.name = "MyFreemp3_网易";
}
}
class MyFreemp3KugouSource extends MyFreemp3Source {
constructor() {
super();
this.type = 'kugou';
this.name = "MyFreemp3_酷狗";
}
}
class MyFreemp3KuwoSource extends MyFreemp3Source {
constructor() {
super();
this.type = 'kuwo';
this.name = "MyFreemp3_酷我";
}
}
class MyFreemp3QianqianSource extends MyFreemp3Source {
constructor() {
super();
this.type = 'baidu';
this.name = "MyFreemp3_千千";
}
}
class MyFreemp31tingSource extends MyFreemp3Source {
constructor() {
super();
this.type = '1ting';
this.name = "MyFreemp3_一听";
}
}
class MyFreemp3MiguSource extends MyFreemp3Source {
constructor() {
super();
this.type = 'migu';
this.name = "MyFreemp3_咪咕";
}
}
class MyFreemp3LizhiSource extends MyFreemp3Source {
constructor() {
super();
this.type = 'lizhi';
this.name = "MyFreemp3_荔枝";
}
}
class MyFreemp3QingtingSource extends MyFreemp3Source {
constructor() {
super();
this.type = 'qingting';
this.name = "MyFreemp3_蜻蜓";
}
}
class MyFreemp3XimalayaSource extends MyFreemp3Source {
constructor() {
super();
this.type = 'ximalaya';
this.name = "MyFreemp3_喜马拉雅";
}
}
class MyFreemp35singycSource extends MyFreemp3Source {
constructor() {
super();
this.type = '5singyc';
this.name = "MyFreemp3_5sing原创";
}
}
class MyFreemp35singfcSource extends MyFreemp3Source {
constructor() {
super();
this.type = '5singfc';
this.name = "MyFreemp3_5sing翻唱";
}
}
class MyFreemp3KgSource extends MyFreemp3Source {
constructor() {
super();
this.type = 'kg';
this.name = "MyFreemp3_全民K歌";
}
}
module.exports = {
MyFreemp3QQSource,
MyFreemp3NeteaseSource,
MyFreemp3KugouSource,
MyFreemp3KuwoSource,
MyFreemp3QianqianSource,
MyFreemp31tingSource,
MyFreemp3MiguSource,
MyFreemp3LizhiSource,
MyFreemp3QingtingSource,
MyFreemp3XimalayaSource,
MyFreemp35singycSource,
MyFreemp35singfcSource,
MyFreemp3KgSource
}

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title> <title>音乐下载器-AML</title>
<link rel="stylesheet" href="static/js/iview/styles/iview.css"> <link rel="stylesheet" href="static/js/iview/styles/iview.css">
<script type="text/javascript" src="static/js/vue.min.js"></script> <script type="text/javascript" src="static/js/vue.min.js"></script>
<script type="text/javascript" src="static/js/iview/iview.min.js"></script> <script type="text/javascript" src="static/js/iview/iview.min.js"></script>

View File

@ -1,7 +0,0 @@
#!/bin/bash
# 下载依赖包
npm install
# 运行服务器端
node /music-downloader/app/main.js

View File

@ -1,11 +0,0 @@
#!/bin/bash
# 拉取代码
cd /
git clone http://192.168.1.253:9130/amuliang/music-downloader.git
# 运行服务
./server.sh &
./start.sh &
echo "start success !!!"

View File

@ -3,6 +3,9 @@
# 下载依赖包 # 下载依赖包
npm install http-server -g npm install http-server -g
wait
# 运行前端页面 # 运行前端页面
cd /music-downloader/html cd /music-downloader/html
echo "run html, localhost:8080"
http-server -p 8080 http-server -p 8080

11
start/server.sh 100644
View File

@ -0,0 +1,11 @@
#!/bin/bash
# 下载依赖包
cd /music-downloader
npm install
wait
# 运行服务器端
echo "run server, localhost:5000"
node /music-downloader/app/main.js

10
start/start.sh 100644
View File

@ -0,0 +1,10 @@
#!/bin/bash
# 拉取代码
git clone http://${REMOTE_ADDR}/amuliang/music-downloader.git /music-downloader
wait
# 运行服务
/start/server.sh &
/start/html.sh &
wait