Ticket #960 (closed Feature Request: fixed)

Opened 6 years ago

Last modified 5 years ago

Mapping Firefox and Chromium Bookmarks to Web Resource Topics

Reported by: Malte Owned by: Malte
Priority: Major Milestone: Release 4.8
Component: DeepaMehta Standard Distribution Version: 4.7
Keywords: Cc: jri, JuergeN
Complexity: 3 Area:
Module:

Description

A first milestone i would be interested in is to import the "backup files" of my browser bookmarks, integrating bookmarks from various browsers. Providing a functionality allowing for continous updates (using the URL as web resources identity) would be good to have. This would bring the power of associations, tagging, note-taking and collboration to bookmarking. Up to my observation, having a collaborative and integrated bookmarking service available hosted for working group is still a thing.

The dm4-import-export [1] module might be a good base to provide this importer functionality.

Source Code:
[1] https://github.com/mukil/dm4-import-export

Change History

comment:1 Changed 5 years ago by jri

Any progress here?

comment:2 Changed 5 years ago by Malte

Yes, indeed! Thanks for the reminder. Let's do this! :)

So tomorrows build of "dm4-import-export" plugin will integrate an "Import Bookmarks" dialog into the Webclients "Create" Menu.

The first milestone is reached for Firefox users. The backup file (.json) of your Firefox Bookmark Manager can be uploaded through using the "Import Bookmarks" dialog. When uploading the backup file again just those web resources are created which do not already exist. The original timestamps of the bookmarks added (to Firefox) are also imported to DeepaMehta4 allowing us to visualize our bookkmarks in a "timeline" view (e.g. the one provided by the stableviews plugin).

Issues remain, esp. in a collaborative scenario and people importing "Web Resources" (URLs, indexed as KEY) into their "Private Workspaces". At least up to my knowledge this would hinder other users to have the identical URLs in their "Private Workspace" as well (at least i think so that having duplicate entries of types indexed as KEY is, despite being in different ACL contexts, not yet supported by our storage engine). This reminds me of #865 because URIs are also (unique) and therefore indexed as KEYs in our storage.

In the end we must decide if we want to put the contexts (in which the URIs are used) first (uniqueness in worksapces) or the URIs first (global uniqueness). If we stay with the latter we have kind of built in a "property" issues, which is the one who creates a resource first in DM4, owns and controls use of it.

comment:3 Changed 5 years ago by Malte

  • Owner set to Malte
  • Status changed from new to accepted

comment:4 Changed 5 years ago by Malte

Developing this any further than this is low priority for the moment. #955 has a higher priority for me.

Furthermore Chromium and Firefox Bookmark Exports produce HTML files and i am currently thinking about a client-side solution (converting the HTML to JSON and sending it as a String) for importing those files. Another way would be to parse the HTML server side (either through integrating some third party HTML parsing lib or simply using regular expressions). Ok, we'll see.

Note: There is a difference between simple "Bookmark Exports" (HTML, supported by Chromium and Firefox, possibly even a similar data format) and the "Firefox Bookmark Backup" documents (JSON) now implemented.

Last edited 5 years ago by Malte (previous) (diff)

comment:5 Changed 5 years ago by Malte

So, after testing and improving the importer a bit i could succesfully import my firefox bookmark backup files from 2010, '11, '12, '14 and 2016.

Say "scratchin ones own itch" - now that was fun, thanks for poking me :)

Now while we're at it:

It would be nice if i could integrate the bookmark folders using the dm4-tags module - but just if the bundle/service is installed and present. So, I do not want to declare a dm4-tags dependency explicitly but rather detect and use (inject?) it on runtime, if present. Can you say something about this? Would this be possible?

comment:6 Changed 5 years ago by Malte

Now, i see that my manually set timestamps are probably overwritten by the TimePlugins? postUpdateTopic() implementation, at least the timestamps of the imported web resource topics are not the original ones but date to today.

Would be great to have a kind of "privileged" call for setting these via the TimeService? as otherwise the timely order of my bookmarks can not be maintained when importing to DeepaMehta.

comment:7 Changed 5 years ago by Malte

I am sorry again.. i think setting timestamps manually actually works but instead i have discovered a bug in my timeline display. Thanks, i will investigate things first.

comment:8 Changed 5 years ago by jri

Can we close this ticket?

comment:9 Changed 5 years ago by Malte

  • Status changed from accepted to closed
  • Resolution set to fixed

Yes, thanks.

This is now realized as DM 4.8 in the dm4-import-export module. An "Import Bookmarks" command should appear in your "Create" menu after installation of this extension.
https://download.deepamehta.de/dm48-import-export-0.5.jar

Note: See TracTickets for help on using tickets.