Parse Files and Grabs in Release Info

pull/6/head
Qstick 4 years ago
parent e2a46820da
commit a041fc0d4b

@ -24,6 +24,8 @@
.age,
.size,
.files,
.grabs,
.peers {
composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css';

@ -31,6 +31,8 @@
.age,
.size,
.files,
.grabs,
.peers {
composes: cell;

@ -32,6 +32,8 @@ class SearchIndexRow extends Component {
infoUrl,
indexer,
size,
files,
grabs,
seeders,
leechers,
indexerFlags,
@ -117,6 +119,28 @@ class SearchIndexRow extends Component {
);
}
if (column.name === 'files') {
return (
<VirtualTableRowCell
key={column.name}
className={styles[column.name]}
>
{files}
</VirtualTableRowCell>
);
}
if (column.name === 'grabs') {
return (
<VirtualTableRowCell
key={column.name}
className={styles[column.name]}
>
{grabs}
</VirtualTableRowCell>
);
}
if (column.name === 'peers') {
return (
<VirtualTableRowCell
@ -218,6 +242,8 @@ SearchIndexRow.propTypes = {
indexerId: PropTypes.number.isRequired,
indexer: PropTypes.string.isRequired,
size: PropTypes.number.isRequired,
files: PropTypes.number,
grabs: PropTypes.number,
seeders: PropTypes.number,
leechers: PropTypes.number,
indexerFlags: PropTypes.arrayOf(PropTypes.string).isRequired,

@ -1,7 +1,5 @@
import React from 'react';
import { createAction } from 'redux-actions';
import Icon from 'Components/Icon';
import { filterBuilderTypes, filterBuilderValueTypes, icons, sortDirections } from 'Helpers/Props';
import { filterBuilderTypes, filterBuilderValueTypes, sortDirections } from 'Helpers/Props';
import { createThunk, handleThunks } from 'Store/thunks';
import createAjaxRequest from 'Utilities/createAjaxRequest';
import translate from 'Utilities/String/translate';
@ -60,6 +58,18 @@ export const defaultState = {
isSortable: true,
isVisible: true
},
{
name: 'files',
label: translate('Files'),
isSortable: true,
isVisible: false
},
{
name: 'grabs',
label: translate('Grabs'),
isSortable: true,
isVisible: true
},
{
name: 'peers',
label: translate('Peers'),
@ -74,7 +84,6 @@ export const defaultState = {
},
{
name: 'indexerFlags',
label: React.createElement(Icon, { name: icons.FLAG }),
columnLabel: 'Indexer Flags',
isSortable: true,
isVisible: true
@ -146,6 +155,16 @@ export const defaultState = {
label: translate('Size'),
type: filterBuilderTypes.NUMBER
},
{
name: 'files',
label: translate('Files'),
type: filterBuilderTypes.NUMBER
},
{
name: 'grabs',
label: translate('Grabs'),
type: filterBuilderTypes.NUMBER
},
{
name: 'seeders',
label: translate('Seeders'),

@ -483,6 +483,8 @@ namespace NzbDrone.Core.Indexers.Cardigann
InfoHash = x.InfoHash,
Seeders = (int?)x.Seeders,
Peers = (int?)x.Peers,
Grabs = (int?)x.Grabs,
Files = (int?)x.Files,
Category = x.Category
}));

@ -82,6 +82,8 @@ namespace NzbDrone.Core.Indexers.Newznab
{
releaseInfo = base.ProcessItem(item, releaseInfo);
releaseInfo.ImdbId = GetImdbId(item);
releaseInfo.Grabs = GetGrabs(item);
releaseInfo.Files = GetFiles(item);
return releaseInfo;
}
@ -168,6 +170,32 @@ namespace NzbDrone.Core.Indexers.Newznab
return 0;
}
protected virtual int GetGrabs(XElement item)
{
var grabsString = TryGetNewznabAttribute(item, "grabs");
int grabs;
if (!grabsString.IsNullOrWhiteSpace() && int.TryParse(grabsString, out grabs))
{
return grabs;
}
return 0;
}
protected virtual int GetFiles(XElement item)
{
var filesString = TryGetNewznabAttribute(item, "files");
int files;
if (!filesString.IsNullOrWhiteSpace() && int.TryParse(filesString, out files))
{
return files;
}
return 0;
}
protected virtual int GetImdbYear(XElement item)
{
var imdbYearString = TryGetNewznabAttribute(item, "imdbyear");

@ -17,6 +17,8 @@ namespace NzbDrone.Core.Parser.Model
public string Indexer { get; set; }
public int IndexerPriority { get; set; }
public DownloadProtocol DownloadProtocol { get; set; }
public int? Grabs { get; set; }
public int? Files { get; set; }
public int TvdbId { get; set; }
public int TvRageId { get; set; }
public int ImdbId { get; set; }

@ -14,6 +14,8 @@ namespace Prowlarr.Api.V1.Search
public double AgeHours { get; set; }
public double AgeMinutes { get; set; }
public long Size { get; set; }
public int? Files { get; set; }
public int? Grabs { get; set; }
public int IndexerId { get; set; }
public string Indexer { get; set; }
public string SubGroup { get; set; }
@ -53,6 +55,8 @@ namespace Prowlarr.Api.V1.Search
AgeHours = releaseInfo.AgeHours,
AgeMinutes = releaseInfo.AgeMinutes,
Size = releaseInfo.Size ?? 0,
Files = releaseInfo.Files,
Grabs = releaseInfo.Grabs,
IndexerId = releaseInfo.IndexerId,
Indexer = releaseInfo.Indexer,
Title = releaseInfo.Title,

Loading…
Cancel
Save