Blog content aggregator webapp for Sakamichi46 ◢
Powered by Aiohttp & MySQL
- Blog reformat and high-res photo predownload (for awalker dcimg)
- Optimized machine translating does some help for reading
- Archive all keyakizaka members' blog and a part of nogizaka graduation's blog
- Separate blog from group channel for each of new-joined members
New blog posting reminder subscription (FCM push involved in PWA feature)
- Text data and API service are hosted on Vultr VC2
- Photos are stored in Google cloud storage
Looking for sponsors and maintainers
- Fill your personal account setting (including Translation API, OSS access, RDS connection) in two file with
.examplesuffix and rename them to.pyfile before starting server and crawler - Install dependency for server and crawler by the corresponding
requirements.txt - Create new database and execute table creating SQL and fill member information by the file in
init/directory - You can run
python crawler/manage.py -hfor arguments about crawling and runpython server/main.pyto start API server - You will need nginx or caddy to host static files in
host/directory, and a process management tool to keep API server always run. In theconfig/directory, there are nginx, caddy and supervisor configuration examples for reference
GET /api/feed/all
Mixed blog from nogizaka/keyakizaka/hinatazaka members in post time descending order
size1 ~ 100 (default is 10)pagestart from 1
GET /api/feed/member/:id:
Blog from a specific member in post time descending order (Please refer member.txt for member id)
sizedittopageditto
GET /api/free
Blog from a specific group in post time descending order (Structure of response data is different from the first one)
groupnogizaka|keyakizakasizedittopageditto
id is a 7 digits number, please pad the number space with zero first
For nogizaka, remain the first digit with 0; for keyakizaka and hinatazaka, set the first digit to 1
GET /api/diary/:id:
Markdown-liked blog data in JSON format
GET /api/blog/:id:
Webpage for blog viewing rendered by JS
MIT
