Watch for changed files in SyncThing
For syncing files between my devices I'm using SyncThing. This tool is reliable, available on Linux, Android, Mac and iOS. And it encrypts the communication.
But sometimes I want to know when files in certain directories have changed - as example in my Obsidian vault. This allows me to post-process the files.
Some of the use cases I have in Obsidian:
- Resolve links in Daily Notes: when I share a URL from my RSS reader or from other sources into Obsidian, the URL sometimes is just a link to a URL shortener. I then later need to resolve the link - or let a script do it right away for known shortlinks, and update the daily note.
- Remove tracking information from URLs: many shared links include campaign and tracking information, and this can be removed straight away.
- Extract content from certain Toots: I follow a couple interesting accounts on Mastodon, and when I share the Toot link into Obsidian, the script extracts the Toot content and adds it, along with the original link, to a pre-defined note.
- Extract links from Toots: many news websites include a link (sometimes again with tracking information) in their Toots. When I share such a Toot into Obsidian, a script picks up the link, extract the target link and updates the daily note.
All of this is not very complicated, and a couple of lines in Python do the job. The main parts for the script are:
- extract the API key from the SyncThing configuration
- Open a connection to the local SyncThing instance
- Watch for certain events
Continue reading "Watch for changed files in SyncThing"