parent
cb35a3948e
commit
700a72b524
@ -0,0 +1,87 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Text.Json;
|
||||||
|
using Dapper;
|
||||||
|
using FluentMigrator;
|
||||||
|
using NzbDrone.Common.Serializer;
|
||||||
|
using NzbDrone.Core.Datastore.Migration.Framework;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Datastore.Migration
|
||||||
|
{
|
||||||
|
[Migration(19)]
|
||||||
|
public class indexer_definition : NzbDroneMigrationBase
|
||||||
|
{
|
||||||
|
protected override void MainDbUpgrade()
|
||||||
|
{
|
||||||
|
Alter.Table("Indexers")
|
||||||
|
.AddColumn("DefinitionFile").AsString().Nullable();
|
||||||
|
|
||||||
|
Execute.WithConnection(MigrateCardigannDefinitions);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MigrateCardigannDefinitions(IDbConnection conn, IDbTransaction tran)
|
||||||
|
{
|
||||||
|
var indexers = new List<Indexer017>();
|
||||||
|
|
||||||
|
using (var cmd = conn.CreateCommand())
|
||||||
|
{
|
||||||
|
cmd.Transaction = tran;
|
||||||
|
cmd.CommandText = "SELECT \"Id\", \"Settings\", \"Implementation\", \"ConfigContract\" FROM \"Indexers\"";
|
||||||
|
|
||||||
|
using (var reader = cmd.ExecuteReader())
|
||||||
|
{
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
var id = reader.GetInt32(0);
|
||||||
|
var settings = reader.GetString(1);
|
||||||
|
var implementation = reader.GetString(2);
|
||||||
|
var configContract = reader.GetString(3);
|
||||||
|
var defFile = implementation.ToLowerInvariant();
|
||||||
|
|
||||||
|
if (implementation == "Cardigann")
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrWhiteSpace(settings))
|
||||||
|
{
|
||||||
|
var jsonObject = STJson.Deserialize<JsonElement>(settings);
|
||||||
|
|
||||||
|
if (jsonObject.TryGetProperty("definitionFile", out JsonElement jsonDef))
|
||||||
|
{
|
||||||
|
defFile = jsonDef.GetString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (configContract == "AvistazSettings")
|
||||||
|
{
|
||||||
|
implementation = "Avistaz";
|
||||||
|
}
|
||||||
|
else if (configContract == "Unit3dSettings")
|
||||||
|
{
|
||||||
|
implementation = "Unit3d";
|
||||||
|
}
|
||||||
|
else if (configContract == "Newznab")
|
||||||
|
{
|
||||||
|
defFile = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
indexers.Add(new Indexer017
|
||||||
|
{
|
||||||
|
DefinitionFile = defFile,
|
||||||
|
Implementation = implementation,
|
||||||
|
Id = id
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var updateSql = "UPDATE \"Indexers\" SET \"DefinitionFile\" = @DefinitionFile, \"Implementation\" = @Implementation WHERE \"Id\" = @Id";
|
||||||
|
conn.Execute(updateSql, indexers, transaction: tran);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Indexer017
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string DefinitionFile { get; set; }
|
||||||
|
public string Implementation { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,60 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using NLog;
|
|
||||||
using NzbDrone.Common.Http;
|
|
||||||
using NzbDrone.Core.Configuration;
|
|
||||||
using NzbDrone.Core.Indexers.Definitions.Avistaz;
|
|
||||||
using NzbDrone.Core.Messaging.Events;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Indexers.Definitions
|
|
||||||
{
|
|
||||||
public class AvistaZ : AvistazBase
|
|
||||||
{
|
|
||||||
public override string Name => "AvistaZ";
|
|
||||||
public override string[] IndexerUrls => new string[] { "https://avistaz.to/" };
|
|
||||||
public override string Description => "Aka AsiaTorrents";
|
|
||||||
public override IndexerPrivacy Privacy => IndexerPrivacy.Private;
|
|
||||||
|
|
||||||
public AvistaZ(IIndexerRepository indexerRepository, IIndexerHttpClient httpClient, IEventAggregator eventAggregator, IIndexerStatusService indexerStatusService, IConfigService configService, Logger logger)
|
|
||||||
: base(indexerRepository, httpClient, eventAggregator, indexerStatusService, configService, logger)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
|
||||||
{
|
|
||||||
return new AvistazRequestGenerator()
|
|
||||||
{
|
|
||||||
Settings = Settings,
|
|
||||||
HttpClient = _httpClient,
|
|
||||||
Logger = _logger,
|
|
||||||
Capabilities = Capabilities
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override IndexerCapabilities SetCapabilities()
|
|
||||||
{
|
|
||||||
var caps = new IndexerCapabilities
|
|
||||||
{
|
|
||||||
TvSearchParams = new List<TvSearchParam>
|
|
||||||
{
|
|
||||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId
|
|
||||||
},
|
|
||||||
MovieSearchParams = new List<MovieSearchParam>
|
|
||||||
{
|
|
||||||
MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.Movies);
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.MoviesUHD);
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.MoviesHD);
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.MoviesSD);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TV);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TVUHD);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TVHD);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TVSD);
|
|
||||||
caps.Categories.AddCategoryMapping(3, NewznabStandardCategory.Audio);
|
|
||||||
|
|
||||||
return caps;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,60 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using NLog;
|
|
||||||
using NzbDrone.Common.Http;
|
|
||||||
using NzbDrone.Core.Configuration;
|
|
||||||
using NzbDrone.Core.Indexers.Definitions.Avistaz;
|
|
||||||
using NzbDrone.Core.Messaging.Events;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Indexers.Definitions
|
|
||||||
{
|
|
||||||
public class CinemaZ : AvistazBase
|
|
||||||
{
|
|
||||||
public override string Name => "CinemaZ";
|
|
||||||
public override string[] IndexerUrls => new string[] { "https://cinemaz.to/" };
|
|
||||||
public override string Description => "CinemaZ (EuTorrents) is a Private Torrent Tracker for FOREIGN NON-ASIAN MOVIES.";
|
|
||||||
public override IndexerPrivacy Privacy => IndexerPrivacy.Private;
|
|
||||||
|
|
||||||
public CinemaZ(IIndexerRepository indexerRepository, IIndexerHttpClient httpClient, IEventAggregator eventAggregator, IIndexerStatusService indexerStatusService, IConfigService configService, Logger logger)
|
|
||||||
: base(indexerRepository, httpClient, eventAggregator, indexerStatusService, configService, logger)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
|
||||||
{
|
|
||||||
return new AvistazRequestGenerator()
|
|
||||||
{
|
|
||||||
Settings = Settings,
|
|
||||||
HttpClient = _httpClient,
|
|
||||||
Logger = _logger,
|
|
||||||
Capabilities = Capabilities
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override IndexerCapabilities SetCapabilities()
|
|
||||||
{
|
|
||||||
var caps = new IndexerCapabilities
|
|
||||||
{
|
|
||||||
TvSearchParams = new List<TvSearchParam>
|
|
||||||
{
|
|
||||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId
|
|
||||||
},
|
|
||||||
MovieSearchParams = new List<MovieSearchParam>
|
|
||||||
{
|
|
||||||
MovieSearchParam.Q, MovieSearchParam.ImdbId
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.Movies);
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.MoviesUHD);
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.MoviesHD);
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.MoviesSD);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TV);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TVUHD);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TVHD);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TVSD);
|
|
||||||
caps.Categories.AddCategoryMapping(3, NewznabStandardCategory.Audio);
|
|
||||||
|
|
||||||
return caps;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,71 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using NLog;
|
|
||||||
using NzbDrone.Core.Configuration;
|
|
||||||
using NzbDrone.Core.Indexers.Definitions.Avistaz;
|
|
||||||
using NzbDrone.Core.Messaging.Events;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Indexers.Definitions
|
|
||||||
{
|
|
||||||
public class ExoticaZ : AvistazBase
|
|
||||||
{
|
|
||||||
public override string Name => "ExoticaZ";
|
|
||||||
public override string[] IndexerUrls => new string[] { "https://exoticaz.to/" };
|
|
||||||
public override string Description => "ExoticaZ (YourExotic) is a Private Torrent Tracker for 3X";
|
|
||||||
public override IndexerPrivacy Privacy => IndexerPrivacy.Private;
|
|
||||||
|
|
||||||
public ExoticaZ(IIndexerRepository indexerRepository, IIndexerHttpClient httpClient, IEventAggregator eventAggregator, IIndexerStatusService indexerStatusService, IConfigService configService, Logger logger)
|
|
||||||
: base(indexerRepository, httpClient, eventAggregator, indexerStatusService, configService, logger)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
|
||||||
{
|
|
||||||
return new AvistazRequestGenerator()
|
|
||||||
{
|
|
||||||
Settings = Settings,
|
|
||||||
HttpClient = _httpClient,
|
|
||||||
Logger = _logger,
|
|
||||||
Capabilities = Capabilities,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IParseIndexerResponse GetParser()
|
|
||||||
{
|
|
||||||
return new ExoticaZParser(Capabilities.Categories);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override IndexerCapabilities SetCapabilities()
|
|
||||||
{
|
|
||||||
var caps = new IndexerCapabilities();
|
|
||||||
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.XXXx264, "Video Clip");
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.XXXPack, "Video Pack");
|
|
||||||
caps.Categories.AddCategoryMapping(3, NewznabStandardCategory.XXXPack, "Siterip Pack");
|
|
||||||
caps.Categories.AddCategoryMapping(4, NewznabStandardCategory.XXXPack, "Pornstar Pack");
|
|
||||||
caps.Categories.AddCategoryMapping(5, NewznabStandardCategory.XXXDVD, "DVD");
|
|
||||||
caps.Categories.AddCategoryMapping(6, NewznabStandardCategory.XXXx264, "BluRay");
|
|
||||||
caps.Categories.AddCategoryMapping(7, NewznabStandardCategory.XXXImageSet, "Photo Pack");
|
|
||||||
caps.Categories.AddCategoryMapping(8, NewznabStandardCategory.XXXImageSet, "Books & Magazines");
|
|
||||||
|
|
||||||
return caps;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class ExoticaZParser : AvistazParser
|
|
||||||
{
|
|
||||||
private readonly IndexerCapabilitiesCategories _categories;
|
|
||||||
|
|
||||||
public ExoticaZParser(IndexerCapabilitiesCategories categories)
|
|
||||||
{
|
|
||||||
_categories = categories;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override List<IndexerCategory> ParseCategories(AvistazRelease row)
|
|
||||||
{
|
|
||||||
var cat = row.Category;
|
|
||||||
|
|
||||||
return cat.SelectMany(c => _categories.MapTrackerCatToNewznab(c.Key)).ToList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,63 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using NLog;
|
|
||||||
using NzbDrone.Core.Configuration;
|
|
||||||
using NzbDrone.Core.Indexers.Definitions.Avistaz;
|
|
||||||
using NzbDrone.Core.Messaging.Events;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Indexers.Definitions
|
|
||||||
{
|
|
||||||
public class PrivateHD : Avistaz.AvistazBase
|
|
||||||
{
|
|
||||||
public override string Name => "PrivateHD";
|
|
||||||
public override string[] IndexerUrls => new string[] { "https://privatehd.to/" };
|
|
||||||
public override string Description => "PrivateHD is a Private Torrent Tracker for HD MOVIES / TV and the sister-site of AvistaZ, CinemaZ, ExoticaZ, and AnimeTorrents";
|
|
||||||
public override IndexerPrivacy Privacy => IndexerPrivacy.Private;
|
|
||||||
|
|
||||||
public PrivateHD(IIndexerRepository indexerRepository, IIndexerHttpClient httpClient, IEventAggregator eventAggregator, IIndexerStatusService indexerStatusService, IConfigService configService, Logger logger)
|
|
||||||
: base(indexerRepository, httpClient, eventAggregator, indexerStatusService, configService, logger)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
|
||||||
{
|
|
||||||
return new AvistazRequestGenerator()
|
|
||||||
{
|
|
||||||
Settings = Settings,
|
|
||||||
HttpClient = _httpClient,
|
|
||||||
Logger = _logger,
|
|
||||||
Capabilities = Capabilities
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override IndexerCapabilities SetCapabilities()
|
|
||||||
{
|
|
||||||
var caps = new IndexerCapabilities
|
|
||||||
{
|
|
||||||
TvSearchParams = new List<TvSearchParam>
|
|
||||||
{
|
|
||||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId
|
|
||||||
},
|
|
||||||
MovieSearchParams = new List<MovieSearchParam>
|
|
||||||
{
|
|
||||||
MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId
|
|
||||||
},
|
|
||||||
MusicSearchParams = new List<MusicSearchParam>
|
|
||||||
{
|
|
||||||
MusicSearchParam.Q
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.Movies);
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.MoviesUHD);
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.MoviesHD);
|
|
||||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.MoviesSD);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TV);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TVUHD);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TVHD);
|
|
||||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TVSD);
|
|
||||||
caps.Categories.AddCategoryMapping(3, NewznabStandardCategory.Audio);
|
|
||||||
|
|
||||||
return caps;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue