Tôi đã tạo một số mục tìm kiếm trong Google Chrome bằng cách 'Chỉnh sửa công cụ tìm kiếm'.
Làm thế nào tôi có thể chia sẻ một số các mục này với các đồng nghiệp của tôi?
Tôi đã tạo một số mục tìm kiếm trong Google Chrome bằng cách 'Chỉnh sửa công cụ tìm kiếm'.
Làm thế nào tôi có thể chia sẻ một số các mục này với các đồng nghiệp của tôi?
Câu trả lời:
Đây là một lệnh duy nhất để xuất các công cụ tìm kiếm chrome của bạn dưới dạng CSV trên linux:
sqlite3 -csv ~/.config/chromium/Default/Web\ Data 'select short_name,keyword,url from keywords' > ~/search-engines.csv
Bạn cần cài đặt sqlite3. Thay thế ~/.config/chrome
bằng đường dẫn Windows tương ứng nếu bạn đang ở trên Windows. Nên là một cái gì đó như%AppData%\Local\Google\Chrome\User Data
Thay vì xuất sang CSV, bạn có thể xuất sang các câu lệnh chè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
Sau đó sao chép ~/search-engine-export.sql
sang máy khác và nhập bằng lệnh này:
sqlite3 ~/.config/chromium/Default/Web\ Data < search-engine-export.sql
Đảm bảo thay thế Web Data
đường dẫn bằng đường dẫn trên máy của bạn như được mô tả ở trên.
function esc(s){gsub("\x27","\x27\x27",s);return s}
với giá $ 1 và $ 2 ====> esc ($ 1), esc ($ 2)
Đây là một giải pháp đơn giản để xuất và nhập cài đặt công cụ tìm kiếm Chrome mà không cần sử dụng bất kỳ công cụ bên ngoài hoặc chỉnh sửa sổ đăng ký nào:
chrome://settings/searchEngines
).Để tải xuống tệp JSON có cài đặt công cụ tìm kiếm:
(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));
});
}());
Để nhập cài đặt từ tệp JSON được tạo bằng tập lệnh ở trên:
(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]);
});
}());
Ghi chú
chrome://
URL (đã ở đó, đã hoàn thành việc đó).Điều đó là có thể, nhưng nó đủ đau đớn mà bạn sẽ không muốn.
Tìm tệp Dữ liệu Web trong hồ sơ Chrome của bạn. Trong Windows 7, nó sẽ ở đây:
"%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"
Mở tệp bằng chương trình SQLite như SQLite Studio hoặc sqlite trong Ubuntu (sudo apt-get install sqlite) và xuất bảng từ khóa trong SQLite Studio hoặc chạy lệnh này trong Linux:
sqlite3 "Web Data" ".dump keywords" > keywords.sql
Có đồng nghiệp của bạn nhập các từ khóa, làm ngược lại quá trình này.
Như tôi đã nói, có thể, nhưng đau đớn.
Tôi đã viết một trình phân tích cú pháp Javascript để chuyển đổi SQL từ Dữ liệu Web thành Định dạng tệp Bookmarkcape Netscape gần như phổ biến trong HTML (trớ trêu rằng tiêu chuẩn dứt khoát cho định dạng đó dường như là Microsoft) nếu bạn quan tâm đến việc đưa từ khóa vào các trình duyệt khác như Firefox hoặc Opera.
Nếu bạn quan tâm đến một giải pháp thay thế, tôi đã tạo Shortmark để cho phép bạn sử dụng cùng một bộ công cụ tìm kiếm tùy chỉnh trong bất kỳ trình duyệt nào và tôi dự định sẽ sớm thực hiện khả năng chia sẻ với người khác. Bản phát hành sắp tới trong một vài ngày sẽ có mã nhập mà tôi đã đề cập ở trên ngay sau khi tôi hoàn thành thử nghiệm các tính năng mới.
Tôi đã làm theo để chia sẻ các mục công cụ tìm kiếm Google Chrome của tôi và nó hoạt động hoàn toàn tốt với tôi:
WINDOWS XP : Truy cập C: \ Documents and Settings \ MyUserName \ Local Settings \ Application Data \ Google \ Chrome \ User Data \ Default
TRÊN WINDOWS 7 : Truy cập C: \ Users \ MyUserName \ AppData \ Local \ Google \ Chrome \ Dữ liệu người dùng \ Mặc định
Sao chép những 3 file: Preferences
, Web Data
vàWeb Data-journal
Đặt 3 tệp đó vào máy đích
Tôi đã viết một kịch bản python tải định nghĩa từ dữ liệu JSON. Bây giờ bạn có thể quản lý cấu hình của mình dưới dạng mã:
https://gist.github.com/ninowalker/9952bf435f8acffa3ef59d6c538ca165
Đây là idempotent (ví dụ: có thể được chạy nhiều lần; không thêm trùng lặp theo từ khóa).
Hoạt động với python2 và OSX. Có thể được sửa đổi để hỗ trợ các nền tảng khác.
Đối với tôi, tôi đang dùng Windows 10 và tôi muốn sao chép các công cụ tìm kiếm từ hồ sơ chrome cá nhân vào hồ sơ chrome của công ty. Tôi đã làm như sau:
Tôi đã tải xuống SQLite từ https://www.sqlite.org/doad.html (trong "Binaries được biên dịch sẵn" với mô tả "Một gói các công cụ dòng lệnh để quản lý các tệp cơ sở dữ liệu SQLite"). Tôi đã giải nén nó đến c:\utils
đó đã có trong đường dẫn của tôi
Tôi đã mở cmd.exe
Tôi đã thay đổi thư mục thành hồ sơ chrome (cá nhân) mặc định của mình
cd "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default"
Tôi đã thoát hoàn toàn Chrome (ngay cả trong khay). Ngoài ra, giữ một bản sao của các hướng dẫn này (hoặc mở chúng trong một trình duyệt khác) vì bạn sẽ mất chúng.
Tôi đã chạy như sau:
sqlite3 "Web Data" ".dump keywords" > c:\keywords.sql
Tôi đã thay đổi hồ sơ mới:
cd "..\Profile 2\"
Tôi chạy cái này:
sqlite3.exe "Web Data" < c:\keywords.sql
Tôi đã nhận được các lỗi sau, không sao:
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
Nếu bạn gặp nhiều lỗi hơn, điều đó có nghĩa là bạn đã thêm các công cụ tìm kiếm vào hồ sơ mới của mình. Xóa tất cả, bao gồm cả những cái mới vừa thêm và chạy lại bước này. Hoặc chỉnh sửa tệp SQL bằng tay.
Đây là cách tôi làm điều đó (tôi không nhớ nơi tôi tìm thấy nó).
Tạo một kịch bản 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
Tạo một kịch bản 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
Làm cho chúng thực thi:
chmod +x export_chrome_search_engines.sh import_chrome_search_engines.sh
Để xuất, tắt Chrome và chạy:
./export_chrome_search_engines.sh
cp ~/.config/google-chrome/Default/keywords.sql /tmp/
Để nhập, tắt Chrome và chạy:
cp /tmp/keywords.sql ~/.config/google-chrome/Default
./import_chrome_search_engines.sh
Đến bây giờ, không bạn không thể. Tuy nhiên, bạn có thể chia sẻ dấu trang với các đồng nghiệp của bạn.
Liên kết với chia sẻ Dấu trang của Google tính đến thời điểm hiện tại, người dùng Ứng dụng Google không thể chia sẻ dấu trang hoặc danh sách dấu trang.