增加电影从原始数据到movie表的转换
This commit is contained in:
parent
8177e4dc6d
commit
0894a2239f
@ -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
67
src/models/Movies.js
Normal 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
52
src/sites/movie.js
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user