1
0
favro-sync/favro_sync/__init__.py
2024-09-28 14:13:09 +02:00

64 lines
1.8 KiB
Python

"""# Favro Sync.
Filesystem in User Space for Favro.
Synchronize your local notes and your Favro.
Uses the [Favro API](https://favro.com/developer/). Rate limiting depends upon
your organization's payment plan.
Uses [`python-fuse`](https://github.com/libfuse/python-fuse) library.
Features:
- Local access to cards in todolist.
- Read card features:
- Title
- Description
- Tags
- Assignees
- Dependencies
- Change card features:
- Title
- Description
- [Obsidian](https://obsidian.md/) compatibility:
- Mountable within your vault.
- Link to cards by either card number or card title.
- Tags and dependencies are integrated.
Limitations:
- Only cards in todolist is fetched at the moment.
- Tasks (checklists on cards) cannot be updated or changed.
- Images cannot be updated or changed.
- You cannot create new cards, nor any other files.
## Usage
1. Install dependencies `pip install -r requirements.txt`
2. Setup [secrets](https://gitfub.space/Jmaa/secret_loader]): `FAVRO_ORGANIZATION_ID`, `FAVRO_USERNAME`, `FAVRO_PASSWORD`.
3. Run `python -m favro_sync <MOUNT_DIR>`. Use the `--help` argument to get an
overview of all supported flags (there is a lot, because
[`python-fuse`](https://github.com/libfuse/python-fuse) implements a whole
bunch automatically.)
## Architecture
- `FavroFuse`
- Markdown Parser/Renderer
- `FavroClient`
- `CardCache`
## Work in Progress
Following features are work in progress:
- [ ] Frontmatter: Update Tags
- [ ] Frontmatter: Updated assigned members
- [ ] Frontmatter: Arbitrary structured data? Read-only.
- [ ] Frontmatter: Dependencies. As vault links in Obsidian mode.
- [ ] Allow users to toggle Obsidian mode, instead of being default.
- [ ] Get the correct last-modified date.
- [ ] Improve cache behaviour. User and tags can have much longer cache times.
"""