UltraPush : 一个 Kindle 期刊推送网站
简单设置,稳定地推送精选新闻到你的 Kindle
现有的 Kindle RSS 推送服务一大堆,但大多要么付费、要么不稳定、要么无人维护、要么限制诸多。
UltraPush 的目的很简单,就是做一个优先保证稳定性、质量的 Kindle RSS 推送网站。
- 基本的框架
- RSS 读取
- SMTP 邮件发送
- 生成期刊格式的 Kindle 电子书
- 推送逻辑
以上功能将优先完成.
- 全文采集(针对只提供了摘要的 RSS)
- 图片处理
- 缓存
- 不同邮箱推送不同内容
- 投递测试文档
- 为 Kindle 浏览器特别优化
- 订阅排行榜
在用户设置的推送时间执行:
- RSS 获取内容清单。将昨日推送时间到今日的推送时间的所有内容列出清单。对比缓存,找出不在缓存中的文章(一个项目可能被两个用户订阅。在他们的推送时间之差内的是新内容)
- 采集获取全文
- 采集图片,并进行处理(如灰度、长图裁剪等等)
- 保存在缓存中。
- 取出缓存中在推送时间范围内的文章。套入 HTML 模版并加入 CSS。
- 推送
- PHP >= 7.1 (包含 OpenSSL,PDO,Mbstring,Tokenizer,XML,Fileinfo,cURL,SMTP 扩展)
- GD Library (>=2.0) 或 Imagick PHP extension (>=6.5.7)
- MySQL >= 5.6
- Redis(可选,用于缓存加速)
- Nodejs(可选,用于前端资源编译)
修改 .env
文件。
# 设置权限
$ chmod -R 755 *
$ chmod -R 777 storage
# 安装依赖
$ composer install --no-dev
# 若没有 Nodejs 可跳过下步
$ npm install
# 安装数据库
$ php artisan admin:install
# 编译前端资源 (若没有 Nodejs 可跳过)
$ npm run prod
# 生成 Key
$ php artisan key:generate
# 应用优化
$ php artisan clear-compiled
$ php artisan cache:clear
$ php artisan config:cache
$ php artisan optimize
$ composer dump-autoload --optimize
设置 Cron 以支持 Laravel 的任务调度系统。
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
修改path-to-your-project
为你自己的目录
配置 Nginx 或 Apache 监听 public 目录即可。
若使用 Nginx 还需要设置伪静态。下面是供参考的配置
location / {
try_files $uri $uri/ /index.php?$query_string;
}
十分需要你的 Contributing!可直接 Pr。
使用 MIT license.