代码之家  ›  专栏  ›  技术社区  ›  arod

如何“删除空书签文件夹”或“合并重复文件夹”

  •  1
  • arod  · 技术社区  · 9 年前

    很明显,我不久前就停止使用Xmarks,以防止它破坏事物。我不知道有多少书签消失了……Xmarks有一个方便的书签同步历史记录,但从那里修复一切太麻烦了(没有自动方式)

    我在考虑手动编辑 places.sqlite 书签数据库。。。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Community Mohan Dere    6 年前

    找了一段时间后,我决定手动滚动修复 places.sqlite

    下载sqlite3客户端之后,当然

    在我的例子中,我并不特别了解与书签相关的描述、关键字或任何元数据。

    1-使用一个id创建辅助表->文件夹名称:

    CREATE TABLE ufld AS 
        SELECT min(id) AS id, title
        FROM moz_bookmarks
        group by title
        order by title;
    

    2-创建另一个辅助表,其中每个书签都有其父文件夹名称和 ufld 名称(如果您想先签出内容,则列数超过需要):

    CREATE TABLE bkm_fld_ufld AS 
    SELECT 
        b.id AS bid, 
        b.parent AS bparent, 
        b.title AS btitle, 
        b.type AS btype,
        fld.id AS fid, 
        fld.parent AS fparent,
        fld.title AS ftitle,
        fld.type AS ftype,
        ufld.id AS ufldid,
        ufld.title AS ufldtitle
    FROM moz_bookmarks b 
    JOIN moz_bookmarks fld ON 
        fld.id = b.parent
    JOIN ufld ON 
        ufld.title = fld.title;
    

    UPDATE moz_bookmarks 
    SET parent = (SELECT bkm_fld_ufld.ufldid 
                  FROM bkm_fld_ufld 
                  WHERE bkm_fld_ufld.bid = moz_bookmarks.id) 
    WHERE guid NOT GLOB '*___';
    

    4-清理:

    DROP table ufld;
    DROP table bkm_fld_ufld;
    

    places.sqlite 在我的Firefox配置文件文件夹中,享受刷新和清理的书签。

    如果有人想出更好的方法,我听说。。。

    Firefox Sync更新

    places.sqlite 文件

    解决方法是:

    1. 断开Firefox与Firefox Sync的连接
    2. places.sqlite 如前所述
    3. 连接到Firefox Sync并等待它完成任务
    4. 删除所有书签

    推荐文章