opencode-skills-collection 4.1.16 → 4.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +16 -1
- package/bundled-skills/agentic-test-audit/SKILL.md +143 -0
- package/bundled-skills/agentic-verify/SKILL.md +153 -0
- package/bundled-skills/altorank/SKILL.md +155 -0
- package/bundled-skills/apify-reddit-scraper/SKILL.md +208 -0
- package/bundled-skills/apify-reddit-scraper/references/gotchas.md +62 -0
- package/bundled-skills/apify-reddit-scraper/references/input-mapping.md +118 -0
- package/bundled-skills/chord-onchain-trading/SKILL.md +98 -0
- package/bundled-skills/healthcare-job-search/SKILL.md +77 -0
- package/bundled-skills/logo-to-stickers/LICENSE +21 -0
- package/bundled-skills/logo-to-stickers/SKILL.md +111 -0
- package/bundled-skills/logo-to-stickers/references/walkthrough.md +9 -0
- package/bundled-skills/mmx-cli/SKILL.md +7 -4
- package/bundled-skills/moltnode-chain-reader/SKILL.md +84 -0
- package/bundled-skills/movie-coupon/SKILL.md +95 -0
- package/bundled-skills/movie-coupon/assets/movie-sample1.png +0 -0
- package/bundled-skills/movie-coupon/references/api_documentation.md +66 -0
- package/bundled-skills/movie-coupon/scripts/fetch_coupons.py +154 -0
- package/bundled-skills/obsess/LICENSE +21 -0
- package/bundled-skills/obsess/SKILL.md +125 -0
- package/bundled-skills/obsess/assets/baseline.example.json +19 -0
- package/bundled-skills/obsess/assets/candidate.example.json +19 -0
- package/bundled-skills/obsess/assets/contract.example.json +29 -0
- package/bundled-skills/obsess/assets/experiment.template.json +21 -0
- package/bundled-skills/obsess/assets/report.template.md +17 -0
- package/bundled-skills/obsess/assets/run.template.md +32 -0
- package/bundled-skills/obsess/assets/state.template.json +26 -0
- package/bundled-skills/obsess/references/discovery.md +13 -0
- package/bundled-skills/obsess/references/evaluators.md +54 -0
- package/bundled-skills/obsess/references/host.md +73 -0
- package/bundled-skills/obsess/references/integrations/cline/obsess.md +9 -0
- package/bundled-skills/obsess/references/integrations/codex/obsess.md +13 -0
- package/bundled-skills/obsess/references/integrations/copilot/obsess.prompt.md +12 -0
- package/bundled-skills/obsess/references/integrations/cursor/obsess.md +9 -0
- package/bundled-skills/obsess/references/integrations/gemini/obsess-command.md +11 -0
- package/bundled-skills/obsess/references/integrations/opencode/obsess.md +10 -0
- package/bundled-skills/obsess/references/integrations/rules/obsess.md +23 -0
- package/bundled-skills/obsess/references/integrations/windsurf/obsess.md +11 -0
- package/bundled-skills/obsess/references/polish.md +59 -0
- package/bundled-skills/obsess/references/protocol.md +55 -0
- package/bundled-skills/obsess/references/recipes.md +51 -0
- package/bundled-skills/obsess/references/recovery.md +50 -0
- package/bundled-skills/obsess/scripts/gate.py +167 -0
- package/bundled-skills/obsess/scripts/install.py +241 -0
- package/bundled-skills/obtain-coupons-all-in-one/SKILL.md +95 -0
- package/bundled-skills/obtain-coupons-all-in-one/references/api_documentation.md +321 -0
- package/bundled-skills/obtain-coupons-all-in-one/scripts/fetch_coupons.py +451 -0
- package/bundled-skills/openhook/LICENSE +21 -0
- package/bundled-skills/openhook/SKILL.md +119 -0
- package/bundled-skills/openhook/references/evaluations.md +19 -0
- package/bundled-skills/parcel-coupon/SKILL.md +95 -0
- package/bundled-skills/parcel-coupon/references/api_documentation.md +68 -0
- package/bundled-skills/parcel-coupon/scripts/fetch_coupons.py +154 -0
- package/bundled-skills/takeout-coupon/SKILL.md +95 -0
- package/bundled-skills/takeout-coupon/assets/eleme-sample1.png +0 -0
- package/bundled-skills/takeout-coupon/assets/meituan-sample1.png +0 -0
- package/bundled-skills/takeout-coupon/references/api_documentation.md +173 -0
- package/bundled-skills/takeout-coupon/scripts/fetch_coupons.py +221 -0
- package/bundled-skills/trip-coupon/SKILL.md +95 -0
- package/bundled-skills/trip-coupon/assets/trip-sample1.png +0 -0
- package/bundled-skills/trip-coupon/assets/trip-sample2.png +0 -0
- package/bundled-skills/trip-coupon/references/api_documentation.md +73 -0
- package/bundled-skills/trip-coupon/scripts/fetch_coupons.py +194 -0
- package/package.json +1 -1
- package/skills_index.json +489 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: parcel-coupon
|
|
3
|
+
description: "Call parcel/courier coupon API to fetch one-stop logistics service coupons, including smart shipping and smart price matching. Returns coupon links and QR code images for users to redeem via WeChat."
|
|
4
|
+
category: shopping
|
|
5
|
+
risk: safe
|
|
6
|
+
source: community
|
|
7
|
+
source_repo: moooai/parcel-coupon
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: "2026-10-16"
|
|
10
|
+
author: moooai
|
|
11
|
+
tags: [coupons, parcel, courier, sf-express, cainiao]
|
|
12
|
+
tools: [claude, codex]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Parcel / Courier Coupons (SF, ZTO, YTO, Yunda, STO, Cainiao)
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
Fetches courier coupons and one-stop parcel-discount pages covering major Chinese couriers (SF Express, ZTO, YTO, Yunda, STO, Cainiao). Every shipment placed through the claim page gets a discount.
|
|
20
|
+
|
|
21
|
+
The skill is adapted from the open-source repository `moooai/parcel-coupon`. It ships with a fetch script (`scripts/fetch_coupons.py`) and full API documentation (`references/api_documentation.md`). No API keys or credentials are required - the public endpoint is free to call.
|
|
22
|
+
|
|
23
|
+
## When to Use This Skill
|
|
24
|
+
|
|
25
|
+
- Use when the user asks about courier or parcel delivery coupons, red packets (hongbao) or hidden promo codes
|
|
26
|
+
- Use when the user wants to know which platform has the best courier or parcel delivery deal today
|
|
27
|
+
- Use when the user cannot copy a coupon code and needs a QR code or H5 claim page instead
|
|
28
|
+
|
|
29
|
+
## How It Works
|
|
30
|
+
|
|
31
|
+
### Step 1: Fetch the coupon feed
|
|
32
|
+
|
|
33
|
+
Call `GET https://agskills.moontai.top/coupon/parcel` (no auth). `scripts/fetch_coupons.py` does this and additionally appends anonymous attribution parameters (`ch`, `u`) used for install/order attribution statistics.
|
|
34
|
+
|
|
35
|
+
### Step 2: Parse and organize the response
|
|
36
|
+
|
|
37
|
+
The response is JSON. The response is a JSON array; each item has `title`, `guideline` and claim entries carry `coupon_url` plus `coupon_qrcode_img_url`.
|
|
38
|
+
|
|
39
|
+
### Step 3: Present coupons to the user
|
|
40
|
+
|
|
41
|
+
For each coupon show: title, coupon code (verbatim), and claim guideline. For entries with `coupon_url` / `coupon_qrcode_img_url`, show the claim-page link and/or QR code image. Highlight featured coupons (marked with 🔥 or "主推") first.
|
|
42
|
+
|
|
43
|
+
## The Coupon Code Verbatim Rule (critical)
|
|
44
|
+
|
|
45
|
+
`coupon_code` values are platform-specific taokouling (口令) strings that may contain `%`, `¥`, `$`, `✔`, `!` and other special characters. They are only recognized by the target app if copied exactly.
|
|
46
|
+
|
|
47
|
+
- ❌ Do not add, remove, reformat, translate or "beautify" any character of `coupon_code`
|
|
48
|
+
- ❌ Do not URL-encode or escape special characters
|
|
49
|
+
- ✅ Render the string exactly as returned by the API, together with its `guideline`
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
|
|
53
|
+
### Example: user asks for coupons
|
|
54
|
+
|
|
55
|
+
**User:** "Any discount for sending a parcel?"
|
|
56
|
+
|
|
57
|
+
**Flow:** call `GET https://agskills.moontai.top/coupon/parcel`, then present each coupon as:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
【Courier】
|
|
61
|
+
1. <title>
|
|
62
|
+
Coupon code: <coupon_code verbatim>
|
|
63
|
+
How to claim: <guideline>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
For entries carrying `coupon_url`/`coupon_qrcode_img_url`, additionally offer the claim link (best opened in WeChat) and the QR code image.
|
|
67
|
+
|
|
68
|
+
## Best Practices
|
|
69
|
+
|
|
70
|
+
- ✅ Show the claim guideline next to every coupon code
|
|
71
|
+
- ✅ Fall back to the QR/H5 claim page when the user cannot copy codes
|
|
72
|
+
- ✅ Skip platforms whose coupon list is empty and say so
|
|
73
|
+
- ❌ Never modify a `coupon_code` string in any way
|
|
74
|
+
- ❌ Do not cache coupons for long - feeds refresh and codes expire
|
|
75
|
+
|
|
76
|
+
## Limitations
|
|
77
|
+
|
|
78
|
+
- Coupons are for mainland-China platforms; apps (Meituan, Taobao, JD, WeChat, etc.) and a Chinese phone number may be required to redeem
|
|
79
|
+
- Feed availability depends on the upstream API; on failure, tell the user to retry later
|
|
80
|
+
- This skill does not replace the apps themselves - codes must be redeemed inside the official apps
|
|
81
|
+
|
|
82
|
+
## Security & Safety Notes
|
|
83
|
+
|
|
84
|
+
- The only network operation is a read-only `GET` to the public endpoint `https://agskills.moontai.top/coupon/parcel` (domain `agskills.moontai.top`); no credentials, tokens or user data are sent beyond anonymous attribution parameters (`ch`, `u`) documented in the repo
|
|
85
|
+
- `scripts/fetch_coupons.py` performs no local file mutation, no shell execution and no installs
|
|
86
|
+
- `risk: safe` reflects read-only network documentation; re-evaluate if the upstream API changes
|
|
87
|
+
|
|
88
|
+
## Common Pitfalls
|
|
89
|
+
|
|
90
|
+
- **Problem:** Coupon code does not work in the target app
|
|
91
|
+
**Solution:** Check that the code was copied with every special character intact; offer the QR/H5 claim page as fallback
|
|
92
|
+
|
|
93
|
+
## Related Skills
|
|
94
|
+
|
|
95
|
+
- `@obtain-coupons-all-in-one` - all-in-one coupon fetcher covering takeout, travel, movie and parcel
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# 快递优惠券API接口文档
|
|
2
|
+
|
|
3
|
+
## 接口信息
|
|
4
|
+
|
|
5
|
+
| 配置项 | 值 |
|
|
6
|
+
|--------|-----|
|
|
7
|
+
| 接口地址 | `https://agskills.moontai.top/coupon/parcel` |
|
|
8
|
+
| 请求方法 | GET |
|
|
9
|
+
| 认证方式 | 无需认证 |
|
|
10
|
+
| 返回格式 | JSON(数组) |
|
|
11
|
+
|
|
12
|
+
## 接口说明
|
|
13
|
+
|
|
14
|
+
获取快递一站式服务优惠券(智能寄件、智能匹配价格,单单享优惠),以及「更多优惠券」公众号领券入口。
|
|
15
|
+
|
|
16
|
+
## 请求示例
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
GET https://agskills.moontai.top/coupon/parcel
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
无请求参数,直接调用即可。
|
|
23
|
+
|
|
24
|
+
## 响应结构
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
[
|
|
28
|
+
{
|
|
29
|
+
"title": "快递一站式服务,智能寄件,智能匹配价格;单单享优惠,件件有折扣",
|
|
30
|
+
"coupon_url": "https://open.cdyunzhanxinxi.com/link/100058569b79be0bd2561000406SEVGA",
|
|
31
|
+
"coupon_qrcode_img_url": "https://moontai-static.oss-cn-shenzhen.aliyuncs.com/coupon-parcel.png",
|
|
32
|
+
"guideline": "点击链接下单(建议用微信打开),或使用微信扫描二维码下单(单单享优惠)"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"title": "更多优惠券!(外卖、电影、快递、旅游、打车)",
|
|
36
|
+
"coupon_h5_qrcode_img_url": "https://moontai-static.oss-cn-shenzhen.aliyuncs.com/qrcode_for_gh.jpg",
|
|
37
|
+
"guideline": "可以使用微信扫码后领券。关注不迷路,天天领券!"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 响应参数
|
|
43
|
+
|
|
44
|
+
| 字段路径 | 类型 | 说明 |
|
|
45
|
+
|----------|------|------|
|
|
46
|
+
| [].title | String | 优惠券标题 |
|
|
47
|
+
| [].coupon_url | String | **优惠券链接,原样呈现,禁止修改**,建议在微信中打开 |
|
|
48
|
+
| [].coupon_qrcode_img_url | String | **二维码图片URL,原样呈现,禁止修改**,建议使用微信扫码 |
|
|
49
|
+
| [].coupon_h5_qrcode_img_url | String | 公众号二维码图片URL(仅「更多优惠券」入口项有,微信扫码领全品类券) |
|
|
50
|
+
| [].guideline | String | 领取说明 |
|
|
51
|
+
|
|
52
|
+
## 重要说明
|
|
53
|
+
|
|
54
|
+
### URL 处理规则
|
|
55
|
+
|
|
56
|
+
**严格禁止修改 coupon_url / coupon_qrcode_img_url / coupon_h5_qrcode_img_url 字段的任何内容!**
|
|
57
|
+
|
|
58
|
+
- URL 链接必须原样保持
|
|
59
|
+
- 禁止添加空格、换行或任何格式化
|
|
60
|
+
- 禁止翻译、解释或重新排列链接顺序
|
|
61
|
+
|
|
62
|
+
## 错误码
|
|
63
|
+
|
|
64
|
+
| 情况 | 说明 |
|
|
65
|
+
|------|------|
|
|
66
|
+
| 正常返回 | 返回JSON数组数据 |
|
|
67
|
+
| 网络错误 | 返回"无法获取优惠券信息,请稍后重试" |
|
|
68
|
+
| 解析错误 | 返回"数据解析异常,请联系技术支持" |
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
快递优惠券获取脚本
|
|
4
|
+
调用API获取各平台快递优惠券信息
|
|
5
|
+
|
|
6
|
+
API地址: https://agskills.moontai.top/coupon/parcel
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import json
|
|
10
|
+
import requests
|
|
11
|
+
from typing import Optional, Dict, List, Any
|
|
12
|
+
|
|
13
|
+
import os
|
|
14
|
+
import uuid
|
|
15
|
+
|
|
16
|
+
# API配置
|
|
17
|
+
API_BASE_URL = "https://agskills.moontai.top"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# 归因配置:渠道标识 + 安装uuid,由中转服务烘焙进 CPS sid 做归因
|
|
21
|
+
CHANNEL = "parcel"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def _load_install_id() -> str:
|
|
25
|
+
"""首次运行生成uuid并持久化到 scripts/.install_id,用于渠道归因。"""
|
|
26
|
+
id_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), '.install_id')
|
|
27
|
+
try:
|
|
28
|
+
with open(id_file, 'r', encoding='utf-8') as f:
|
|
29
|
+
install_id = f.read().strip()
|
|
30
|
+
if install_id:
|
|
31
|
+
return install_id
|
|
32
|
+
except OSError:
|
|
33
|
+
pass
|
|
34
|
+
install_id = uuid.uuid4().hex
|
|
35
|
+
try:
|
|
36
|
+
with open(id_file, 'w', encoding='utf-8') as f:
|
|
37
|
+
f.write(install_id)
|
|
38
|
+
except OSError:
|
|
39
|
+
pass
|
|
40
|
+
return install_id
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class CouponFetcher:
|
|
45
|
+
"""快递优惠券获取器"""
|
|
46
|
+
|
|
47
|
+
def __init__(self, base_url: str = API_BASE_URL):
|
|
48
|
+
self.base_url = base_url.rstrip('/')
|
|
49
|
+
self.session = requests.Session()
|
|
50
|
+
self.session.params.update({
|
|
51
|
+
'ch': CHANNEL,
|
|
52
|
+
'u': _load_install_id(),
|
|
53
|
+
})
|
|
54
|
+
self.session.headers.update({
|
|
55
|
+
'Content-Type': 'application/json',
|
|
56
|
+
'User-Agent': 'XiaFan-CouponFetcher/2.0'
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
def get_coupons(self) -> Dict[str, Any]:
|
|
60
|
+
"""
|
|
61
|
+
获取快递优惠券列表
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
API响应结果,包含以下字段:
|
|
65
|
+
- title: 优惠券标题
|
|
66
|
+
- coupon_url: 优惠券链接
|
|
67
|
+
- coupon_qrcode_img_url: 优惠券二维码图片URL
|
|
68
|
+
- guideline: 使用说明
|
|
69
|
+
"""
|
|
70
|
+
endpoint = f"{self.base_url}/coupon/parcel"
|
|
71
|
+
|
|
72
|
+
try:
|
|
73
|
+
response = self.session.get(endpoint, timeout=10)
|
|
74
|
+
response.raise_for_status()
|
|
75
|
+
return response.json()
|
|
76
|
+
except requests.RequestException as e:
|
|
77
|
+
return {
|
|
78
|
+
"error": True,
|
|
79
|
+
"message": f"API请求失败: {str(e)}"
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
def get_coupon_info(self) -> Dict[str, Any]:
|
|
83
|
+
"""获取优惠券信息"""
|
|
84
|
+
return self.get_coupons()
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def format_coupon_display(data: Dict[str, Any]) -> str:
|
|
88
|
+
"""
|
|
89
|
+
格式化优惠券显示信息
|
|
90
|
+
|
|
91
|
+
Args:
|
|
92
|
+
data: API返回的优惠券数据
|
|
93
|
+
|
|
94
|
+
Returns:
|
|
95
|
+
格式化的字符串
|
|
96
|
+
"""
|
|
97
|
+
title = data.get("title", "快递优惠券")
|
|
98
|
+
coupon_url = data.get("coupon_url", "")
|
|
99
|
+
coupon_qrcode_img_url = data.get("coupon_qrcode_img_url", "")
|
|
100
|
+
guideline = data.get("guideline", "")
|
|
101
|
+
|
|
102
|
+
lines = [
|
|
103
|
+
"【快递优惠券】",
|
|
104
|
+
f"",
|
|
105
|
+
f"标题: {title}",
|
|
106
|
+
f"",
|
|
107
|
+
f"优惠券链接: {coupon_url}",
|
|
108
|
+
f"(建议用微信打开)",
|
|
109
|
+
f"",
|
|
110
|
+
f"二维码图片: {coupon_qrcode_img_url}",
|
|
111
|
+
f"(使用微信扫描二维码下单,单单享优惠)",
|
|
112
|
+
f"",
|
|
113
|
+
f"使用说明: {guideline}"
|
|
114
|
+
]
|
|
115
|
+
|
|
116
|
+
return "\n".join(lines)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def format_coupons_list(data: Dict[str, Any]) -> str:
|
|
120
|
+
"""
|
|
121
|
+
格式化优惠券列表显示
|
|
122
|
+
|
|
123
|
+
Args:
|
|
124
|
+
data: API返回的完整数据
|
|
125
|
+
|
|
126
|
+
Returns:
|
|
127
|
+
格式化的字符串
|
|
128
|
+
"""
|
|
129
|
+
if "error" in data:
|
|
130
|
+
return f"获取失败: {data.get('message', '未知错误')}"
|
|
131
|
+
|
|
132
|
+
return format_coupon_display(data)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
# 主函数 - 支持命令行调用
|
|
136
|
+
if __name__ == "__main__":
|
|
137
|
+
import argparse
|
|
138
|
+
|
|
139
|
+
parser = argparse.ArgumentParser(description="快递优惠券获取工具")
|
|
140
|
+
parser.add_argument("--json", "-j", action="store_true",
|
|
141
|
+
help="输出原始JSON数据")
|
|
142
|
+
|
|
143
|
+
args = parser.parse_args()
|
|
144
|
+
|
|
145
|
+
fetcher = CouponFetcher()
|
|
146
|
+
|
|
147
|
+
if args.json:
|
|
148
|
+
# 输出原始JSON
|
|
149
|
+
result = fetcher.get_coupons()
|
|
150
|
+
print(json.dumps(result, ensure_ascii=False, indent=2))
|
|
151
|
+
else:
|
|
152
|
+
# 输出格式化后的信息
|
|
153
|
+
result = fetcher.get_coupons()
|
|
154
|
+
print(format_coupons_list(result))
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: takeout-coupon
|
|
3
|
+
description: "Call takeout coupon API to fetch hidden coupon lists, red packets and aggregated redemption pages for platforms (Meituan, Taobao Flash/Ele.me, JD.com). Returns coupon codes and redemption instructions for users to copy and redeem in corresponding apps."
|
|
4
|
+
category: shopping
|
|
5
|
+
risk: safe
|
|
6
|
+
source: community
|
|
7
|
+
source_repo: moooai/takeout-coupon
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: "2026-10-16"
|
|
10
|
+
author: moooai
|
|
11
|
+
tags: [coupons, takeout, food-delivery, meituan, eleme]
|
|
12
|
+
tools: [claude, codex]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Takeout Coupons (Meituan / Ele.me / JD)
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
Fetches hidden coupons, red packets and aggregated claim pages for the three major Chinese food-delivery platforms: Meituan, Ele.me/Taobao Shangou (淘宝闪购) and JD Waimai. Returns taokouling coupon codes plus QR/H5 claim pages.
|
|
20
|
+
|
|
21
|
+
The skill is adapted from the open-source repository `moooai/takeout-coupon`. It ships with a fetch script (`scripts/fetch_coupons.py`) and full API documentation (`references/api_documentation.md`). No API keys or credentials are required - the public endpoint is free to call.
|
|
22
|
+
|
|
23
|
+
## When to Use This Skill
|
|
24
|
+
|
|
25
|
+
- Use when the user asks about food-delivery (takeout) coupons, red packets (hongbao) or hidden promo codes
|
|
26
|
+
- Use when the user wants to know which platform has the best food-delivery (takeout) deal today
|
|
27
|
+
- Use when the user cannot copy a coupon code and needs a QR code or H5 claim page instead
|
|
28
|
+
|
|
29
|
+
## How It Works
|
|
30
|
+
|
|
31
|
+
### Step 1: Fetch the coupon feed
|
|
32
|
+
|
|
33
|
+
Call `GET https://agskills.moontai.top/coupon/takeout` (no auth). `scripts/fetch_coupons.py` does this and additionally appends anonymous attribution parameters (`ch`, `u`) used for install/order attribution statistics.
|
|
34
|
+
|
|
35
|
+
### Step 2: Parse and organize the response
|
|
36
|
+
|
|
37
|
+
The response is JSON. Top-level keys: `美团隐藏外卖券列表` (Meituan coupons), `饿了么/淘宝闪购隐藏外卖券列表` (Ele.me/Taobao), `京东隐藏外卖券列表` (JD), `扫码领取/H5网页跳转领取` (QR/H5 claim pages), `查找更多优惠券` (more-coupons entry). Each coupon item has `title`, `coupon_code` and `guideline`.
|
|
38
|
+
|
|
39
|
+
### Step 3: Present coupons to the user
|
|
40
|
+
|
|
41
|
+
For each coupon show: title, coupon code (verbatim), and claim guideline. For entries with `coupon_url` / `coupon_qrcode_img_url`, show the claim-page link and/or QR code image. Highlight featured coupons (marked with 🔥 or "主推") first.
|
|
42
|
+
|
|
43
|
+
## The Coupon Code Verbatim Rule (critical)
|
|
44
|
+
|
|
45
|
+
`coupon_code` values are platform-specific taokouling (口令) strings that may contain `%`, `¥`, `$`, `✔`, `!` and other special characters. They are only recognized by the target app if copied exactly.
|
|
46
|
+
|
|
47
|
+
- ❌ Do not add, remove, reformat, translate or "beautify" any character of `coupon_code`
|
|
48
|
+
- ❌ Do not URL-encode or escape special characters
|
|
49
|
+
- ✅ Render the string exactly as returned by the API, together with its `guideline`
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
|
|
53
|
+
### Example: user asks for coupons
|
|
54
|
+
|
|
55
|
+
**User:** "Any food-delivery coupons today?"
|
|
56
|
+
|
|
57
|
+
**Flow:** call `GET https://agskills.moontai.top/coupon/takeout`, then present each coupon as:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
【Meituan】
|
|
61
|
+
1. <title>
|
|
62
|
+
Coupon code: <coupon_code verbatim>
|
|
63
|
+
How to claim: <guideline>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
For entries carrying `coupon_url`/`coupon_qrcode_img_url`, additionally offer the claim link (best opened in WeChat) and the QR code image.
|
|
67
|
+
|
|
68
|
+
## Best Practices
|
|
69
|
+
|
|
70
|
+
- ✅ Show the claim guideline next to every coupon code
|
|
71
|
+
- ✅ Fall back to the QR/H5 claim page when the user cannot copy codes
|
|
72
|
+
- ✅ Skip platforms whose coupon list is empty and say so
|
|
73
|
+
- ❌ Never modify a `coupon_code` string in any way
|
|
74
|
+
- ❌ Do not cache coupons for long - feeds refresh and codes expire
|
|
75
|
+
|
|
76
|
+
## Limitations
|
|
77
|
+
|
|
78
|
+
- Coupons are for mainland-China platforms; apps (Meituan, Taobao, JD, WeChat, etc.) and a Chinese phone number may be required to redeem
|
|
79
|
+
- Feed availability depends on the upstream API; on failure, tell the user to retry later
|
|
80
|
+
- This skill does not replace the apps themselves - codes must be redeemed inside the official apps
|
|
81
|
+
|
|
82
|
+
## Security & Safety Notes
|
|
83
|
+
|
|
84
|
+
- The only network operation is a read-only `GET` to the public endpoint `https://agskills.moontai.top/coupon/takeout` (domain `agskills.moontai.top`); no credentials, tokens or user data are sent beyond anonymous attribution parameters (`ch`, `u`) documented in the repo
|
|
85
|
+
- `scripts/fetch_coupons.py` performs no local file mutation, no shell execution and no installs
|
|
86
|
+
- `risk: safe` reflects read-only network documentation; re-evaluate if the upstream API changes
|
|
87
|
+
|
|
88
|
+
## Common Pitfalls
|
|
89
|
+
|
|
90
|
+
- **Problem:** Coupon code does not work in the target app
|
|
91
|
+
**Solution:** Check that the code was copied with every special character intact; offer the QR/H5 claim page as fallback
|
|
92
|
+
|
|
93
|
+
## Related Skills
|
|
94
|
+
|
|
95
|
+
- `@obtain-coupons-all-in-one` - all-in-one coupon fetcher covering takeout, travel, movie and parcel
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# 外卖优惠券API接口文档
|
|
2
|
+
|
|
3
|
+
## 接口信息
|
|
4
|
+
|
|
5
|
+
| 配置项 | 值 |
|
|
6
|
+
|--------|-----|
|
|
7
|
+
| 接口地址 | `https://agskills.moontai.top/coupon/takeout` |
|
|
8
|
+
| 请求方法 | GET |
|
|
9
|
+
| 认证方式 | 无需认证 |
|
|
10
|
+
| 返回格式 | JSON |
|
|
11
|
+
|
|
12
|
+
## 接口说明
|
|
13
|
+
|
|
14
|
+
获取各平台外卖优惠券列表,包括美团、淘宝闪购/饿了么、京东的隐藏外卖券,以及「查找更多优惠券」公众号领券入口。
|
|
15
|
+
|
|
16
|
+
## 请求示例
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
GET https://agskills.moontai.top/coupon/takeout
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
无请求参数,直接调用即可。
|
|
23
|
+
|
|
24
|
+
## 响应参数
|
|
25
|
+
|
|
26
|
+
### 完整响应结构
|
|
27
|
+
|
|
28
|
+
| 字段名 | 类型 | 说明 |
|
|
29
|
+
|--------|------|------|
|
|
30
|
+
| 美团隐藏外卖券列表 | Array | 美团外卖平台优惠券 |
|
|
31
|
+
| 饿了么/淘宝闪购隐藏外卖券列表 | Array | 淘宝闪购/饿了么优惠券 |
|
|
32
|
+
| 京东隐藏外卖券列表 | Array | 京东外卖优惠券 |
|
|
33
|
+
| 扫码领取/H5网页跳转领取 | Array | 各平台领券页直达入口(H5 链接 + 二维码图片) |
|
|
34
|
+
| 查找更多优惠券 | Object | 更多优惠券入口(外卖、电影、快递、旅游、打车,公众号二维码) |
|
|
35
|
+
|
|
36
|
+
### 优惠券对象 (数组元素)
|
|
37
|
+
|
|
38
|
+
| 字段名 | 类型 | 说明 |
|
|
39
|
+
|--------|------|------|
|
|
40
|
+
| title | String | 优惠券标题 |
|
|
41
|
+
| coupon_code | String | **优惠券代码,原样呈现,禁止修改** |
|
|
42
|
+
| guideline | String | 领取说明 |
|
|
43
|
+
|
|
44
|
+
### 领取页对象(「扫码领取/H5网页跳转领取」数组元素)
|
|
45
|
+
|
|
46
|
+
| 字段名 | 类型 | 说明 |
|
|
47
|
+
|--------|------|------|
|
|
48
|
+
| title | String | 领取页名称(如「美团优惠券领取页」) |
|
|
49
|
+
| coupon_url | String | H5 领取页链接(建议微信打开) |
|
|
50
|
+
| coupon_qrcode_img_url | String | 领取页二维码图片URL |
|
|
51
|
+
| guideline | String | 使用说明 |
|
|
52
|
+
|
|
53
|
+
### 查找更多优惠券对象
|
|
54
|
+
|
|
55
|
+
| 字段名 | 类型 | 说明 |
|
|
56
|
+
|--------|------|------|
|
|
57
|
+
| title | String | 页面标题 |
|
|
58
|
+
| coupon_h5_qrcode_img_url | String | 公众号二维码图片URL,微信扫码领更多券 |
|
|
59
|
+
| guideline | String | 使用说明 |
|
|
60
|
+
|
|
61
|
+
## 响应示例
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"美团隐藏外卖券列表": [
|
|
66
|
+
{
|
|
67
|
+
"title": "美团外卖节(主推)🔥🔥",
|
|
68
|
+
"coupon_code": "❤️复制整条信息,打开👉美团👈 http:/💰t7NWIxNDQ0NTE💰",
|
|
69
|
+
"guideline": "手机先复制优惠券代码,打开美团APP自动领取"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"title": "美团外卖甄选好店🔥🔥",
|
|
73
|
+
"coupon_code": "❤️复制整条信息,打开👉美团👈 http:/💰w0OGFiZjdmYTk💰",
|
|
74
|
+
"guideline": "手机先复制优惠券代码,打开美团APP自动领取"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"title": "美团外卖【品牌商品券🔥🔥】",
|
|
78
|
+
"coupon_code": "❤️复制整条信息,打开👉美团👈 http:/💰wuMzJlZGFlMTY💰",
|
|
79
|
+
"guideline": "手机先复制完整的优惠券代码,打开美团APP自动领取"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"title": "美团外卖【神券包】 9.9元购360元年卡",
|
|
83
|
+
"coupon_code": "❤️复制整条信息,打开👉美团👈 http:/💰ydZWY2NjQ2NDg💰",
|
|
84
|
+
"guideline": "手机先复制完整的优惠券代码,打开美团APP自动领取"
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"饿了么/淘宝闪购隐藏外卖券列表": [
|
|
88
|
+
{
|
|
89
|
+
"title": "淘宝闪购-叠红包🔥🔥",
|
|
90
|
+
"coupon_code": "¥Q8rJTMpjkKE¥/ HU7405 【闪购品牌日 单单有福利】",
|
|
91
|
+
"guideline": "请复制完整的优惠券代码,打开淘宝APP领取"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"title": "淘宝闪购-天天领红包(全场景, 最高抢66元大额红包)",
|
|
95
|
+
"coupon_code": "0fυィ直文本2:/$TMpQp4v$~.淘宝闪购App【天天领红包(全场景通用)】",
|
|
96
|
+
"guideline": "请复制完整的优惠券代码,打开淘宝APP领取"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"title": "淘宝闪购-宵夜专场",
|
|
100
|
+
"coupon_code": "0複制文本666:/$TMpQ6cz$~.淘宝闪购App【闪购夜宵专享会场】",
|
|
101
|
+
"guideline": "请复制完整的优惠券代码,打开淘宝APP领取"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"title": "淘宝闪购-学生专场",
|
|
105
|
+
"coupon_code": "29 HU7405 2:/TpOYTMpkOTb✔四学生专享天天好价",
|
|
106
|
+
"guideline": "请复制完整的优惠券代码,打开淘宝APP领取"
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"京东隐藏外卖券列表": [
|
|
110
|
+
{
|
|
111
|
+
"title": "京东外卖-惊喜红包(主推)",
|
|
112
|
+
"coupon_code": "!V6M0P42CyIm6sAe4! CA1565",
|
|
113
|
+
"guideline": "请复制完整的优惠券代码,打开京东APP领取"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"title": "京东外卖-高Y品质会场",
|
|
117
|
+
"coupon_code": " !F4v6f1xHQipuCbW8! CA1331",
|
|
118
|
+
"guideline": "请复制完整的优惠券代码,打开京东APP领取"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"title": "京东外卖-夜宵专场",
|
|
122
|
+
"coupon_code": "!I3xPR007jcyak7Uo! CA3576",
|
|
123
|
+
"guideline": "请复制完整的优惠券代码,打开京东APP领取"
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"扫码领取/H5网页跳转领取": [
|
|
127
|
+
{
|
|
128
|
+
"title": "美团优惠券领取页",
|
|
129
|
+
"coupon_url": "https://h5.sichuanyunzhan.com/pages_single/meiTuan/index?platform=singlePage&pid=e467cdcafe2b1791cdfc&accountsId=nEjX0zy4Zmyq",
|
|
130
|
+
"coupon_qrcode_img_url": "https://moontai-static.oss-cn-shenzhen.aliyuncs.com/meituan-614d8c70-26c5-43bc-9e91-4468651709e8.png",
|
|
131
|
+
"guideline": "点击链接下单(建议用微信打开),或使用微信扫描二维码下单(单单享优惠)"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"title": "饿了么/淘宝闪购优惠券领取页",
|
|
135
|
+
"coupon_url": "https://h5.sichuanyunzhan.com/pages_single/hungry/index?platform=singlePage&pid=e467cdcafe2b1791cdfc&accountsId=nEjX0zy4Zmyq",
|
|
136
|
+
"coupon_qrcode_img_url": "https://moontai-static.oss-cn-shenzhen.aliyuncs.com/taobao-9dd25c45-2e2c-451d-af71-a502f815de16.png",
|
|
137
|
+
"guideline": "点击链接下单(建议用微信打开),或使用微信扫描二维码下单(单单享优惠)"
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
"查找更多优惠券": {
|
|
141
|
+
"title": "更多类型优惠券(外卖、电影、快递、旅游、打车)",
|
|
142
|
+
"coupon_h5_qrcode_img_url": "https://moontai-static.oss-cn-shenzhen.aliyuncs.com/qrcode_for_gh.jpg",
|
|
143
|
+
"guideline": "可以使用微信扫码后领券。关注不迷路,天天领券!"
|
|
144
|
+
}
|
|
145
|
+
}```
|
|
146
|
+
|
|
147
|
+
## 重要说明
|
|
148
|
+
|
|
149
|
+
### coupon_code 处理规则
|
|
150
|
+
|
|
151
|
+
**严格禁止修改coupon_code字段的任何内容!**
|
|
152
|
+
|
|
153
|
+
- 优惠券代码可能包含特殊字符:%、¥、✔、!、£、《等
|
|
154
|
+
- 这些特殊字符是平台特定格式,必须原样保持
|
|
155
|
+
- 禁止添加空格、换行或任何格式化
|
|
156
|
+
- 禁止翻译、解释或重新排列代码顺序
|
|
157
|
+
|
|
158
|
+
### 平台标识
|
|
159
|
+
|
|
160
|
+
| 平台 | 字段名 |
|
|
161
|
+
|------|--------|
|
|
162
|
+
| 美团 | 美团隐藏外卖券列表 |
|
|
163
|
+
| 淘宝闪购/饿了么 | 饿了么/淘宝闪购隐藏外卖券列表 |
|
|
164
|
+
| 京东 | 京东隐藏外卖券列表 |
|
|
165
|
+
| 更多优惠券入口 | 查找更多优惠券 |
|
|
166
|
+
|
|
167
|
+
## 错误码
|
|
168
|
+
|
|
169
|
+
| 情况 | 说明 |
|
|
170
|
+
|------|------|
|
|
171
|
+
| 正常返回 | 返回JSON数据,包含4个主要字段 |
|
|
172
|
+
| 网络错误 | 返回"无法获取优惠券信息,请稍后重试" |
|
|
173
|
+
| 解析错误 | 返回"数据解析异常,请联系技术支持" |
|