search movie with keyword is ok now

This commit is contained in:
OldHawk
2017-04-06 16:11:01 +08:00
parent 7e0d4dd107
commit a03f1b6c28
5 changed files with 72 additions and 8 deletions

View File

@@ -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);
};
}
}());

View File

@@ -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,

View File

@@ -43,7 +43,9 @@
<dd class="h-line">
<div class="row">
<div class="col-sm-7">
<input type="text" class="form-control" placeholder="{{ 'PH_KEYWORD' | translate}}">
<input type="text" class="form-control" ng-model="vm.searchKey"
ng-keydown="vm.onKeysKeyDown($event);"
placeholder="{{ 'PH_KEYWORD' | translate}}">
</div>
</div>
</dd>
@@ -77,7 +79,8 @@
<div class="margin-top-10">
<dt class="h-line"></dt>
<dd class="h-line"><span class="label label-tag">{{ 'CLEAR_ALL_CONDITION' | translate}}</span></dd>
<dd class="h-line"><span class="label label-tag text-uppercase"
ng-click="vm.clearAllCondition();">{{ 'CLEAR_ALL_CONDITION' | translate}}</span></dd>
</div>
</dl>
</div>
@@ -104,7 +107,8 @@
<img class="media-object" ng-src="{{vm.tmdbConfig.poster_list_base_url}}{{item.torrent_img}}" alt="...">
</div>
<div class="media-body">
<h5 class="media-heading">{{item.torrent_title}}</h5>
<h5 class="media-heading">{{item.torrent_original_title}}<span
ng-show="item.torrent_original_title!=item.torrent_title"> / {{item.torrent_title}}</span></h5>
<div class="list-all-genres">
<span class="genres-item" ng-repeat="t in item.torrent_genres">{{t}}</span>

View File

@@ -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')

View File

@@ -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,