From a03f1b6c28f325e2f62f69d63bde50996ecba776 Mon Sep 17 00:00:00 2001 From: OldHawk Date: Thu, 6 Apr 2017 16:11:01 +0800 Subject: [PATCH] search movie with keyword is ok now --- .../controllers/torrents.client.controller.js | 22 ++++++++-- .../controllers/uploads.client.controller.js | 1 + .../client/views/movie-list.client.view.html | 10 +++-- .../controllers/torrents.server.controller.js | 42 ++++++++++++++++++- .../server/models/torrent.server.model.js | 5 +++ 5 files changed, 72 insertions(+), 8 deletions(-) diff --git a/modules/torrents/client/controllers/torrents.client.controller.js b/modules/torrents/client/controllers/torrents.client.controller.js index b4e40e52..aab6edb4 100644 --- a/modules/torrents/client/controllers/torrents.client.controller.js +++ b/modules/torrents/client/controllers/torrents.client.controller.js @@ -15,6 +15,7 @@ vm.resourcesTags = ResourcesTagsConfig.resourcesTags; vm.searchTags = []; + vm.searchKey = ''; vm.currPageNumber = 1; vm.topNumber = 6; vm.pageNumber = 50; @@ -54,8 +55,6 @@ } e.blur(); vm.getMoviePageInfo(1); - - console.log(vm.searchTags); }; vm.onCheckboxTagClicked = function (event, n) { @@ -67,18 +66,25 @@ vm.searchTags.splice(vm.searchTags.indexOf(n), 1); } vm.getMoviePageInfo(1); - - console.log(vm.searchTags); }; + vm.onKeysKeyDown = function (evt) { + if (evt.keyCode === 13) { + vm.getMoviePageInfo(1); + } + }; + + vm.getMoviePageInfo = function (p) { vm.currPageNumber = p; TorrentsService.query({ skip: (p - 1) * vm.pageNumber + 0, //vm.topNumber, limit: p * vm.pageNumber, + keys: vm.searchKey, torrent_status: 'reviewed', torrent_type: 'movie', + //torrent_release: vm.releaseYear, torrent_tags: vm.searchTags }, function (items) { vm.moviePageInfo = items; @@ -113,5 +119,13 @@ } return tmp; }; + + vm.clearAllCondition = function () { + vm.searchKey = ''; + vm.searchTags = []; + $('.btn-tag').removeClass('btn-success').addClass('btn-default'); + + vm.getMoviePageInfo(1); + }; } }()); diff --git a/modules/torrents/client/controllers/uploads.client.controller.js b/modules/torrents/client/controllers/uploads.client.controller.js index aeaa638f..b03510ed 100644 --- a/modules/torrents/client/controllers/uploads.client.controller.js +++ b/modules/torrents/client/controllers/uploads.client.controller.js @@ -162,6 +162,7 @@ torrent_tmdb_id: vm.tmdb_id, torrent_imdb_id: vm.movieinfo.imdb_id, torrent_title: vm.movieinfo.title, + torrent_original_title: vm.movieinfo.original_title, torrent_type: 'movie', torrent_genres: g, torrent_tags: t, diff --git a/modules/torrents/client/views/movie-list.client.view.html b/modules/torrents/client/views/movie-list.client.view.html index 630d2663..8074c240 100644 --- a/modules/torrents/client/views/movie-list.client.view.html +++ b/modules/torrents/client/views/movie-list.client.view.html @@ -43,7 +43,9 @@
- +
@@ -77,7 +79,8 @@
-
{{ 'CLEAR_ALL_CONDITION' | translate}}
+
{{ 'CLEAR_ALL_CONDITION' | translate}}
@@ -104,7 +107,8 @@ ...
-
{{item.torrent_title}}
+
{{item.torrent_original_title}} / {{item.torrent_title}}
{{t}} diff --git a/modules/torrents/server/controllers/torrents.server.controller.js b/modules/torrents/server/controllers/torrents.server.controller.js index 4b302181..27e8d7d9 100644 --- a/modules/torrents/server/controllers/torrents.server.controller.js +++ b/modules/torrents/server/controllers/torrents.server.controller.js @@ -257,7 +257,9 @@ exports.list = function (req, res) { var limit = 0; var status = 'reviewed'; var stype = 'movie'; + var release = undefined; var tagsA = []; + var keysA = []; if (req.query.skip !== undefined) { skip = req.query.skip; @@ -271,6 +273,9 @@ exports.list = function (req, res) { if (req.query.torrent_type !== undefined) { stype = req.query.torrent_type; } + if (req.query.torrent_release !== undefined) { + release = req.query.torrent_release; + } if (req.query.torrent_tags !== undefined) { var tagsS = req.query.torrent_tags + ''; var tagsT = tagsS.split(','); @@ -279,6 +284,24 @@ exports.list = function (req, res) { tagsA.push(it + ''); }); } + if (req.query.keys !== undefined && req.query.keys.length > 0) { + //console.log('keys:' + req.query.keys); + var keysS = req.query.keys + ''; + var keysT = keysS.split(' '); + + keysT.forEach(function (it) { + if (!isNaN(it)) { + if (it > 1900 && it < 2050) { + release = it; + } + } else { + var ti = new RegExp(it, 'i'); + keysA.push(ti); + } + }); + //keysA = keysS; + //console.log(keysA); + } var condition = {}; condition.torrent_status = status; @@ -287,8 +310,25 @@ exports.list = function (req, res) { if (tagsA.length > 0) { condition.torrent_tags = {$all: tagsA}; } + if (release !== undefined) { + condition.torrent_release = release; + } + if (keysA.length > 0) { + condition.$or = [ + {torrent_filename: {'$all': keysA}}, + {torrent_title: {'$all': keysA}}, + {torrent_original_title: {'$all': keysA}} + //{torrent_filename: new RegExp(keysA, 'i')}, + //{torrent_title: new RegExp(keysA, 'i')}, + //{torrent_original_title: new RegExp(keysA, 'i')} + ]; + //condition.torrent_title = { + // '$regex': keysA, + // '$options': 'i' + //}; + } - //console.log(condition); + console.log(JSON.stringify(condition)); Torrent.find(condition) .sort('-createdat') diff --git a/modules/torrents/server/models/torrent.server.model.js b/modules/torrents/server/models/torrent.server.model.js index bd1cbcfe..0913a8cc 100644 --- a/modules/torrents/server/models/torrent.server.model.js +++ b/modules/torrents/server/models/torrent.server.model.js @@ -43,6 +43,11 @@ var TorrentSchema = new Schema({ trim: true, required: 'title cannot be blank' }, + torrent_original_title: { + type: String, + default: '', + trim: true + }, torrent_type: { type: [{ type: String,