增加电影从原始数据到movie表的转换

This commit is contained in:
zhl 2019-04-24 21:01:51 +08:00
parent 8177e4dc6d
commit 0894a2239f
3 changed files with 122 additions and 1 deletions

View File

@ -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});

67
src/models/Movies.js Normal file
View File

@ -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;

52
src/sites/movie.js Normal file
View File

@ -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);
}
}
}