J'ai créé quelques entrées de recherche dans Google Chrome en utilisant 'Modifier les moteurs de recherche'.
Comment puis-je partager certaines de ces entrées avec mes collègues ?
J'ai créé quelques entrées de recherche dans Google Chrome en utilisant 'Modifier les moteurs de recherche'.
Comment puis-je partager certaines de ces entrées avec mes collègues ?
Modifier 2020-07-27:
La partie export de cette solution ne fonctionne plus dans Chrome 84 (l'objet settings
utilisé dans le script n'est plus disponible). Le script d'importation n'est pas très utile sans la partie export mais il devrait toujours fonctionner pour importer un fichier JSON existant avec les paramètres ou pour transférer les paramètres du moteur de recherche d'une ancienne version de Chrome/Chromium à la version actuelle.
Voici une solution simple pour exporter et importer les paramètres du moteur de recherche de Chrome sans utiliser d'outils externes ou modifier la base de registre :
chrome://settings/searchEngines
).Pour télécharger un fichier JSON avec les paramètres du moteur de recherche :
(function exportSEs() {
/* Fonction auxiliaire pour télécharger un fichier avec les données exportées */
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();
}
/* Magie réelle de l'exportation du moteur de recherche */
settings.SearchEnginesBrowserProxyImpl.prototype.getSearchEnginesList()
.then((searchEngines) => {
downloadData('search_engines.json', JSON.stringify(searchEngines.others));
});
}());
Pour importer les paramètres à partir d'un fichier JSON créé en utilisant le script ci-dessus :
(async function importSEs() {
/* Fonction auxiliaire pour ouvrir une boîte de dialogue de sélection de fichier */
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();
});
}
/* Fonction auxiliaire pour lire des données à partir d'un fichier */
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 }) => {
/* Magie réelle d'importation du moteur de recherche */
chrome.send('searchEngineEditStarted', [-1]);
chrome.send('searchEngineEditCompleted', [name, keyword, url]);
});
}());
Remarques
chrome://
(déjà essayé, déjà fait).Voici une seule commande pour exporter vos moteurs de recherche Chrome en CSV sous Linux :
sqlite3 -csv ~/.config/chromium/Default/Web\ Data 'select short_name,keyword,url from keywords' > ~/search-engines.csv
Vous devez avoir sqlite3 installé. Remplacez ~/.config/chrome
par le chemin Windows correspondant si vous êtes sur Windows. Cela devrait ressembler à quelque chose comme %AppData%\Local\Google\Chrome\User Data
Au lieu d'exporter en CSV, vous pourriez exporter en instructions d'insertion 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
Ensuite, copiez ~/search-engine-export.sql
sur l'autre machine, et importez avec cette commande :
sqlite3 ~/.config/chromium/Default/Web\ Data < search-engine-export.sql
Veillez à remplacer le chemin Web Data
par celui de votre machine tel que décrit ci-dessus.
...s'appuyant sur https://superuser.com/a/1458616/55621 mais en essayant de le mettre à jour pour fonctionner avec les versions actuelles de Chrome. Cela fonctionnait environ avec Chrome 88 sur un Mac.
Pour télécharger un fichier JSON avec les paramètres du moteur de recherche :
(function exportSEs() {
/* Fonction auxiliaire pour télécharger un fichier avec les données exportées */
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();
}
let searchEngines = [];
document.querySelector('settings-ui').shadowRoot
.querySelector('settings-main').shadowRoot
.querySelector('settings-basic-page').shadowRoot
.querySelector('settings-search-page').shadowRoot
.querySelector('settings-search-engines-page').shadowRoot
.querySelector('settings-search-engines-list#otherEngines').shadowRoot
.querySelectorAll('settings-search-engine-entry')
.forEach($el => searchEngines.push(
{
name: $el.shadowRoot.querySelector('#name-column').textContent,
keyword: $el.shadowRoot.querySelector('#keyword-column').textContent,
url: $el.shadowRoot.querySelector('#url-column').textContent
})
)
downloadData('search_engines.json', JSON.stringify(searchEngines));
}());
Pour importer les paramètres à partir d'un fichier JSON créé en utilisant le script ci-dessus :
(async function importSEs() {
/* Fonction auxiliaire pour ouvrir une boîte de dialogue de sélection de fichier */
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();
});
}
/* Fonction auxiliaire pour lire les données à partir d'un fichier */
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 }) => {
/* Véritable magie d'importation de moteur de recherche */
chrome.send('searchEngineEditStarted', [-1]);
chrome.send('searchEngineEditCompleted', [name, keyword, url]);
});
}());
Il est très probable que cela ne fonctionne pas avec les versions ultérieures de Chrome, et il y a probablement une meilleure façon de parcourir le DOM.
C'est possible, mais c'est assez pénible pour que vous ne vouliez pas le faire.
Trouvez le fichier Web Data dans votre profil Chrome. Sous Windows 7, il se trouvera ici : "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"
Ouvrez le fichier avec un programme SQLite comme SQLite Studio ou sqlite sous Ubuntu (sudo apt-get install sqlite) et exportez la table des mots-clés dans SQLite Studio ou exécutez cette commande sous Linux : sqlite3 "Web Data" ".dump keywords" > keywords.sql
Demander à vos collègues d'importer les mots-clés, en inversant le processus.
Comme je l'ai dit, c'est possible, mais douloureux.
J'ai écrit un analyseur Javascript pour convertir le SQL de Web Data dans le format de fichier de signets Netscape presque universel en HTML (ironique que la norme définitive pour ce format semble être Microsoft) si vous êtes intéressé à transférer les mots-clés dans d'autres navigateurs comme Firefox ou Opera.
Si vous êtes intéressé par une solution alternative, j'ai créé Shortmarks pour vous permettre d'utiliser le même ensemble de moteurs de recherche personnalisés dans n'importe quel navigateur, et j'ai l'intention de mettre en œuvre bientôt la possibilité de partager avec d'autres. La prochaine version, dans quelques jours, aura le code d'importation mentionné ci-dessus dès que j'aurai fini de tester les nouvelles fonctionnalités.
J'ai suivi ce qui suit pour partager mes entrées de moteur de recherche Google Chrome et cela a parfaitement fonctionné pour moi :
WINDOWS XP : Accédez à C:\Documents and Settings\NomUtilisateur\Paramètres locaux\Données d'application\Google\Chrome\Données utilisateur\Par défaut
SUR WINDOWS 7 : Accédez à C:\Utilisateurs\NomUtilisateur\AppData\Local\Google\Chrome\Données utilisateur\Par défaut
Copiez ces 3 fichiers : Préférences
, Web Data
et Web Data-journal
Placez ces 3 fichiers sur la machine cible
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.