mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
Fixed BitMeTV login, fixed failed login callback failing if async
This commit is contained in:
@@ -114,6 +114,10 @@
|
|||||||
height: 20px;
|
height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[data-type=hiddendata]{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.spinner {
|
.spinner {
|
||||||
-webkit-animation: spin 2s infinite linear;
|
-webkit-animation: spin 2s infinite linear;
|
||||||
-moz-animation: spin 2s infinite linear;
|
-moz-animation: spin 2s infinite linear;
|
||||||
|
@@ -251,6 +251,9 @@ function getConfigModalJson(configForm) {
|
|||||||
var type = $el.data("type");
|
var type = $el.data("type");
|
||||||
var id = $el.data("id");
|
var id = $el.data("id");
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
case "hiddendata":
|
||||||
|
configJson[id] = $el.find(".setup-item-hiddendata input").val();
|
||||||
|
break;
|
||||||
case "inputstring":
|
case "inputstring":
|
||||||
configJson[id] = $el.find(".setup-item-inputstring input").val();
|
configJson[id] = $el.find(".setup-item-inputstring input").val();
|
||||||
break;
|
break;
|
||||||
|
@@ -236,7 +236,6 @@
|
|||||||
{{else}}
|
{{else}}
|
||||||
<input class="form-control" type="text" value="{{{value}}}" />
|
<input class="form-control" type="text" value="{{{value}}}" />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setup-item-inputbool">
|
<div class="setup-item-inputbool">
|
||||||
@@ -248,6 +247,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<img class="setup-item-displayimage" src="{{{value}}}" />
|
<img class="setup-item-displayimage" src="{{{value}}}" />
|
||||||
<div class="setup-item-displayinfo alert alert-info" role="alert">{{{value}}}</div>
|
<div class="setup-item-displayinfo alert alert-info" role="alert">{{{value}}}</div>
|
||||||
|
<div class="setup-item-hiddendata">
|
||||||
|
<input class="form-control" type="text" value="{{{value}}}" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<span class="spinner glyphicon glyphicon-refresh"></span>
|
<span class="spinner glyphicon glyphicon-refresh"></span>
|
||||||
|
|
||||||
|
@@ -54,7 +54,7 @@ namespace Jackett.Indexers
|
|||||||
|
|
||||||
// Do the login
|
// Do the login
|
||||||
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, string.Empty, true, SiteLink);
|
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, string.Empty, true, SiteLink);
|
||||||
ConfigureIfOK(response.Cookies, response.Content!=null && response.Content.Contains("logout.php?"), () =>
|
await ConfigureIfOK(response.Cookies, response.Content!=null && response.Content.Contains("logout.php?"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = response.Content;
|
CQ dom = response.Content;
|
||||||
dom["#loginform > table"].Remove();
|
dom["#loginform > table"].Remove();
|
||||||
|
@@ -52,7 +52,7 @@ namespace Jackett.Indexers
|
|||||||
};
|
};
|
||||||
|
|
||||||
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, SiteLink);
|
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, SiteLink);
|
||||||
ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("logout.php"), () =>
|
await ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("logout.php"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = response.Content;
|
CQ dom = response.Content;
|
||||||
var messageEl = dom["#loginform"];
|
var messageEl = dom["#loginform"];
|
||||||
|
@@ -56,7 +56,7 @@ namespace Jackett.Indexers
|
|||||||
|
|
||||||
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginForm.Cookies, true, null, SiteLink);
|
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginForm.Cookies, true, null, SiteLink);
|
||||||
var responseContent = response.Content;
|
var responseContent = response.Content;
|
||||||
ConfigureIfOK(response.Cookies, responseContent.Contains("<a href=\"logout.php\">Logout</a>"), () =>
|
await ConfigureIfOK(response.Cookies, responseContent.Contains("<a href=\"logout.php\">Logout</a>"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = responseContent;
|
CQ dom = responseContent;
|
||||||
var messageEl = dom[".error"].First();
|
var messageEl = dom[".error"].First();
|
||||||
|
@@ -312,18 +312,6 @@ namespace Jackett.Indexers
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void ConfigureIfOK(string cookies, bool isLoggedin, Action onError)
|
|
||||||
{
|
|
||||||
if (isLoggedin)
|
|
||||||
{
|
|
||||||
cookieHeader = cookies;
|
|
||||||
SaveCookieHeaderAndConfigure();
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
onError();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected async Task ConfigureIfOK(string cookies, bool isLoggedin, Func<Task> onError)
|
protected async Task ConfigureIfOK(string cookies, bool isLoggedin, Func<Task> onError)
|
||||||
{
|
{
|
||||||
if (isLoggedin)
|
if (isLoggedin)
|
||||||
|
@@ -49,7 +49,7 @@ namespace Jackett.Indexers
|
|||||||
Cookies = cookieHeader
|
Cookies = cookieHeader
|
||||||
});
|
});
|
||||||
|
|
||||||
ConfigureIfOK(cookieHeader, response.Content.Contains("logout.php"), () =>
|
await ConfigureIfOK(cookieHeader, response.Content.Contains("logout.php"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = response.Content;
|
CQ dom = response.Content;
|
||||||
throw new ExceptionWithConfigData("Invalid cookie header", (ConfigurationData)config);
|
throw new ExceptionWithConfigData("Invalid cookie header", (ConfigurationData)config);
|
||||||
|
@@ -50,7 +50,7 @@ namespace Jackett.Indexers
|
|||||||
};
|
};
|
||||||
|
|
||||||
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, SiteLink);
|
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, SiteLink);
|
||||||
ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("logout.php"), () =>
|
await ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("logout.php"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = response.Content;
|
CQ dom = response.Content;
|
||||||
var messageEl = dom["table.detail td.text"].Last();
|
var messageEl = dom["table.detail td.text"].Last();
|
||||||
|
@@ -47,6 +47,7 @@ namespace Jackett.Indexers
|
|||||||
var captchaImage = await RequestBytesWithCookies(CaptchaUrl);
|
var captchaImage = await RequestBytesWithCookies(CaptchaUrl);
|
||||||
var config = new BmtvConfig();
|
var config = new BmtvConfig();
|
||||||
config.CaptchaImage.Value = captchaImage.Content;
|
config.CaptchaImage.Value = captchaImage.Content;
|
||||||
|
config.CaptchaCookie.Value = captchaImage.Cookies;
|
||||||
return (ConfigurationData)config;
|
return (ConfigurationData)config;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,8 +62,8 @@ namespace Jackett.Indexers
|
|||||||
{ "secimage", config.CaptchaText.Value }
|
{ "secimage", config.CaptchaText.Value }
|
||||||
};
|
};
|
||||||
|
|
||||||
var response = await RequestLoginAndFollowRedirect(LoginPost, pairs, cookieHeader, true);
|
var response = await RequestLoginAndFollowRedirect(LoginPost, pairs, config.CaptchaCookie.Value, true);
|
||||||
await ConfigureIfOK(cookieHeader, response.Content.Contains("/logout.php"), async () =>
|
await ConfigureIfOK(response.Cookies, response.Content.Contains("/logout.php"), async () =>
|
||||||
{
|
{
|
||||||
CQ dom = response.Content;
|
CQ dom = response.Content;
|
||||||
var messageEl = dom["table tr > td.embedded > h2"].Last();
|
var messageEl = dom["table tr > td.embedded > h2"].Last();
|
||||||
@@ -70,6 +71,7 @@ namespace Jackett.Indexers
|
|||||||
var captchaImage = await RequestBytesWithCookies(CaptchaUrl);
|
var captchaImage = await RequestBytesWithCookies(CaptchaUrl);
|
||||||
config.CaptchaImage.Value = captchaImage.Content;
|
config.CaptchaImage.Value = captchaImage.Content;
|
||||||
config.CaptchaText.Value = "";
|
config.CaptchaText.Value = "";
|
||||||
|
config.CaptchaCookie.Value = captchaImage.Cookies;
|
||||||
throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
|
throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@@ -49,7 +49,7 @@ namespace Jackett.Indexers
|
|||||||
Cookies = cookies
|
Cookies = cookies
|
||||||
});
|
});
|
||||||
|
|
||||||
ConfigureIfOK(cookies, response.Content.Contains("/?section=LOGOUT"), () =>
|
await ConfigureIfOK(cookies, response.Content.Contains("/?section=LOGOUT"), () =>
|
||||||
{
|
{
|
||||||
throw new ExceptionWithConfigData("Failed to login", (ConfigurationData)config);
|
throw new ExceptionWithConfigData("Failed to login", (ConfigurationData)config);
|
||||||
});
|
});
|
||||||
|
@@ -56,7 +56,7 @@ namespace Jackett.Indexers
|
|||||||
var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty);
|
var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty);
|
||||||
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl);
|
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl);
|
||||||
|
|
||||||
ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("/logout.php"), () =>
|
await ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("/logout.php"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = response.Content;
|
CQ dom = response.Content;
|
||||||
var messageEl = dom[".error_text"];
|
var messageEl = dom[".error_text"];
|
||||||
|
@@ -52,7 +52,7 @@ namespace Jackett.Indexers
|
|||||||
// Send Post
|
// Send Post
|
||||||
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl);
|
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl);
|
||||||
|
|
||||||
ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("logout.php"), () =>
|
await ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("logout.php"), () =>
|
||||||
{
|
{
|
||||||
var errorStr = "You have {0} remaining login attempts";
|
var errorStr = "You have {0} remaining login attempts";
|
||||||
var remainingAttemptSpan = new Regex(string.Format(errorStr, "(.*?)")).Match(loginPage.Content).Groups[1].ToString();
|
var remainingAttemptSpan = new Regex(string.Format(errorStr, "(.*?)")).Match(loginPage.Content).Groups[1].ToString();
|
||||||
|
@@ -52,7 +52,7 @@ namespace Jackett.Indexers
|
|||||||
|
|
||||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl);
|
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl);
|
||||||
|
|
||||||
ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("If your browser doesn't have javascript enabled"), () =>
|
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("If your browser doesn't have javascript enabled"), () =>
|
||||||
{
|
{
|
||||||
var errorMessage = "Couldn't login";
|
var errorMessage = "Couldn't login";
|
||||||
throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)incomingConfig);
|
throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)incomingConfig);
|
||||||
|
@@ -99,7 +99,7 @@ namespace Jackett.Indexers
|
|||||||
// Redirect to ? then to /t
|
// Redirect to ? then to /t
|
||||||
await FollowIfRedirect(response, request.Url, null, firstCallCookies);
|
await FollowIfRedirect(response, request.Url, null, firstCallCookies);
|
||||||
|
|
||||||
ConfigureIfOK(firstCallCookies, response.Content.Contains("/my.php"), () =>
|
await ConfigureIfOK(firstCallCookies, response.Content.Contains("/my.php"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = response.Content;
|
CQ dom = response.Content;
|
||||||
var messageEl = dom["body > div"].First();
|
var messageEl = dom["body > div"].First();
|
||||||
|
@@ -84,7 +84,7 @@ namespace Jackett.Indexers
|
|||||||
var resultPage = await RequestStringWithCookies(link.Attr("href"), response.Cookies);
|
var resultPage = await RequestStringWithCookies(link.Attr("href"), response.Cookies);
|
||||||
CQ resultDom = resultPage.Content;
|
CQ resultDom = resultPage.Content;
|
||||||
|
|
||||||
ConfigureIfOK(response.Cookies, resultPage.Content.Contains("/logout.php"), () =>
|
await ConfigureIfOK(response.Cookies, resultPage.Content.Contains("/logout.php"), () =>
|
||||||
{
|
{
|
||||||
var tries = resultDom["#main tr:eq(1) td font"].First().Text();
|
var tries = resultDom["#main tr:eq(1) td font"].First().Text();
|
||||||
var errorMessage = "Incorrect username or password! " + tries + " tries remaining.";
|
var errorMessage = "Incorrect username or password! " + tries + " tries remaining.";
|
||||||
|
@@ -52,7 +52,7 @@ namespace Jackett.Indexers
|
|||||||
};
|
};
|
||||||
|
|
||||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, SearchUrl, SiteLink);
|
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, SearchUrl, SiteLink);
|
||||||
ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php?"), () =>
|
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php?"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = result.Content;
|
CQ dom = result.Content;
|
||||||
dom["#loginform > table"].Remove();
|
dom["#loginform > table"].Remove();
|
||||||
|
@@ -62,7 +62,7 @@ namespace Jackett.Indexers
|
|||||||
// Get result from redirect
|
// Get result from redirect
|
||||||
await FollowIfRedirect(result,LoginUrl,null, loginCookies);
|
await FollowIfRedirect(result,LoginUrl,null, loginCookies);
|
||||||
|
|
||||||
ConfigureIfOK(loginCookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
await ConfigureIfOK(loginCookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
||||||
{
|
{
|
||||||
cookieHeader = string.Empty;
|
cookieHeader = string.Empty;
|
||||||
throw new ExceptionWithConfigData("Failed", (ConfigurationData)config);
|
throw new ExceptionWithConfigData("Failed", (ConfigurationData)config);
|
||||||
|
@@ -47,7 +47,7 @@ namespace Jackett.Indexers
|
|||||||
};
|
};
|
||||||
|
|
||||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl);
|
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl);
|
||||||
ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("auth/logout"), () =>
|
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("auth/logout"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = result.Content;
|
CQ dom = result.Content;
|
||||||
var messageEl = dom[".form-error"];
|
var messageEl = dom[".form-error"];
|
||||||
|
@@ -50,7 +50,7 @@ namespace Jackett.Indexers
|
|||||||
var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty);
|
var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty);
|
||||||
|
|
||||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, SiteLink, LoginUrl);
|
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, SiteLink, LoginUrl);
|
||||||
ConfigureIfOK(result.Cookies + " " + loginPage.Cookies, result.Content != null && result.Content.Contains("nav_profile"), () =>
|
await ConfigureIfOK(result.Cookies + " " + loginPage.Cookies, result.Content != null && result.Content.Contains("nav_profile"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = result.Content;
|
CQ dom = result.Content;
|
||||||
var messageEl = dom["#login_box_desc"];
|
var messageEl = dom["#login_box_desc"];
|
||||||
|
@@ -49,7 +49,7 @@ namespace Jackett.Indexers
|
|||||||
};
|
};
|
||||||
|
|
||||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, LoginUrl);
|
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, LoginUrl);
|
||||||
ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = result.Content;
|
CQ dom = result.Content;
|
||||||
var errorMessage = dom["td.text"].Text().Trim();
|
var errorMessage = dom["td.text"].Text().Trim();
|
||||||
|
@@ -52,7 +52,7 @@ namespace Jackett.Indexers
|
|||||||
};
|
};
|
||||||
|
|
||||||
var result = await RequestLoginAndFollowRedirect(SiteLink, pairs, null, true, null, SiteLink);
|
var result = await RequestLoginAndFollowRedirect(SiteLink, pairs, null, true, null, SiteLink);
|
||||||
ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = result.Content;
|
CQ dom = result.Content;
|
||||||
var errorMessage = dom["h5"].First().Text().Trim();
|
var errorMessage = dom["h5"].First().Text().Trim();
|
||||||
|
@@ -81,7 +81,7 @@ namespace Jackett.Indexers
|
|||||||
var loginPage = await RequestStringWithCookies(SiteLink, string.Empty);
|
var loginPage = await RequestStringWithCookies(SiteLink, string.Empty);
|
||||||
|
|
||||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, SiteLink, SiteLink);
|
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, SiteLink, SiteLink);
|
||||||
ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = result.Content;
|
CQ dom = result.Content;
|
||||||
var messageEl = dom["body > div"].First();
|
var messageEl = dom["body > div"].First();
|
||||||
|
@@ -53,7 +53,7 @@ namespace Jackett.Indexers
|
|||||||
};
|
};
|
||||||
|
|
||||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, SiteLink, LoginUrl);
|
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, SiteLink, LoginUrl);
|
||||||
ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = result.Content;
|
CQ dom = result.Content;
|
||||||
var messageEl = dom["#login"];
|
var messageEl = dom["#login"];
|
||||||
|
@@ -50,7 +50,7 @@ namespace Jackett.Indexers
|
|||||||
};
|
};
|
||||||
|
|
||||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true,null, LoginUrl);
|
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true,null, LoginUrl);
|
||||||
ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("/user/account/logout"), () =>
|
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("/user/account/logout"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = result.Content;
|
CQ dom = result.Content;
|
||||||
var messageEl = dom[".ui-state-error"].Last();
|
var messageEl = dom[".ui-state-error"].Last();
|
||||||
|
@@ -51,7 +51,7 @@ namespace Jackett.Indexers
|
|||||||
};
|
};
|
||||||
|
|
||||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, LoginUrl);
|
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, LoginUrl);
|
||||||
ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
|
||||||
{
|
{
|
||||||
CQ dom = result.Content;
|
CQ dom = result.Content;
|
||||||
var messageEl = dom["#loginform"];
|
var messageEl = dom["#loginform"];
|
||||||
|
@@ -43,6 +43,9 @@ namespace Jackett.Models
|
|||||||
case ItemType.InputBool:
|
case ItemType.InputBool:
|
||||||
((BoolItem)item).Value = (bool)dictionary[item.ID];
|
((BoolItem)item).Value = (bool)dictionary[item.ID];
|
||||||
break;
|
break;
|
||||||
|
case ItemType.HiddenData:
|
||||||
|
((HiddenItem)item).Value = (string)dictionary[item.ID];
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -84,6 +87,15 @@ namespace Jackett.Models
|
|||||||
public string ID { get { return Name.Replace(" ", "").ToLower(); } }
|
public string ID { get { return Name.Replace(" ", "").ToLower(); } }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class HiddenItem : StringItem
|
||||||
|
{
|
||||||
|
public HiddenItem(string value)
|
||||||
|
{
|
||||||
|
Value = value;
|
||||||
|
ItemType = ItemType.HiddenData;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class DisplayItem : StringItem
|
public class DisplayItem : StringItem
|
||||||
{
|
{
|
||||||
public DisplayItem(string value)
|
public DisplayItem(string value)
|
||||||
|
@@ -16,17 +16,20 @@ namespace Jackett.Models.IndexerConfig
|
|||||||
|
|
||||||
public StringItem CaptchaText { get; private set; }
|
public StringItem CaptchaText { get; private set; }
|
||||||
|
|
||||||
|
public HiddenItem CaptchaCookie { get; private set; }
|
||||||
|
|
||||||
public BmtvConfig()
|
public BmtvConfig()
|
||||||
{
|
{
|
||||||
Username = new StringItem { Name = "Username" };
|
Username = new StringItem { Name = "Username" };
|
||||||
Password = new StringItem { Name = "Password" };
|
Password = new StringItem { Name = "Password" };
|
||||||
CaptchaImage = new ImageItem { Name = "Captcha Image" };
|
CaptchaImage = new ImageItem { Name = "Captcha Image" };
|
||||||
CaptchaText = new StringItem { Name = "Captcha Text" };
|
CaptchaText = new StringItem { Name = "Captcha Text" };
|
||||||
|
CaptchaCookie = new HiddenItem("") { Name = "Captcha Cookie" };
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Item[] GetItems()
|
public override Item[] GetItems()
|
||||||
{
|
{
|
||||||
return new Item[] { Username, Password, CaptchaImage, CaptchaText };
|
return new Item[] { Username, Password, CaptchaImage, CaptchaText, CaptchaCookie };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user