77 lines
2.4 KiB
Python
77 lines
2.4 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
|
|
- Custom fields
|
|
- 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: Writable Tags
|
|
- [ ] Frontmatter: Writable assigned members
|
|
- [ ] Frontmatter: Writable Tasks.
|
|
1. Save updated TaskList along with card (using `PUT cards`)
|
|
2. Get the Card's TaskList.
|
|
3. Remove all TaskList's except for the latest (how to determine latest?)
|
|
4. That's three requests just to save a freaking list of tasks!
|
|
- [ ] Frontmatter: Writable Dependencies.
|
|
- [ ] Usability: Richer directory structure
|
|
- [ ] Usability: Allow users to toggle Obsidian mode, instead of being default.
|
|
- [ ] Precision: Get the correct last-modified date.
|
|
- [ ] Performance: Improve cache behaviour. User and tags can have much longer cache times.
|
|
- [ ] Performance: Parallelize requests.
|
|
* Paginated pages can be easily parallelize.
|
|
- [X] Frontmatter: Arbitrary structured data (Custom Fields)? Read-only.
|
|
- [X] Frontmatter: Readable Dependencies. As vault links in Obsidian mode.
|
|
"""
|
|
|
|
__all__ = ['__version__']
|
|
from ._version import __version__
|