サービス名 : RSS News
- RSS リーダー
- ログイン機能付き
- web サイトのデザインにBootstrapを使用しています。
- 今自分が使っている RSS リーダーが異なる OS 間で連携が取れないので不便だった
- クロスプラットフォームで使えるものを作成する必要があった
この2つを考慮し、ブラウザ上で動作する RSS リーダーを作成するのが最適だと考えた為、Django で作成しました。
requirements.txt
に記載されています。
このアプリは、Feed
、Entry
、UserFeed
の 3 つの DB テーブルを使用しています。
ログイン機能は、Django Allauth
を利用している為、User テーブルは無いです。
詳細はこちら
RSS フィードの情報を保存する為のモデルです。以下の属性が定義されています。
url
: フィードの URL。URLField 型で、一意性が強制されます。title
: フィードのタイトル。CharField 型で、最大長は 100 文字です。description
: フィードの説明。TextField 型で、空白または null 値が許可されます。
フィード内のエントリを表すモデルです。以下の属性が定義されています。
feed
: フィード。ForeignKey 型で、Feed モデルと関連付けられます。title
: エントリのタイトル。CharField 型で、最大長は 50 文字です。link
: エントリのリンク。URLField 型です。summary
: エントリの要約。TextField 型です。pub_date
: エントリの公開日時。DateTimeField 型です。
ユーザーが購読しているフィードを表すモデルです。以下の属性が定義されています。
user
: ユーザー。ForeignKey 型で、django.contrib.auth.models.User モデルと関連付けられます。feed
: フィード。ForeignKey 型で、Feed モデルと関連付けられます。
今後修正する問題
- フィードが自動更新されない(動作未検証)
detailed_list.html
の更新ボタンが機能しないsettings.py
とdocker-compose.yml
に書かれている DB の設定を環境変数に変更する- アカウントの削除機能を追加する
- アカウントの削除ページを作成する
- アカウントの管理ページを作成する
- デザインを統一する
- ダークモードの実装
- エラーページを
error_page.html
にまとめる
解決中の問題
- フィードの更新に関する問題を優先的に解決します
- デザインを統一する
Warning
現在、非同期処理を利用し RSS フィードを 5 分毎に更新する機能の実装が難航しています。
いつ実装できるかは不明ですが、必ず実装します。しばらくお待ちください。
Note
>Googleアカウント
の設定以外はコピペで動きます。
git clone https://gitlab.com/Neuron-Grid/RSS_News
cd RSS_News && \
python -m venv .rss_news && \
source .rss_news/bin/activate && \
pip install -r requirements.txt
pip check
- 問題が発生した場合は、
Gitlab
のIssue
で報告してください。
touch service.env
Warning
事前にGoogleアカウント
のアプリパスワードを発行してください。
#settings.py
SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DEBUG=False
HOSTS=localhost,127.0.0.1
# Databaseの設定
DB_NAME=mysitedb
DB_USER=mysitedbuser
DB_PASSWORD=mysitedbpassword
# Docker-compose.yml
MYSQL_ROOT_PASS=root
MYSQL_DB_NAME=mysitedb
MYSQL_DB_USER=mysitedbuser
MYSQL_DB_PASS=mysitedbpassword
#メールの設定
EMAIL_HOST=smtp.googlemail.com
EMAIL_PORT=587
EMAIL_HOST_USER=googleアカウント@gmail.com
EMAIL_HOST_PASSWORD=アプリパスワード
ENV_FILE=service.env docker-compose up -d && \
sleep 10 && python manage.py makemigrations && \
python manage.py migrate && \
python manage.py runserver
この web アプリにアクセスする。
http://localhost:8000