hdolimpo: add banner image (#7568)

This commit is contained in:
Diego Heras 2020-03-08 12:31:58 +01:00 committed by GitHub
parent 93d200895b
commit 389daf9957
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 22 additions and 14 deletions

View File

@ -1,10 +1,10 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using AngleSharp.Dom;
using AngleSharp.Html.Parser;
using Jackett.Common.Models;
using Jackett.Common.Models.IndexerConfig;
@ -24,6 +24,7 @@ namespace Jackett.Common.Indexers
private string SearchUrl => SiteLink + "torrents/buscar?page=1";
private string CommentsUrl => SiteLink + "torrents/detalles/";
private string DownloadUrl => SiteLink + "torrents/descargar/";
private string BannerUrl => SiteLink + "storage/imagenes/portadas/m/";
private new ConfigurationDataBasicLoginWithEmail configData
{
@ -93,17 +94,19 @@ namespace Jackett.Common.Indexers
{
var includePremium = ((BoolItem)configData.GetDynamic("IncludePremium")).Value;
var pairs = new Dictionary<string, string>();
pairs.Add("freetorrent", "false");
pairs.Add("ordenar_por", "created_at");
pairs.Add("orden", "desc");
pairs.Add("titulo", query.GetQueryString());
var pairs = new Dictionary<string, string>
{
{"freetorrent", "false"},
{"ordenar_por", "created_at"},
{"orden", "desc"},
{"titulo", query.GetQueryString()}
};
var cats = MapTorznabCapsToTrackers(query);
var category = cats.Count == 1 ? cats.First() : "0";
pairs.Add("categoria", category);
var boundary = "---------------------------" + (DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds.ToString().Replace(".", "");
var boundary = "---------------------------" + (DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds.ToString(CultureInfo.InvariantCulture).Replace(".", "");
var bodyParts = new List<string>();
foreach (var pair in pairs)
@ -118,9 +121,11 @@ namespace Jackett.Common.Indexers
bodyParts.Add("--" + boundary + "--");
var body = string.Join("\r\n", bodyParts);
var headers = new Dictionary<string, string>();
headers.Add("Content-Type", "multipart/form-data; boundary=" + boundary);
addXsrfTokenHeader(headers, configData.CookieHeader.Value);
var headers = new Dictionary<string, string>
{
{"Content-Type", "multipart/form-data; boundary=" + boundary}
};
AddXsrfTokenHeader(headers, configData.CookieHeader.Value);
var response = await PostDataWithCookies(SearchUrl, pairs, configData.CookieHeader.Value, SiteLink, headers, body);
if (response.Content.StartsWith("<!doctype html>"))
@ -128,23 +133,23 @@ namespace Jackett.Common.Indexers
//Cookie appears to expire after a period of time or logging in to the site via browser
await DoLogin();
addXsrfTokenHeader(headers, configData.CookieHeader.Value);
AddXsrfTokenHeader(headers, configData.CookieHeader.Value);
response = await PostDataWithCookies(SearchUrl, pairs, configData.CookieHeader.Value, SiteLink, headers, body);
}
var releases = ParseResponse(query, response, includePremium);
var releases = ParseResponse(response, includePremium);
return releases;
}
private void addXsrfTokenHeader(Dictionary<string, string> headers, string cookie)
private static void AddXsrfTokenHeader(IDictionary<string, string> headers, string cookie)
{
var xsrfToken = new Regex("XSRF-TOKEN=([^;]+)").Match(cookie).Groups[1].ToString();
xsrfToken = Uri.UnescapeDataString(xsrfToken);
headers["X-XSRF-TOKEN"] = xsrfToken;
}
private List<ReleaseInfo> ParseResponse(TorznabQuery query, WebClientStringResult response, bool includePremium)
private List<ReleaseInfo> ParseResponse(WebClientStringResult response, bool includePremium)
{
var releases = new List<ReleaseInfo>();
@ -174,6 +179,9 @@ namespace Jackett.Common.Indexers
if (torrent["created_at"] != null)
release.PublishDate = DateTime.Parse((string)torrent["created_at"]);
if (torrent["portada"] != null)
release.BannerUrl = new Uri(BannerUrl + (string)(torrent["portada"]["hash"]) + "." + (string)(torrent["portada"]["ext"]));
release.Category = MapTrackerCatToNewznab((string)torrent["categoria"]);
release.Size = (long)torrent["size"];