Fontehut | Github |
Obtenha os resultados da pesquisa do Google, mas sem anúncios, JavaScript, Links AMP, cookies ou rastreamento de endereço IP. Facilmente implantável em um clique como um aplicativo Docker e personalizável com um único arquivo de configuração. Rápido e simples de implementar como substituição do mecanismo de pesquisa primário no desktop e no celular.
Conteúdo
!<tag> <query>
) pesquisas*Nenhum JavaScript de terceiros. O Whoogle pode ser usado com JavaScript desativado, mas, se ativado, usa o JavaScript para coisas como apresentar sugestões de pesquisa.
** Sem biscoitos de terceiros. A Whoogle usa cookies do servidor (sessões) para armazenar configurações não sensíveis à configuração, como tema, idioma etc. Assim como no JavaScript, os cookies podem ser desativados e não afetam a funcionalidade de pesquisa do Whoogle.
*** se implantado em um servidor remoto ou configurado para enviar solicitações através de uma VPN, Tor, proxy, etc.
Existem algumas maneiras diferentes de começar a usar o aplicativo, dependendo de suas preferências:
Fornece:
Notas:
https
. Certifique -se de navegar para a versão https
do seu aplicativo antes de adicionar como um mecanismo de pesquisa padrão.Crie uma conta no render.com e importe o repositório Whoogle com as seguintes configurações:
Python 3
pip install -r requirements.txt
./run
Nota: requer uma conta de replicação (gratuita)
Fornece:
Você precisará de uma conta Fly.io para implantar Whoogle.
flyctl auth login
flyctl launch --image benbusby/whoogle-search:latest
A primeira implantação não terá sucesso porque o internal_port
padrão está errado. Para corrigir isso, abra o arquivo fly.toml
gerado, defina services.internal_port
para 5000
e execute flyctl launch
novamente.
Seu aplicativo está agora disponível em https://<app-name>.fly.dev
.
Notas:
Use um dos seguintes guias para instalar o Whoogle no Koyeb:
Instalação persistente:
pipx install https://github.com/benbusby/whoogle-search/archive/refs/heads/main.zip
Instância temporária da caixa de areia:
pipx run --spec git+https://github.com/benbusby/whoogle-search.git whoogle-search
pip install whoogle-search
$ whoogle-search --help
usage: whoogle-search [-h] [--port < port number > ] [--host < ip address > ] [--debug] [--https-only] [--userpass < username:password > ]
[--proxyauth < username:password > ] [--proxytype < socks4 | socks5 | http > ] [--proxyloc < location:port > ]
Whoogle Search console runner
optional arguments:
-h, --help Show this help message and exit
--port < port number > Specifies a port to run on (default 5000)
--host < ip address > Specifies the host address to use (default 127.0.0.1)
--debug Activates debug mode for the server (default False)
--https-only Enforces HTTPS redirects for all requests
--userpass < username:password >
Sets a username/password basic auth combo (default None)
--proxyauth < username:password >
Sets a username/password for a HTTP/SOCKS proxy (default None)
--proxytype < socks4 | socks5 | http >
Sets a proxy type for all connections (default None)
--proxyloc < location:port >
Sets a proxy location for all connections (default None)
Consulte as variáveis de ambiente disponíveis para uma configuração adicional.
NOTA: Os cabeçalhos Content-Security-Policy
podem ser enviados pelo Whoogle se você definir WHOOGLE_CSP
.
libcurl4-openssl-dev
e libssl-dev
brew install openssl curl-openssl
sudo apt-get install -y libcurl4-openssl-dev libssl-dev
pacman -S curl openssl
Clone o repositório e execute os seguintes comandos para iniciar o aplicativo em um ambiente somente local:
git clone https://github.com/benbusby/whoogle-search.git
cd whoogle-search
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
./run
Consulte as variáveis de ambiente disponíveis para uma configuração adicional.
Depois de construir o ambiente virtual, você pode adicionar algo como o seguinte a /lib/systemd/system/whoogle.service
para configurar um serviço Whoogle Search Systemd:
[Unit]
Description =Whoogle
[Service]
# Basic auth configuration, uncomment to enable
# Environment=WHOOGLE_USER=<username>
# Environment=WHOOGLE_PASS=<password>
# Proxy configuration, uncomment to enable
# Environment=WHOOGLE_PROXY_USER=<proxy username>
# Environment=WHOOGLE_PROXY_PASS=<proxy password>
# Environment=WHOOGLE_PROXY_TYPE=<proxy type (http|https|proxy4|proxy5)
# Environment=WHOOGLE_PROXY_LOC=<proxy host/ip>
# Site alternative configurations, uncomment to enable
# Note: If not set, the feature will still be available
# with default values.
# Environment=WHOOGLE_ALT_TW=farside.link/nitter
# Environment=WHOOGLE_ALT_YT=farside.link/invidious
# Environment=WHOOGLE_ALT_RD=farside.link/libreddit
# Environment=WHOOGLE_ALT_MD=farside.link/scribe
# Environment=WHOOGLE_ALT_TL=farside.link/lingva
# Environment=WHOOGLE_ALT_IMG=farside.link/rimgo
# Environment=WHOOGLE_ALT_WIKI=farside.link/wikiless
# Environment=WHOOGLE_ALT_IMDB=farside.link/libremdb
# Environment=WHOOGLE_ALT_QUORA=farside.link/quetre
# Environment=WHOOGLE_ALT_SO=farside.link/anonymousoverflow
# Load values from dotenv only
# Environment=WHOOGLE_DOTENV=1
# specify dotenv location if not in default location
# Environment=WHOOGLE_DOTENV_PATH=<path/to>/whoogle.env
Type =simple
User =<username>
# If installed as a package, add:
ExecStart =<python_install_dir>/python3 <whoogle_install_dir>/whoogle-search --host 127.0.0.1 --port 5000
# For example:
# ExecStart=/usr/bin/python3 /home/my_username/.local/bin/whoogle-search --host 127.0.0.1 --port 5000
# Otherwise if running the app from source, add:
ExecStart =<whoogle_repo_dir>/run
# For example:
# ExecStart=/var/www/whoogle-search/run
WorkingDirectory =<whoogle_repo_dir>
ExecReload =/bin/kill -HUP $MAINPID
Restart =always
RestartSec =3
SyslogIdentifier =whoogle
[Install]
WantedBy =multi-user.target
Então,
sudo systemctl daemon-reload
sudo systemctl enable whoogle
sudo systemctl start whoogle
Se o rotear sua solicitação, você precisará fazer os seguintes ajustes. Devido à natureza de interagir com o Google através do Tor, precisaremos enviar sinais para o TOR e, portanto, autenticar com ele.
Existem dois métodos de autenticação, senha e cookie. Você precisará fazer alterações no seu torrc:
Cookie
Uncomemente ou adicione as seguintes linhas em seu torrc:
ControlPort 9051
CookieAuthentication 1
DataDirectoryGroupReadable 1
CookieAuthFileGroupReadable 1
Torne o Tor Auth Cookie Legável:
whoogle
por esse usuário.chmod tor:whoogle /var/lib/tor
chmod tor:whoogle /var/lib/tor/control_auth_cookie
Reinicie o serviço TOR:
systemctl restart tor
Defina a variável de ambiente Tor como 1, WHOOGLE_CONFIG_TOR
. Consulte a seção Variáveis de ambiente para obter mais detalhes.
WHOOGLE_CONFIG_TOR=1
Senha
Execute este comando:
tor --hash-password {Your Password Here}
; Coloque sua senha no lugar de {Your Password Here}
.Uncomemente ou adicione as seguintes linhas em seu torrc:
ControlPort 9051
HashedControlPassword {Place output here}
; Coloque a saída do comando anterior no lugar de {Place output here}
.Agora pegue a senha do primeiro passo e coloque -a no arquivo control.conf no diretório de trabalho Whoogle, ou seja. misc/tor/control.conf
WHOOGLE_TOR_CONF
Environment. Consulte a seção Variáveis de ambiente para obter mais detalhes.Restringir fortemente o acesso ao Control.conf para ser legível pelo usuário que executa o Whoogle:
chmod 400 control.conf
Finalmente, defina a variável de ambiente do Tor e use a variável de senha como 1, WHOOGLE_CONFIG_TOR
e WHOOGLE_TOR_USE_PASS
. Consulte a seção Variáveis de ambiente para obter mais detalhes.
WHOOGLE_CONFIG_TOR=1
WHOOGLE_TOR_USE_PASS=1
sudo usermod -aG docker yourusername
docker ps
deve retornar algo além de um erro. Se você encontrar um erro dizendo que o daemon não está em execução, tente sudo systemctl start docker
(linux) ou verifique se a ferramenta do docker está em execução (Windows/MacOS).Através do Docker Hub:
docker pull benbusby/whoogle-search
docker run --publish 5000:5000 --detach --name whoogle-search benbusby/whoogle-search:latest
ou com o Docker-Comppose:
git clone https://github.com/benbusby/whoogle-search.git
cd whoogle-search
docker-compose up
ou construindo -se:
git clone https://github.com/benbusby/whoogle-search.git
cd whoogle-search
docker build --tag whoogle-search:1.0 .
docker run --publish 5000:5000 --detach --name whoogle-search whoogle-search:1.0
Opcionalmente, você também pode ativar algumas das seguintes variáveis de ambiente para personalizar ainda mais sua instância:
docker run --publish 5000:5000 --detach --name whoogle-search
-e WHOOGLE_USER=username
-e WHOOGLE_PASS=password
-e WHOOGLE_PROXY_USER=username
-e WHOOGLE_PROXY_PASS=password
-e WHOOGLE_PROXY_TYPE=socks5
-e WHOOGLE_PROXY_LOC=ip
whoogle-search:1.0
E matar com: docker rm --force whoogle-search
heroku login
heroku container:login
git clone https://github.com/benbusby/whoogle-search.git
cd whoogle-search
heroku create
heroku container:push web
heroku container:release web
heroku open
Esta série de comandos pode demorar um pouco, mas depois de executá -lo uma vez, você não deve executá -lo novamente. O comando final, heroku open
lançará uma guia no seu navegador da web, onde você pode testar o Whoogle e até defini -lo como seu mecanismo de pesquisa principal. Você também pode editar variáveis de ambiente na guia Configurações do seu aplicativo no painel Heroku.
Há um pacote AUR disponível, bem como um pacote pré-construído e atualizado diário disponível na Chaotic-Aur.
Para usar o gráfico Kubernetes Helm:
>=3.0.0
instaladohelm install whoogle ./charts/whoogle
Existem outros métodos para implantar contêineres do Docker que estão bem descritos neste artigo, mas há muitos para descrever configurados para cada um aqui. Geralmente, deve ser a mesma quantidade de esforço que a implantação da Heroku.
Dependendo de suas preferências, você também pode implantar o aplicativo em sua própria infraestrutura. Esta rota exigiria algumas etapas extras:
Existem algumas variáveis de ambiente opcionais disponíveis para personalizar uma instância do Whoogle. Estes podem ser definidos manualmente ou copiados no whoogle.env
e ativados para o seu método de implantação preferido:
WHOOGLE_DOTENV=1
antes de executardocker-compose
: Uncomment the env_file
docker build/run
: Add --env-file ./whoogle.env
para o seu comandoVariável | Descrição |
---|---|
Whoogle_url_prefix | O prefixo URL para usar na instância Whoogle (ou seja, "/Whoogle") |
Whoogle_Dotenv | Carregar variáveis de ambiente em whoogle.env |
Whoogle_dotenv_path | O caminho para whoogle.env se não estiver no local padrão |
Whoogle_user | O nome de usuário para a autenticação básica. Whoogle_pass também deve ser definido se usado. |
Whoogle_pass | A senha para autenticação básica. Whoogle_user também deve ser definido se usado. |
Whoogle_proxy_user | O nome de usuário do servidor proxy. |
Whoogle_proxy_pass | A senha do servidor proxy. |
Whoogle_proxy_type | O tipo do servidor proxy. Pode ser "Socks5", "Socks4" ou "HTTP". |
Whoogle_proxy_loc | A localização do servidor proxy (host ou IP). |
Whoogle_user_agent | O agente do usuário da área de trabalho para usar. Padrões para um gerado aleatoriamente. |
Whoogle_user_agent_mobile | O agente do usuário móvel para usar. Padrões para um gerado aleatoriamente. |
Whoogle_use_client_user_agent | Habilite usar seu próprio agente de usuário para todas as solicitações. Padrões para false. |
Whoogle_redirects | Especifique sites que devem ser redirecionados para outro lugar. Veja redirecionamento personalizado. |
Expose_port | O porto onde Whoogle será exposto. |
Https_only | Aplicar https. (Veja aqui) |
Whoogle_alt_tw | A alternativa do Twitter.com para usar quando as alternativas do site estão ativadas na configuração. Definido como "" para desativar. |
Whoogle_alt_yt | A alternativa do YouTube.com para usar quando as alternativas do site são ativadas na configuração. Definido como "" para desativar. |
Whoogle_alt_rd | A alternativa Reddit.com para usar quando as alternativas do site são ativadas na configuração. Definido como "" para desativar. |
Whoogle_alt_tl | O Google traduz alternativa para uso. Isso é usado para todas as pesquisas de "traduzir ____". Definido como "" para desativar. |
Whoogle_alt_md | A alternativa média.com para usar quando as alternativas do site estão ativadas na configuração. Definido como "" para desativar. |
Whoogle_alt_img | A alternativa imgu.com para usar quando as alternativas do site são ativadas na configuração. Definido como "" para desativar. |
Whoogle_alt_wiki | A alternativa Wikipedia.org para usar quando as alternativas do site são ativadas na configuração. Definido como "" para desativar. |
Whoogle_alt_imdb | A alternativa do IMDB.com para usar quando as alternativas do site são ativadas na configuração. Definido como "" para desativar. |
Whoogle_alt_quora | A alternativa do Quora.com a ser usada quando as alternativas do site são ativadas na configuração. Definido como "" para desativar. |
Whoogle_alt_so | A alternativa do Stackoverflow.com para usar quando as alternativas do site são ativadas na configuração. Definido como "" para desativar. |
Whoogle_autocomplete | Controla a visibilidade das sugestões de preenchimento automático/pesquisa. Padrão em - Use '0' para desativar. |
Whoogle_minimal | Remova tudo, exceto os cartões de resultado básico de todas as consultas de pesquisa. |
Whoogle_csp | Define um conjunto padrão de cabeçalhos 'conteúdo-security-policy' |
Whoogle_results_per_page | Defina o número de resultados por página |
Whoogle_tor_service | Habilite/Desative o serviço Tor na inicialização. Padrão em - Use '0' para desativar. |
Whoogle_tor_use_pass | Use a autenticação de senha para a porta de controle do Tor. |
Whoogle_tor_conf | O caminho absoluto para o arquivo de configuração que contém a senha para a porta de controle do Tor. Padrão: ./misc/tor/control.conf whoogle_tor_pass deve ser 1 para que isso funcione. |
Whoogle_show_favicons | Mostre/ocultar Favicons ao lado dos URLs de resultado da pesquisa. Padrão em. |
Whoogle_update_check | Habilite/Desative a verificação diária automática de novas versões do Whoogle. Padrão em. |
Whoogle_fallback_engine_url | Defina um URL do mecanismo de pesquisa de fallback quando houver erro interno do servidor ou instância estiver limitada por taxa. A consulta de pesquisa é anexada ao final do URL (por exemplo, https://duckduckgo.com/?k1=-1&q=). |
Essas variáveis de ambiente permitem definir valores de configuração padrão, mas podem ser substituídos manualmente usando o menu de configuração da página inicial. Eles permitem um atalho para destruir/reconstruir uma instância para o mesmo estado de configuração todas as vezes.
Variável | Descrição |
---|---|
Whoogle_config_disable | Ocultar a configuração da interface do usuário e proibir as mudanças na configuração pelo cliente |
Whoogle_config_country | Resultados do filtro, hospedando país |
Whoogle_config_language | Definir linguagem de interface |
Whoogle_config_search_language | Defina a linguagem do resultado da pesquisa |
Whoogle_config_block | Bloqueie os sites dos resultados da pesquisa (use a lista separada por vírgula) |
Whoogle_config_block_title | Resultado da pesquisa em bloco com um filtro regex no título |
Whoogle_config_block_url | Resultado da pesquisa em bloco com um filtro regex no URL |
Whoogle_config_theme | Definir modo de tema (claro, escuro ou sistema) |
Whoogle_config_safe | Ativar pesquisas seguras |
Whoogle_config_alts | Use alternativas de site de mídia social (nitter, desagradável, etc) |
Whoogle_config_near | Restringir os resultados apenas para aqueles próximos a uma cidade em particular |
Whoogle_config_tor | Use o roteamento Tor (se disponível) |
Whoogle_config_new_tab | Sempre abra resultados em nova guia |
Whoogle_config_view_image | Ativar opção de imagem de visualização |
Whoogle_config_get_only | Pesquise usando apenas solicitações GET |
Whoogle_config_url | O URL da raiz da instância ( https://<your url>/ ) |
Whoogle_config_style | O CSS personalizado para usar para estilo (deve ser uma linha única) |
Whoogle_config_preferences_encrypted | Criptografar o token de preferências, requer chave de preferências |
Whoogle_Config_Preferences_Key | Chave para criptografar as preferências no URL (necessário para mostrar URL) |
Whoogle_config_anon_view | Inclua a opção "Visualização anônima" para cada resultado de pesquisa |
O mesmo que a maioria dos mecanismos de pesquisa, com exceção da filtragem por intervalo de tempo.
Para filtrar por um período de tempo, anexar ": passado" até o final de sua pesquisa, onde pode ser hour
, day
, month
ou year
. Exemplo: coronavirus updates :past hour
NOTA: Se você estiver usando um proxy reverso para executar a Whoogle Search, verifique se a opção de configuração "URL da raiz" na página inicial está definida para o seu URL antes de passar por essas etapas.
Configurações do navegador:
http[s]://<your whoogle url>/search?q=%s
https://<your whoogle url>/search?q=%s
Vá para Alfred Preferences
> Features
> Web Search
e clique em Add Custom Search
. Em seguida, defina essas configurações
https://<your whoogle url>/search?q={query}
Whoogle for '{query}'
(ou o que você quiser)whoogle
Vá para Default Results
e clique no botão Setup fallback results
. Clique em +
e adicione o Whoogle, depois arraste -o para o topo.
<whoogle url>/search?q=%s
Você pode definir redirecionamentos do site personalizado usando a variável WHOOGLE_REDIRECTS
Environment. Muitos sites, como Twitter, Reddit, etc, têm redirecionamentos embutidos para os links de Farside, mas você pode definir o seu próprio.
Para fazer isso, você pode usar a seguinte sintaxe:
WHOOGLE_REDIRECTS="<parent_domain>:<new_domain>"
Por exemplo, se você deseja redirecionar de "Badsite.com" para "bensite.com":
WHOOGLE_REDIRECTS="badsite.com:goodsite.com"
Isso também pode ser usado para vários sites, com a separação de vírgula:
WHOOGLE_REDIRECTS="badA.com:goodA.com,badB.com:goodB.com"
Nota: Não inclua "http (s): //" ao definir seu redirecionamento.
Você pode criar sua própria franja personalizada. Por padrão, as franjas são armazenadas em app/static/bangs
. Veja 00-whoogle.json
para um exemplo. Eles são analisados em ordem alfabética, com arquivos posteriores, substituindo os arquivos anteriores, com a exceção de que o DDG Bangs (baixado para app/static/bangs/bangs.json
) é sempre analisado primeiro. Assim, qualquer franja personalizada sempre substituirá os DDG.
Parte do acordo com a camada gratuita da Heroku é que você é alocado 550 horas/mês (o que significa que não pode permanecer ativo 24 horas por dia, 7 dias por semana), e o aplicativo é interrompido temporariamente após 30 minutos de inatividade. Uma vez inativo, qualquer pesquisa do Whoogle ainda funcionará, mas levará 10 a 15 segundos extras para que o aplicativo volte online antes de exibir o resultado, o que pode ser frustrante se você estiver com pressa.
Uma boa solução para isso é configurar um cronjob simples em qualquer dispositivo em sua casa que seja constantemente ligado e conectado à Internet (no meu caso, um pihole funcionou perfeitamente). Tudo o que o dispositivo precisa fazer é buscar o conteúdo do aplicativo de forma consistente para manter o aplicativo vivo em qualquer janela de 17 horas em que você desejar (17 horas * 31 dias = 527, o que significa que você ainda teria 23 horas de sobra por mês se se você pesquisou fora da janela de destino).
Por exemplo, adicionar */20 7-23 * * * curl https://<your heroku app name>.herokuapp.com > /home/<username>/whoogle-refresh
irá buscar a página inicial do aplicativo a cada 20 minutos Entre as 7h e a meia -noite, permitindo tempo de inatividade da meia -noite às 7h. E, novamente, isso não seria um limite rígido - você ainda teria muitas horas restantes de tempo de atividade todos os meses, caso você estivesse pesquisando depois que essa janela foi fechada.
Como a instância é destruída e reconstruída após a inatividade, as configurações de configuração serão redefinidas assim que o aplicativo entrar no tempo de inatividade. Se você tiver configurações de configuração ativas que deseja manter entre períodos de inatividade (como o Modo Dark, por exemplo), você pode adicionar */20 7-23 * * * curl -d "dark=1" -X POST https://<your heroku app name>.herokuapp.com/config > /home/<username>/whoogle-refresh
para manter essas configurações mais ou menos permanentes e ainda impedir o aplicativo de entrar no tempo de inatividade quando estiver usando.
Somente necessário se a sua configuração exigir o Flask para redirecionar para HTTPS por conta própria - geralmente isso é algo que não precisa ser tratado pela Whoogle Search.
Nota: Você deve ter seu próprio nome de domínio e um certificado HTTPS para que isso funcione corretamente.
Root URL
na página inicial começa com https://
e não http://
--build-arg use_https=1
ao seu comando de execução--https-only
ao final do comando whoogle-search
run
padrão: Modifique o script localmente para incluir a bandeira --https-only
no final do comando python run Infelizmente, os contêineres do Firefox atualmente não passam por solicitações POST
(o padrão) para o mecanismo e o Firefox cache o modelo OpenSearch no carregamento inicial da página. Para contornar isso, você pode tomar as seguintes etapas para funcioná -lo como esperado:
GET Requests Only
na configuração do WhoogleAqui está uma amostra de configuração nginx para Whoogle:
server {
server_name your_domain_name.com;
access_log /dev/null;
error_log /dev/null;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Host $http_host;
proxy_pass http://localhost:5000;
}
}
Em seguida, você pode adicionar suporte SSL usando o LetSencrypt seguindo um guia como este.
Sob o capô, Whoogle é um aplicativo básico de frasco com a seguinte estrutura:
app/
routes.py
: Primary App EntryPoint, contém todas as rotas de APIrequest.py
: lida com todas as solicitações de saída, incluindo conectividade proxiada/torfilter.py
: funções e utilitários usados para filtrar o conteúdo a partir de resultados de pesquisa do Google upstreamutils/
bangs.py
: Toda a lógica relacionada ao manuseio de consultas "Bang" no estilo DDGresults.py
: Funções de utilidade para interpretar/modificar os resultados da pesquisa individualsearch.py
: cria e lida com novas consultas de pesquisasession.py
: métodos diversos relacionados às sessões de usuáriotemplates/
index.html
: o modelo de página inicialdisplay.html
: o modelo de resultados de pesquisaheader.html
: um cabeçalho de consulta geral "Top of the Page" para desktop e celularsearch.html
: uma página de pesquisa de Iframe-Eablelogo.html
: um modelo consistindo principalmente no logotipo Whoogle como um SVG (separado para ajudar a manter index.html
um pouco mais limpo)opensearch.xml
: um modelo usado para suportar o OpenSearch.imageresults.html
: um modelo "experimental" usado para suportar o recurso de imagem "tamanho completo" na área de trabalho.static/<css|js>
static/settings
Se você é novo no projeto, a maneira mais fácil de começar seria tentar consertar um relatório de bug aberto. Se não houver nenhum aberto ou se os abertos estiverem muito obsoletos, tente assumir uma solicitação de recurso. De um modo geral, se você pode escrever algo que tenha algum potencial de desdobramento no futuro, deve escrever um teste para ele.
O projeto segue o Guia do estilo Pep 8, mas é responsável por mudar. A digitação estática sempre deve ser usada quando possível. A documentação da função é muito apreciada e normalmente segue o formato abaixo:
def contains ( x : list , y : int ) -> bool :
"""Check a list (x) for the presence of an element (y)
Args:
x: The list to inspect
y: The int to look for
Returns:
bool: True if the list contains the item, otherwise False
"""
return y in x
Whoogle atualmente suporta traduções usando translations.json
. Os valores do idioma neste arquivo precisam corresponder ao "valor" do idioma de acordo em languages.json
(ou seja, "Lang_en" para inglês, "Lang_es" para espanhol, etc.). Depois de adicionar um novo conjunto de traduções ao translations.json
, abra um PR com suas alterações e elas serão mescladas o mais rápido possível.
Qual é a diferença entre isso e o Searx?
Whoogle pretende ser implantado apenas em instâncias privadas por indivíduos de qualquer formação, com o mínimo de esforço possível. O conhecimento prévio da experiência/experiência com a linha de comando ou a implantação de aplicativos não é necessário para implantar o Whoogle, o que não é o caso do Searx. Como resultado, o Whoogle está perdendo alguns recursos do Searx para ser o mais fácil de implantar.
A Whoogle também usa apenas os resultados da pesquisa do Google, não o Bing/Quant/etc, e usa a interface do usuário de pesquisa do Google existente para fazer a transição da pesquisa do Google o mais imperceptível possível.
Eu sou um grande fã do Searx e incentivo qualquer pessoa a usar isso, se quiser acessar outros mecanismos de pesquisa/uma interface de interface do usuário/mais.
Por que a página de resultados da imagem parece diferente?
Atualmente, muitos aplicativos se encaixam no suporte existente do Google para buscar páginas de resultados com JavaScript desativado. Para seu crédito, eles fizeram um excelente trabalho com páginas de estilo, mas parece que a página de resultados da imagem - particularmente no celular - é um pouco difícil. Avançando, com interesse suficiente, gostaria de fazer a transição para buscar os resultados e analisá-los em uma interface exclusiva que eu posso me modelar.
Nota: Use instâncias públicas a seu próprio critério. Os mantenedores do Whoogle não validam pessoalmente a integridade de nenhuma outra instância. As instâncias públicas populares têm maior probabilidade de serem limitadas ou bloqueadas.
Site | País | Linguagem | Cloudflare |
---|---|---|---|
https://search.albony.xyz | ? EM | Multi-escolha | |
https://search.garudalinux.org | ? Fi | Multi-escolha | ✅ |
https://search.dr460nf1r3.org | ? De | Multi-escolha | ✅ |
https://s.tokhmi.xyz | ? NÓS | Multi-escolha | ✅ |
https://search.sethforprivacy.com | ? De | Inglês | |
https://whoogle.dcs0.hu | ? Hu | Multi-escolha | |
https://gowogle.Voring.me | ? NÓS | Multi-escolha | |
https://whoogle.privacydev.net | ? Fr | Inglês | |
https://wg.vern.cc | ? NÓS | Inglês | |
https://whoogle.hxvy0.gq | ? Ca | Apenas turco | ✅ |
https://whoogle.hostux.net | ? Fr | Multi-escolha | |
https://whoogle.lunar.icu | ? De | Multi-escolha | ✅ |
https://wgl.frail.duckdns.org | ? Br | Multi-escolha | |
https://whoogle.no-logs.com | ? SE | Multi-escolha | |
https://whoogle.ftw.lol | ? De | Multi-escolha | |
https://whoogle-search-replitcomreside.repl.co | ? NÓS | Inglês | |
https://search.notrustverify.ch | ? Cap | Multi-escolha | |
https://whoogle.datura.network | ? De | Multi-escolha | |
https://whoogle.yepserver.xyz | ? Ua | Multi-escolha | |
https://search.nezumi.party | ? ISTO | Multi-escolha | |
https://search.snine.nl | ? Nl | Multiplices | ✅ |
Site | País | Linguagem |
---|---|---|
http://whoglqjdkgt2an4tdepberwqz3hk7tjO4kqgdnuj77rt7nshw2xqqad.onion | ? NÓS | Multi-escolha |
http://nuifgsnbb2mcyza74o7illtqmuaqbwu4flam3cdmsrnudwcmkqur37qd.onion | ? De | Inglês |
http://whoogle.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion | ? NÓS | Inglês |
http://whoogle.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion | ? Fr | Inglês |
http://whoogle.daturab6drmkhyeia4ch5gvfc2f3wgo6bhjrv3pz6n7kxmvoznlkq4yd.onion | ? De | Multi-escolha |
Site | País | Linguagem |
---|---|---|
http | ? NÓS | Inglês |