mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-23 14:55:20 -07:00
Manual importing almost done. Needs fixing for mapping movies.
This commit is contained in:
parent
e2c2bdb65b
commit
44b4e71c05
6 changed files with 62 additions and 9 deletions
|
@ -11,11 +11,13 @@ namespace NzbDrone.Api.Movie
|
||||||
public class FetchMovieListModule : NzbDroneRestModule<MovieResource>
|
public class FetchMovieListModule : NzbDroneRestModule<MovieResource>
|
||||||
{
|
{
|
||||||
private readonly IFetchNetImport _fetchNetImport;
|
private readonly IFetchNetImport _fetchNetImport;
|
||||||
|
private readonly ISearchForNewMovie _movieSearch;
|
||||||
|
|
||||||
public FetchMovieListModule(IFetchNetImport netImport)
|
public FetchMovieListModule(IFetchNetImport netImport, ISearchForNewMovie movieSearch)
|
||||||
: base("/netimport/movies")
|
: base("/netimport/movies")
|
||||||
{
|
{
|
||||||
_fetchNetImport = netImport;
|
_fetchNetImport = netImport;
|
||||||
|
_movieSearch = movieSearch;
|
||||||
Get["/"] = x => Search();
|
Get["/"] = x => Search();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +25,20 @@ namespace NzbDrone.Api.Movie
|
||||||
private Response Search()
|
private Response Search()
|
||||||
{
|
{
|
||||||
var results = _fetchNetImport.FetchAndFilter((int) Request.Query.listId, false);
|
var results = _fetchNetImport.FetchAndFilter((int) Request.Query.listId, false);
|
||||||
return MapToResource(results).AsResponse();
|
|
||||||
|
List<Core.Tv.Movie> realResults = new List<Core.Tv.Movie>();
|
||||||
|
|
||||||
|
foreach (var movie in results)
|
||||||
|
{
|
||||||
|
var mapped = _movieSearch.MapMovieToTmdbMovie(movie);
|
||||||
|
|
||||||
|
if (mapped != null)
|
||||||
|
{
|
||||||
|
realResults.Add(mapped);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return MapToResource(realResults).AsResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,8 @@ namespace NzbDrone.Core.NetImport.CouchPotato
|
||||||
|
|
||||||
foreach (var item in responseData)
|
foreach (var item in responseData)
|
||||||
{
|
{
|
||||||
|
int tmdbid = item.info.tmdb_id ?? 0;
|
||||||
|
|
||||||
// if there are no releases at all the movie wasn't found on CP, so return movies
|
// if there are no releases at all the movie wasn't found on CP, so return movies
|
||||||
if (!item.releases.Any() && item.type == "movie")
|
if (!item.releases.Any() && item.type == "movie")
|
||||||
{
|
{
|
||||||
|
@ -63,7 +65,7 @@ namespace NzbDrone.Core.NetImport.CouchPotato
|
||||||
{
|
{
|
||||||
Title = item.title,
|
Title = item.title,
|
||||||
ImdbId = item.info.imdb,
|
ImdbId = item.info.imdb,
|
||||||
TmdbId = item.info.tmdb_id
|
TmdbId = tmdbid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -77,7 +79,7 @@ namespace NzbDrone.Core.NetImport.CouchPotato
|
||||||
{
|
{
|
||||||
Title = item.title,
|
Title = item.title,
|
||||||
ImdbId = item.info.imdb,
|
ImdbId = item.info.imdb,
|
||||||
TmdbId = item.info.tmdb_id,
|
TmdbId = tmdbid,
|
||||||
Monitored = false
|
Monitored = false
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,8 @@ var ErrorView = require('../ErrorView');
|
||||||
var LoadingView = require('../../Shared/LoadingView');
|
var LoadingView = require('../../Shared/LoadingView');
|
||||||
var AppLayout = require('../../AppLayout');
|
var AppLayout = require('../../AppLayout');
|
||||||
var InCinemasCell = require('../../Cells/InCinemasCell');
|
var InCinemasCell = require('../../Cells/InCinemasCell');
|
||||||
var MovieTitleCell = require('../../Cells/MovieTitleCell');
|
var MovieTitleCell = require('../../Cells/MovieListTitleCell');
|
||||||
|
var SelectAllCell = require('../../Cells/SelectAllCell');
|
||||||
var TemplatedCell = require('../../Cells/TemplatedCell');
|
var TemplatedCell = require('../../Cells/TemplatedCell');
|
||||||
var ProfileCell = require('../../Cells/ProfileCell');
|
var ProfileCell = require('../../Cells/ProfileCell');
|
||||||
var MovieLinksCell = require('../../Cells/MovieLinksCell');
|
var MovieLinksCell = require('../../Cells/MovieLinksCell');
|
||||||
|
@ -20,6 +21,7 @@ var MovieActionCell = require('../../Cells/MovieActionCell');
|
||||||
var MovieStatusCell = require('../../Cells/MovieStatusCell');
|
var MovieStatusCell = require('../../Cells/MovieStatusCell');
|
||||||
var MovieDownloadStatusCell = require('../../Cells/MovieDownloadStatusCell');
|
var MovieDownloadStatusCell = require('../../Cells/MovieDownloadStatusCell');
|
||||||
var DownloadedQualityCell = require('../../Cells/DownloadedQualityCell');
|
var DownloadedQualityCell = require('../../Cells/DownloadedQualityCell');
|
||||||
|
var MoviesCollection = require('../../Movies/MoviesCollection');
|
||||||
|
|
||||||
var SchemaModal = require('../../Settings/NetImport/Add/NetImportSchemaModal');
|
var SchemaModal = require('../../Settings/NetImport/Add/NetImportSchemaModal');
|
||||||
|
|
||||||
|
@ -37,6 +39,12 @@ module.exports = Marionette.Layout.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
columns : [
|
columns : [
|
||||||
|
{
|
||||||
|
name : '',
|
||||||
|
cell : SelectAllCell,
|
||||||
|
headerCell : 'select-all',
|
||||||
|
sortable : false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name : 'title',
|
name : 'title',
|
||||||
label : 'Title',
|
label : 'Title',
|
||||||
|
@ -60,7 +68,8 @@ module.exports = Marionette.Layout.extend({
|
||||||
events : {
|
events : {
|
||||||
'click .x-load-more' : '_onLoadMore',
|
'click .x-load-more' : '_onLoadMore',
|
||||||
"change .x-list-selection" : "_listSelected",
|
"change .x-list-selection" : "_listSelected",
|
||||||
"click .x-fetch-list" : "_fetchList"
|
"click .x-fetch-list" : "_fetchList",
|
||||||
|
"click .x-import-selected" : "_importSelected"
|
||||||
},
|
},
|
||||||
|
|
||||||
initialize : function(options) {
|
initialize : function(options) {
|
||||||
|
@ -173,6 +182,21 @@ module.exports = Marionette.Layout.extend({
|
||||||
this.render();
|
this.render();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_importSelected : function() {
|
||||||
|
var selected = this.importGrid.getSelectedModels();
|
||||||
|
console.log(selected);
|
||||||
|
_.each(selected, function(elem){
|
||||||
|
elem.save();
|
||||||
|
})
|
||||||
|
/*for (m in selected) {
|
||||||
|
debugger;
|
||||||
|
m.save()
|
||||||
|
MoviesCollection.add(m);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
//MoviesCollection.save();
|
||||||
|
},
|
||||||
|
|
||||||
_clearResults : function() {
|
_clearResults : function() {
|
||||||
|
|
||||||
if (!this.isExisting) {
|
if (!this.isExisting) {
|
||||||
|
@ -186,11 +210,12 @@ module.exports = Marionette.Layout.extend({
|
||||||
if (this.collection.length === 0) {
|
if (this.collection.length === 0) {
|
||||||
this.fetchResult.show(new NotFoundView({ term : "" }));
|
this.fetchResult.show(new NotFoundView({ term : "" }));
|
||||||
} else {
|
} else {
|
||||||
this.fetchResult.show(new Backgrid.Grid({
|
this.importGrid = new Backgrid.Grid({
|
||||||
collection : this.collection,
|
collection : this.collection,
|
||||||
columns : this.columns,
|
columns : this.columns,
|
||||||
className : 'table table-hover'
|
className : 'table table-hover'
|
||||||
}));
|
});
|
||||||
|
this.fetchResult.show(this.importGrid);
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
|
@ -5,9 +5,12 @@
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
{{> ListSelectionPartial lists}}
|
{{> ListSelectionPartial lists}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-1">
|
||||||
<button class="btn x-fetch-list">Fetch List</button>
|
<button class="btn x-fetch-list">Fetch List</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<button class="btn btn-success x-import-selected">Import Selected</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
7
src/UI/Cells/MovieListTitleCell.js
Normal file
7
src/UI/Cells/MovieListTitleCell.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
var TemplatedCell = require('./TemplatedCell');
|
||||||
|
|
||||||
|
module.exports = TemplatedCell.extend({
|
||||||
|
className : 'series-title-cell',
|
||||||
|
template : 'Cells/MovieListTitleTemplate',
|
||||||
|
|
||||||
|
});
|
1
src/UI/Cells/MovieListTitleTemplate.hbs
Normal file
1
src/UI/Cells/MovieListTitleTemplate.hbs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<a href="{{imdbUrl}}">{{title}}</a>
|
Loading…
Add table
Add a link
Reference in a new issue