public string GetQueryUrl(DanbooruSearchParam searchParam)
{
var queryStr = GetQueryString(searchParam);
var queryRootUrl = ""; ;
switch (this.Preferred)
{
case PreferredMethod.Xml:
queryRootUrl = this.QueryStringXml;
break;
case PreferredMethod.Json:
queryRootUrl = this.QueryStringJson;
break;
case PreferredMethod.Html:
queryRootUrl = this.QueryStringHtml;
break;
default:
break;
}
queryStr = queryRootUrl.Replace("%_query%", queryStr);
switch (this.LoginType)
{
case Entity.LoginType.UserPass:
{
var hash = this.PasswordHash;
if (String.IsNullOrWhiteSpace(hash))
{
hash = Helper.GeneratePasswordHash(this.Password, this.PasswordSalt);
this.PasswordHash = hash;
}
string authString = "login=" + this.UserName + "&password_hash=" + hash;
queryStr = queryStr + "&" + authString;
}
break;
case Entity.LoginType.Cookie:
// need to inject csv cookie to the webclient
var cookies = Helper.ParseCookie(this.UserName, this.Url);
foreach (var cookie in cookies)
{
ExtendedWebClient.CookieJar.Add(cookie);
}
break;
default:
break;
}
return this.Url + queryStr;
}