Google Chrome'da 'Arama motorlarını düzenle' seçeneğini kullanarak bazı arama girişleri oluşturdum.
Bu girdilerin bazılarını meslektaşlarımla nasıl paylaşabilirim?
Google Chrome'da 'Arama motorlarını düzenle' seçeneğini kullanarak bazı arama girişleri oluşturdum.
Bu girdilerin bazılarını meslektaşlarımla nasıl paylaşabilirim?
Yanıtlar:
Chrome arama motorlarınızı Linux'ta CSV olarak dışa aktarmak için tek bir komut:
sqlite3 -csv ~/.config/chromium/Default/Web\ Data 'select short_name,keyword,url from keywords' > ~/search-engines.csv
Yüklenmiş sqlite3 gerekir. ~/.config/chrome
Windows kullanıyorsanız, karşılık gelen Windows yoluyla değiştirin . Gibi bir şey olmalı%AppData%\Local\Google\Chrome\User Data
CSV’ye dışa aktarmak yerine, sqlite insert ifadelerine dışa aktarabilirsiniz:
(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
Sonra ~/search-engine-export.sql
diğer makineye kopyalayın ve bu komutu kullanarak alın:
sqlite3 ~/.config/chromium/Default/Web\ Data < search-engine-export.sql
Web Data
Yolu, yukarıda açıklandığı şekilde makinenizdeki ile değiştirdiğinizden emin olun .
function esc(s){gsub("\x27","\x27\x27",s);return s}
Herhangi bir harici araç kullanmadan veya kayıt defterini düzenlemeden Chrome arama motoru ayarlarını dışa aktarmak ve almak için basit bir çözüm:
chrome://settings/searchEngines
).Arama motoru ayarlarına sahip bir JSON dosyası indirmek için:
(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));
});
}());
Ayarları yukarıdaki betiği kullanarak oluşturulan bir JSON dosyasından almak için:
(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]);
});
}());
notlar
chrome://
URL'lerde yürütülmez (orada yapıldı, bunu yaptım).Bu mümkün, ama istemeyeceğin bir acı.
Chrome profilinizde Web Veri dosyasını bulun. Windows 7'de burada olacak:
"%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"
Dosyayı Ubuntu'da SQLite Studio veya sqlite gibi bir SQLite programı ile açın (sudo apt-get install sqlite) ve SQLite Studio'daki anahtar kelimeler tablosunu verin veya Linux'ta bu komutu çalıştırın:
sqlite3 "Web Data" ".dump keywords" > keywords.sql
Meslektaşlarınızın anahtar kelimeleri almalarını sağlayın ve bu işlemin tersini yapın.
Dediğim gibi, mümkün ama acı verici.
Anahtar kelimeleri Firefox gibi diğer tarayıcılara sokmakla ilgileniyorsanız , SQL'i Web Verilerinden SQL'i neredeyse evrensel Netscape Yer İşareti Dosya Biçimine (bu biçim için kesin standardın Microsoft gibi göründüğü ironik) dönüştürmek için bir Javascript ayrıştırıcısı yazdım. veya opera.
Alternatif bir çözümle ilgileniyorsanız, herhangi bir tarayıcıda aynı özel arama motorlarını kullanmanıza izin vermek için Kısa İşaretler oluşturdum ve yakında başkalarıyla paylaşma özelliğini uygulamayı düşünüyorum. Birkaç gün içinde çıkacak olan sürüm, yeni özellikleri test etmeyi bitirdiğimde yukarıda belirtilen ithalat koduna sahip olacak.
Google Chrome arama motoru girişlerimi paylaşmak için aşağıdakileri yaptım ve bu benim için mükemmel sonuç verdi:
WINDOWS XP : Git C: \ Belgeler ve Ayarlar \ Kullanıcı Adım \ Yerel Ayarlar \ Uygulama Verileri \ Google \ Chrome \ Kullanıcı Verileri \ Varsayılan
Windows 7'DE: C: \ Users \ MyKullanıcıAdı \ AppData \ Local \ Google \ Chrome \ Kullanıcı Verileri \ Varsayılan
Bu 3 dosya kopyalama: Preferences
, Web Data
veWeb Data-journal
Bu 3 dosyayı hedef makineye yerleştirin
JSON verilerinden tanımları yükleyen bir python betiği yazdım. Artık yapılandırmanızı kod olarak yönetebilirsiniz:
https://gist.github.com/ninowalker/9952bf435f8acffa3ef59d6c538ca165
Bu idempotent (örneğin, birden çok kez çalıştırılabilir; anahtar kelimeye kopya eklemez).
Python2 ve OSX ile çalışır. Diğer platformları desteklemek için değiştirilebilir.
Benim için Windows 10'dayım ve arama motorlarını kişisel krom profilimden kurumsal krom profilime kopyalamak istedim. Aşağıdakileri yaptım:
SQLite'i https://www.sqlite.org/download.html adresinden indirdim ("Önceden Derlenmiş İkili Dosyaların" altında "SQLite veritabanı dosyalarını yönetmek için bir komut satırı araçları paketi" açıklamasıyla). c:\utils
Zaten benim yolumda olanı açtım
Ben cmd.exe açtım
Dizini varsayılan (kişisel) krom profilime değiştirdim
cd "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default"
Chrome'dan tamamen çıktım (tepside bile). Ayrıca, bu talimatların bir kopyasını saklayın (veya farklı bir tarayıcıda açın), çünkü bunları kaybedersiniz.
Aşağıdakileri koştum:
sqlite3 "Web Data" ".dump keywords" > c:\keywords.sql
Yeni profile değiştirdim:
cd "..\Profile 2\"
Bunu koştum:
sqlite3.exe "Web Data" < c:\keywords.sql
Tamam, aşağıdaki hataları var:
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
Daha fazla hata alırsanız, arama motorlarını yeni profilinize eklediğiniz anlamına gelir. Yeni eklenenler de dahil olmak üzere hepsini silin ve bu adımı yeniden çalıştırın. Veya SQL dosyasını el ile düzenleyin.
Bu nasıl yaparım (nerede bulduğumu hatırlamıyorum).
Bir komut dosyası oluşturun 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
Bir komut dosyası oluşturun 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
Onları çalıştırılabilir yap:
chmod +x export_chrome_search_engines.sh import_chrome_search_engines.sh
Dışa aktarmak için Chrome'u kapatın ve çalıştırın:
./export_chrome_search_engines.sh
cp ~/.config/google-chrome/Default/keywords.sql /tmp/
Almak için Chrome'u kapatın ve çalıştırın:
cp /tmp/keywords.sql ~/.config/google-chrome/Default
./import_chrome_search_engines.sh
Şu an itibariyle, hayır, yapamazsın. Ancak, yer imlerini iş arkadaşlarınızla paylaşabilirsiniz.
Şu andan itibaren Google Bookmark paylaşımına bağlantı oluştururken , Google App kullanıcıları yer imlerini veya yer imlerinin listelerini paylaşamaz.