Hoja de fuente | Github |
Obtenga resultados de búsqueda de Google, pero sin ningún anuncio, JavaScript, enlaces de AMP, cookies o seguimiento de direcciones IP. Fácilmente implementable en un solo clic como una aplicación Docker y personalizable con un solo archivo de configuración. Rápido y simple de implementar como un reemplazo principal del motor de búsqueda tanto en escritorio como en dispositivos móviles.
Contenido
!<tag> <query>
)*No hay JavaScript de terceros. Whoogle puede usarse con JavaScript Distabiled, pero si está habilitado, usa JavaScript para cosas como presentar sugerencias de búsqueda.
** No hay galletas de terceros. Whoogle usa cookies (sesiones) del lado del servidor para almacenar configuraciones de configuración no sensibles, como tema, idioma, etc. Al igual que con JavaScript, las cookies se pueden deshabilitar y no afectar la funcionalidad de búsqueda de Whoogle.
*** Si se implementa en un servidor remoto, o configurado para enviar solicitudes a través de una VPN, TOR, proxy, etc.
Hay algunas formas diferentes de comenzar a usar la aplicación, dependiendo de sus preferencias:
Proporciona:
Notas:
https
. Asegúrese de navegar a la versión https
de su aplicación antes de agregar como motor de búsqueda predeterminado.Cree una cuenta en render.com e importe el repositorio de Whoogle con la siguiente configuración:
Python 3
pip install -r requirements.txt
./run
Nota: requiere una cuenta de replicación (gratuita)
Proporciona:
Necesitará una cuenta de Fly.io para implementar Whoogle.
flyctl auth login
flyctl launch --image benbusby/whoogle-search:latest
El primer despliegue no tendrá éxito porque el internal_port
predeterminado está mal. Para solucionar esto, abra el archivo fly.toml
generado, establezca services.internal_port
a 5000
y ejecute flyctl launch
nuevamente.
Su aplicación ahora está disponible en https://<app-name>.fly.dev
.
Notas:
Use una de las siguientes guías para instalar Whoogle en Koyeb:
Instalación persistente:
pipx install https://github.com/benbusby/whoogle-search/archive/refs/heads/main.zip
Instancia temporal de sandboxed:
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 las variables de entorno disponibles para una configuración adicional.
Nota: Whoogle puede enviar los encabezados Content-Security-Policy
si establece WHOOGLE_CSP
.
libcurl4-openssl-dev
y libssl-dev
brew install openssl curl-openssl
sudo apt-get install -y libcurl4-openssl-dev libssl-dev
pacman -S curl openssl
Clonar el repositorio y ejecute los siguientes comandos para iniciar la aplicación en un entorno solo 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 las variables de entorno disponibles para una configuración adicional.
Después de construir el entorno virtual, puede agregar algo como lo siguiente a /lib/systemd/system/whoogle.service
para configurar un servicio 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
Entonces,
sudo systemctl daemon-reload
sudo systemctl enable whoogle
sudo systemctl start whoogle
Si enruta su solicitud a través de TOR, deberá realizar los siguientes ajustes. Debido a la naturaleza de interactuar con Google a través de Tor, necesitaremos poder enviar señales a TOR y, por lo tanto, autenticarlo.
Hay dos métodos de autenticación, contraseña y cookie. Deberá hacer cambios en su torrc:
Galleta
Descomposición o agregue las siguientes líneas en su torrc:
ControlPort 9051
CookieAuthentication 1
DataDirectoryGroupReadable 1
CookieAuthFileGroupReadable 1
Haga que la cookie de Tor Auth sea legible:
whoogle
con ese usuario.chmod tor:whoogle /var/lib/tor
chmod tor:whoogle /var/lib/tor/control_auth_cookie
Reinicie el servicio TOR:
systemctl restart tor
Establezca la variable de entorno TOR en 1, WHOOGLE_CONFIG_TOR
. Consulte la sección Variables de entorno para obtener más detalles.
WHOOGLE_CONFIG_TOR=1
Contraseña
Ejecute este comando:
tor --hash-password {Your Password Here}
; Coloque su contraseña en lugar de {Your Password Here}
.Descomposición o agregue las siguientes líneas en su torrc:
ControlPort 9051
HashedControlPassword {Place output here}
; Coloque la salida del comando anterior en lugar de {Place output here}
.Ahora tome la contraseña del primer paso y colóquela en el archivo Control.conf dentro del directorio de trabajo Whoogle, es decir. misc/tor/control.conf
WHOOGLE_TOR_CONF
. Consulte la sección Variables de entorno para obtener más detalles.Restringir fuertemente el acceso al control.conf para que el usuario ejecute Whoogle: Whoogle:
chmod 400 control.conf
Finalmente, establezca la variable de entorno TOR y use la variable de contraseña en 1, WHOOGLE_CONFIG_TOR
y WHOOGLE_TOR_USE_PASS
. Consulte la sección Variables de entorno para obtener más detalles.
WHOOGLE_CONFIG_TOR=1
WHOOGLE_TOR_USE_PASS=1
sudo usermod -aG docker yourusername
docker ps
debería devolver algo además de un error. Si se encuentra con un error al decir que el demonio no se está ejecutando, pruebe sudo systemctl start docker
(Linux) o asegúrese de que la herramienta Docker se esté ejecutando (Windows/MacOS).A través de Docker Hub:
docker pull benbusby/whoogle-search
docker run --publish 5000:5000 --detach --name whoogle-search benbusby/whoogle-search:latest
o con Docker-Compose:
git clone https://github.com/benbusby/whoogle-search.git
cd whoogle-search
docker-compose up
o construyéndate:
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, también puede habilitar algunas de las siguientes variables de entorno para personalizar aún más su instancia:
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
Y matar con: 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 serie de comandos puede llevar un tiempo, pero una vez que la ejecuta una vez, no debería tener que volver a ejecutarlo. El comando final, heroku open
lanzará una pestaña en su navegador web, donde puede probar Whoogle e incluso establecerlo como su motor de búsqueda principal. También puede editar variables de entorno en la pestaña Configuración de su aplicación en el tablero de Heroku.
Hay un paquete AUR disponible, así como un paquete actualizado diario y preconstruido disponible en Chaotic-Aur.
Para usar la tabla de timón de Kubernetes:
>=3.0.0
instaladohelm install whoogle ./charts/whoogle
Existen otros métodos para implementar contenedores Docker que se describen bien en este artículo, pero hay demasiados para describir la configuración de cada uno aquí. En general, debería ser aproximadamente la misma cantidad de esfuerzo que el despliegue de Heroku.
Dependiendo de sus preferencias, también puede implementar la aplicación usted mismo en su propia infraestructura. Esta ruta requeriría algunos pasos adicionales:
Hay algunas variables de entorno opcionales disponibles para personalizar una instancia de Whoogle. Estos se pueden establecer manualmente o copiarse en whoogle.env
y habilitarse para su método de implementación preferido:
WHOOGLE_DOTENV=1
antes de ejecutardocker-compose
: Uncomment la opción env_file
docker build/run
: Agregar --env-file ./whoogle.env
a su comandoVariable | Descripción |
---|---|
Whoogle_url_prefix | El prefijo de URL para usar para la instancia de Whoogle (es decir "/whoogle") |
Whoogle_dotenv | Cargar variables de entorno en whoogle.env |
Whoogle_dotenv_path | La ruta a whoogle.env si no está en la ubicación predeterminada |
Whoogle_user | El nombre de usuario para la autenticación básica. Whoogle_Pass también debe establecerse si se usa. |
Whoogle_pass | La contraseña para la autenticación básica. Whoogle_user también debe estar configurado si se usa. |
Whoogle_proxy_user | El nombre de usuario del servidor proxy. |
Whoogle_proxy_pass | La contraseña del servidor proxy. |
Whoogle_proxy_type | El tipo de servidor proxy. Puede ser "SOCKS5", "SOCKS4" o "HTTP". |
Whoogle_proxy_loc | La ubicación del servidor proxy (host o IP). |
Whoogle_user_agent | El agente de usuario de escritorio para usar. El valor predeterminado es generado al azar. |
Whoogle_user_agent_mobile | El agente de usuarios móviles para usar. El valor predeterminado es generado al azar. |
Whoogle_use_client_user_agent | Habilite usar su propio agente de usuario para todas las solicitudes. El valor predeterminado es falso. |
Whoogle_redirects | Especifique los sitios que deben redirigirse en otro lugar. Ver redireccionamiento personalizado. |
Expose_port | El puerto donde Whoogle estará expuesto. |
Https_only | Hacer cumplir https. (Ver aquí) |
Whoogle_alt_tw | La alternativa de Twitter.com para usar cuando las alternativas del sitio están habilitadas en la configuración. Establecido en "" para deshabilitar. |
Whoogle_alt_yt | La alternativa de YouTube.com para usar cuando las alternativas del sitio están habilitadas en la configuración. Establecido en "" para deshabilitar. |
Whoogle_alt_rd | La alternativa reddit.com para usar cuando las alternativas del sitio están habilitadas en la configuración. Establecido en "" para deshabilitar. |
Whoogle_alt_tl | La alternativa de traducción de Google para usar. Esto se usa para todas las búsquedas "traducir ____". Establecido en "" para deshabilitar. |
Whoogle_alt_md | La alternativa de Medium.com para usar cuando las alternativas del sitio están habilitadas en la configuración. Establecido en "" para deshabilitar. |
Whoogle_alt_img | La alternativa de imgur.com para usar cuando las alternativas del sitio están habilitadas en la configuración. Establecido en "" para deshabilitar. |
Whoogle_alt_wiki | La alternativa wikipedia.org para usar cuando las alternativas del sitio están habilitadas en la configuración. Establecido en "" para deshabilitar. |
Whoogle_alt_imdb | La alternativa IMDB.com para usar cuando las alternativas del sitio están habilitadas en la configuración. Establecido en "" para deshabilitar. |
Whoogle_alt_quora | La alternativa de Quora.com para usar cuando las alternativas del sitio están habilitadas en la configuración. Establecido en "" para deshabilitar. |
Whoogle_alt_so | La alternativa StackoverFlow.com para usar cuando las alternativas del sitio están habilitadas en la configuración. Establecido en "" para deshabilitar. |
Whoogle_autocomplete | Controla la visibilidad de las sugerencias de autocompletar/búsqueda. Predeterminado ON - Use '0' para deshabilitar. |
Whoogle_minimal | Elimine todo excepto las tarjetas de resultados básicas de todas las consultas de búsqueda. |
Whoogle_csp | Establece un conjunto predeterminado de encabezados 'Contenido-Security-Policy' |
Whoogle_results_per_page | Establezca el número de resultados por página |
Whoogle_tor_service | Habilitar/deshabilitar el servicio TOR en el inicio. Predeterminado ON - Use '0' para deshabilitar. |
Whoogle_tor_use_pass | Use la autenticación de contraseña para el puerto de control TOR. |
Whoogle_tor_conf | La ruta absoluta al archivo de configuración que contiene la contraseña para el puerto de control TOR. Predeterminado: ./misc/tor/control.conf whoogle_tor_pass debe ser 1 para que esto funcione. |
Whoogle_show_favicons | Mostrar/ocultar favicones junto a las URL de resultados de búsqueda. Predeterminado. |
Whoogle_update_check | Habilitar/deshabilitar la verificación automática diaria de nuevas versiones de Whoogle. Predeterminado. |
Whoogle_fallback_engine_url | Establezca una URL del motor de búsqueda de sueldo cuando hay un error de servidor interno o la instancia está limitada por la velocidad. La consulta de búsqueda se agrega al final de la URL (por ejemplo, https://duckduckgo.com/?k1=-1&q=). |
Estas variables de entorno permiten configurar valores de configuración predeterminados, pero se pueden sobrescribir manualmente utilizando el menú de configuración de la página de inicio. Estos permiten un atajo para destruir/reconstruir una instancia al mismo estado de configuración cada vez.
Variable | Descripción |
---|---|
Whoogle_config_disable | Ocultar la configuración de la interfaz de usuario y no permitir cambios a la configuración por el cliente |
Whoogle_config_country | Filtrar resultados al alojamiento del país |
Whoogle_config_language | Establecer el lenguaje de la interfaz |
Whoogle_config_search_language | Establecer el lenguaje de resultados de la búsqueda |
Whoogle_config_block | Bloquear sitios web de los resultados de búsqueda (use la lista separada por comas) |
Whoogle_config_block_title | Resultado de la búsqueda de bloque con un filtro regex en el título |
Whoogle_config_block_url | Resultado de la búsqueda de bloque con un filtro regex en URL |
Whoogle_config_theme | Establezca el modo de tema (luz, oscura o sistema) |
Whoogle_config_safe | Habilitar búsquedas seguras |
Whoogle_config_alts | Use alternativas de sitios de redes sociales (Nitter, Invidious, etc.) |
Whoogle_config_near | Restringir los resultados a solo aquellos cercanos a una ciudad en particular |
Whoogle_config_tor | Use el enrutamiento TOR (si está disponible) |
Whoogle_config_new_tab | Siempre abre resultados en la nueva pestaña |
Whoogle_config_view_image | Habilitar la opción Vista de imagen |
Whoogle_config_get_only | Buscar usando solo solicitudes |
Whoogle_config_url | La URL raíz de la instancia ( https://<your url>/ ) |
Whoogle_config_style | El CSS personalizado para usar para el estilo (debe ser una sola línea) |
Whoogle_config_preferences_encrypted | Token de preferencias de cifrado, requiere una clave de preferencias |
Whoogle_config_preferences_key | Clave para cifrar las preferencias en URL (requerida para mostrar URL) |
Whoogle_config_anon_view | Incluya la opción "Vista anónima" para cada resultado de la búsqueda |
Igual que la mayoría de los motores de búsqueda, con la excepción del filtrado por rango de tiempo.
Para filtrar por una variedad de tiempo, agregue ": pasado" hasta el final de su búsqueda, dónde puede ser hour
, day
, month
o year
. Ejemplo: coronavirus updates :past hour
Nota: Si está utilizando un proxy inverso para ejecutar Whoogle Search, asegúrese de que la opción de configuración "URL raíz" en la página de inicio esté configurada en su URL antes de pasar por estos pasos.
Configuración del navegador:
http[s]://<your whoogle url>/search?q=%s
https://<your whoogle url>/search?q=%s
Vaya a Alfred Preferences
> Features
> Web Search
y haga clic en Add Custom Search
. Luego configure estos ajustes
https://<your whoogle url>/search?q={query}
Whoogle for '{query}'
(o lo que quieras)whoogle
Vaya a Default Results
y haga clic en el botón Setup fallback results
. Haga clic en +
y agregue Whoogle, luego arrástrelo a la parte superior.
<whoogle url>/search?q=%s
URL de búsqueda formateada. Puede establecer redireccionamientos de sitio personalizados utilizando la variable de entorno WHOOGLE_REDIRECTS
. Muchos sitios, como Twitter, Reddit, etc., tienen redireccionamientos incorporados a los enlaces de Farside, pero es posible que desee definir los suyos.
Para hacer esto, puede usar la siguiente sintaxis:
WHOOGLE_REDIRECTS="<parent_domain>:<new_domain>"
Por ejemplo, si desea redirigir de "badsite.com" a "Goodsite.com":
WHOOGLE_REDIRECTS="badsite.com:goodsite.com"
Esto también se puede usar para múltiples sitios, con separación de coma:
WHOOGLE_REDIRECTS="badA.com:goodA.com,badB.com:goodB.com"
Nota: No incluya "http (s): //" al definir su redirección.
Puede crear sus propios golpes personalizados. Por defecto, los golpes se almacenan en app/static/bangs
. Ver 00-whoogle.json
para un ejemplo. Estos se analizan en orden alfabético con archivos posteriores que anulan las explosiones establecidas en archivos anteriores, con la excepción de que DDG Bangs (descargados a app/static/bangs/bangs.json
) siempre se analizan primero. Por lo tanto, cualquier flequillo personalizado siempre anulará los DDG.
Parte del acuerdo con el nivel gratuito de Heroku es que se le asigna 550 horas/mes (lo que significa que no puede permanecer activo las 24 horas, los 7 días de la semana), y la aplicación se apaga temporalmente después de 30 minutos de inactividad. Una vez que quede inactivo, cualquier búsqueda de Whoogle seguirá funcionando, pero la aplicación tardará entre 10 y 15 segundos en volver a estar en línea antes de mostrar el resultado, lo que puede ser frustrante si tiene prisa.
Una buena solución para esto es configurar un cronjob simple en cualquier dispositivo en su hogar que esté constantemente alimentado y conectado a Internet (en mi caso, un pihole funcionó perfectamente). Todo lo que el dispositivo debe hacer es obtener contenido de la aplicación de manera constante para mantener viva la aplicación en cualquier ventana de ~ 17 horas en la que desee (17 horas * 31 días = 527, lo que significa que todavía tendrías 23 horas sobrantes cada mes si Buscó fuera de su ventana de destino).
Por ejemplo, agregando */20 7-23 * * * curl https://<your heroku app name>.herokuapp.com > /home/<username>/whoogle-refresh
obtendrá la página de inicio de la aplicación cada 20 minutos Entre las 7 a.m. y la medianoche, permitiendo el tiempo de inactividad de medianoche a 7 a.m. Y nuevamente, este no sería un límite difícil: aún tendrías muchas horas restantes de tiempo de actividad cada mes en caso de que estuviera buscando después de que esta ventana haya cerrado.
Dado que la instancia se destruye y se reconstruye después de la inactividad, la configuración de configuración se restablecerá una vez que la aplicación ingrese el tiempo de inactividad. Si tiene configuración de configuración activa que le gustaría mantener entre períodos de tiempo de inactividad (como el modo oscuro, por ejemplo), podría agregar */20 7-23 * * * curl -d "dark=1" -X POST https://<your heroku app name>.herokuapp.com/config > /home/<username>/whoogle-refresh
para mantener estas configuraciones más o menos permanentes, y aún así que la aplicación ingrese el tiempo de inactividad cuando la usa.
Solo necesario si su configuración requiere que Flask redirige a HTTP por sí solo; generalmente esto es algo que no necesita ser manejado por Whoogle Search.
Nota: Debe tener su propio nombre de dominio y un certificado HTTPS para que esto funcione correctamente.
Root URL
en la página de inicio comience con https://
y no http://
--build-arg use_https=1
a su comando Ejecutar--https-only
al final del comando whoogle-search
run
predeterminado: modifique el script localmente para incluir el indicador --https-only
al final del comando Python Ejor Desafortunadamente, los contenedores de Firefox actualmente no pasan a través de las solicitudes POST
(el valor predeterminado) al motor, y Firefox almacena la plantilla de OpenSearch en la carga inicial de la página. Para evitar esto, puede tomar los siguientes pasos para que funcione como se esperaba:
GET Requests Only
en Whoogle ConfigAquí hay una muestra de configuración 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;
}
}
Luego puede agregar soporte SSL usando Letsencrypt siguiendo una guía como esta.
Debajo del capó, Whoogle es una aplicación básica de frascos con la siguiente estructura:
app/
routes.py
: la aplicación primaria EntryPoint, contiene todas las rutas APIrequest.py
: maneja todas las solicitudes de salida, incluida la conectividad proxied/TORfilter.py
: funciones y utilidades utilizadas para filtrar el contenido de los resultados de búsqueda de Google ascendenteutils/
bangs.py
: Toda la lógica relacionada con el manejo de consultas de "Bang" al estilo DDGresults.py
: Funciones de utilidad para interpretar/modificar los resultados de búsqueda individualessearch.py
: crea y maneja nuevas consultas de búsquedasession.py
: métodos varios relacionados con las sesiones de usuariotemplates/
index.html
: la plantilla de página de iniciodisplay.html
: la plantilla de resultados de búsquedaheader.html
: un encabezado de consulta general "superior de la página" para escritorio y móvilsearch.html
: una página de búsqueda de iframe-sablelogo.html
: una plantilla que consiste principalmente en el logotipo de Whoogle como un SVG (separado para ayudar a mantener index.html
un poco más limpiador)opensearch.xml
: una plantilla utilizada para admitir OpenSearch.imageresults.html
: una plantilla "experimental" utilizada para soportar la función de imagen "tamaño completo" en el escritorio.static/<css|js>
static/settings
Si es nuevo en el proyecto, la forma más fácil de comenzar sería intentar solucionar un informe de error abierto. Si no hay ningún abierto, o si los abiertos son demasiado obsoletos, intente asumir una solicitud de función. En términos generales, si puede escribir algo que tenga algún potencial de descomponer en el futuro, debe escribir una prueba para ello.
El proyecto sigue la guía de estilo Pep 8, pero es probable que cambie. La tipificación estática siempre se debe usar cuando sea posible. La documentación de la función se aprecia enormemente, y generalmente sigue el formato a continuación:
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 actualmente admite traducciones usando translations.json
. Los valores del idioma en este archivo deben coincidir con el "valor" del idioma según languages.json
(es decir, "lang_en" para inglés ", lang_es" para español, etc.). Después de agregar un nuevo conjunto de traducciones a translations.json
, abra un PR con sus cambios y se fusionarán lo antes posible.
¿Cuál es la diferencia entre este y Searx?
Whoogle está destinado a ser desplegado solo en instancias privadas por personas de cualquier experiencia, con el menor esfuerzo posible. El conocimiento previo de/experiencia con la línea de comandos o las aplicaciones de implementación no es necesario para implementar Whoogle, que no es el caso con Searx. Como resultado, a Whoogle le falta algunas características de Searx para ser lo más fácil de implementar.
Whoogle también solo usa los resultados de búsqueda de Google, no Bing/Quant/Etc, y usa la interfaz de usuario de búsqueda de Google existente para que la transición fuera de Google Búsqueda sea lo más innoticable posible.
Sin embargo, soy un gran admirador de Searx y animo a cualquiera a usar eso en su lugar si quiere acceso a otros motores de búsqueda/una UI diferente/más configuración.
¿Por qué la página de resultados de la imagen se ve diferente?
Gran parte de la aplicación actualmente se realiza el soporte existente de Google para obtener páginas de resultados con JavaScript deshabilitado. Para su crédito, han hecho un excelente trabajo con las páginas de estilo, pero parece que la página de resultados de la imagen, particularmente en dispositivos móviles, es un poco difícil. En el futuro, con suficiente interés, me gustaría hacer la transición para obtener los resultados y analizarlos en una interfaz única que puedo diseñar.
Nota: Use instancias públicas a su propia discreción. Los mantenedores de Whoogle no validan personalmente la integridad de ninguna otra instancia. Es más probable que las instancias públicas populares sean limitadas o bloqueadas.
Sitio web | País | Idioma | Marco de la nube |
---|---|---|---|
https://search.albony.xyz | ? EN | Múltiple | |
https://search.garudalinux.org | ? FI | Múltiple | ✅ |
https://search.dr460nf1r3.org | ? Delaware | Múltiple | ✅ |
https://s.tokhmi.xyz | ? A NOSOTROS | Múltiple | ✅ |
https://search.sethforprivacy.com | ? Delaware | Inglés | |
https://whoogle.dcs0.hu | ? Hu | Múltiple | |
https://gowogle.voring.me | ? A NOSOTROS | Múltiple | |
https://whoogle.privacydev.net | ? Fría | Inglés | |
https://wg.vern.cc | ? A NOSOTROS | Inglés | |
https://whoogle.hxvy0.gq | ? California | Solo turco | ✅ |
https://whoogle.hostux.net | ? Fría | Múltiple | |
https://whoogle.lunar.icu | ? Delaware | Múltiple | ✅ |
https://wgl.frail.duckdns.org | ? BR | Múltiple | |
https://whoogle.no-logs.com | ? SE | Múltiple | |
https://whoogle.ftw.lol | ? Delaware | Múltiple | |
https://whoogle-search-replitcomreside.repl.co | ? A NOSOTROS | Inglés | |
https://search.notrustverify.ch | ? Pez | Múltiple | |
https://whoogle.datura.network | ? Delaware | Múltiple | |
https://whoogle.yepserver.xyz | ? Ua | Múltiple | |
https://search.nezumi.party | ? ÉL | Múltiple | |
https://search.snine.nl | ? Nl | Múltiplo | ✅ |
Sitio web | País | Idioma |
---|---|---|
http://whoglqjdkgt2an4tdepberwqz3hk7tjo4kqgdnuj77rt7nshw2xqhqad.onion | ? A NOSOTROS | Múltiple |
http://nuifgsnbb2mcyza74o7illtqmuaqbwu4flam3cdmsrnudwcmkqur37qd.onion | ? Delaware | Inglés |
http://whoogle.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion | ? A NOSOTROS | Inglés |
http://whoogle.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion | ? Fría | Inglés |
http://whoogle.daturab6drmkhyeia4ch5gvfc2f3wgo6bhjrv3pz6n7kxmvoznlkq4yd.onion | ? Delaware | Múltiple |
Sitio web | País | Idioma |
---|---|---|
http: //verneks7rfjptpz5fpii7n7nrxilsidi2qxepeuuf66c3tsf4nhq.b32.i2p | ? A NOSOTROS | Inglés |