Вопрос

Я пытаюсь написать дополнение для Firefox 3, которое позволит мне легко переназначать закладки.Например, у меня есть несколько закладок с пометкой "разработка" и несколько с пометкой "Разработка", и я хотел бы найти способ легко обновить все теги "удаление разработки" до "Разработка".К сожалению, я не могу найти дополнение для этого, поэтому я подумал, что создам свое собственное.

Поскольку я раньше не разрабатывал надстройку, мне удалось разобраться в основах и обнаружить, что FireFox хранит все закладки в базе данных SQLite под названием Places.sqlite.В этой базе данных есть таблица с именем moz_bookmarks, которая содержит все закладки, теги и папки в каталоге bookmarks.Структура папок закладок и их дочерних закладок представлена с использованием идентификатора внешнего ключа, который указывает на идентификатор родительской папки в той же таблице, которая снова возвращается вверх к идентификатору этой родительской папки, пока не попадет в корневой каталог закладок.

Однако я застрял на том, как теги, которые вы применяете в firefox, связаны с закладками.Каждый тег имеет тип = 2 и родительский идентификатор = 4.Однако я не вижу никакой корреляции между этим и фактическими закладками, которые используют тег.Если я добавляю закладку в firefox ни в какую конкретную папку, но присваиваю ей 2 или 3 тега, то идентификатор родительской папки равен 5, что соответствует "unfiled", но я не вижу дальнейшей корреляции с тегами, связанными с ней.

Я нашел это Вики-страница о структуре но на самом деле это не помогает.

Это сводит меня с ума : (Пожалуйста, помогите...

Это было полезно?

Решение

Вы, наверное, уже выяснили это сами, но теги применяются следующим образом:

Центральным местом для всех URL-адресов в базе данных является moz_places.Стол moz_bookmarks ссылается на него по столбцу внешнего ключа fk.

Если вы пометите закладку тегом, в ней будет несколько записей moz_bookmarks, все имеющие одну и ту же ссылку fk:Первый - это сама закладка (имеющая заголовок в title столбец) Для каждого тега есть дополнительная запись в moz_bookmarks наличие одного и того же внешнего ключа fk и ссылающийся на тег в parent coumn (который указывает на moz_bookmarks строка для тега).

Если у вас есть закладка 'http://stackoverflow.com под названием "Stackoverflow" с тегами "программирование" и "информация" вы получите:

moz_places
----------
id    url   (some more)
3636  http://stackoverflow.com

moz_bookmarks
-------------
id    type    fk     parent    title          (other columns omitted...)
332   1       3636   5         Stackoverflow  (parent=5 -> unfiled folder)
333   2       (NULL) 4         programming    (programming tag, parent=4 -> tags folder)
334   1       3636   333       (NULL)         (link to 'programming' tag)
335   2       (NULL) 4         info           (info tag, parent=4 see above)
336   1       3636   335       (NULL)         (link to 'info' tag)

Надеюсь, это поможет...

Другие советы

Как предположил МартинШтеттнер, структуры тегов основаны на внешнем ключе для идентификатора тега, поэтому сначала вам нужно определить moz_bookmark.id для целевого тега.

Этот PDF-файл Mozilla объясняет взаимосвязь в sqllite ...

Теги приводят к появлению двух новых записей в moz_bookmarks.Первый - это тег, с parent=4 (теги) и fk= NULL .В Вторая запись следует за первой и имеет предыдущий тег в качестве родительского, а fk указывает на соответствующую запись в moz_places.

Используя это в качестве руководства ...Как только вы узнаете идентификатор тега, вы сможете присоединиться moz_places.id НА moz_bookmarks.fk ...

    SELECT moz_places.id, moz_places.url, moz_places.title, moz_bookmarks.parent    
    FROM moz_places    
    LEFT OUTER JOIN moz_bookmarks    
    ON moz_places.id = moz_bookmarks.fk    
    WHERE moz_bookmarks.parent = N

Экспорт ...

Я не могу полностью помочь вам с практическими рекомендациями, однако, возможно, расширение "SQLite Manager" поможет вам, по крайней мере, в той части, где вы пытаетесь понять, что делать.Плагин является общим менеджером, но он также содержит базы данных по умолчанию, используемые Firefox в качестве стандартной опции.

Используя это расширение, переименовать ключевые слова, которые вам нравятся, должно быть относительно просто.Если вы просто ищете способ это исправить, это может сработать, если вы все еще предпочитаете писать свой собственный инструмент, возможно, этот может хотя бы помочь с запросами ;).

Я тоже ничем не могу помочь - нашел на ваш вопрос ответы такого же рода...

То, что мне удалось найти, - это соответствующая документация Mozilla.Система закладок называется Places, а таблицы базы данных описаны на https://developer.mozilla.org/en-US/docs/The_Places_database.

Поскольку мне пришлось копнуть глубже, чтобы найти эту информацию, вот запрос на получение URL-адреса, названия и даты создания всех ваших закладок:

SELECT h.url, b.title, b.dateAdded
FROM moz_places h
JOIN moz_bookmarks b
ON h.id = b.fk;

Я надеюсь, что это помогло бы людям, ищущим этот ответ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top