Indexer flags implementation. (#1377) Will be further finalized over the next few weeks with Freelech, preferring of certain flags, etc

pull/1402/head
Leonardo Galli 8 years ago committed by GitHub
parent 3790dc9109
commit 33b48eec95

@ -46,6 +46,7 @@ namespace NzbDrone.Api.Indexers
public bool DownloadAllowed { get; set; } public bool DownloadAllowed { get; set; }
public int ReleaseWeight { get; set; } public int ReleaseWeight { get; set; }
public IEnumerable<string> IndexerFlags { get; set; }
public string MagnetUrl { get; set; } public string MagnetUrl { get; set; }
public string InfoHash { get; set; } public string InfoHash { get; set; }
@ -132,7 +133,7 @@ namespace NzbDrone.Api.Indexers
Seeders = torrentInfo.Seeders, Seeders = torrentInfo.Seeders,
Leechers = (torrentInfo.Peers.HasValue && torrentInfo.Seeders.HasValue) ? (torrentInfo.Peers.Value - torrentInfo.Seeders.Value) : (int?)null, Leechers = (torrentInfo.Peers.HasValue && torrentInfo.Seeders.HasValue) ? (torrentInfo.Peers.Value - torrentInfo.Seeders.Value) : (int?)null,
Protocol = releaseInfo.DownloadProtocol, Protocol = releaseInfo.DownloadProtocol,
IndexerFlags = torrentInfo.IndexerFlags.ToString().Split(new string[] { ", " }, StringSplitOptions.None),
Edition = parsedMovieInfo.Edition, Edition = parsedMovieInfo.Edition,
IsDaily = false, IsDaily = false,

@ -55,15 +55,16 @@ namespace NzbDrone.Core.Indexers.PassThePopcorn
{ {
var id = torrent.Id; var id = torrent.Id;
var title = torrent.ReleaseName; var title = torrent.ReleaseName;
IndexerFlags flags = 0;
if (torrent.GoldenPopcorn) if (torrent.GoldenPopcorn)
{ {
title = $"{title} 🍿"; flags |= IndexerFlags.PTP_Golden;//title = $"{title} 🍿";
} }
if (torrent.Checked) if (torrent.Checked)
{ {
title = $"{title} ✔"; flags |= IndexerFlags.PTP_Approved;//title = $"{title} ✔";
} }
// Only add approved torrents // Only add approved torrents
@ -82,9 +83,11 @@ namespace NzbDrone.Core.Indexers.PassThePopcorn
Golden = torrent.GoldenPopcorn, Golden = torrent.GoldenPopcorn,
Scene = torrent.Scene, Scene = torrent.Scene,
Approved = torrent.Checked, Approved = torrent.Checked,
ImdbId = (result.ImdbId.IsNotNullOrWhiteSpace() ? int.Parse(result.ImdbId) : 0) ImdbId = (result.ImdbId.IsNotNullOrWhiteSpace() ? int.Parse(result.ImdbId) : 0),
IndexerFlags = flags
}); });
} }
// Add all torrents // Add all torrents
else if (!_settings.RequireApproved) else if (!_settings.RequireApproved)
{ {
@ -101,7 +104,8 @@ namespace NzbDrone.Core.Indexers.PassThePopcorn
Golden = torrent.GoldenPopcorn, Golden = torrent.GoldenPopcorn,
Scene = torrent.Scene, Scene = torrent.Scene,
Approved = torrent.Checked, Approved = torrent.Checked,
ImdbId = (result.ImdbId.IsNotNullOrWhiteSpace() ? int.Parse(result.ImdbId) : 0) ImdbId = (result.ImdbId.IsNotNullOrWhiteSpace() ? int.Parse(result.ImdbId) : 0),
IndexerFlags = flags
}); });
} }
// Don't add any torrents // Don't add any torrents

@ -1,4 +1,4 @@
using System; using System;
using System.Text; using System.Text;
using NzbDrone.Core.Indexers; using NzbDrone.Core.Indexers;
@ -26,6 +26,8 @@ namespace NzbDrone.Core.Parser.Model
public string Codec { get; set; } public string Codec { get; set; }
public string Resolution { get; set; } public string Resolution { get; set; }
public IndexerFlags IndexerFlags { get; set; }
public int Age public int Age
{ {
get get
@ -91,4 +93,11 @@ namespace NzbDrone.Core.Parser.Model
} }
} }
} }
[Flags]
public enum IndexerFlags
{
PTP_Golden = 1, //PTP
PTP_Approved = 2, //PTP
}
} }

@ -9,6 +9,24 @@ module.exports = NzbDroneCell.extend({
var title = this.model.get('title'); var title = this.model.get('title');
var infoUrl = this.model.get('infoUrl'); var infoUrl = this.model.get('infoUrl');
var flags = this.model.get("indexerFlags");
if (flags) {
_.each(flags, function(flag){
var addon = "";
switch (flag) {
case "PTP_Golden":
addon = "🍿";
break;
case "PTP_Approved":
addon = "✔";
break;
}
title += addon;
});
}
if (infoUrl) { if (infoUrl) {
this.$el.html('<a href="{0}">{1}</a>'.format(infoUrl, title)); this.$el.html('<a href="{0}">{1}</a>'.format(infoUrl, title));
} else { } else {

@ -8,6 +8,7 @@ var QualityCell = require('../Cells/QualityCell');
var ApprovalStatusCell = require('../Cells/ApprovalStatusCell'); var ApprovalStatusCell = require('../Cells/ApprovalStatusCell');
var LoadingView = require('../Shared/LoadingView'); var LoadingView = require('../Shared/LoadingView');
var EditionCell = require('../Cells/EditionCell'); var EditionCell = require('../Cells/EditionCell');
var ReleaseTitleCell = require("./ReleaseTitleCell");
module.exports = Marionette.Layout.extend({ module.exports = Marionette.Layout.extend({
template : 'Release/ReleaseLayoutTemplate', template : 'Release/ReleaseLayoutTemplate',
@ -34,7 +35,7 @@ module.exports = Marionette.Layout.extend({
name : 'title', name : 'title',
label : 'Title', label : 'Title',
sortable : true, sortable : true,
cell : Backgrid.StringCell cell : ReleaseTitleCell
}, },
/*{ /*{
name : 'episodeNumbers', name : 'episodeNumbers',

@ -0,0 +1,33 @@
var _ = require('underscore');
var Backgrid = require('backgrid');
var FormatHelpers = require('../Shared/FormatHelpers');
module.exports = Backgrid.Cell.extend({
className : 'title-cell',
render : function() {
debugger;
var title = this.model.get('title');
var flags = this.model.get("indexerFlags");
if (flags) {
_.each(flags, function(flag){
var addon = "";
debugger;
switch (flag) {
case "PTP_Golden":
addon = "🍿";
break;
case "PTP_Approved":
addon = "✔";
break;
}
title += addon;
});
}
this.$el.html(title);
return this;
}
});
Loading…
Cancel
Save