هيكل فايرفوكس إرسال سكليتي
-
19-08-2019 - |
سؤال
وأنا أحاول أن أكتب فايرفوكس 3 الإضافة التي سوف تمكنني من بسهولة إعادة العلامة الإشارات. على سبيل المثال لدي بعض العناوين الموسومة "التنمية" وبعض الموسومة "التنمية" وأود طريقة لتحديث بسهولة العلامات جميع "delelopment" إلى "التنمية". للأسف لا أستطيع أن أجد وظيفة إضافية على القيام بذلك حتى ظننت أنني من شأنه أن يخلق بلدي.
وبعد أن لم تتطور وظيفة إضافية في قبل لقد تمكنت من فهم أساسيات واكتشفت أن مخازن فايرفوكس كل الإشارات المرجعية في قاعدة بيانات SQLite دعا Places.sqlite. ضمن قاعدة البيانات هناك جدول يسمى moz_bookmarks الذي يحتوي على كافة العناوين، والعلامات والمجلدات ضمن الدليل الإشارات. ويمثل هيكل المرجعية المجلدات والإشارات أطفالهم باستخدام معرف المفتاح الخارجي الامر الذي يشير الى هوية المجلد الأصل في نفس الطاولة التي recursses مرة أخرى صعودا إلى رقم هذا المجلد الأم حتى يضرب جذور الإشارات.
ولكن، حيث أصبح عالقة هي الطريقة التي ترتبط العلامات التي تطبق في فايرفوكس إلى الإشارات. كل علامة ونوع = 2 والأم ID = 4. ومع ذلك أستطيع أن أرى أي علاقة بين هذا والعناوين الفعلية التي تستخدم العلامة. إذا أضيف المرجعية في فايرفوكس إلى أي مجلد معين ولكن تعطيه 2 أو 3 علامات ثم انها ID المجلد الأصل هو 5 والتي تتطابق مع "unfiled" ولكن أستطيع أن أرى أي ارتباط آخر لالعلامات المرتبطة به.
ولقد وجدت هذه الصفحة المعرفة على هيكل ولكن لم يحدث ذلك حقا مساعدة.
وانها يقود لي المكسرات :( الرجاء المساعدة ...
المحلول
وربما كنت وجدت بالفعل من نفسك، ولكن يتم تطبيق العلامات كما يلي:
والمكان المركزي لجميع عناوين المواقع في قاعدة البيانات هو moz_places
. ويشير الجدول moz_bookmarks
إليها من fk
عمود مفتاح أجنبي.
إذا علامة مرجعية، وهناك مداخل متعددة في moz_bookmarks
، عن وجود نفس fk
المرجع الأول هو المرجعية نفسها (وجود عنوان في العمود title
) لكل علامة، هناك entriy إضافي في moz_bookmarks
وجود نفس fk
مفتاح الأجنبية وفي اشارة الى العلامة في coumn parent
(الذي يشير إلى الصف moz_bookmarks
للعلامة).
إذا كان لديك علامة ' http://stackoverflow.com "بعنوان" ستاكوفيرفلوو' مع 'برمجة' العلامات و'معلومات'، كنت سوف تحصل على:
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 تستند الهياكل العلامة على مفتاح خارجي للعلامة معرف لذلك عليك أولا تحديد moz_bookmark.id للعلامة الهدف.
هذه PDF موزيلا يفسر العلاقة في sqllite ...
<اقتباس فقرة> <اقتباس فقرة>الكلمات تؤدي إلى اثنين من مداخل جديدة في moz_bookmarks. أول واحد هو العلامة، مع الوالدين = 4 (العلامات)، وكيه = NULL. ال المدخل الثاني يتبع الأول واحد وله العلامة السابقة كما الأم، ونقاط FK للدخول الصحيح في moz_places.
اقتباس فقرة> اقتباس فقرة>وباستخدام هذا كدليل ... بمجرد أن تعرف هوية للعلامة يمكنك الانضمام 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" سوف تساعدك على الأقل في الجزء حيث كنت في محاولة لمعرفة ما يجب القيام به. البرنامج المساعد هو المدير العام، لكنه يحتوي على قواعد البيانات الافتراضية المستخدمة من قبل فايرفوكس كخيار قياسي أيضا.
<ع> استخدام هذا التمديد يجب أن تكون واضحة نسبيا لإعادة تسمية الكلمات الرئيسية التي ترغب. إذا كنت تبحث فقط عن وسيلة لإصلاحه، وهذا يمكن أن تعمل، إذا كنت لا تزال تفضل لكتابة أداة الخاصة بك، وربما هذا واحد يمكن على الأقل المساعدة في الاستعلامات..)وأنا لا يمكن أن تساعد كثيرا سواء - وجدت سؤالك تبحث عن نفس النوع من الأجوبة ...
وماذا لقد تمكنت من العثور على وثائق موزيلا ذات الصلة. ويطلق على نظام المرجعية الأماكن، ووصف جداول قاعدة البيانات على 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;
وآمل انها تريد مساعدة الناس الذين يبحثون عن هذا الجواب.