Commit 7afc014b authored by Jan Reimes's avatar Jan Reimes
Browse files

feat(cloudconvert, zamzar, router, models): implement document conversion providers

* Add CloudConvertProvider for converting documents to PDF using CloudConvert API.
* Add ZamzarProvider for converting documents to PDF using Zamzar API.
* Implement provider routing and failover logic in the router module.
* Create models for conversion results to standardize output across providers.
parent be48336a
Loading
Loading
Loading
Loading

.env.example

0 → 100644
+35 −0
Original line number Diff line number Diff line
# PDF Remote Converter Configuration
# Copy this file to .env and fill in your values

# =============================================================================
# Provider API Keys (at least one required)
# =============================================================================

# CloudConvert (10 conversions/day free tier)
# Get your key at: https://cloudconvert.com/dashboard/api/v2/keys
CLOUDCONVERT_API_KEY=

# Adobe PDF Services (500 transactions/month free tier)
# Get credentials at: https://developer.adobe.com/console
# Note: Adobe uses client_id + client_secret pair (NOT a single API key)
ADOBE_CLIENT_ID=
ADOBE_CLIENT_SECRET=

# Zamzar (100 credits/month free tier, 1MB limit)
# Get your key at: https://developers.zamzar.com/
ZAMZAR_API_KEY=

# Generic fallback API key (used if provider-specific key not set)
PDF_REMOTE_CONVERTER_API_KEY=

# =============================================================================
# Application Settings
# =============================================================================

# Default provider: cloudconvert, adobe, or zamzar
# Default: cloudconvert
PDF_REMOTE_CONVERTER_DEFAULT_PROVIDER=cloudconvert

# Cache directory for HTTP responses and converted files
# Default: ~/.cache/pdf-remote-converter
PDF_REMOTE_CONVERTER_CACHE_DIR=
+2 −0
Original line number Diff line number Diff line
@@ -24,3 +24,5 @@ uv.lock

# Copier answers (regenerated on update)
.copier-answers.yml
.vscode/mcp.json
opencode.json
+10 −10
Original line number Diff line number Diff line
@@ -13,19 +13,19 @@ and orientation.

Examples of behavior that contributes to a positive environment:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior:

* The use of sexualized language or imagery and unwelcome sexual attention
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information without explicit permission
* Other conduct which could reasonably be considered inappropriate
- The use of sexualized language or imagery and unwelcome sexual attention
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information without explicit permission
- Other conduct which could reasonably be considered inappropriate

## Enforcement

+4 −4
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ mise type-check
## Pull Requests

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
1. Create a feature branch (`git checkout -b feature/amazing-feature`)
1. Commit your changes (`git commit -m 'Add amazing feature'`)
1. Push to the branch (`git push origin feature/amazing-feature`)
1. Open a Pull Request

PLAN.md

0 → 100644
+751 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading