Skip to content

村瀨亮介のオンライン活動記録「村瀨動静」。各種SNSやサービスの活動をGitHub Actionsで自動集約し、タイムラインとして表示します。

License

Notifications You must be signed in to change notification settings

MuraseRyosuke/murase-dosei

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,115 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

村瀨動静 v0.3

これは、個人の様々なオンライン活動を一つのタイムラインに集約して表示するウェブサイト「村瀨動静」のソースコードです。GitHub PagesとGitHub Actionsを利用し、サーバーレスかつ無料で運用することを目指しています。

完成したサイトはこちら

✨ 機能

  • タイムライン表示: timeline.jsonファイルから活動データを読み込み、日付ごとにグループ化して表示します。
  • 自動更新: GitHub Actionsを利用して、定期的に新しい活動がないか自動的にチェックし、タイムラインを更新します。
  • サーバーレス & 無料: 外部のホスティングサービスやデータベースを一切使わず、すべてGitHub上で完結しているため、完全に無料で運用できます。
  • シンプルなデザイン: ダークモードにも対応した、見やすいミニマルなデザイン。
  • ハイブリッド無限スクロール: ヘッダー部分のSNSアイコンは、ユニークな無限スクロール機能を備えています。
    • 自動スクロール: ページを操作していないときは、アイコンがゆっくりと自動で流れ続けます。
    • 一時停止: マウスカーソルをアイコンの上に合わせると、スクロールが即座に一時停止します。
    • 双方向の手動スクロール: スクロールが一時停止している間は、マウスのホイールやトラックパッド、タッチ操作で左右どちらにも自由にスクロールできます。スクロールの端に到達しても、壁に当たることなくシームレスにループします。
    • スムーズな再開: マウスカーソルがアイコンから離れると、その場所から再び自動スクロールが再開されます。

🛠️ 仕組み

このプロジェクトは、以下の流れで動作しています。

  1. スケジュール実行: ワークフローが定期的に自動起動します。
  2. データ取得: 各サービス (現在はSpotify) のAPIにアクセスし、最新の活動履歴を取得します。
  3. データ保存: 取得した活動データを一つのtimeline.jsonファイルにまとめ、リポジトリ内に直接コミット・保存します。 (v0.3での大きな変更点)
  4. ウェブサイト表示: ユーザーがウェブサイトにアクセスすると、index.htmlに書かれたJavaScriptがリポジトリ内のtimeline.jsonを読み込み、タイムラインを動的に描画します。

🚀 セットアップ方法

このプロジェクトを自分用にカスタマイズして動かすための手順です。

1. リポジトリをフォーク

まず、このリポジトリをあなたのアカウントにフォーク(コピー)してください。

2. アクセストークンとAPIキーを取得

各サービスからデータを取得するために必要な鍵(トークンやAPIキー)を、それぞれの公式サイトや開発者向けページから取得してください。

  • 現在、自動連携に必要なサービス:
    • Spotify

3. GitHub Secretsを設定

フォークしたリポジトリの「Settings」>「Secrets and variables」>「Actions」で、ステップ2で取得したアクセストークンとAPIキーを登録します。登録する際のキー名は、ワークフローファイル (.github/workflows/main.yml) 内のenvセクションで定義されているものと一致させる必要があります。

4. GitHub Pagesを有効化

リポジトリの「Settings」>「Pages」で、Sourceを「Deploy from a branch」に設定し、mainブランチの/(root)からデプロイするように設定します。

以上で設定は完了です。「Actions」タブからワークフローを手動で実行し、サイトが表示されるか確認してみてください。

💻 使用技術

  • Frontend: HTML, CSS, JavaScript (Vanilla JS)
  • Automation: GitHub Actions
  • Hosting: GitHub Pages
  • Database: timeline.json (リポジトリ内)

🔭 今後の展望

このプロジェクトはまだ始まったばかりであり、多くの改善の可能性があります。

  • 対応サービスの追加: StravaやDribbbleなど、より複雑な認証(OAuth2)を必要とするAPIとの連携に挑戦する。
  • 表示コンテンツの拡充: Spotifyで再生した曲のアルバムアートワークを表示したり、他のサービスの投稿内容を展開して表示するなど、よりリッチなタイムラインを目指す。
  • フロントエンドの機能改善: プラットフォームごとのフィルタリング機能や、キーワード検索機能を追加する。
  • コードのリファクタリング: 将来の機能追加を容易にするため、コードの構造をよりクリーンに改善する。

プルリクエストや改善提案はいつでも歓迎します!

📄 ライセンス

このプロジェクトはMITライセンスです。

About

村瀨亮介のオンライン活動記録「村瀨動静」。各種SNSやサービスの活動をGitHub Actionsで自動集約し、タイムラインとして表示します。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published