From e1a6a3b9199a8cf63ea4c781e543ff261eec34bb Mon Sep 17 00:00:00 2001 From: OldHawk Date: Sat, 25 Mar 2017 16:02:35 +0800 Subject: [PATCH] add torrents,peers models mongodb Schema --- .../server/models/peer.server.model.js | 79 ++++++++++++++++++ .../server/models/torrent.server.model.js | 83 +++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 modules/announce/server/models/peer.server.model.js create mode 100644 modules/announce/server/models/torrent.server.model.js diff --git a/modules/announce/server/models/peer.server.model.js b/modules/announce/server/models/peer.server.model.js new file mode 100644 index 00000000..9df44706 --- /dev/null +++ b/modules/announce/server/models/peer.server.model.js @@ -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); diff --git a/modules/announce/server/models/torrent.server.model.js b/modules/announce/server/models/torrent.server.model.js new file mode 100644 index 00000000..63f05e52 --- /dev/null +++ b/modules/announce/server/models/torrent.server.model.js @@ -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);