This commit is contained in:
Simon
2026-04-05 20:31:38 +00:00
parent 9773590f64
commit 7b464fe796
10 changed files with 815 additions and 565 deletions

View File

@@ -883,11 +883,35 @@ impl OmgxxxProvider {
) -> Result<Vec<VideoItem>> {
let mut search_type = "search";
let mut search_string = query.to_string().to_ascii_lowercase().trim().to_string();
let trimmed = query.trim().trim_start_matches('@').to_ascii_lowercase();
if let Some((kind, raw)) = trimmed.split_once(':') {
let candidate = raw.trim().replace(' ', "-");
if !candidate.is_empty() {
match kind.trim() {
"models" | "model" | "stars" => {
search_type = "models";
search_string = candidate;
}
"sites" | "site" => {
search_type = "sites";
search_string = candidate;
}
"networks" | "network" => {
search_type = "networks";
search_string = candidate;
}
_ => {}
}
}
}
match self.stars.read() {
Ok(stars) => {
if let Some(star) = stars
.iter()
.find(|s| s.title.to_ascii_lowercase() == search_string)
.find(|s| {
s.title.eq_ignore_ascii_case(&search_string)
|| s.id.eq_ignore_ascii_case(&search_string)
})
{
search_type = "models";
search_string = star.id.clone();
@@ -901,7 +925,10 @@ impl OmgxxxProvider {
Ok(sites) => {
if let Some(site) = sites
.iter()
.find(|s| s.title.to_ascii_lowercase() == search_string)
.find(|s| {
s.title.eq_ignore_ascii_case(&search_string)
|| s.id.eq_ignore_ascii_case(&search_string)
})
{
search_type = "sites";
search_string = site.id.clone();
@@ -911,6 +938,23 @@ impl OmgxxxProvider {
report_provider_error_background("omgxxx", "query.sites_read", &e.to_string());
}
}
match self.networks.read() {
Ok(networks) => {
if let Some(network) = networks
.iter()
.find(|n| {
n.title.eq_ignore_ascii_case(&search_string)
|| n.id.eq_ignore_ascii_case(&search_string)
})
{
search_type = "networks";
search_string = network.id.clone();
}
}
Err(e) => {
report_provider_error_background("omgxxx", "query.networks_read", &e.to_string());
}
}
let mut video_url = format!("{}/{}/{}/{}/", self.url, search_type, search_string, page);
video_url = video_url.replace(" ", "+");
// Check our Video Cache. If the result is younger than 1 hour, we return it.