From 0894a2239fda5ee3ca56a5909f1ed44db6e6c110 Mon Sep 17 00:00:00 2001 From: zhl Date: Wed, 24 Apr 2019 21:01:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=B5=E5=BD=B1=E4=BB=8E?= =?UTF-8?q?=E5=8E=9F=E5=A7=8B=E6=95=B0=E6=8D=AE=E5=88=B0movie=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.js | 4 ++- src/models/Movies.js | 67 ++++++++++++++++++++++++++++++++++++++++++++ src/sites/movie.js | 52 ++++++++++++++++++++++++++++++++++ 3 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 src/models/Movies.js create mode 100644 src/sites/movie.js diff --git a/src/app.js b/src/app.js index eb8c3e4..dea456d 100644 --- a/src/app.js +++ b/src/app.js @@ -4,6 +4,7 @@ import logger from './utils/logger'; import glob from 'glob'; import config from '../config/config'; import hoh8 from './sites/hoh8'; +import movie from './sites/movie'; import book from './sites/book'; import bookChapter from './sites/bookChapter'; @@ -19,7 +20,8 @@ db.on('error', function (err) { db.once('open', function () { logger.info('Connected to db.'); // hoh8.run(); - book.run(); + // book.run(); + movie.run(); // bookChapter.run(); }); mongoose.connect(config.db, {promiseLibrary: Promise, useNewUrlParser: true}); diff --git a/src/models/Movies.js b/src/models/Movies.js new file mode 100644 index 0000000..645ab3d --- /dev/null +++ b/src/models/Movies.js @@ -0,0 +1,67 @@ +import mongoose from 'mongoose'; + +const Schema = mongoose.Schema; + +const Movies = new Schema({ + gid: {type: Number, required: true}, + // 电影名 + name: {type: String}, + /** + 科幻片: 1 + 喜剧片: 2 + 剧情片: 3 + 动作片: 4 + 动漫: 5 + 恐怖片: 6 + 爱情片: 7 + 动画片: 8 + 悬疑片: 9 + 战争片: 10 + 其他: 11 + * */ + type: {type: Number}, + // 电影评分 + score: {type: Number}, + // 电影介绍 + introduce: {type: String}, + // 语言 + language: {type: String}, + img: {type: String}, + // 导演 + daoYan: {type: String}, + // 主演 + zhuYan: {type: String}, + // 资源 + resources: [{ + _id: false, + title: {type: String}, + link: {type: String}, + }], + // 地区 + region: {type: String}, + // 年份 + year: {type: Number}, + // 真实的播放数量 + playCount: {type: Number, default: 0}, + // 显示的播放数量 + showCount: {type: Number, default: 1000}, + // 排序字段, 倒序 + sortIdx: {type: Number}, + // 购买价格 + price: {type: Number}, + // 是否已删除 + deleted: {type: Boolean, default: false}, + delete_time: {type: Date}, + // 是否已发布, 客户端只会获取到published为true的游戏 + published: {type: Boolean, default: false}, +}, { + collection: 'movies', + timestamps: true, +}); + +const MovieModel = mongoose.model('Movies', Movies); +MovieModel.findByGid = function(gid) { + return MovieModel.findOne({gid: gid, deleted: false}); +}; + +export default MovieModel; diff --git a/src/sites/movie.js b/src/sites/movie.js new file mode 100644 index 0000000..5a2b7f7 --- /dev/null +++ b/src/sites/movie.js @@ -0,0 +1,52 @@ +import SpiderData from '../models/SpiderData'; +import Movie from '../models/Movies'; +const typeArr = ['科幻片','喜剧片', '剧情片','动作片','动漫','恐怖片','爱情片','动画片','悬疑片','战争片']; + +// 将下载的电影导入到正式表中 +const parseAllMovie = async () => { + try { + let list = await SpiderData.find({type: 'movie'}); + for (let obj of list) { + let data = obj.data; + let typeIdx = typeArr.indexOf(data.type) + 1; + 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, + type: typeIdx, + score: data.grade, + introduce: data.introduce, + language: data.language, + img: data.img, + daoYan: data.daoYan, + zhuYan: data.zhuYan, + region: data.region, + year: data.releaseDate, + sortIdx: 0, + price: 10, + resources: resourceArr + }); + await record.save(); + } + } catch (err) { + console.log(err); + } +} +export default { + run: async () => { + try { + parseAllMovie(); + } catch (err) { + console.log(err); + } + + } +}