mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-03-04 19:21:07 +01:00
add torrents,peers models mongodb Schema
This commit is contained in:
79
modules/announce/server/models/peer.server.model.js
Normal file
79
modules/announce/server/models/peer.server.model.js
Normal file
@@ -0,0 +1,79 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
var mongoose = require('mongoose'),
|
||||
Schema = mongoose.Schema;
|
||||
|
||||
/**
|
||||
* Peer Schema
|
||||
*/
|
||||
var PeerSchema = new Schema({
|
||||
user: {
|
||||
type: Schema.ObjectId,
|
||||
ref: 'User'
|
||||
},
|
||||
passkey: {
|
||||
type: String,
|
||||
default: '',
|
||||
trim: true
|
||||
},
|
||||
info_hash: {
|
||||
type: Buffer,
|
||||
default: ''
|
||||
},
|
||||
peer_id: {
|
||||
type: Buffer,
|
||||
default: ''
|
||||
},
|
||||
peer_compact: {
|
||||
type: Buffer,
|
||||
default: ''
|
||||
},
|
||||
peer_ip: {
|
||||
type: String,
|
||||
default: '',
|
||||
trim: true
|
||||
},
|
||||
peer_port: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
peer_uploaded: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
peer_downloaded: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
peer_seeder: {
|
||||
type: [{
|
||||
type: String,
|
||||
enum: ['yes', 'no']
|
||||
}],
|
||||
default: 'no'
|
||||
},
|
||||
peer_connectable: {
|
||||
type: [{
|
||||
type: String,
|
||||
enum: ['yes', 'no']
|
||||
}],
|
||||
default: 'no'
|
||||
},
|
||||
startedat: {
|
||||
type: Date,
|
||||
default: Date.now
|
||||
},
|
||||
finishedat: {
|
||||
type: Date,
|
||||
default: ''
|
||||
}
|
||||
});
|
||||
|
||||
PeerSchema.index({user: -1, startedat: -1});
|
||||
PeerSchema.index({info_hash: -1, startedat: -1});
|
||||
PeerSchema.index({passkey: -1, startedat: -1});
|
||||
|
||||
mongoose.model('Peer', PeerSchema);
|
||||
83
modules/announce/server/models/torrent.server.model.js
Normal file
83
modules/announce/server/models/torrent.server.model.js
Normal file
@@ -0,0 +1,83 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
var mongoose = require('mongoose'),
|
||||
Schema = mongoose.Schema;
|
||||
|
||||
/**
|
||||
* Torrent Schema
|
||||
*/
|
||||
var TorrentSchema = new Schema({
|
||||
user: {
|
||||
type: Schema.ObjectId,
|
||||
ref: 'User'
|
||||
},
|
||||
info_hash: {
|
||||
type: String,
|
||||
default: '',
|
||||
trim: true,
|
||||
required: 'info_hash cannot be blank'
|
||||
},
|
||||
torrent_title: {
|
||||
type: String,
|
||||
default: '',
|
||||
trim: true,
|
||||
required: 'title cannot be blank'
|
||||
},
|
||||
torrent_type: {
|
||||
type: String,
|
||||
default: 'movie',
|
||||
trim: true
|
||||
},
|
||||
torrent_tags: {
|
||||
type: String,
|
||||
default: '[0]',
|
||||
trim: true
|
||||
},
|
||||
torrent_desc: {
|
||||
type: String,
|
||||
default: '',
|
||||
trim: true
|
||||
},
|
||||
torrent_announce: {
|
||||
type: String,
|
||||
default: '',
|
||||
trim: true
|
||||
},
|
||||
torrent_seeds: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
torrent_leechers: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
torrent_finished: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
torrent_size: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
torrent_img: {
|
||||
type: String,
|
||||
default: '',
|
||||
trim: true
|
||||
},
|
||||
last_scrape: {
|
||||
type: Date,
|
||||
default: Date.now
|
||||
},
|
||||
createdat: {
|
||||
type: Date,
|
||||
default: Date.now
|
||||
}
|
||||
});
|
||||
|
||||
TorrentSchema.index({user: -1, createdat: -1});
|
||||
TorrentSchema.index({info_hash: -1, createdat: -1});
|
||||
|
||||
mongoose.model('Torrent', TorrentSchema);
|
||||
Reference in New Issue
Block a user