He creado algunas entradas de búsqueda en Google Chrome usando 'Editar motores de búsqueda'.
¿Cómo puedo compartir algunas de estas entradas con mis colegas?
He creado algunas entradas de búsqueda en Google Chrome usando 'Editar motores de búsqueda'.
¿Cómo puedo compartir algunas de estas entradas con mis colegas?
Respuestas:
Aquí hay un comando único para exportar sus motores de búsqueda de Chrome como CSV en Linux:
sqlite3 -csv ~/.config/chromium/Default/Web\ Data 'select short_name,keyword,url from keywords' > ~/search-engines.csv
Necesita sqlite3 instalado. Reemplace ~/.config/chrome
con la ruta de Windows correspondiente si está en Windows. Debería ser algo como%AppData%\Local\Google\Chrome\User Data
En lugar de exportar a CSV, puede exportar a declaraciones de inserción sqlite:
(printf 'begin transaction;\n'; sqlite3 ~/.config/chromium/Default/Web\ Data 'select short_name,keyword,url,favicon_url from keywords' | awk -F\| '{ printf "insert into keywords (short_name, keyword, url, favicon_url) values ('"'"%s"'"', '"'"%s"'"', '"'"%s"'"', '"'"%s"'"');\n", $1, $2, $3, $4 }'; printf 'end transaction;\n') > ~/search-engine-export.sql
Luego copie ~/search-engine-export.sql
a la otra máquina e importe con este comando:
sqlite3 ~/.config/chromium/Default/Web\ Data < search-engine-export.sql
Asegúrese de reemplazar la Web Data
ruta con la de su máquina como se describe anteriormente.
function esc(s){gsub("\x27","\x27\x27",s);return s}
por $ 1 y $ 2 ====> esc ($ 1), esc ($ 2)
Aquí hay una solución simple para exportar e importar la configuración del motor de búsqueda de Chrome sin usar herramientas externas o editar el registro:
chrome://settings/searchEngines
).Para descargar un archivo JSON con la configuración del motor de búsqueda:
(function exportSEs() {
/* Auxiliary function to download a file with the exported data */
function downloadData(filename, data) {
const file = new File([data], { type: 'text/json' });
const elem = document.createElement('a');
elem.href = URL.createObjectURL(file);
elem.download = filename;
elem.click();
}
/* Actual search engine export magic */
settings.SearchEnginesBrowserProxyImpl.prototype.getSearchEnginesList()
.then((searchEngines) => {
downloadData('search_engines.json', JSON.stringify(searchEngines.others));
});
}());
Para importar configuraciones desde un archivo JSON creado usando el script anterior:
(async function importSEs() {
/* Auxiliary function to open a file selection dialog */
function selectFileToRead() {
return new Promise((resolve) => {
const input = document.createElement('input');
input.setAttribute('type', 'file');
input.addEventListener('change', (e) => {
resolve(e.target.files[0]);
}, false);
input.click();
});
}
/* Auxiliary function to read data from a file */
function readFile(file) {
return new Promise((resolve) => {
const reader = new FileReader();
reader.addEventListener('load', (e) => {
resolve(e.target.result);
});
reader.readAsText(file);
});
}
const file = await selectFileToRead();
const content = await readFile(file);
const searchEngines = JSON.parse(content);
searchEngines.forEach(({ name, keyword, url }) => {
/* Actual search engine import magic */
chrome.send('searchEngineEditStarted', [-1]);
chrome.send('searchEngineEditCompleted', [name, keyword, url]);
});
}());
Notas
chrome://
URL (estado allí, hecho eso).Es posible, pero es suficiente dolor que no querrás.
Encuentra el archivo de datos web en tu perfil de Chrome. En Windows 7 estará aquí:
"%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"
Abra el archivo con un programa SQLite como SQLite Studio o sqlite en Ubuntu (sudo apt-get install sqlite) y exporte la tabla de palabras clave en SQLite Studio o ejecute este comando en Linux:
sqlite3 "Web Data" ".dump keywords" > keywords.sql
Haga que sus colegas importen las palabras clave, haciendo lo contrario de este proceso.
Como dije, posible, pero doloroso.
Escribí un analizador Javascript para convertir el SQL de datos web en el formato de archivo de marcador Netscape casi universal en HTML (irónico que el estándar definitivo para ese formato parece ser Microsoft) si está interesado en obtener las palabras clave en otros navegadores como Firefox u ópera.
Si está interesado en una solución alternativa, creé Shortmarks para permitirle usar el mismo conjunto de motores de búsqueda personalizados en cualquier navegador, y planeo implementar la capacidad de compartir con otros pronto. El próximo lanzamiento en unos días tendrá el código de importación que mencioné anteriormente tan pronto como termine de probar las nuevas funciones.
Hice lo siguiente para compartir mis entradas del motor de búsqueda de Google Chrome y funcionó perfectamente bien para mí:
WINDOWS XP : vaya a C: \ Documents and Settings \ MyUserName \ Local Settings \ Application Data \ Google \ Chrome \ User Data \ Default
EN WINDOWS 7 : vaya a C: \ Users \ MyUserName \ AppData \ Local \ Google \ Chrome \ User Data \ Default
Copiar estos 3 archivos: Preferences
, Web Data
yWeb Data-journal
Pon esos 3 archivos en la máquina de destino
Escribí un script de Python que carga definiciones de datos JSON. Ahora puede administrar su configuración como código:
https://gist.github.com/ninowalker/9952bf435f8acffa3ef59d6c538ca165
Esto es idempotente (por ejemplo, puede ejecutarse varias veces; no agregará duplicados por palabra clave).
Funciona con python2 y OSX. Se puede modificar para admitir otras plataformas.
Para mí, estoy en Windows 10 y quería copiar motores de búsqueda de mi perfil personal de Chrome a mi perfil corporativo de Chrome. Hice lo siguiente:
Descargué SQLite de https://www.sqlite.org/download.html (en "Binarios precompilados" con la descripción "Un paquete de herramientas de línea de comandos para administrar archivos de base de datos SQLite"). Lo descomprimí para c:\utils
que ya esté en mi camino
Abrí cmd.exe
Cambié el directorio a mi perfil de Chrome predeterminado (personal)
cd "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default"
Salí de Chrome por completo (incluso en la bandeja). Además, guarde una copia de estas instrucciones (o ábralas en un navegador diferente) porque las perderá.
Ejecuté lo siguiente:
sqlite3 "Web Data" ".dump keywords" > c:\keywords.sql
Cambié al nuevo perfil:
cd "..\Profile 2\"
Corrí esto:
sqlite3.exe "Web Data" < c:\keywords.sql
Recibí los siguientes errores, que están bien:
Error: near line 4: UNIQUE constraint failed: keywords.id
Error: near line 5: UNIQUE constraint failed: keywords.id
Error: near line 6: UNIQUE constraint failed: keywords.id
Error: near line 7: UNIQUE constraint failed: keywords.id
Error: near line 8: UNIQUE constraint failed: keywords.id
Si obtiene más errores, eso significa que agregó motores de búsqueda a su nuevo perfil. Elimínelos todos, incluidos los nuevos que acaba de agregar y vuelva a ejecutar este paso. O edite el archivo SQL a mano.
Así es como lo hago (no recuerdo dónde lo encontré).
Crea un script export_chrome_search_engines.sh
:
#!/bin/sh
DESTINATION=${1:-./keywords.sql}
TEMP_SQL_SCRIPT=/tmp/sync_chrome_sql_script
echo "Exporting Chrome keywords to $DESTINATION..."
cd ~/.config/google-chrome/Default
echo .output $DESTINATION > $TEMP_SQL_SCRIPT
echo .dump keywords >> $TEMP_SQL_SCRIPT
sqlite3 -init $TEMP_SQL_SCRIPT Web\ Data .exit
rm $TEMP_SQL_SCRIPT
Crea un script import_chrome_search_engines.sh
:
#!/bin/sh
if ps -x | grep -v grep | grep Google\ Chrome > /dev/null; then
echo "Close Chrome and try again..."
exit 1
fi
SOURCE=${1:-./keywords.sql}
#SOURCE=$1
TEMP_SQL_SCRIPT=/tmp/sync_chrome_sql_script
echo
echo "Importing Chrome keywords from $SOURCE..."
cd ~/.config/google-chrome/Default
echo DROP TABLE IF EXISTS keywords\; > $TEMP_SQL_SCRIPT
echo .read $SOURCE >> $TEMP_SQL_SCRIPT
sqlite3 -init $TEMP_SQL_SCRIPT Web\ Data .exit
rm $TEMP_SQL_SCRIPT
Hazlos ejecutables:
chmod +x export_chrome_search_engines.sh import_chrome_search_engines.sh
Para exportar, apaga Chrome y ejecuta:
./export_chrome_search_engines.sh
cp ~/.config/google-chrome/Default/keywords.sql /tmp/
Para importar, apaga Chrome y ejecuta:
cp /tmp/keywords.sql ~/.config/google-chrome/Default
./import_chrome_search_engines.sh
A partir de ahora, no, no puedes. Sin embargo, puede compartir marcadores con sus colegas.
Enlace a compartir marcadores de Google a partir de ahora, los usuarios de la aplicación Google no pueden compartir marcadores o listas de marcadores.