根据最新的电影数据结构修改

This commit is contained in:
zhl 2019-04-28 11:04:54 +08:00
parent dcceb648d1
commit 8fcd8d1ae0
2 changed files with 54 additions and 24 deletions

View File

@ -6,21 +6,9 @@ const Movies = new Schema({
gid: {type: Number, required: true},
// 电影名
name: {type: String},
name_alias: {type: String},
/**
科幻片: 1
喜剧片: 2
剧情片: 3
动作片: 4
动漫: 5
恐怖片: 6
爱情片: 7
动画片: 8
悬疑片: 9
战争片: 10
其他: 11
* */
type: {type: Number},
nameAlias: {type: String},
// 类型
type: [{type: String}],
// 电影评分
score: {type: Number},
// 电影介绍
@ -29,9 +17,9 @@ const Movies = new Schema({
language: {type: String},
img: {type: String},
// 导演
daoYan: {type: String},
daoYan: [{type: String}],
// 主演
zhuYan: {type: String},
zhuYan: [{type: String}],
// 资源
resources: [{
_id: false,
@ -39,7 +27,7 @@ const Movies = new Schema({
link: {type: String},
}],
// 地区
region: {type: String},
region: [{type: String}],
// 年份
year: {type: Number},
// 真实的播放数量

View File

@ -1,7 +1,8 @@
import netUtil from "../utils/net.util";
import cheerio from "cheerio";
import stringUtil from '../utils/string.util';
import SpiderDataModel from "../models/SpiderData";
import SpiderData from "../models/SpiderData";
import Movie from '../models/Movies';
import generalQueue from '../utils/general.queue';
const parseOnePage = async (subLink) => {
@ -30,7 +31,7 @@ const parseOnePage = async (subLink) => {
releaseDate: $('meta[property="og:video:release_date"]').attr('content'),
type: $('meta[property="og:video:class"]').attr('content')
}
let sdata = new SpiderDataModel({
let sdata = new SpiderData({
type: 'movie',
data: obj,
status: 0
@ -89,9 +90,50 @@ const parseAllMovie = async () => {
}
}
}
export default {
run: async () => {
await parseAllMovie();
// 将下载的电影导入到正式表中
const parseAllMovieToDb = async () => {
try {
let list = await SpiderData.find({type: 'movie'});
for (let obj of list) {
let data = obj.data;
let typeArr = data.type.split(',');
let resourceStr = data.playResourceUrl;
let arr = resourceStr.replace(/\|/g, '#').split('#');
let resourceArr = [];
for (let str of arr) {
resourceArr.push({
title: str.substring(0, str.indexOf('$')),
link: str.substring(str.indexOf('$') + 1)
})
}
let record = new Movie({
gid: data.id,
name: data.name,
nameAlias: data.name_alias,
type: typeArr,
score: data.grade,
introduce: data.introduce,
language: data.language,
img: data.img,
daoYan: data.daoYan.split(','),
zhuYan: data.zhuYan.split(','),
region: data.region.split(','),
year: data.releaseDate,
sortIdx: 0,
price: 10,
resources: resourceArr,
published: true,
});
await record.save();
}
} catch (err) {
console.log(err);
}
}
export default {
run: async () => {
// await parseAllMovie();
await parseAllMovieToDb();
console.log('all done');
}
}