takunomi-build-bot
c219c6a3e4
This commit was automatically generated by a script: https://gitfub.space/Jmaa/repo-manager
123 lines
4.0 KiB
Markdown
123 lines
4.0 KiB
Markdown
<!--- WARNING --->
|
|
<!--- THIS IS AN AUTO-GENERATED FILE --->
|
|
<!--- MANUAL CHANGES CAN AND WILL BE OVERWRITTEN --->
|
|
|
|
|
|
|
|
# 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.
|
|
|
|
|
|
## Dependencies
|
|
|
|
All requirements can be installed easily using:
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
Full list of requirements:
|
|
- [requests](https://pypi.org/project/requests/)
|
|
- [requests-cache](https://pypi.org/project/requests-cache/)
|
|
- [fuse-python](https://pypi.org/project/fuse-python/)
|
|
- [secret_loader](https://gitfub.space/Jmaa/secret_loader)
|
|
- [marko](https://pypi.org/project/marko/)
|
|
- [python-frontmatter](https://pypi.org/project/python-frontmatter/)
|
|
|
|
|
|
## License
|
|
|
|
```
|
|
MIT License
|
|
|
|
Copyright (c) 2024 Jon Michael Aanes
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in all
|
|
copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
SOFTWARE.
|
|
```
|