diff --git a/src/models/Movies.js b/src/models/Movies.js index 0482b81..551236c 100644 --- a/src/models/Movies.js +++ b/src/models/Movies.js @@ -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}, // 真实的播放数量 diff --git a/src/sites/dandanzan.js b/src/sites/dandanzan.js index 8d83a3a..e5ca4be 100644 --- a/src/sites/dandanzan.js +++ b/src/sites/dandanzan.js @@ -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'); } }