Форум программистов, компьютерный форум, киберфорум
damix
Войти
Регистрация
Восстановить пароль

Восстановить юзерскрипты Greasemonkey из бэкапа браузера

Запись от damix размещена 15.01.2026 в 19:20
Показов 2903 Комментарии 0
Метки greasemonkey, powershell

Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита SQLite и скрипт Import-Greasemonkey-Scripts.ps1 из этой статьи.
  1. Сделайте бэкап нового профиля.
  2. Найдите в папке <старый_профиль_браузера>\storage\default файл 61413404gyreekansoem.sqlite. Их может быть несколько, если это так, попробуйте взять самый новый из них. Скопируйте его в одну папку с Import-Greasemonkey-Scripts.ps1 и sqlite3.exe..
  3. Отредактируйте первые строчки скрипта. Укажите пути к вышеуказанным файлам и к файлу 61413404gyreekansoem.sqlite в новом профиле. Оба фала должны быть доступны на запись (да, даже файл со старой базой) тому пользователю, который будет запускать скрипт.
    PowerShell
    1
    2
    3
    4
    
    # Paths
    $oldDatabasePath = "C:\Users\DAMIX\Documents\TEMP\61413404gyreekansoem.sqlite" # Path to old database
    $newDatabasePath = "C:\Users\DAMIX\AppData\Roaming\Mozilla\Firefox\Profiles\f9aziwfo.damix\storage\default\moz-extension+++b2a1888f-b67e-4552-b3de-3feec1b02009\idb\61413404gyreekansoem.sqlite" # Path to new database
    $tool = "C:\Users\DAMIX\Documents\TEMP\sqlite3.exe" # Path to new sqlite
  4. Запустите скрипт Import-Greasemonkey-Scripts.ps1. Он сам закроет и откроет Firefox.

После этого юзерскрипты из сторого профиля должны быть доступны в новом.

Основано на Othman-Saleh/Import-Greasemonkey-Scripts/.

Если выдает
Code
1
2
3
Dumping data from the old database...
sql error: unable to open database file (14)
sqlite3.exe failed while dumping the old database (exit code 1). Script will stop.
проверьте права на файлы.

Но впредь лучше все же делать бэкапы скриптов в самом Greasemonkey. Бэкапа профиля для этого недостаточно.

Import-Greasemonkey-Scripts.ps1
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# Paths
$oldDatabasePath = "C:\Users\DAMIX\Documents\TEMP\61413404gyreekansoem.sqlite" # Path to old database
$newDatabasePath = "C:\Users\DAMIX\AppData\Roaming\Mozilla\Firefox\Profiles\f9aziwfo.damix\storage\default\moz-extension+++b2a1888f-b67e-4552-b3de-3feec1b02009\idb\61413404gyreekansoem.sqlite" # Path to new database
$tool = "C:\Users\DAMIX\Documents\TEMP\sqlite3.exe" # Path to new sqlite
 
# Check for old database and sqlite first
if (-not (Test-Path -LiteralPath $oldDatabasePath)) { Write-Host "Old database path not found. Stopping script." -ForegroundColor Red return }
if (-not (Test-Path -LiteralPath $tool)) { Write-Host "Sqlite not installed. Please get it for free here: https://sqlite.org/download.html" -ForegroundColor Red return }
 
# Shut down Firefox
Write-Host "Shutting down Firefox..."
Stop-Process -Name "firefox" -Force -ErrorAction SilentlyContinue
 
# Wait for Firefox to exit
Write-Host "Waiting for Firefox to shut down..."
while (Get-Process -Name "firefox" -ErrorAction SilentlyContinue) {
    Start-Sleep -Seconds 1
}
Write-Host "Firefox is completely shut down."
 
# Delete the current database
Write-Host "Deleting the current gyreekansoem.sqlite..."
Remove-Item -Path $newDatabasePath -Force
 
# Start Firefox
Write-Host "Starting Firefox..."
Start-Process -FilePath "firefox.exe"
 
# Wait for Firefox to start
Write-Host "Waiting for Firefox to start..."
while (-not (Get-Process -Name "firefox" -ErrorAction SilentlyContinue)) {
    Start-Sleep -Seconds 1
}
 
# Wait an additional 5 seconds after Firefox has started
Write-Host "Firefox is running. Waiting 5 more seconds..."
Start-Sleep -Seconds 5
 
# Shut down Firefox
Write-Host "Shutting down Firefox..."
Stop-Process -Name "firefox" -Force -ErrorAction SilentlyContinue
 
# Wait for Firefox to exit
Write-Host "Waiting for Firefox to shut down..."
while (Get-Process -Name "firefox" -ErrorAction SilentlyContinue) {
    Start-Sleep -Seconds 1
}
Write-Host "Firefox is completely shut down."
 
# Dump data from the old database
Write-Host "Dumping data from the old database..."
$sqliteDumpPath = "$env:TEMP\dump.sql"
# &$tool $oldDatabasePath ".dump" > $sqliteDumpPath
&$tool $oldDatabasePath ".dump" | Out-File -FilePath $sqliteDumpPath -Encoding utf8
if ($LASTEXITCODE -ne 0) {
    Write-Host "sqlite3.exe failed while dumping the old database (exit code $LASTEXITCODE). Script will stop." -ForegroundColor Red
    return
}
 
# Filter the dump file to include only the desired INSERT statements
Write-Host "Filtering the dump file..."
(Get-Content $sqliteDumpPath) -match "INSERT INTO (object_data|unique_index_data)" | Set-Content $sqliteDumpPath
 
# SQL commands to drop indexes and triggers
$sqlCommands = @"
DROP INDEX IF EXISTS index_data_value_locale_index;
DROP INDEX IF EXISTS unique_index_data_value_locale_index;
DROP TRIGGER IF EXISTS object_data_insert_trigger;
DROP TRIGGER IF EXISTS object_data_update_trigger;
DROP TRIGGER IF EXISTS object_data_delete_trigger;
DROP TRIGGER IF EXISTS file_update_trigger;
"@
 
# Execute the SQL commands using sqlite3.exe
Write-Host "Dropping indexes and triggers in the new database..."
$sqlCommands | &$tool $newDatabasePath
 
 
# Import data into the new database
Write-Host "Importing data into the new database..."
Get-Content $sqliteDumpPath | &$tool $newDatabasePath
 
 
# Start Firefox to verify the data is imported
Write-Host "Starting Firefox..."
Start-Process -FilePath "firefox.exe"
 
# Suggest a backup
Write-Host "Remember to back up the new database immediately and regularly!"
 
# Done
Write-Host "Script complete. Enjoy!"
Метки greasemonkey, powershell
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru