📝 はじめに
こんにちは、piyovateです。
前回の【番外編①】では、プロジェクトの構成整理やログ機能の導入といったリファクタリングを行いました。
今回はその続編として、
- 📄 README.mdの全面見直し
- 📉 X(旧Twitter)APIの取得頻度変更への対応
- 📦
requirements.txt
の大幅削減
といったドキュメント・環境構築まわりの整備についてご紹介します!
🔗 GitHubでコードを公開中
最新コードやセットアップ手順は以下のリポジトリにて👇
🔗 GitHub - SystermDevelopment/follower-counter
📘 README.mdを再構成!
以前のREADMEは最低限の情報しか含まれていなかったため、今回以下の点を中心に改善を行いました:
- セットアップ手順をステップバイステップで記載
-
.env
とsettings.json
の役割を明確に説明 - 各SNSごとのAPIトークン取得手順を追記
- ChromeDriverインストールや音声通知などの機能説明を追加
- フルスクリーンUI、前日比、ログ記録などの機能紹介を反映
- トラブルシューティング、データ更新スケジュールも記載
初心者から中級者まで迷わず導入できる内容に整理しました!
⏱ X(旧Twitter)APIの取得頻度を1日1回に変更
以前はX(旧Twitter)のフォロワー数を毎時30分ごとに取得していましたが、無料プランでは取得頻度に厳しい制限があるため、現在は午前9:30の1日1回更新に変更しました。
# 旧(毎時取得)
schedule.every().hour.at(":30").do(get_x_followers)
# 新(1日1回)
schedule.every().day.at("09:30").do(get_x_followers)
制限を超えると
429 Too Many Requests
エラーになるので要注意です。
📦 requirements.txt を310→3個に削減!
以前の requirements.txt
は pip freeze
の全出力を保存していたため、310個のパッケージが記載されていました。
実際に使用しているのは以下の3つだけと判明し、最小構成に整理しました:
python-dotenv==0.21.0 # 環境変数管理
requests==2.28.1 # API通信
selenium==4.15.0 # Qiitaデータ取得
🎉
pygame
も以前は音声通知に使っていましたが、現在は使用しておらず除外済みです。
⚠ PyQt5はRaspberry Pi上ではaptでインストール
Raspberry Pi上では pip install PyQt5
がビルドエラーになることがあります。
そのため、PyQt5だけは以下のようにシステムパッケージで導入し、仮想環境では --system-site-packages
を使って共有しています:
sudo apt-get install python3-pyqt5
python3 -m venv venv --system-site-packages
source venv/bin/activate
pip install -r requirements.txt
🔧 自動セットアップスクリプトを用意
環境差異を吸収するために、以下の処理を自動化した setup.sh
を用意しました:
- OS判定(Raspberry Pi or 通常PC)
- PyQt5のインストール(apt or pip)
- ChromeDriverの導入(Qiita取得用)
- 仮想環境の作成・有効化
-
.env
テンプレートとasset/
ディレクトリの作成
./setup.sh
で初期セットアップが一通り完了します✨
🙏 おわりに
今回は裏方中心のアップデートですが、READMEの整備や依存関係の整理はチーム開発・長期運用ではとても重要です。
「READMEちゃんと書こう…」「pip freezeそのまま載せてたかも…」という方、ぜひ参考にしてみてください😊
いいね・フォロー・ストックもお待ちしています!
それではまた次回の記事でお会いしましょう!
🔗 シリーズリンク
📚 全記事まとめはこちら → シリーズまとめリンク