288 lines
7.5 KiB
Markdown
288 lines
7.5 KiB
Markdown
|
|
# Postiz CLI - Feature Summary
|
||
|
|
|
||
|
|
## ✅ Complete Feature Set
|
||
|
|
|
||
|
|
### Posts with Comments and Media - FULLY SUPPORTED
|
||
|
|
|
||
|
|
The Postiz CLI **fully supports** the complete API structure including:
|
||
|
|
|
||
|
|
#### ✅ Posts with Comments
|
||
|
|
- Main post content
|
||
|
|
- Multiple comments/replies
|
||
|
|
- Each comment can have different content
|
||
|
|
- Configurable delays between comments
|
||
|
|
|
||
|
|
#### ✅ Multiple Media per Post/Comment
|
||
|
|
- Each post can have **multiple images** (array of MediaDto)
|
||
|
|
- Each comment can have **its own images** (separate MediaDto arrays)
|
||
|
|
- Support for various image formats (PNG, JPG, JPEG, GIF)
|
||
|
|
- Media can be URLs or uploaded files
|
||
|
|
|
||
|
|
#### ✅ Multi-Platform Posting
|
||
|
|
- Post to multiple platforms in one request
|
||
|
|
- Platform-specific content for each integration
|
||
|
|
- Different media for different platforms
|
||
|
|
|
||
|
|
#### ✅ Advanced Features
|
||
|
|
- Scheduled posting with precise timestamps
|
||
|
|
- URL shortening support
|
||
|
|
- Tags and metadata
|
||
|
|
- Delays between comments (in minutes)
|
||
|
|
- Draft mode for review before posting
|
||
|
|
|
||
|
|
## Usage Modes
|
||
|
|
|
||
|
|
### 1. Simple Mode (Command Line)
|
||
|
|
|
||
|
|
For quick, simple posts:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Single post
|
||
|
|
postiz posts:create -c "Hello!" -i "twitter-123"
|
||
|
|
|
||
|
|
# With multiple images
|
||
|
|
postiz posts:create -c "Post" --image "img1.jpg,img2.jpg,img3.jpg" -i "twitter-123"
|
||
|
|
|
||
|
|
# With comments (no custom media per comment)
|
||
|
|
postiz posts:create -c "Main" --comments "Comment 1;Comment 2" -i "twitter-123"
|
||
|
|
```
|
||
|
|
|
||
|
|
**Limitations of Simple Mode:**
|
||
|
|
- Comments share the same media as the main post
|
||
|
|
- Cannot specify different images for each comment
|
||
|
|
- Cannot set custom delays between comments
|
||
|
|
|
||
|
|
### 2. Advanced Mode (JSON Files)
|
||
|
|
|
||
|
|
For complex posts with comments that have their own media:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
postiz posts:create --json complex-post.json
|
||
|
|
```
|
||
|
|
|
||
|
|
**Capabilities:**
|
||
|
|
- ✅ Each comment can have different media
|
||
|
|
- ✅ Custom delays between comments
|
||
|
|
- ✅ Multiple posts to different platforms
|
||
|
|
- ✅ Platform-specific content and media
|
||
|
|
- ✅ Full control over all API features
|
||
|
|
|
||
|
|
## Real-World Examples
|
||
|
|
|
||
|
|
### Example 1: Product Launch with Follow-up Comments
|
||
|
|
|
||
|
|
**Main Post:** Product announcement with 3 product images
|
||
|
|
**Comment 1:** Feature highlight with 1 feature screenshot (posted 1 hour later)
|
||
|
|
**Comment 2:** Special offer with 1 promotional image (posted 2 hours later)
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"type": "schedule",
|
||
|
|
"date": "2024-03-15T09:00:00Z",
|
||
|
|
"posts": [{
|
||
|
|
"integration": { "id": "twitter-123" },
|
||
|
|
"value": [
|
||
|
|
{
|
||
|
|
"content": "🚀 Launching our new product!",
|
||
|
|
"image": [
|
||
|
|
{ "id": "p1", "path": "product-1.jpg" },
|
||
|
|
{ "id": "p2", "path": "product-2.jpg" },
|
||
|
|
{ "id": "p3", "path": "product-3.jpg" }
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"content": "⭐ Key features you'll love:",
|
||
|
|
"image": [
|
||
|
|
{ "id": "f1", "path": "features-screenshot.jpg" }
|
||
|
|
],
|
||
|
|
"delay": 60
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"content": "🎁 Limited time: 50% off!",
|
||
|
|
"image": [
|
||
|
|
{ "id": "o1", "path": "special-offer.jpg" }
|
||
|
|
],
|
||
|
|
"delay": 120
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Example 2: Tutorial Thread
|
||
|
|
|
||
|
|
**Main Post:** Introduction with overview image
|
||
|
|
**Tweets 2-5:** Step-by-step with different screenshots for each step
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"type": "now",
|
||
|
|
"posts": [{
|
||
|
|
"integration": { "id": "twitter-123" },
|
||
|
|
"value": [
|
||
|
|
{
|
||
|
|
"content": "🧵 How to use our CLI (1/5)",
|
||
|
|
"image": [{ "id": "1", "path": "overview.jpg" }]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"content": "Step 1: Installation (2/5)",
|
||
|
|
"image": [{ "id": "2", "path": "step1.jpg" }],
|
||
|
|
"delay": 2000
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"content": "Step 2: Configuration (3/5)",
|
||
|
|
"image": [{ "id": "3", "path": "step2.jpg" }],
|
||
|
|
"delay": 2000
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"content": "Step 3: First post (4/5)",
|
||
|
|
"image": [{ "id": "4", "path": "step3.jpg" }],
|
||
|
|
"delay": 2000
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"content": "You're all set! 🎉 (5/5)",
|
||
|
|
"image": [{ "id": "5", "path": "done.jpg" }],
|
||
|
|
"delay": 2000
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Example 3: Multi-Platform Campaign
|
||
|
|
|
||
|
|
**Same event, different content per platform:**
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"type": "schedule",
|
||
|
|
"date": "2024-12-25T12:00:00Z",
|
||
|
|
"posts": [
|
||
|
|
{
|
||
|
|
"integration": { "id": "twitter-123" },
|
||
|
|
"value": [
|
||
|
|
{
|
||
|
|
"content": "Short, catchy Twitter post 🐦",
|
||
|
|
"image": [{ "id": "t1", "path": "twitter-square.jpg" }]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"content": "Thread continuation with details",
|
||
|
|
"image": [{ "id": "t2", "path": "twitter-details.jpg" }],
|
||
|
|
"delay": 5
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"integration": { "id": "linkedin-456" },
|
||
|
|
"value": [{
|
||
|
|
"content": "Professional, detailed LinkedIn post with business context...",
|
||
|
|
"image": [
|
||
|
|
{ "id": "l1", "path": "linkedin-wide.jpg" },
|
||
|
|
{ "id": "l2", "path": "linkedin-graph.jpg" }
|
||
|
|
]
|
||
|
|
}]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"integration": { "id": "facebook-789" },
|
||
|
|
"value": [
|
||
|
|
{
|
||
|
|
"content": "Engaging Facebook post for family/friends audience",
|
||
|
|
"image": [
|
||
|
|
{ "id": "f1", "path": "facebook-photo1.jpg" },
|
||
|
|
{ "id": "f2", "path": "facebook-photo2.jpg" },
|
||
|
|
{ "id": "f3", "path": "facebook-photo3.jpg" }
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"content": "More info in the comments!",
|
||
|
|
"image": [{ "id": "f4", "path": "facebook-cta.jpg" }],
|
||
|
|
"delay": 300000
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## API Structure Reference
|
||
|
|
|
||
|
|
### Complete CreatePostDto
|
||
|
|
|
||
|
|
```typescript
|
||
|
|
{
|
||
|
|
type: 'now' | 'schedule' | 'draft' | 'update',
|
||
|
|
date: string, // ISO 8601 date
|
||
|
|
shortLink: boolean,
|
||
|
|
tags: Array<{
|
||
|
|
value: string,
|
||
|
|
label: string
|
||
|
|
}>,
|
||
|
|
posts: Array<{
|
||
|
|
integration: {
|
||
|
|
id: string // From integrations:list
|
||
|
|
},
|
||
|
|
value: Array<{ // Main post + comments
|
||
|
|
content: string,
|
||
|
|
image: Array<{ // Multiple images per post/comment
|
||
|
|
id: string,
|
||
|
|
path: string,
|
||
|
|
alt?: string,
|
||
|
|
thumbnail?: string
|
||
|
|
}>,
|
||
|
|
delay?: number, // Minutes
|
||
|
|
id?: string
|
||
|
|
}>,
|
||
|
|
settings: {
|
||
|
|
__type: 'EmptySettings'
|
||
|
|
}
|
||
|
|
}>
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## For AI Agents
|
||
|
|
|
||
|
|
### When to Use Simple Mode
|
||
|
|
- Quick single posts
|
||
|
|
- No need for comment-specific media
|
||
|
|
- Posting to 1-2 platforms
|
||
|
|
- Same content across platforms
|
||
|
|
|
||
|
|
### When to Use Advanced Mode (JSON)
|
||
|
|
- ✅ **Comments need their own media** ← YOUR USE CASE
|
||
|
|
- ✅ Multi-platform with different content
|
||
|
|
- ✅ Threads with step-by-step images
|
||
|
|
- ✅ Timed follow-up comments
|
||
|
|
- ✅ Complex campaigns
|
||
|
|
|
||
|
|
### AI Agent Tips
|
||
|
|
|
||
|
|
1. **Generate JSON programmatically** - Don't write JSON manually
|
||
|
|
2. **Validate structure** - Use TypeScript types or JSON schema
|
||
|
|
3. **Test with "draft" type** - Review before posting
|
||
|
|
4. **Use unique image IDs** - Generate with UUID or random strings
|
||
|
|
5. **Set appropriate delays** - Twitter: 2-5s, others: 30s-1min+
|
||
|
|
|
||
|
|
## Files and Documentation
|
||
|
|
|
||
|
|
- **examples/post-with-comments.json** - Post with comments, each having media
|
||
|
|
- **examples/multi-platform-post.json** - Multi-platform campaign
|
||
|
|
- **examples/thread-post.json** - Twitter thread example
|
||
|
|
- **examples/EXAMPLES.md** - Comprehensive guide with all patterns
|
||
|
|
- **SKILL.md** - Full AI agent usage guide
|
||
|
|
- **README.md** - Installation and basic usage
|
||
|
|
|
||
|
|
## Summary
|
||
|
|
|
||
|
|
### Question: Does it support posts with comments, each with media?
|
||
|
|
|
||
|
|
**Answer: YES! ✅**
|
||
|
|
|
||
|
|
- ✅ Posts can have multiple comments
|
||
|
|
- ✅ Each comment can have its own media (multiple images)
|
||
|
|
- ✅ Each post can have multiple images
|
||
|
|
- ✅ Use JSON files for full control
|
||
|
|
- ✅ See examples/ directory for working templates
|
||
|
|
- ✅ Fully compatible with the Postiz API structure
|
||
|
|
|
||
|
|
The CLI supports the **complete Postiz API** including all advanced features!
|