Omnivore is a read-it-later app. This plugin fetch new articles and highlights via Omnivore API, manually or periodically. Articles are converted to Markdown. Highlights are stored in the notes by their dates.
It is my first plugin, and development is very early stage, but it should do some jobs.
Install from Plugins section in Joplin's settings.
In Omnivore Sync plugin settings, set "Omnivore API Key" obtained from Omnivore's site.
Choose "Sync Type," "Target Notebook (created if not exist)," "Highlight Note Title Prefix."
For manual sync, run "Tools > Sync Omnivore Articles" from the Joplin's menu. It takes a minute depends on the number of articles/highlights in your Omnivore library.
I could not figure out how to show logs or an indicator, so nothing is printed out. Please stay patient!
Thanks a lot for providing an Omnivore plugin. I did a test and it seems very promising!
One thing I would wish for is some method of selecting which Omnivore articles that syncs to Joplin. The Logsec plugin solves it by defining a custom label in Ominvore, and have a setting in the plugin where we can define the label. Then only articles with that label gets synced.
Thank you for using, and giving important feature request!
I've implemented selected label sync feature (0.1.5).
Note that the given list of labels is converted to Omnivore's search,
and each sync process checks the label-matched articles/highlights using the search.
I published to npm but takes some time to be cached by official plugin;
if you want to test v0.1.5, please use GitHub's release version.
Thanks a lot for the updated version. Now I can add the label "joplinsync" to articles in Omnivore and only those articles get synced to Joplin. Great!
Another question:
It seems that all highlights and annotations created on the same day in Omnivore is copied into 1 note in Joplin, and in creation order.
So in my Joplin note "Omnivore Highlights 2024-08-28" i have the following:
Annotation from article A
Highlight form article B
Annotation from article A
etc.
Is this intended? Would it better if highlights and annotations are grouped by article? Or perhaps one Joplin note per article (containing highlights AND annotations from that article)?
The "By Date" grouping with anti-chronological order sorting for highlights/notes is currently intended, but not concrete decision.
Considering Logseq's Journal way and how SNS treat posts, I first implemented "By Date" behavior.
I wanted to know the real user's usecase. That's why I published here!
So, I've just implemented the new grouping, "By Article," alongside a new template "Highlight and Note."
Could you test it?
I've been looking for something like this for a while. Congrats.
However, when I'm using it on my Mac, and trying to define the folder articles are synced into, the plugin creates a new folder with that name for every article synced. I wind up with multiple "!!!Omnivore" folders, each with one article.
Oh, sorry for the bug!
I'm on a Mac as well (macOS 15 Beta) with Joplin Server on my LAN,
but could not figure out how to reproduce the multiple folders bug in the normal and dev mode.
Could you provide more details?
Hopefully you will get feedback from more users with other workflow suggestions. I think the plugin works brilliant for my use now.
I have not thought this completely through but perhaps this could be useful:
I usually want only annotations and highlights to be synced to Joplin.
So I select "Sync type: Highlights and annotations only" in plugin preferences.
But sometimes I also want to sync the complete article .... so how about changing the behavior to this:
If there are any label(s) defined in "Article labels" AND "Sync type" = "Highlights and annotations only", any article with that label is still synced (as an article). (Overrides "Sync type").
I'm having trouble reproducing this duplication behavior.
Fetching functions are called using await, so getting each article/highlight is done one by one.
So far, after reviewing the code, I have not figured out the cause.
However, Joplin Cloud possibly returns the list of folders without including the recently created folders (due to cache?),
while Joplin Desktop and Joplin Server include the recent folders.
I'm thinking of a procedure to manage this, resolving this duplication and reducing the number of API calls.
I'm happy to hear this plugin meets your expectations!
Thank you for the suggestion!
In that case, how about these settings?
Sync Type: Articles, highlights and annotations
Article Labels: Specify the unique label, such as "joplinsync," so only articles with the label are synced as the entire article.
Highlight Labels: Leave empty to sync every highlight and annotation.
With this configuration, sync articles if they have the specific label, and leave every article not synced
while all the highlights/annotations are always synced.
See how you go. If it's a problem limited to my install, or I'm being a feckless idiot, I have some workarounds I've developed. But I'll keep an eye on this space.
Released v0.1.7. GitHub Releases: v0.1.7
This commit addresses the issue of multiple folder creations and improves
the reliability of the sync process across different environments.
I'm unsure of the cause but adjusted the folder checking and creation process.
It reduces the number of API calls (although all Joplin API calls are local).
I made a mistake. v0.2.0: Re-enabled "As Article" settings.
I already published it to npm; the Plugin will notify you of an update when the Joplin crawler detects it.
v0.2.1 and v0.2.2 introduce more readability for highlights and annotations. v0.2.1: Convert encoded text to be decoded in highlights v0.2.2: Preserve Markdown formatting
Now, I'm working on storing remote-linked images as attachments.
v0.2.3: Get remote-linked images and store them in Joplin note's attachments. v0.2.4: Add support for the article and highlight sub-notebooks*
*Before v0.2.4, you could specify "Target Notebook." Now, it is called "Main Notebook."
Every note goes to the Main Notebook if the Article or Highlight sub-notebook is empty.
Sub-notebooks are created as children of the Main Notebook.
Sadly, Omnivore's free hosted version will be shut down on Nov 15, 2024, according to their blog post. Although Omnivore's code base is fully open-source, the rigid procedure for self-hosting, running the iOS app, and web clipper is still unclear. I'll keep my eyes on any updates on the self-hosted Omnivore solution.
Thank you for using this plugin!