增加电影从原始数据到movie表的转换
This commit is contained in:
parent
8177e4dc6d
commit
0894a2239f
@ -4,6 +4,7 @@ import logger from './utils/logger';
|
|||||||
import glob from 'glob';
|
import glob from 'glob';
|
||||||
import config from '../config/config';
|
import config from '../config/config';
|
||||||
import hoh8 from './sites/hoh8';
|
import hoh8 from './sites/hoh8';
|
||||||
|
import movie from './sites/movie';
|
||||||
import book from './sites/book';
|
import book from './sites/book';
|
||||||
import bookChapter from './sites/bookChapter';
|
import bookChapter from './sites/bookChapter';
|
||||||
|
|
||||||
@ -19,7 +20,8 @@ db.on('error', function (err) {
|
|||||||
db.once('open', function () {
|
db.once('open', function () {
|
||||||
logger.info('Connected to db.');
|
logger.info('Connected to db.');
|
||||||
// hoh8.run();
|
// hoh8.run();
|
||||||
book.run();
|
// book.run();
|
||||||
|
movie.run();
|
||||||
// bookChapter.run();
|
// bookChapter.run();
|
||||||
});
|
});
|
||||||
mongoose.connect(config.db, {promiseLibrary: Promise, useNewUrlParser: true});
|
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