Files
Todoist-Actual-Backup/.github/copilot-instructions.md
2025-10-17 07:25:07 -04:00

44 lines
2.6 KiB
Markdown

<!-- Use this file to provide workspace-specific custom instructions to Copilot. For more details, visit https://code.visualstudio.com/docs/copilot/copilot-customization#_use-a-githubcopilotinstructionsmd-file -->
This project is a Python script that exports all active and completed tasks from the Todoist API to a JSON file, including attachments and comments, and generates a human-readable HTML backup using Jinja2.
# Copilot Workspace Instructions
## Project Purpose
Export all active and completed tasks from Todoist, including attachments and comments, to a JSON file and a human-readable HTML file. Uses the official Todoist Python client and Jinja2 for HTML rendering.
## Key Implementation Details
- Use the Todoist API via the official Python client (`todoist-api-python`).
- Fetch projects and tasks using the iterator objects returned by the API for paging.
- For completed tasks, use `get_completed_tasks_by_completion_date` for the last 3 months only (API limitation).
- For comments and tasks, always iterate over the returned iterator to collect all items.
- Download attachments to the `attachments/` folder and reference their local filenames in the JSON and HTML outputs.
- Tasks are nested under their project in the JSON output, with all available fields included.
- Comments are nested under each task as an array.
- Use a `.venv` Python environment for dependencies.
- Output files are named `Todoist-Actual-Backup-YYYY-MM-DD.json` and `.html` (current date).
- The script is run with the `export` argument; any other argument or none shows usage instructions.
- Handle datetime serialization for JSON output using a custom function.
## File Structure
- `export_todoist.py`: Main script for export logic.
- `requirements.txt`: Lists dependencies (`todoist-api-python`, `Jinja2`, `requests`).
- `todoist_backup_template.html`: Jinja2 template for HTML output.
- `attachments/`: Folder for downloaded attachments.
- `.venv/`: Python virtual environment.
- `.github/copilot-instructions.md`: Copilot workspace instructions.
## Error Handling
- Print errors for missing API key, failed API requests, and failed downloads.
- If a field is not serializable, convert to string or ISO format for JSON.
## Usage
- Activate the virtual environment and install requirements before running.
- Set the `TODOIST_KEY` environment variable with your Todoist API key.
- Run `python export_todoist.py export` to perform the export.
## Suggestions for Copilot
- When generating code, prefer iterators for API responses and handle paging.
- Always include all available fields from API objects in output.
- Use Jinja2 for HTML rendering and reference local attachment files.