opp-radar
面向个人开发者 / 技术创业者的"机会雷达":从公开技术信号里筛出小团队能做的中小产品机会,自动写成公众号专栏,渲染排版后推到草稿箱(发表由人工在后台完成)。
专栏名:开发者机会观察(公众号:程序员白大力)。觉得有用欢迎关注。
目录结构
opp-radar/
opp_radar/ # 安装后的 Python 包(render / publish / cli)
render.py · publish.py · cli.py · __init__.py · py.typed
prompts/
dev.md # 开发者机会观察(dev 领域)完整提示词
# 以后加 marketing.md、xxx.md 等其他领域,复用 opp_radar/
scripts/
render.py # 薄壳:转发到 opp_radar render(兼容旧调用,无需安装)
publish.py # 薄壳:转发到 opp_radar publish
examples/
开发者机会观察-第5期.md/.png/.html # 一篇成稿样例
tests/ # 冒烟测试
.github/workflows/publish.yml # CI:构建 + TestPyPI/PyPI(OIDC 免密)
pyproject.toml # 打包配置,提供 `opp-radar` 命令
issues/ # 各期产出,gitignore,只在本地(用于去重)
config.json # 微信凭据,gitignore,不进版本库
跑一期
安装(开发模式):
pip install -e .
然后:
- 按
prompts/dev.md的流程:找信号 → 反向验证 → 写.md→ 出.png(都落在issues/); - 渲染:
opp-radar render "开发者机会观察-第N期"; - 推草稿:
opp-radar publish "开发者机会观察-第N期" "<标题>" "<摘要>",再去公众号后台草稿箱点"发表"。
不想安装时也可直接用薄壳脚本,效果一样:
python3 scripts/render.py "..."/python3 scripts/publish.py "..."。
样例
看 examples/开发者机会观察-第5期.html 可直接在浏览器打开预览最终排版效果(科技风、经典蓝 #2563eb)。
依赖
pip install -e .
# 或手动:pip install wechat-formatter wechat-publish
本地凭据
根目录 config.json:
{ "appid": "...", "secret": "...", "author": "..." }
该文件已在 .gitignore 中,不要提交到公开仓库。
铁律
推草稿脚本只执行一次,无论返回成功/报错/超时都绝不重试,避免重复建草稿。
Release files for opp-radar 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| opp_radar-0.1.0.tar.gz | 6.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| opp_radar-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.1 kB
Release files / opp_radar-0.1.0.tar.gz
| Download URL | opp_radar-0.1.0.tar.gz |
|---|---|
| Size | 6.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9bfea0872b992c43be64c96e38b2941cc6d76633b9475cb8e083bd8312421a63
|
|
BLAKE2b-256 checksum How to use checksums |
52eccd8b29461815b4386167e62906ca7206caa9fd26acc997766b62b19719c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / opp_radar-0.1.0-py3-none-any.whl
| Download URL | opp_radar-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
39f7e553ece60c390fb214afc56c613a8799507325780cd735d74de4314383fa
|
|
BLAKE2b-256 checksum How to use checksums |
bda80283067bbaf083cae59c120ad7b02411f5c93e8bb5f2bebf0ef5f589c9ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency log