daily-news-60s

394installs36stars

Install to Claude Code

npx -y skills add https://github.com/vikiboss/60s-skills --skill daily-news-60s

Description

daily news 60s

SKILL.md

---
name: daily-news-60s
description: 获取每天60秒读懂世界的每日新闻,包含15条精选国内外新闻和每日微语。Use when users need daily news summaries, current events, or want to stay informed about world news in Chinese.
license: MIT
metadata:
  author: vikiboss
  version: "1.0"
  api_base: https://60s.viki.moe/v2
  tags:
    - news
    - daily
    - china
    - information
---

# 每天60秒读懂世界 - Daily News Skill

This skill helps AI agents fetch and present daily curated news from the 60s API, which provides 15 selected news items plus a daily quote, updated every 30 minutes.

## When to Use This Skill

Use this skill when users:
- Ask for today's news or current events
- Want a quick daily briefing
- Request news summaries in Chinese
- Need historical news from a specific date
- Want news in different formats (text, markdown, image)

## API Endpoint

**Base URL:** `https://60s.viki.moe/v2/60s`

**Method:** GET

## Parameters

- `date` (optional): Date in YYYY-MM-DD format (e.g., "2024-01-15")
  - If not provided, returns the latest available news
  
- `encoding` (optional): Output format
  - `json` (default): Structured JSON data
  - `text`: Plain text format
  - `markdown`: Formatted markdown
  - `image`: Redirect to image URL
  - `image-proxy`: Returns image binary data

## How to Use

### Basic Usage - Get Latest News

```bash
curl "https://60s.viki.moe/v2/60s"
```

```python
import requests

response = requests.get('https://60s.viki.moe/v2/60s')
news = response.json()

print(f"📰 {news['date']} 新闻简报")
print(f"农历:{news['lunar_date']} {news['day_of_week']}\n")

for i, item in enumerate(news['news'], 1):
    print(f"{i}. {item['title']}")
    
print(f"\n💭 微语:{news['tip']}")
```

### Get News for Specific Date

```python
response = requests.get('https://60s.viki.moe/v2/60s', params={'date': '2024-01-15'})
```

### Get News as Markdown

```python
response = requests.get('https://60s.viki.moe/v2/60s', params={'encoding': 'markdown'})
markdown_content = response.text
```

### Get News as Plain Text

```python
response = requests.get('https://60s.viki.moe/v2/60s', params={'encoding': 'text'})
text_content = response.text
```

## Response Format (JSON)

```json
{
  "date": "2024-01-15",
  "day_of_week": "星期一",
  "lunar_date": "腊月初五",
  "news": [
    {
      "title": "新闻标题1",
      "link": "https://example.com/news1"
    },
    ...
  ],
  "tip": "每日微语内容",
  "image": "https://..../image.png",
  "updated": "2024-01-15 09:00:00",
  "updated_at": 1705280400000,
  "api_updated": "2024-01-15 09:00:00",
  "api_updated_at": 1705280400000
}
```

## Example Interactions

### User Request: "今天有什么新闻?"

**Agent Response:**
```
📰 2024年1月15日 星期一 农历腊月初五

【今日要闻】
1. 新闻标题1
2. 新闻标题2
3. 新闻标题3
...

💭 微语:[每日微语内容]
```

### User Request: "Get yesterday's news"

```python
from datetime import datetime, timedelta

yesterday = (datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d')
response = requests.get('https://60s.viki.moe/v2/60s', params={'date': yesterday})
```

## Best Practices

1. **Caching**: The API has built-in caching, responses are very fast
2. **Update Frequency**: News updates every 30 minutes, typically by 10 AM
3. **Error Handling**: Always check response status and handle errors gracefully
4. **Format Selection**: Use JSON for structured data, markdown for formatted output, text for simple presentation
5. **Date Validation**: When requesting specific dates, ensure the date format is YYYY-MM-DD

## Common Use Cases

### 1. Daily News Bot
```python
def send_morning_news():
    news = requests.get('https://60s.viki.moe/v2/60s').json()
    message = f"早安!今天是 {news['date']} {news['day_of_week']}\n\n"
    message += "\n".join([f"{i}. {item['title']}" for i, item in enumerate(news['news'][:5], 1)])
    message += f"\n\n{news['tip']}"
    return message
```

### 2. News Summary for Chatbots
```python
def get_news_summary(count=5):
    news = requests.get('https://60s.viki.moe/v2/60s').json()
    return {
        'date': news['date'],
        'headlines': [item['title'] for item in news['news'][:count]],
        'quote': news['tip']
    }
```

### 3. Historical News Lookup
```python
def get_historical_news(date_str):
    response = requests.get('https://60s.viki.moe/v2/60s', params={'date': date_str})
    if response.ok:
        return response.json()
    return None
```

## Troubleshooting

### Issue: No data returned
- **Solution**: Try requesting previous dates (yesterday or the day before)
- The service tries latest 3 days automatically

### Issue: Image not loading
- **Solution**: Use `encoding=image-proxy` instead of `encoding=image`
- The proxy endpoint directly returns image binary data

### Issue: Old date requested
- **Solution**: Data is only available for recent dates
- Check the response status code

## API Characteristics

- ✅ **Free**: No authentication required
- ✅ **Fast**: Millisecond-level cached responses
- ✅ **Reliable**: Global CDN acceleration
- ✅ **Updated**: Every 30 minutes
- ✅ **Quality**: 15 curated news items from authoritative sources

## Related Resources

- [60s API Documentation](https://docs.60s-api.viki.moe)
- [GitHub Repository](https://github.com/vikiboss/60s)
- [Data Source Repository](https://github.com/vikiboss/60s-static-host)