add deta.sh support

This commit is contained in:
hillerliao
2022-05-08 10:56:47 +08:00
parent 3324f8f790
commit 52ca4324f4
11 changed files with 283 additions and 360 deletions

3
.gitignore vendored
View File

@@ -19,4 +19,5 @@ data-dev.db
.env .env
#Dockerfile #Dockerfile
.dockerignore .dockerignore
# google_analytics.py # google_analytics.py
.deta

View File

@@ -1,32 +0,0 @@
# 使用基础镜像库
FROM alpine:3.8
RUN echo -e http://mirrors.ustc.edu.cn/alpine/v3.7/main/ > /etc/apk/repositories
RUN apk add --no-cache vim nginx python3 uwsgi uwsgi-python3
RUN apk add --update --upgrade
RUN apk add --no-cache nginx python3 uwsgi uwsgi-python3
RUN pip3 install --no-cache-dir --upgrade pip
RUN ln -s /usr/bin/python3 /usr/bin/python
# 创建工作路径
RUN mkdir /app
# 指定容器启动时执行的命令都在app目录下执行
WORKDIR /app
# 替换nginx的配置
COPY nginx.conf /etc/nginx/nginx.conf
# 将本地目录下的内容拷贝到容器的app目录下
COPY . /app/
RUN apk update
RUN apk add --no-cache gcc musl-dev libxml2 libxslt-dev
# pip读取requirements.txt内容安装所需的库
RUN pip install -r /app/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple some-package --no-cache-dir
# 启动nginx和uwsgi
# ENTRYPOINT nginx -g "daemon on;" && uwsgi --ini /app/uwsgi.ini
ENTRYPOINT nginx -g "daemon on;" && gunicorn -w 4 wsgi:app

View File

@@ -1 +0,0 @@
web: gunicorn wsgi:app

View File

@@ -8,7 +8,7 @@ RSSHub 是一个轻量、易于扩展的 RSS 生成器,可以给任何奇奇
**其实用Python写爬虫要比JS更方便:p** **其实用Python写爬虫要比JS更方便:p**
DEMO地址https://pyrsshub.herokuapp.com DEMO地址https://rsshub.deta.dev
## RSS过滤 ## RSS过滤
@@ -20,7 +20,7 @@ DEMO地址https://pyrsshub.herokuapp.com
- exclude_description: 排除描述 - exclude_description: 排除描述
- limit: 限制条数 - limit: 限制条数
## 贡献RSS方法 ## 贡献 RSS 方法
1. fork这份仓库 1. fork这份仓库
2. 在spiders文件夹下创建新的爬虫目录和脚本编写爬虫参考我的[爬虫教程](https://alphardex.github.io/2018/12/15/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB%E7%B2%BE%E8%A6%81/) 2. 在spiders文件夹下创建新的爬虫目录和脚本编写爬虫参考我的[爬虫教程](https://alphardex.github.io/2018/12/15/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB%E7%B2%BE%E8%A6%81/)
@@ -30,7 +30,7 @@ DEMO地址https://pyrsshub.herokuapp.com
## 部署 ## 部署
### 搭建 ### 本地测试
首先确保安装了[pipenv](https://github.com/pypa/pipenv) 首先确保安装了[pipenv](https://github.com/pypa/pipenv)
@@ -39,22 +39,29 @@ git clone https://github.com/alphardex/RSSHub-python
cd RSSHub-python cd RSSHub-python
pipenv install --dev pipenv install --dev
pipenv shell pipenv shell
```
### 运行
``` bash
flask run flask run
``` ```
### 部署到Heroku ### 生产环境
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/hillerliao/RSSHub-python) ``` bash
gunicorn main:app -b 0.0.0.0:5000
```
记得在环境变量中把FLASK_CONFIG设为production ### 部署到 deta.dev
[![Deploy](https://button.deta.dev/1/svg)](https://go.deta.dev/deploy?repo=https://github.com/hillerliao/rsshub-python)
安装 [Deta CLI](https://docs.deta.sh/docs/cli/install/)
在终端运行`deta login`
在项目根目录运行`deta new --python pyrsshub`
将 `pyrsshub` 目录下的 `.deta` 文件夹移到根目录;
运行`deta deploy`
获取网址 `https://<micro_name>.deta.dev/`
更新`deta update`
### Docker 部署 ### Docker 部署
制作镜像文件 `docker image build -t rsshub_python .` 制作镜像文件 `docker build -t pyrsshub:latest .`
创建docker容器 `docker run -dit -p 6666:6666 --name rsshub rsshub_python` 创建docker容器 `docker run -dit --name pyrsshub -p 8080:80 pyrsshub:latest`

View File

@@ -1,3 +1,3 @@
[program:gunicorn] [program:gunicorn]
command=/usr/local/bin/gunicorn wsgi:app -b localhost:5000 command=/usr/local/bin/gunicorn main:app -b localhost:5000
directory=/app directory=/app

View File

View File

@@ -1,51 +0,0 @@
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
worker_rlimit_nofile 20480;
events {
use epoll;
worker_connections 20480;
multi_accept on;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#请求量级大建议关闭acccess_log
#access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 300s;
client_header_timeout 300s;
client_body_timeout 300s;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_types text/html application/javascript application/json;
include /etc/nginx/conf.d/*.conf;
server {
listen 6666;
charset utf-8;
client_max_body_size 75M;
location / {
include uwsgi_params;
uwsgi_pass unix:///tmp/uwsgi.sock;
uwsgi_send_timeout 300;
uwsgi_connect_timeout 300;
uwsgi_read_timeout 300;
}
}
}

Binary file not shown.

View File

@@ -1,216 +1,225 @@
from flask import Blueprint, render_template, request from flask import Blueprint, render_template, request
bp = Blueprint('main', __name__) bp = Blueprint('main', __name__)
@bp.route('/') @bp.route('/')
def word(): def word():
from rsshub.spiders.word.word import ctx from rsshub.spiders.word.word import ctx
return render_template('main/word.html', **ctx()) return render_template('main/word.html', **ctx())
@bp.route('/index') @bp.route('/index')
def index(): def index():
return render_template('main/index.html') return render_template('main/index.html')
@bp.route('/feeds') @bp.route('/feeds')
def feeds(): def feeds():
return render_template('main/feeds.html') return render_template('main/feeds.html')
@bp.app_template_global() @bp.app_template_global()
def filter_content(ctx): def filter_content(ctx):
include_title = request.args.get('include_title') include_title = request.args.get('include_title')
include_description = request.args.get('include_description') include_description = request.args.get('include_description')
exclude_title = request.args.get('exclude_title') exclude_title = request.args.get('exclude_title')
exclude_description = request.args.get('exclude_description') exclude_description = request.args.get('exclude_description')
limit = request.args.get('limit', type=int) limit = request.args.get('limit', type=int)
items = ctx['items'].copy() items = ctx['items'].copy()
items = [item for item in items if include_title in item['title']] if include_title else items items = [item for item in items if include_title in item['title']] if include_title else items
items = [item for item in items if include_description in item['description']] if include_description else items items = [item for item in items if include_description in item['description']] if include_description else items
items = [item for item in items if exclude_title not in item['title']] if exclude_title else items items = [item for item in items if exclude_title not in item['title']] if exclude_title else items
items = [item for item in items if exclude_description not in item['description']] if exclude_description else items items = [item for item in items if exclude_description not in item['description']] if exclude_description else items
items = items[:limit] if limit else items items = items[:limit] if limit else items
ctx = ctx.copy() ctx = ctx.copy()
ctx['items'] = items ctx['items'] = items
return ctx return ctx
#---------- feed路由从这里开始 -----------# #---------- feed路由从这里开始 -----------#
@bp.route('/cninfo/announcement/<string:stock_id>/<string:category>') @bp.route('/cninfo/announcement/<string:stock_id>/<string:category>')
@bp.route('/cninfo/announcement') @bp.route('/cninfo/announcement')
def cninfo_announcement(stock_id='', category=''): def cninfo_announcement(stock_id='', category=''):
from rsshub.spiders.cninfo.announcement import ctx from rsshub.spiders.cninfo.announcement import ctx
return render_template('main/atom.xml', **filter_content(ctx(stock_id,category))) return render_template('main/atom.xml', **filter_content(ctx(stock_id,category)))
@bp.route('/chuansongme/articles/<string:category>') @bp.route('/chuansongme/articles/<string:category>')
@bp.route('/chuansongme/articles') @bp.route('/chuansongme/articles')
def chuansongme_articles(category=''): def chuansongme_articles(category=''):
from rsshub.spiders.chuansongme.articles import ctx from rsshub.spiders.chuansongme.articles import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/ctolib/topics/<string:category>') @bp.route('/ctolib/topics/<string:category>')
@bp.route('/ctolib/topics') @bp.route('/ctolib/topics')
def ctolib_topics(category=''): def ctolib_topics(category=''):
from rsshub.spiders.ctolib.topics import ctx from rsshub.spiders.ctolib.topics import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/infoq/recommend') @bp.route('/infoq/recommend')
def infoq_recommend(): def infoq_recommend():
from rsshub.spiders.infoq.recommend import ctx from rsshub.spiders.infoq.recommend import ctx
return render_template('main/atom.xml', **filter_content(ctx())) return render_template('main/atom.xml', **filter_content(ctx()))
@bp.route('/infoq/topic/<int:category>') @bp.route('/infoq/topic/<int:category>')
def infoq_topic(category=''): def infoq_topic(category=''):
from rsshub.spiders.infoq.topic import ctx from rsshub.spiders.infoq.topic import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/dxzg/notice') @bp.route('/dxzg/notice')
def dxzg_notice(): def dxzg_notice():
from rsshub.spiders.dxzg.notice import ctx from rsshub.spiders.dxzg.notice import ctx
return render_template('main/atom.xml', **filter_content(ctx())) return render_template('main/atom.xml', **filter_content(ctx()))
@bp.route('/earningsdate/prnewswire') @bp.route('/earningsdate/prnewswire')
def earningsdate_prnewswire(): def earningsdate_prnewswire():
from rsshub.spiders.earningsdate.prnewswire import ctx from rsshub.spiders.earningsdate.prnewswire import ctx
return render_template('main/atom.xml', **filter_content(ctx())) return render_template('main/atom.xml', **filter_content(ctx()))
@bp.route('/earningsdate/globenewswire') @bp.route('/earningsdate/globenewswire')
def earningsdate_globenewswire(): def earningsdate_globenewswire():
from rsshub.spiders.earningsdate.globenewswire import ctx from rsshub.spiders.earningsdate.globenewswire import ctx
return render_template('main/atom.xml', **filter_content(ctx())) return render_template('main/atom.xml', **filter_content(ctx()))
@bp.route('/earningsdate/businesswire') @bp.route('/earningsdate/businesswire')
def earningsdate_businesswire(): def earningsdate_businesswire():
from rsshub.spiders.earningsdate.businesswire import ctx from rsshub.spiders.earningsdate.businesswire import ctx
return render_template('main/atom.xml', **filter_content(ctx())) return render_template('main/atom.xml', **filter_content(ctx()))
@bp.route('/jiemian/newsflash/<string:category>') @bp.route('/jiemian/newsflash/<string:category>')
def jiemian_newsflash(category=''): def jiemian_newsflash(category=''):
from rsshub.spiders.jiemian.newsflash import ctx from rsshub.spiders.jiemian.newsflash import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/csrc/audit/<string:category>') @bp.route('/csrc/audit/<string:category>')
def csrc_audit(category=''): def csrc_audit(category=''):
from rsshub.spiders.csrc.audit import ctx from rsshub.spiders.csrc.audit import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/caixin/scroll/<string:category>') @bp.route('/caixin/scroll/<string:category>')
def caixin_scroll(category=''): def caixin_scroll(category=''):
from rsshub.spiders.caixin.scroll import ctx from rsshub.spiders.caixin.scroll import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/eastmoney/report/<string:type>/<string:category>') @bp.route('/eastmoney/report/<string:type>/<string:category>')
def eastmoney_report(category='', type=''): def eastmoney_report(category='', type=''):
from rsshub.spiders.eastmoney.report import ctx from rsshub.spiders.eastmoney.report import ctx
return render_template('main/atom.xml', **filter_content(ctx(type,category))) return render_template('main/atom.xml', **filter_content(ctx(type,category)))
@bp.route('/xuangubao/<string:type>/<string:category>') @bp.route('/xuangubao/<string:type>/<string:category>')
def xuangubao_xuangubao(type='', category=''): def xuangubao_xuangubao(type='', category=''):
from rsshub.spiders.xuangubao.xuangubao import ctx from rsshub.spiders.xuangubao.xuangubao import ctx
return render_template('main/atom.xml', **filter_content(ctx(type, category))) return render_template('main/atom.xml', **filter_content(ctx(type, category)))
@bp.route('/cls/subject/<string:category>') @bp.route('/cls/subject/<string:category>')
def cls_subject(category=''): def cls_subject(category=''):
from rsshub.spiders.cls.subject import ctx from rsshub.spiders.cls.subject import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/cls/telegraph/') @bp.route('/cls/telegraph/')
def cls_telegraph(): def cls_telegraph():
from rsshub.spiders.cls.telegraph import ctx from rsshub.spiders.cls.telegraph import ctx
return render_template('main/atom.xml', **filter_content(ctx())) return render_template('main/atom.xml', **filter_content(ctx()))
@bp.route('/chaindd/column/<string:category>') @bp.route('/chaindd/column/<string:category>')
def chaindd_column(category=''): def chaindd_column(category=''):
from rsshub.spiders.chaindd.column import ctx from rsshub.spiders.chaindd.column import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/techcrunch/tag/<string:category>') @bp.route('/techcrunch/tag/<string:category>')
def techcrunch_tag(category=''): def techcrunch_tag(category=''):
from rsshub.spiders.techcrunch.tag import ctx from rsshub.spiders.techcrunch.tag import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/weiyangx/home') @bp.route('/weiyangx/home')
def weiyangx_home(): def weiyangx_home():
from rsshub.spiders.weiyangx.home import ctx from rsshub.spiders.weiyangx.home import ctx
return render_template('main/atom.xml', **filter_content(ctx())) return render_template('main/atom.xml', **filter_content(ctx()))
@bp.route('/weiyangx/express/') @bp.route('/weiyangx/express/')
def weiyangx_express(): def weiyangx_express():
from rsshub.spiders.weiyangx.express import ctx from rsshub.spiders.weiyangx.express import ctx
return render_template('main/atom.xml', **filter_content(ctx())) return render_template('main/atom.xml', **filter_content(ctx()))
@bp.route('/weiyangx/tag/<string:category>') @bp.route('/weiyangx/tag/<string:category>')
def weiyangx_tag(category=''): def weiyangx_tag(category=''):
from rsshub.spiders.weiyangx.tag import ctx from rsshub.spiders.weiyangx.tag import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/jintiankansha/column/<string:category>') @bp.route('/jintiankansha/column/<string:category>')
def jintiankansha_column(category=''): def jintiankansha_column(category=''):
from rsshub.spiders.jintiankansha.column import ctx from rsshub.spiders.jintiankansha.column import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/interotc/cpgg/<string:category>') @bp.route('/interotc/cpgg/<string:category>')
def interotc_cpgg(category=''): def interotc_cpgg(category=''):
from rsshub.spiders.interotc.cpgg import ctx from rsshub.spiders.interotc.cpgg import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/benzinga/ratings/<string:category>') @bp.route('/benzinga/ratings/<string:category>')
def benzinga_ratings(category=''): def benzinga_ratings(category=''):
from rsshub.spiders.benzinga.ratings import ctx from rsshub.spiders.benzinga.ratings import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/chouti/section/<string:category>') @bp.route('/chouti/section/<string:category>')
def chouti_section(category=''): def chouti_section(category=''):
from rsshub.spiders.chouti.section import ctx from rsshub.spiders.chouti.section import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/chouti/search/<string:category>') @bp.route('/chouti/search/<string:category>')
def chouti_search(category=''): def chouti_search(category=''):
from rsshub.spiders.chouti.search import ctx from rsshub.spiders.chouti.search import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/chouti/user/<string:category>') @bp.route('/chouti/user/<string:category>')
def chouti_user(category=''): def chouti_user(category=''):
from rsshub.spiders.chouti.user import ctx from rsshub.spiders.chouti.user import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/zaobao/realtime/<string:category>') @bp.route('/zaobao/realtime/<string:category>')
def zaobao_realtime(category=''): def zaobao_realtime(category=''):
from rsshub.spiders.zaobao.realtime import ctx from rsshub.spiders.zaobao.realtime import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/mp/tag/<string:mp>/<string:tag>') @bp.route('/mp/tag/<string:mp>/<string:tag>')
def mp_tag(mp='', tag=''): def mp_tag(mp='', tag=''):
from rsshub.spiders.mp.tag import ctx from rsshub.spiders.mp.tag import ctx
return render_template('main/atom.xml', **filter_content(ctx(mp,tag))) return render_template('main/atom.xml', **filter_content(ctx(mp,tag)))
@bp.route('/producthunt/search/<string:keyword>/<string:period>') @bp.route('/producthunt/search/<string:keyword>/<string:period>')
def producthunt_search(keyword='', period=''): def producthunt_search(keyword='', period=''):
from rsshub.spiders.producthunt.search import ctx from rsshub.spiders.producthunt.search import ctx
return render_template('main/atom.xml', **filter_content(ctx(keyword,period))) return render_template('main/atom.xml', **filter_content(ctx(keyword,period)))
@bp.route('/pgyer/<string:category>') @bp.route('/pgyer/<string:category>')
def pgyer_app(category=''): def pgyer_app(category=''):
from rsshub.spiders.pgyer.app import ctx from rsshub.spiders.pgyer.app import ctx
return render_template('main/atom.xml', **filter_content(ctx(category))) return render_template('main/atom.xml', **filter_content(ctx(category)))
@bp.route('/mp/gh/<string:gh>') @bp.route('/mp/gh/<string:gh>')
def mp_gh(gh=''): def mp_gh(gh=''):
from rsshub.spiders.mp.gh import ctx from rsshub.spiders.mp.gh import ctx
return render_template('main/atom.xml', **filter_content(ctx(gh))) return render_template('main/atom.xml', **filter_content(ctx(gh)))
@bp.route('/mp/youwuqiong/<string:author>') @bp.route('/mp/youwuqiong/<string:author>')
def mp_youwuqiong(author=''): def mp_youwuqiong(author=''):
from rsshub.spiders.mp.youwuqiong import ctx from rsshub.spiders.mp.youwuqiong import ctx
return render_template('main/atom.xml', **filter_content(ctx(author))) return render_template('main/atom.xml', **filter_content(ctx(author)))
@bp.route('/yfchuhai/express/') @bp.route('/yfchuhai/express/')
def yfchuhai_express(): def yfchuhai_express():
from rsshub.spiders.yfchuhai.express import ctx from rsshub.spiders.yfchuhai.express import ctx
return render_template('main/atom.xml', **filter_content(ctx())) return render_template('main/atom.xml', **filter_content(ctx()))
'''
@bp.route('/test')
@bp.route('/test/测试')
def test():
import sys
# return sys.getdefaultencoding()
return sys.stdout.encoding
'''

View File

@@ -1,9 +1,9 @@
{% extends "layout.html" %} {% block title %}All Feeds{% endblock title %} {% block content %} {% extends "layout.html" %} {% block title %}All Feeds{% endblock title %} {% block content %}
<div class="card text-left"> <div class="card text-left">
<div class="card-body"> <div class="card-body">
<h4 class="card-title">传送门</h4> <h4 class="card-title">传送门-失效</h4>
<h6 class="text-muted">文章 <a href="https://github.com/alphardex" target="_blank" class="badge badge-secondary">by alphardex</a></h6> <h6 class="text-muted">文章 <a href="https://github.com/alphardex" target="_blank" class="badge badge-secondary">by alphardex</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/chuansongme/articles" target="_blank">https://pyrsshub.herokuapp.com/chuansongme/articles</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/chuansongme/articles" target="_blank">https://rsshub.deta.dev/chuansongme/articles</a></p>
<p class="card-text">路由:<code>/chuansongme/articles/:category</code></p> <p class="card-text">路由:<code>/chuansongme/articles/:category</code></p>
<p class="card-text">参数category [默认为“最新”]</p> <p class="card-text">参数category [默认为“最新”]</p>
<table class="table table-bordered table-sm"> <table class="table table-bordered table-sm">
@@ -27,9 +27,9 @@
<br> <br>
<div class="card text-left"> <div class="card text-left">
<div class="card-body"> <div class="card-body">
<h4 class="card-title">CTOLib</h4> <h4 class="card-title">CTOLib-失效</h4>
<h6 class="text-muted">话题 <a href="https://github.com/alphardex" target="_blank" class="badge badge-secondary">by alphardex</a></h6> <h6 class="text-muted">话题 <a href="https://github.com/alphardex" target="_blank" class="badge badge-secondary">by alphardex</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/ctolib/topics" target="_blank">https://pyrsshub.herokuapp.com/ctolib/topics</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/ctolib/topics" target="_blank">https://rsshub.deta.dev/ctolib/topics</a></p>
<p class="card-text">路由:<code>/ctolib/topics/:category</code></p> <p class="card-text">路由:<code>/ctolib/topics/:category</code></p>
<p class="card-text">参数category [默认为“默认排序”]</p> <p class="card-text">参数category [默认为“默认排序”]</p>
<table class="table table-bordered table-sm"> <table class="table table-bordered table-sm">
@@ -55,11 +55,11 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">InfoQ</h4> <h4 class="card-title">InfoQ</h4>
<h6 class="text-muted">推荐内容 <a href="https://github.com/alphardex" target="_blank" class="badge badge-secondary">by alphardex hillerliao</a></h6> <h6 class="text-muted">推荐内容 <a href="https://github.com/alphardex" target="_blank" class="badge badge-secondary">by alphardex hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/infoq/recommend" target="_blank">https://pyrsshub.herokuapp.com/infoq/recommend</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/infoq/recommend" target="_blank">https://rsshub.deta.dev/infoq/recommend</a></p>
<p class="card-text">路由:<code>/infoq/recommend</code></p> <p class="card-text">路由:<code>/infoq/recommend</code></p>
<h6 class="text-muted">主题内容 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">主题内容 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/infoq/topic/159" target="_blank">https://pyrsshub.herokuapp.com/infoq/topic/159</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/infoq/topic/159" target="_blank">https://rsshub.deta.dev/infoq/topic/159</a></p>
<p class="card-text">路由:<code>/infoq/topic/:category</code></p> <p class="card-text">路由:<code>/infoq/topic/:category</code></p>
</div> </div>
</div> </div>
@@ -68,8 +68,8 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">巨潮资讯</h4> <h4 class="card-title">巨潮资讯</h4>
<h6 class="text-muted">公司公告 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">公司公告 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/cninfo/announcement/all/gqjl" target="_blank">https://pyrsshub.herokuapp.com/cninfo/announcement/all/gqjl</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/cninfo/announcement/all/gqjl" target="_blank">https://rsshub.deta.dev/cninfo/announcement/all/gqjl</a></p>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/cninfo/announcement/all/gqbd_预披露" target="_blank">https://pyrsshub.herokuapp.com/cninfo/announcement/all/gqbd_预披露</a>,股权变动类公告中标题含有「预披露」的公告</p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/cninfo/announcement/all/gqbd_预披露" target="_blank">https://rsshub.deta.dev/cninfo/announcement/all/gqbd_预披露</a>,股权变动类公告中标题含有「预披露」的公告</p>
<p class="card-text">路由:<code>/cninfo/announcement/:stock_id/:category</code></p> <p class="card-text">路由:<code>/cninfo/announcement/:stock_id/:category</code></p>
</div> </div>
</div> </div>
@@ -79,7 +79,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">东兴资管</h4> <h4 class="card-title">东兴资管</h4>
<h6 class="text-muted">产品公告 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">产品公告 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/dxzg/notice" target="_blank">https://pyrsshub.herokuapp.com/dxzg/notice</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/dxzg/notice" target="_blank">https://rsshub.deta.dev/dxzg/notice</a></p>
<p class="card-text">路由:<code>/dxzg/notice</code></p> <p class="card-text">路由:<code>/dxzg/notice</code></p>
</div> </div>
</div> </div>
@@ -91,7 +91,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">Earnings Date</h4> <h4 class="card-title">Earnings Date</h4>
<h6 class="text-muted">Earnings Date <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">Earnings Date <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/earningsdate/businesswire" target="_blank">https://pyrsshub.herokuapp.com/earningsdate/businesswire</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/earningsdate/businesswire" target="_blank">https://rsshub.deta.dev/earningsdate/businesswire</a></p>
<p class="card-text">路由:<code>/earningsdate/:category</code></p> <p class="card-text">路由:<code>/earningsdate/:category</code></p>
<p class="card-text">参数category [必填可以为“businesswire、globenewswire、prnewswire”]</p> <p class="card-text">参数category [必填可以为“businesswire、globenewswire、prnewswire”]</p>
</div> </div>
@@ -104,7 +104,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">界面快讯</h4> <h4 class="card-title">界面快讯</h4>
<h6 class="text-muted">界面快讯 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">界面快讯 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/jiemian/newsflash/166" target="_blank">https://pyrsshub.herokuapp.com/jiemian/newsflash/166</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/jiemian/newsflash/166" target="_blank">https://rsshub.deta.dev/jiemian/newsflash/166</a></p>
<p class="card-text">路由:<code>/jiemian/newsflash/:category</code></p> <p class="card-text">路由:<code>/jiemian/newsflash/:category</code></p>
<p class="card-text">参数category [必填见界面快讯栏目https://www.jiemian.com/lists/4.html]</p> <p class="card-text">参数category [必填见界面快讯栏目https://www.jiemian.com/lists/4.html]</p>
</div> </div>
@@ -117,7 +117,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">证监会审核进度</h4> <h4 class="card-title">证监会审核进度</h4>
<h6 class="text-muted">证监会审核进度 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">证监会审核进度 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/csrc/audit/a1d50077cd7f4b15bd1c8d6163f32850" target="_blank">https://pyrsshub.herokuapp.com/csrc/audit/a1d50077cd7f4b15bd1c8d6163f32850</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/csrc/audit/a1d50077cd7f4b15bd1c8d6163f32850" target="_blank">https://rsshub.deta.dev/csrc/audit/a1d50077cd7f4b15bd1c8d6163f32850</a></p>
<p class="card-text">路由:<code>/csrc/audit/:category</code></p> <p class="card-text">路由:<code>/csrc/audit/:category</code></p>
<p class="card-text">参数category [必填,见证监会栏目 https://neris.csrc.gov.cn/alappl/home/gongshi]</p> <p class="card-text">参数category [必填,见证监会栏目 https://neris.csrc.gov.cn/alappl/home/gongshi]</p>
</div> </div>
@@ -130,7 +130,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">财新网滚动新闻</h4> <h4 class="card-title">财新网滚动新闻</h4>
<h6 class="text-muted">财新网滚动新闻 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">财新网滚动新闻 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/caixin/scroll/125" target="_blank">https://pyrsshub.herokuapp.com/caixin/scroll/125</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/caixin/scroll/125" target="_blank">https://rsshub.deta.dev/caixin/scroll/125</a></p>
<p class="card-text">路由:<code>/caixin/scroll/:category</code></p> <p class="card-text">路由:<code>/caixin/scroll/:category</code></p>
<p class="card-text">参数category [必填,见财新网滚动频道 http://www.caixin.com/search/scroll/0.jsp]</p> <p class="card-text">参数category [必填,见财新网滚动频道 http://www.caixin.com/search/scroll/0.jsp]</p>
</div> </div>
@@ -143,7 +143,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">东方财富网行业/个股研报</h4> <h4 class="card-title">东方财富网行业/个股研报</h4>
<h6 class="text-muted">东方财富网行业/个股研报 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">东方财富网行业/个股研报 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/eastmoney/report/stock/473" target="_blank">https://pyrsshub.herokuapp.com/eastmoney/report/stock/473</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/eastmoney/report/stock/473" target="_blank">https://rsshub.deta.dev/eastmoney/report/stock/473</a></p>
<p class="card-text">路由:<code>/eastmoney/report/:type/:category</code></p> <p class="card-text">路由:<code>/eastmoney/report/:type/:category</code></p>
<p class="card-text">参数type, category [必填,见财新网滚动频道 http://www.caixin.com/search/scroll/0.jsp]</p> <p class="card-text">参数type, category [必填,见财新网滚动频道 http://www.caixin.com/search/scroll/0.jsp]</p>
</div> </div>
@@ -156,7 +156,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">选股宝板块/主题动态</h4> <h4 class="card-title">选股宝板块/主题动态</h4>
<h6 class="text-muted">选股宝板块/主题动态 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">选股宝板块/主题动态 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/xuangubao/theme/17006066" target="_blank">https://pyrsshub.herokuapp.com/xuangubao/theme/17006066</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/xuangubao/theme/17006066" target="_blank">https://rsshub.deta.dev/xuangubao/theme/17006066</a></p>
<p class="card-text">路由:<code>/xuangubao/:type/:category</code></p> <p class="card-text">路由:<code>/xuangubao/:type/:category</code></p>
<p class="card-text">参数type = theme|subject category [必填,板块/主题ID]</p> <p class="card-text">参数type = theme|subject category [必填,板块/主题ID]</p>
</div> </div>
@@ -169,7 +169,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">财联社主题动态</h4> <h4 class="card-title">财联社主题动态</h4>
<h6 class="text-muted">财联社主题动态 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">财联社主题动态 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/cls/subject/1345" target="_blank">https://pyrsshub.herokuapp.com/cls/subject/1345</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/cls/subject/1345" target="_blank">https://rsshub.deta.dev/cls/subject/1345</a></p>
<p class="card-text">路由:<code>/cls/subject/:category</code></p> <p class="card-text">路由:<code>/cls/subject/:category</code></p>
<p class="card-text">参数category [必填见财联社APP主题栏目]</p> <p class="card-text">参数category [必填见财联社APP主题栏目]</p>
</div> </div>
@@ -182,7 +182,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">财联社电报</h4> <h4 class="card-title">财联社电报</h4>
<h6 class="text-muted">财联社电报 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">财联社电报 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/cls/telegraph" target="_blank">https://pyrsshub.herokuapp.com/cls/telegraph</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/cls/telegraph" target="_blank">https://rsshub.deta.dev/cls/telegraph</a></p>
<p class="card-text">路由:<code>/cls/telegraph</code></p> <p class="card-text">路由:<code>/cls/telegraph</code></p>
</div> </div>
</div> </div>
@@ -194,7 +194,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">链得得栏目动态</h4> <h4 class="card-title">链得得栏目动态</h4>
<h6 class="text-muted">链得得栏目动态 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">链得得栏目动态 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/chaindd/column/3158465" target="_blank">https://pyrsshub.herokuapp.com/chaindd/column/3158465</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/chaindd/column/3158465" target="_blank">https://rsshub.deta.dev/chaindd/column/3158465</a></p>
<p class="card-text">路由:<code>/chaindd/column/:category</code></p> <p class="card-text">路由:<code>/chaindd/column/:category</code></p>
<p class="card-text">参数category [必填见链得得栏目url中的数字编号]</p> <p class="card-text">参数category [必填见链得得栏目url中的数字编号]</p>
</div> </div>
@@ -207,7 +207,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">早报网 即时新闻文章列表</h4> <h4 class="card-title">早报网 即时新闻文章列表</h4>
<h6 class="text-muted">早报网 即时新闻文章列表 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">早报网 即时新闻文章列表 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/zaobao/realtime/china" target="_blank">https://pyrsshub.herokuapp.com/zaobao/realtime/china</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/zaobao/realtime/china" target="_blank">https://rsshub.deta.dev/zaobao/realtime/china</a></p>
<p class="card-text">路由:<code>/zaobao/realtime/:category</code></p> <p class="card-text">路由:<code>/zaobao/realtime/:category</code></p>
<p class="card-text">参数category [必填,见 早报网 官网]</p> <p class="card-text">参数category [必填,见 早报网 官网]</p>
</div> </div>
@@ -220,7 +220,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">Techcrunch tag文章列表</h4> <h4 class="card-title">Techcrunch tag文章列表</h4>
<h6 class="text-muted">Techcrunch tag文章列表 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">Techcrunch tag文章列表 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/techcrunch/tag/216504" target="_blank">https://pyrsshub.herokuapp.com/techcrunch/tag/216504</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/techcrunch/tag/216504" target="_blank">https://rsshub.deta.dev/techcrunch/tag/216504</a></p>
<p class="card-text">路由:<code>/techcrunch/tag/:category</code></p> <p class="card-text">路由:<code>/techcrunch/tag/:category</code></p>
<p class="card-text">参数category [必填,见 techcrunch 官网]</p> <p class="card-text">参数category [必填,见 techcrunch 官网]</p>
</div> </div>
@@ -233,7 +233,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">未央网-首页</h4> <h4 class="card-title">未央网-首页</h4>
<h6 class="text-muted">未央网-首页 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">未央网-首页 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/weiyangx/home/" target="_blank">https://pyrsshub.herokuapp.com/weiyangx/home/</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/weiyangx/home/" target="_blank">https://rsshub.deta.dev/weiyangx/home/</a></p>
<p class="card-text">路由:<code>/weiyangx/home/</code></p> <p class="card-text">路由:<code>/weiyangx/home/</code></p>
</div> </div>
</div> </div>
@@ -245,7 +245,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">未央网-国际快讯</h4> <h4 class="card-title">未央网-国际快讯</h4>
<h6 class="text-muted">未央网-国际快讯 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">未央网-国际快讯 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/weiyangx/express/" target="_blank">https://pyrsshub.herokuapp.com/weiyangx/express/</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/weiyangx/express/" target="_blank">https://rsshub.deta.dev/weiyangx/express/</a></p>
<p class="card-text">路由:<code>/weiyangx/express/</code></p> <p class="card-text">路由:<code>/weiyangx/express/</code></p>
</div> </div>
</div> </div>
@@ -257,7 +257,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">扬帆出海-快讯</h4> <h4 class="card-title">扬帆出海-快讯</h4>
<h6 class="text-muted">扬帆出海-快讯 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">扬帆出海-快讯 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/yfchuhai/express/" target="_blank">https://pyrsshub.herokuapp.com/yfchuhai/express/</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/yfchuhai/express/" target="_blank">https://rsshub.deta.dev/yfchuhai/express/</a></p>
<p class="card-text">路由:<code>/yfchuhai/express/</code></p> <p class="card-text">路由:<code>/yfchuhai/express/</code></p>
</div> </div>
</div> </div>
@@ -269,7 +269,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">未央网 tag文章列表</h4> <h4 class="card-title">未央网 tag文章列表</h4>
<h6 class="text-muted">未央网 tag文章列表 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">未央网 tag文章列表 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/weiyangx/tag/金融科技" target="_blank">https://pyrsshub.herokuapp.com/weiyangx/tag/金融科技</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/weiyangx/tag/金融科技" target="_blank">https://rsshub.deta.dev/weiyangx/tag/金融科技</a></p>
<p class="card-text">路由:<code>/weiyangx/tag/:category</code></p> <p class="card-text">路由:<code>/weiyangx/tag/:category</code></p>
<p class="card-text">参数category [必填,见 weiyangx 官网]</p> <p class="card-text">参数category [必填,见 weiyangx 官网]</p>
</div> </div>
@@ -282,7 +282,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">今天看啥专栏文章列表</h4> <h4 class="card-title">今天看啥专栏文章列表</h4>
<h6 class="text-muted">今天看啥专栏文章列表 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">今天看啥专栏文章列表 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/jintiankansha/column/KgkNwnDrsy" target="_blank">https://pyrsshub.herokuapp.com/jintiankansha/column/KgkNwnDrsy</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/jintiankansha/column/KgkNwnDrsy" target="_blank">https://rsshub.deta.dev/jintiankansha/column/KgkNwnDrsy</a></p>
<p class="card-text">路由:<code>/jintiankansha/column/:category</code></p> <p class="card-text">路由:<code>/jintiankansha/column/:category</code></p>
<p class="card-text">参数category [必填,见 jintiankansha.me] </p> <p class="card-text">参数category [必填,见 jintiankansha.me] </p>
</div> </div>
@@ -295,7 +295,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">产品公告 - 机构间市场</h4> <h4 class="card-title">产品公告 - 机构间市场</h4>
<h6 class="text-muted">产品公告 - 机构间市场 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">产品公告 - 机构间市场 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/interotc/cpgg/东兴证券" target="_blank">https://pyrsshub.herokuapp.com/interotc/cpgg/东兴证券</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/interotc/cpgg/东兴证券" target="_blank">https://rsshub.deta.dev/interotc/cpgg/东兴证券</a></p>
<p class="card-text">路由:<code>/interotc/cpgg/:category</code></p> <p class="card-text">路由:<code>/interotc/cpgg/:category</code></p>
<p class="card-text">参数category [必填,标题中的关键词] </p> <p class="card-text">参数category [必填,标题中的关键词] </p>
</div> </div>
@@ -308,7 +308,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">股票评级 - Benzinga</h4> <h4 class="card-title">股票评级 - Benzinga</h4>
<h6 class="text-muted">股票评级 - Benzinga <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">股票评级 - Benzinga <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/benzinga/ratings/wb" target="_blank">https://pyrsshub.herokuapp.com/benzinga/ratings/wb</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/benzinga/ratings/wb" target="_blank">https://rsshub.deta.dev/benzinga/ratings/wb</a></p>
<p class="card-text">路由:<code>/benzinga/ratings/:category</code></p> <p class="card-text">路由:<code>/benzinga/ratings/:category</code></p>
<p class="card-text">参数category [必填, 股票代码] </p> <p class="card-text">参数category [必填, 股票代码] </p>
</div> </div>
@@ -321,7 +321,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">抽屉新热榜 - 用户</h4> <h4 class="card-title">抽屉新热榜 - 用户</h4>
<h6 class="text-muted">抽屉新热榜 - 用户 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">抽屉新热榜 - 用户 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/chouti/user/61675332140" target="_blank">https://pyrsshub.herokuapp.com/chouti/user/61675332140</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/chouti/user/61675332140" target="_blank">https://rsshub.deta.dev/chouti/user/61675332140</a></p>
<p class="card-text">路由:<code>/chouti/user/:category</code></p> <p class="card-text">路由:<code>/chouti/user/:category</code></p>
<p class="card-text">参数category [必填, 用户id] </p> <p class="card-text">参数category [必填, 用户id] </p>
</div> </div>
@@ -334,7 +334,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">抽屉新热榜 - 话题</h4> <h4 class="card-title">抽屉新热榜 - 话题</h4>
<h6 class="text-muted">抽屉新热榜 - 话题 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">抽屉新热榜 - 话题 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/chouti/section/1116" target="_blank">https://pyrsshub.herokuapp.com/chouti/section/1116</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/chouti/section/1116" target="_blank">https://rsshub.deta.dev/chouti/section/1116</a></p>
<p class="card-text">路由:<code>/chouti/section/:category</code></p> <p class="card-text">路由:<code>/chouti/section/:category</code></p>
<p class="card-text">参数category [必填, 话题id] </p> <p class="card-text">参数category [必填, 话题id] </p>
</div> </div>
@@ -347,7 +347,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">抽屉新热榜 - 搜索</h4> <h4 class="card-title">抽屉新热榜 - 搜索</h4>
<h6 class="text-muted">抽屉新热榜 - 搜索 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">抽屉新热榜 - 搜索 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/chouti/search/China" target="_blank">https://pyrsshub.herokuapp.com/chouti/search/China</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/chouti/search/China" target="_blank">https://rsshub.deta.dev/chouti/search/China</a></p>
<p class="card-text">路由:<code>/chouti/search/:category</code></p> <p class="card-text">路由:<code>/chouti/search/:category</code></p>
<p class="card-text">参数category [必填, 搜索关键词] </p> <p class="card-text">参数category [必填, 搜索关键词] </p>
</div> </div>
@@ -360,7 +360,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">微信公众号 - 标签文章列表</h4> <h4 class="card-title">微信公众号 - 标签文章列表</h4>
<h6 class="text-muted">微信公众号 - 标签文章列表 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">微信公众号 - 标签文章列表 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/mp/tag/MzI5MjM3OTA0MA/1500461858015772673" target="_blank">https://pyrsshub.herokuapp.com/mp/tag/MzI5MjM3OTA0MA/1500461858015772673</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/mp/tag/MzI5MjM3OTA0MA/1500461858015772673" target="_blank">https://rsshub.deta.dev/mp/tag/MzI5MjM3OTA0MA/1500461858015772673</a></p>
<p class="card-text">路由:<code>/mp/tag/:biz/:tag</code></p> <p class="card-text">路由:<code>/mp/tag/:biz/:tag</code></p>
<p class="card-text">biz [必填, 公众号id]tag[必填, 标签 id] </p> <p class="card-text">biz [必填, 公众号id]tag[必填, 标签 id] </p>
</div> </div>
@@ -373,7 +373,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">Producthunt - 搜索结果</h4> <h4 class="card-title">Producthunt - 搜索结果</h4>
<h6 class="text-muted">Producthunt - 搜索结果 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">Producthunt - 搜索结果 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/producthunt/search/wechat/30" target="_blank">https://pyrsshub.herokuapp.com/producthunt/search/wechat/30</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/producthunt/search/wechat/30" target="_blank">https://rsshub.deta.dev/producthunt/search/wechat/30</a></p>
<p class="card-text">路由:<code>/producthunt/search/:keyword/:period</code></p> <p class="card-text">路由:<code>/producthunt/search/:keyword/:period</code></p>
<p class="card-text">keyword [必填, 搜索关键词]period[必填, 时间范围] </p> <p class="card-text">keyword [必填, 搜索关键词]period[必填, 时间范围] </p>
</div> </div>
@@ -386,7 +386,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">蒲公英 - App 更新日志</h4> <h4 class="card-title">蒲公英 - App 更新日志</h4>
<h6 class="text-muted">蒲公英 - App 更新日志<a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">蒲公英 - App 更新日志<a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/pgyer/22bY" target="_blank">https://pyrsshub.herokuapp.com/pgyer/22bY</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/pgyer/22bY" target="_blank">https://rsshub.deta.dev/pgyer/22bY</a></p>
<p class="card-text">路由:<code>/pgyer/:pageid</code></p> <p class="card-text">路由:<code>/pgyer/:pageid</code></p>
<p class="card-text">pageid [必填, 页面 id]</p> <p class="card-text">pageid [必填, 页面 id]</p>
</div> </div>
@@ -399,7 +399,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">微信公众号 - 最新文章 - 搜狗方案</h4> <h4 class="card-title">微信公众号 - 最新文章 - 搜狗方案</h4>
<h6 class="text-muted">微信公众号 - 最新文章 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">微信公众号 - 最新文章 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/mp/gh/mao-talk" target="_blank">https://pyrsshub.herokuapp.com/mp/gh/mao-talk</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/mp/gh/mao-talk" target="_blank">https://rsshub.deta.dev/mp/gh/mao-talk</a></p>
<p class="card-text">路由:<code>/mp/tag/:biz/:tag</code></p> <p class="card-text">路由:<code>/mp/tag/:biz/:tag</code></p>
<p class="card-text">gh [必填, 公众号id] </p> <p class="card-text">gh [必填, 公众号id] </p>
</div> </div>
@@ -412,7 +412,7 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title">微信公众号 - 最新文章 - 游无穷</h4> <h4 class="card-title">微信公众号 - 最新文章 - 游无穷</h4>
<h6 class="text-muted">微信公众号 - 最新文章 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6> <h6 class="text-muted">微信公众号 - 最新文章 <a href="https://github.com/hillerliao" target="_blank" class="badge badge-secondary">by hillerliao</a></h6>
<p class="card-text">举例:<a href="https://pyrsshub.herokuapp.com/mp/youwuqiong/maoyouhuashuo" target="_blank">https://pyrsshub.herokuapp.com/mp/youwuqiong/maoyouhuashuo</a></p> <p class="card-text">举例:<a href="https://rsshub.deta.dev/mp/youwuqiong/maoyouhuashuo" target="_blank">https://rsshub.deta.dev/mp/youwuqiong/maoyouhuashuo</a></p>
<p class="card-text">路由:<code>/mp/youwuqiong/:author</code></p> <p class="card-text">路由:<code>/mp/youwuqiong/:author</code></p>
<p class="card-text">author [必填, 作者id在 youwuqiong.com 文章列表页上找] </p> <p class="card-text">author [必填, 作者id在 youwuqiong.com 文章列表页上找] </p>
</div> </div>

View File

@@ -1,10 +0,0 @@
[uwsgi]
uwsgi-socket = /tmp/uwsgi.sock
chmod-socket = 777
callable = app
plugin = python3
wsgi-file = wsgi.py
buffer-size = 65535
processes = %(%k * 2)
threads = %(%k * 20)
disable-logging = true