Firefox Lesezeichen SQLite-Struktur
-
19-08-2019 - |
Frage
Ich versuche, ein Firefox 3 Add-On, welches mir ermöglicht zu schreiben, um einfach wieder Tag Lesezeichen. Zum Beispiel habe ich einige Lesezeichen „Entwicklung“ markiert und einige getaggt „Entwicklung“ und ich würde einen Weg mag einfach alle „delelopment“ Tags zu aktualisieren, um die „Entwicklung“. Leider kann ich nicht ein Add-on zu tun finden dies so dachte ich, ich würde meine eigene Gruppe gründen.
ein Add-on nicht entwickelt zu haben, bevor ich habe es geschafft, die Grundlagen zu erfassen und festgestellt, dass FireFox speichert alle Lesezeichen in einer SQLite-Datenbank namens places.sqlite. Innerhalb dieser Datenbank gibt es eine Tabelle moz_bookmarks genannt, die alle enthält die Lesezeichen, Tags und Ordner im Lesezeichen-Verzeichnis. Die Struktur der Lesezeichen-Ordner und ihr Kind Lesezeichen ist ein Fremdschlüssel-ID vertreten verwendet, die auf die ID in der gleichen Tabelle übergeordneten Ordner verweist, die wiederum recursses nach oben, um diesen übergeordneten Ordner der Id, bis sie die Lesezeichen Wurzel trifft.
Allerdings, wo ich stecken bleiben, wie die Tags, die Sie in Firefox gelten, sind zu den Lesezeichen verwendet. Jeder Tag hat einen Typ = 2 und Eltern ID = 4. Jedoch kann ich keine Korrelation zwischen diesem und einem tatsächlichen Lesezeichen angezeigt, die den Tag verwenden. Wenn ich ein Lesezeichen in Firefox zu keinem bestimmten Ordner hinzufügen, sondern gebe ihm 2 oder 3-Tags dann ist es übergeordnete Ordner-ID ist 5, die auf „unfiled“ entspricht, aber ich kann keine weitere Korrelation zu den Tags mit ihm verbunden sehen.
Ich habe diese Wiki-Seite auf der Struktur aber es funktioniert nicht wirklich Hilfe.
Es macht mich verrückt :( Bitte helfen ...
Lösung
Sie haben wahrscheinlich schon herausgefunden haben, dann aber Tags angewendet werden wie folgt:
Der zentrale Ort für alle URLS in der Datenbank moz_places
. Die Tabelle moz_bookmarks
bezieht sich auf es durch die Fremdschlüsselspalte fk
.
Wenn Sie ein Lesezeichen markieren, gibt es mehrere Einträge in moz_bookmarks
, die alle die gleiche Referenz fk
mit: Die erste ist die Lesezeichen selbst (mit dem Titel in der title
Spalte) Für jeden Tag gibt es eine zusätzliche entriy in moz_bookmarks
die mit gleiche Fremdschlüssel fk
und refering den Tag in der parent
coumn (die für den Tag der moz_bookmarks
Reihe Punkte).
Wenn Sie ein Lesezeichen ‚ http://stackoverflow.com ‘ Titel ‚Stackoverflow‘ mit Tags ‚Programmierung‘ und ‚Info‘, Sie erhalten:
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)
Hope, das hilft ...
Andere Tipps
Als MartinStettner Tag-Strukturen vorgeschlagen werden, auf dem Fremdschlüssel für die Tag-ID basiert, so dass Sie zuerst die moz_bookmark.id für den Ziel-Tag bestimmen müssen.
Diese Mozilla PDF die Beziehung in SQLLite erklärt ...
Stichworte führen in zwei neue Einträge in moz_bookmarks. Die erste ist der Tag, mit parent = 4 (Tags) und fk = NULL. Das zweiter Eintrag folgt dem ersten und hat der vorhergehende Tag wie die übergeordneten und fk Punkte auf den richtigen Eintrag in moz_places.
Mit dem als Leitfaden ... Sobald Sie die ID für den Tag kennen, können Sie verbinden 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
Exportieren ...
Ich kann ganz dir nicht helfen, mit den Anleitungen, aber vielleicht die Erweiterung ‚SQLite-Manager‘ werden Sie zumindest für den Teil helfen, wo Sie versuchen, herauszufinden, was zu tun ist. Das Plugin ist ein General Manager, aber es enthält die Standarddatenbanken von Firefox als Standard-Option verwendet als gut.
, dass die Erweiterung verwenden sollte es relativ einfach sein, um die Schlüsselwörter zu benennen Sie möchten. Wenn Sie nur nach einem Weg, um es zu beheben, könnte dies umgehen, wenn Sie immer noch lieber Ihr eigenes Tool schreiben, vielleicht ist dies kann man zumindest Hilfe bei den Abfragen;).
Ich kann nicht viel helfen - Ihre Frage für die gleiche Art von Antworten zu suchen gefunden ...
Was ich haben es geschafft, zu finden, ist die entsprechende Mozilla-Dokumentation. Das Lesezeichen-System Orte genannt, und die die Datenbanktabellen beschrieben unter https: // Entwickler .mozilla.org / en-US / docs / The_Places_database .
Da musste ich tiefer graben diese Informationen zu finden, hier ist die URL zu holen, Titel und Erstellungsdatum alle Lesezeichen:
SELECT h.url, b.title, b.dateAdded
FROM moz_places h
JOIN moz_bookmarks b
ON h.id = b.fk;
Ich hoffe, dass es die Menschen für diese Antwort suchen helfen würde.