mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-23 06:45:19 -07:00
Indexer flags implementation. (#1377) Will be further finalized over the next few weeks with Freelech, preferring of certain flags, etc
This commit is contained in:
parent
3790dc9109
commit
33b48eec95
6 changed files with 73 additions and 7 deletions
|
@ -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',
|
||||||
|
|
33
src/UI/Release/ReleaseTitleCell.js
Normal file
33
src/UI/Release/ReleaseTitleCell.js
Normal file
|
@ -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…
Add table
Add a link
Reference in a new issue