Added a searcher that attempts to use search engines as a proxy.

This commit is contained in:
Nekojimi 2021-09-30 17:09:01 +01:00
parent b8336c26fb
commit c60d1bfdfa
2 changed files with 46 additions and 1 deletions

View File

@ -10,6 +10,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import moe.nekojimi.musicsearcher.Query;
import moe.nekojimi.musicsearcher.Result;
/**
@ -29,7 +30,7 @@ public class MetaSearcher extends Searcher
}
@Override
protected List<Result> doSearch(String query)
protected List<Result> doSearch(Query query)
{
List<Result> results = new ArrayList<>();
List<CompletableFuture<List<Result>>> searches = new ArrayList<>();

View File

@ -0,0 +1,44 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package moe.nekojimi.musicsearcher.providers;
import com.amihaiemil.eoyaml.YamlMapping;
import java.net.MalformedURLException;
import java.net.URL;
import moe.nekojimi.musicsearcher.parsers.HTMLParser;
/**
*
* @author jim
*/
public class SearchHackSearcher extends WebScraperSearcher
{
private final String site;
public SearchHackSearcher(YamlMapping yaml) throws MalformedURLException
{
super(yaml.string("name"));
searchUrl = "https://html.duckduckgo.com/html/";
rootURL = new URL(searchUrl);
parser = new HTMLParser();
site = yaml.string("site");
resultSelector = "div.result";
resultTitleSelector = ".result__title";
resultLinkSelector = ".result__url";
}
@Override
protected String transformSearchString(String search)
{
return "site:"+site + " " + search;
}
}