Firefox书签SQLite的结构
-
19-08-2019 - |
题
我试图写一个Firefox 3的附加,这将使我轻松地重新标记书签。例如,我有一些书签标记“发展”和一些标记的“发展”,我想办法轻松更新所有的“银盆”标签“发展”。不幸的是,我找不到的附加做到这一点,所以我想我会创造我自己的。
之前,我已经成功地掌握基础知识和发现,火狐商店具有不开发的附加在一个名为Places.sqlite SQLite数据库的所有书签。在该数据库中有一个名为moz_bookmarks包含书签目录内的所有书签,标签和文件夹表。书签文件夹和他们的孩子书签的结构使用指向父文件夹在其中再次向上recursses到父文件夹的ID,直到它击中书签根同桌ID的外键ID表示。
然而,当我被卡是如何在Firefox中应用的标签相关的书签。每个标签都有一个类型= 2和父ID = 4,但是,我可以看到这一点,并使用该标记的实际书签之间没有相关性。如果我在Firefox添加了书签没有特别的文件夹,但给它2个或3个标签则它的父文件夹ID是5,其对应于“未分类”,但我可以看到与它相关联的标签没有进一步的相关性。
我发现在结构上这 Wiki页面,但它并没有真正帮助
它的驾驶我坚果:(请帮助...
解决方案
您可能已经发现了自己,但标签应用如下:
在数据库中的所有URL的中心位置是moz_places
。表moz_bookmarks
是指它由外键列fk
。
如果您标记书签,有多个条目中moz_bookmarks
,都具有相同的参考fk
:首先是书签本身(具有在title
列标题)对于每一个标签,有一个附加的entriy在具有moz_bookmarks
相同外键fk
和指的在parent
coumn(其指向moz_bookmarks
排为标签)标签。
如果你有一个书签“ http://stackoverflow.com ”标题为“#1”与标签“写入”和“信息”,你将获得:
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)
希望这有助于...
其他提示
由于MartinStettner建议标签的结构是基于对标签ID的外键,所以你首先要确定目标标记的moz_bookmark.id。
该Mozilla PDF 解释sqllite的关系...
标签导致在两个新项 moz_bookmarks。第一个是标签, 与母体= 4(标签),和FK = NULL。该 第二条目跟随第一之一,并有 前面的标签作为其母公司,和FK点 在moz_places正确的入口。
使用作为指导......一旦你知道了标签的ID就可以加入moz_places.id ON 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的经理”将帮助你至少在那里你想弄清楚怎么做的部分。该插件是一个总经理,但它包含使用Firefox作为以及标准选项的默认数据库。
使用该扩展它应该是相对简单的重命名你喜欢的关键字。如果你只是在寻找一种方式来解决它,这可能是工作,如果你还是喜欢写自己的工具,也许这一个至少可以查询的帮助。)
我也无能为力 - 发现你的问题寻找同一种答案......
我设法找到是相关Mozilla的文档。书签系统称为邻居,和数据库表在 HTTPS描述://开发商.mozilla.org / EN-US /文档/ The_Places_database 。
由于我不得不深入挖掘找到这个信息,这里是获取所有书签的网址,标题和创建日期的要求:
SELECT h.url, b.title, b.dateAdded
FROM moz_places h
JOIN moz_bookmarks b
ON h.id = b.fk;
我希望它会帮助人们寻找这个答案。