1
0
favro-sync/favro_sync/__init__.py

77 lines
2.4 KiB
Python
Raw Normal View History

2024-09-26 15:48:11 +00:00
"""# Favro Sync.
Filesystem in User Space for Favro.
2024-09-26 15:48:11 +00:00
Synchronize your local notes and your Favro.
2024-09-26 14:43:30 +00:00
2024-09-26 16:49:28 +00:00
Uses the [Favro API](https://favro.com/developer/). Rate limiting depends upon
your organization's payment plan.
2024-09-26 19:51:53 +00:00
Uses [`python-fuse`](https://github.com/libfuse/python-fuse) library.
2024-09-28 11:29:04 +00:00
Features:
- Local access to cards in todolist.
- Read card features:
- Title
- Description
- Tags
- Assignees
2024-09-28 12:10:13 +00:00
- Dependencies
2024-10-02 13:56:17 +00:00
- Custom fields
2024-09-28 11:29:04 +00:00
- Change card features:
- Title
- Description
- [Obsidian](https://obsidian.md/) compatibility:
2024-09-28 12:10:13 +00:00
- Mountable within your vault.
2024-09-28 11:29:04 +00:00
- Link to cards by either card number or card title.
2024-09-28 12:10:13 +00:00
- Tags and dependencies are integrated.
2024-09-28 11:29:04 +00:00
Limitations:
2024-09-26 21:34:11 +00:00
- Only cards in todolist is fetched at the moment.
2024-09-28 11:29:04 +00:00
- Tasks (checklists on cards) cannot be updated or changed.
- Images cannot be updated or changed.
- You cannot create new cards, nor any other files.
2024-09-26 21:34:11 +00:00
## 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.)
2024-09-27 14:13:03 +00:00
## Architecture
- `FavroFuse`
- Markdown Parser/Renderer
- `FavroClient`
- `CardCache`
2024-09-27 14:46:12 +00:00
## Work in Progress
Following features are work in progress:
2024-10-01 14:06:06 +00:00
- [ ] Frontmatter: Writable Tags
- [ ] Frontmatter: Writable assigned members
2024-10-01 14:51:05 +00:00
- [ ] 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!
2024-10-01 14:06:06 +00:00
- [ ] Frontmatter: Writable Dependencies.
2024-10-02 13:56:17 +00:00
- [ ] 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.
2024-09-26 16:49:28 +00:00
"""
2024-10-01 14:14:51 +00:00
__all__ = ['__version__']
2024-10-01 14:22:23 +00:00
from ._version import __version__