10

Контекст:

Я использую свой профиль Firefox уже пару лет. Естественно, мой файл истории стал огромным. У меня установлен Firefox Sync между моим основным настольным ПК и ноутбуком.

HW конфиги:

  • ПК: i5-3450, 8 ГБ оперативной памяти DDR3, Crucial M4 128 ГБ SSD
  • ноутбук: Pentium SU4100, 4 ГБ оперативной памяти DDR3, жесткий диск WD 5400 об / мин

Доступ к записям истории при наборе в Awesome Bar на моем рабочем столе занимает довольно много времени, несмотря на приличную конфигурацию, но ноутбук работает даже медленнее. Опыт совершенно не отвечает.

Я подумал, что если я немного проясню историю, я мог бы избежать создания нового профиля, чтобы ускорить процесс.

Сам вопрос:

Проиллюстрировать:

история

Есть ли способ удалить все записи истории, которые были посещены меньше, чем x (скажем, 5) раз, и в то же время недавнее посещение меньше, чем y (скажем, 120) дней?

afaik файл истории - это какая-то база данных SQL, но я не совсем уверен, как данные сохраняются, если есть "безопасный способ" их редактировать и как будет выглядеть запрос на выполнение того, что мне нужно.


Я продолжал просматривать предыдущие вопросы SuperUser, чтобы посмотреть, смогу ли я найти соответствующую информацию.

В моей директории профиля Firefox есть файл с именем places.sqlite . Открывая его с помощью sqlite, можно увидеть (среди прочего) таблицы moz_places и moz_historyvisits . Кажется, что moz_historyvisits использует основную часть moz_places для ссылки на URL.

Поскольку я не знаком с базами данных, я не совсем понимаю, как связаны две таблицы, упомянутые в цитате.

скриншот части таблицы places_sqlite

Я заметил, что visit_count имеет стандартный формат, что облегчает работу с ним. last_visit_date выглядит зашифрованным невооруженным глазом, но я не вижу, каким образом.

Надеюсь, что это помогает, я в своем уме.

1 ответ1

8

Проведя некоторые исследования (см. В конце «ссылки»), я пришел к следующему (вроде) простому решению:


BACKUP FIRST. ЗАКРЫТЬ FIREFOX ПЕРВЫЙ


Для этого необходимо отредактировать базу данных SQLite (автономную базу данных SQL; см. Статью в Википедии) Mozilla Firefox, выполнив запрос для поиска всех записей, которые удовлетворяют условию (в вашем случае - просматриваются менее 5 раз и не посещаются в последние 120 дней).


BACKUP FIRST. ЗАКРЫТЬ FIREFOX ПЕРВЫЙ

Инструкция начала:


Это работает (проверено и работает с моим Firefox v. 29.0.1). В 12 простых (иш) шагов:

  1. Установить браузер базы данных SQLite

  2. Открой это

  3. Нажмите Открыть базу данных

  4. Перейдите к C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE] редактируя при необходимости

    BACKUP СЛЕДУЮЩИЙ ФАЙЛ ПЕРВЫЙ !!

  5. Откройте places.sqlite из каталога, который вы открыли на шаге 4.

    СЕРЬЕЗНО, BACKUP FIRST !!

  6. Перейдите на вкладку «Выполнение SQL».

  7. Введите это:

    SELECT *
    FROM moz_places
    WHERE
        last_visit_date BETWEEN strftime('%s','2014-04-01')*1000000
                        AND strftime('%s','2014-05-30')*1000000
        AND visit_count < x(2)
    
  8. Замените x(2) на 5 (в вашем примере)

  9. Замените 2014-04-01 и 2014-05-30 на нужный вам диапазон дат

  10. Нажмите синюю кнопку воспроизведения.

  11. Проверьте правильность отображаемых сайтов (они должны быть, но дважды проверьте!)

  12. Если это так, замените первые две строки приведенного выше кода на:

    DELETE
    FROM moz_places
    

    поэтому ваш код выглядит примерно так:

    DELETE
    FROM moz_places
    WHERE
        last_visit_date BETWEEN strftime('%s','2014-04-01')*1000000
                        AND strftime('%s','2014-05-30')*1000000
        AND visit_count < x(2)
    

СДЕЛАННЫЙ! Закройте программу и нажмите «Сохранить» при закрытии.

Инструкция заканчивается


Как насчет last_visit_date?

Last_visit_date выглядит зашифрованным невооруженным глазом, но я не вижу, каким образом.

Я бы не назвал его «зашифрованным» (хотя я не согласен с тем, что он выглядит зашифрованным). Это просто в другой «системе». Дата указана в системе времени Unix (или Epoch / POSIX). Это количество секунд, прошедших с 00:00:00 (UTC) 1 января 1970 года. 1 час - 3600 секунд. 1 год - 31556926 дней.

Для получения дополнительной информации. посмотрите эту статью в Википедии или этот сайт, который конвертирует время в эпоху и обратно.


Скриншоты (игнорируйте запросы SQL на этих изображениях, они неправильные. Это, чтобы рассказать вам в основном, где искать)

Браузер базы данных SQLite Браузер базы данных SQLite Браузер базы данных SQLite

Благодаря ;):

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .