{"id":34549465,"url":"https://github.com/686f6c61/chrome-search-engine-converter","last_synced_at":"2026-03-05T20:54:02.527Z","repository":{"id":327273528,"uuid":"1099179718","full_name":"686f6c61/chrome-search-engine-converter","owner":"686f6c61","description":"Extensión ligera para Chrome/Brave/Edge que convierte búsquedas entre 34+ motores. Modo dual, atajos de teclado y sin recopilación de datos.","archived":false,"fork":false,"pushed_at":"2026-02-05T22:10:35.000Z","size":972,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-06T08:24:08.284Z","etag":null,"topics":["brave","browser-extension","chrome-extension","chromium","edge","javascript","manifest-v3","privacy","search-converter","search-engine"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/686f6c61.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":"AUDIT-2026-03-05.md","citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-18T17:07:32.000Z","updated_at":"2026-02-05T22:10:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/686f6c61/chrome-search-engine-converter","commit_stats":null,"previous_names":["686f6c61/chrome-search-engine-converter"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/686f6c61/chrome-search-engine-converter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/686f6c61%2Fchrome-search-engine-converter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/686f6c61%2Fchrome-search-engine-converter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/686f6c61%2Fchrome-search-engine-converter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/686f6c61%2Fchrome-search-engine-converter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/686f6c61","download_url":"https://codeload.github.com/686f6c61/chrome-search-engine-converter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/686f6c61%2Fchrome-search-engine-converter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30149890,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T16:58:46.102Z","status":"ssl_error","status_checked_at":"2026-03-05T16:58:45.706Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["brave","browser-extension","chrome-extension","chromium","edge","javascript","manifest-v3","privacy","search-converter","search-engine"],"created_at":"2025-12-24T07:45:38.874Z","updated_at":"2026-03-05T20:54:02.519Z","avatar_url":"https://github.com/686f6c61.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Search Engine Converter v2.1.0\n\nExtensión para navegadores Chromium que convierte búsquedas entre más de 33 motores diferentes manteniendo los términos exactos. Compatible con Chrome, Brave y Edge.\n\n[![Version](https://img.shields.io/badge/version-2.1.0-blue)](https://github.com/686f6c61/chrome-search-engine-converter)\n[![Chrome](https://img.shields.io/badge/Chrome-compatible-brightgreen)](https://github.com/686f6c61/chrome-search-engine-converter)\n[![Brave](https://img.shields.io/badge/Brave-compatible-brightgreen)](https://github.com/686f6c61/chrome-search-engine-converter)\n[![Edge](https://img.shields.io/badge/Edge-compatible-brightgreen)](https://github.com/686f6c61/chrome-search-engine-converter)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n---\n\n## Capturas de pantalla\n\n### Interfaz principal\n![Popup principal](assets/screenshot_1_main.png)\n\nVista principal con motor detectado y botones de conversión en grid de 2 columnas.\n\n### Búsqueda rápida\n![Búsqueda rápida](assets/screenshot_2_search.png)\n\nModo búsqueda con campo de texto y selector de motor para buscar directamente.\n\n### Configuración\n![Configuración](assets/screenshot_3_config.png)\n\nPanel de configuración con dominios regionales, visibilidad de motores y checkboxes individuales.\n\n### Orden personalizable\n![Orden de botones](assets/screenshot_4_order.png)\n\nDrag-and-drop para reordenar los motores en el popup.\n\n### Todos los motores\n![33 motores](assets/screenshot_5_all_engines.png)\n\nLos 33 motores de búsqueda soportados.\n\n---\n\n## Funcionalidades\n\n- **Conversión instantánea**: detecta automáticamente el motor de búsqueda actual y permite convertir a cualquier otro motor soportado\n- **33 motores**: Google, Brave, DuckDuckGo, Bing, Amazon, YouTube, Wikipedia, X (Twitter), GitHub, GitLab, Stack Overflow, Reddit, Pinterest, Startpage, Ecosia, Qwant, Yandex, Baidu, eBay, AliExpress, Etsy, Google Scholar, Internet Archive, Wolfram Alpha, Spotify, SoundCloud, Vimeo, LinkedIn, TikTok, Perplexity, Kagi, SearXNG, You.com\n- **Búsqueda rápida**: escribe un término y busca en cualquier motor sin necesidad de navegar a su página\n- **Menú contextual mejorado**: acción rápida con motor predeterminado + submenú completo para elegir cualquier motor\n- **Detección de imágenes**: si estás en búsqueda de imágenes, la conversión mantiene el modo imágenes\n- **Copiar URL**: copia la URL convertida al portapapeles sin abrir nueva pestaña\n- **Atajos de teclado**: Alt+1-9 conversión directa, Ctrl+K búsqueda rápida, ESC cerrar popup\n- **Personalización**: motores visibles, orden drag-and-drop, dominios regionales (Amazon, YouTube)\n- **Accesibilidad**: navegación completa por teclado, ARIA labels, soporte para lectores de pantalla, respeto a `prefers-reduced-motion`\n\n---\n\n## Instalación\n\n### Desde código fuente (modo desarrollador)\n\n```bash\ngit clone https://github.com/686f6c61/chrome-search-engine-converter.git\n```\n\n1. Abrir `chrome://extensions/` (o `brave://extensions/` o `edge://extensions/`)\n2. Activar \"Modo de desarrollador\"\n3. Pulsar \"Cargar extensión sin empaquetar\"\n4. Seleccionar la carpeta `extension/`\n\n### Desde Chrome Web Store\n\n*(Pendiente de publicación)*\n\n---\n\n## Tests\n\n```bash\nnpm test\n```\n\nEjecuta los tests con el runner nativo de Node.js (`node:test`). Los tests verifican el registro de motores, funciones de búsqueda, validación de dominios y detección de motores.\n\n---\n\n## Estructura del proyecto\n\n```\nchrome-search-engine-converter/\n  .github/\n    workflows/\n      ci.yml                 # Checks automáticos (sintaxis + tests)\n  extension/\n    manifest.json           # Manifest V3, permisos mínimos\n    engines.js              # Registro centralizado de 33 motores (SSOT)\n    background.js           # Service Worker (menú contextual)\n    popup.html              # Interfaz del popup (esqueleto mínimo)\n    popup.js                # Controlador del popup (genera HTML dinámico)\n    popup.css               # Estilos del popup\n    Sortable.js             # Librería drag-and-drop (local)\n    privacy-policy.html     # Política de privacidad\n    css/\n      fontawesome.min.css   # Font Awesome 6 (local)\n      fonts.css             # Declaraciones @font-face\n    fonts/\n      fa-solid-900.woff2    # Iconos sólidos\n      fa-brands-400.woff2   # Iconos de marcas\n      roboto-{400,500,700}.woff2  # Fuente Roboto\n    images/\n      icon{16,32,48,128,256}.png  # Iconos en todos los tamaños\n  tests/\n    engines.smoke.test.cjs  # Pruebas de funciones críticas\n  package.json              # Scripts de validación local\n  LICENSE                   # MIT License\n  README.md\n```\n\n### Arquitectura\n\n- **engines.js** es la única fuente de verdad (SSOT) para todos los motores. Define configuración, URLs, patrones de detección y funciones de búsqueda/extracción. Lo consumen tanto `background.js` como `popup.js` mediante `importScripts()` y `\u003cscript\u003e`.\n- **popup.js** genera todo el HTML dinámicamente desde `SEARCH_ENGINES` - botones, checkboxes, selects, lista de orden.\n- **background.js** crea los menús contextuales y gestiona las búsquedas desde el clic derecho.\n- **Cero dependencias externas**: fuentes, iconos y Sortable.js están empaquetados localmente. No se carga ningún recurso remoto.\n\n---\n\n## Privacidad y seguridad\n\n- **Sin recopilación de datos**: no se envía información a servidores externos\n- **100% local**: toda la lógica se ejecuta en el navegador\n- **Sin analíticas**: no se usa Google Analytics ni ningún servicio de telemetría\n- **Código abierto**: todo el código está disponible para auditoría\n\n### Permisos (3 permisos mínimos)\n\n| Permiso | Uso |\n|---------|-----|\n| `activeTab` | Lee la URL de la pestaña activa para detectar el motor y extraer el término de búsqueda |\n| `contextMenus` | Crea el menú de clic derecho para buscar texto seleccionado |\n| `storage` | Guarda preferencias del usuario localmente |\n\n### Content Security Policy\n\n```json\n\"content_security_policy\": {\n  \"extension_pages\": \"script-src 'self'; object-src 'none'; style-src 'self'; font-src 'self'; img-src 'self' data:;\"\n}\n```\n\nSolo se permite cargar recursos locales (`'self'`). Sin `unsafe-inline`, sin CDN externos.\n\n---\n\n## Motores soportados\n\n| Categoría | Motores |\n|-----------|---------|\n| Generalistas | Google, Brave, DuckDuckGo, Bing, Startpage, Ecosia, Qwant, Yandex, Baidu |\n| IA | Perplexity, You.com |\n| Privacidad | Kagi, SearXNG, Startpage |\n| Redes sociales | X (Twitter), Reddit, LinkedIn, Pinterest, TikTok |\n| Multimedia | YouTube, Spotify, SoundCloud, Vimeo |\n| Comercio | Amazon, eBay, AliExpress, Etsy |\n| Desarrollo | GitHub, GitLab, Stack Overflow |\n| Académico | Wikipedia, Google Scholar, Internet Archive, Wolfram Alpha |\n\n---\n\n## Licencia\n\n[MIT License](LICENSE) - [@686f6c61](https://github.com/686f6c61)\n\nPolítica de privacidad: [PRIVACY_POLICY.md](PRIVACY_POLICY.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F686f6c61%2Fchrome-search-engine-converter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F686f6c61%2Fchrome-search-engine-converter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F686f6c61%2Fchrome-search-engine-converter/lists"}