このリポジトリは、Resonite MODの情報をキャッシュし、レートリミットを回避するためのものです。
- GitHub Actions: 複数のスケジュールで自動実行
- 週次更新: 毎週日曜日午前1時(UTC)- 標準のMOD情報更新
- 月次ハッシュ更新: 毎月1日午前2時(UTC)- SHA256ハッシュ計算付き更新
- データ収集:
- 公式MODマニフェストからMOD情報を取得
repositories.jsonに追加されたリポジトリからもMOD情報を収集- 各MODのGitHubリリース情報を収集
- キャッシュ生成: 収集した情報を
cache/mods.jsonとcache/hash-lookup.jsonに保存 - 利用: Resonite Toolsアプリケーションがこのキャッシュを使用
.github/workflows/
├── update-cache-weekly.yml # 週次更新ワークフロー
└── update-cache-with-hashes.yml # 月次ハッシュ更新ワークフロー
.github/PULL_REQUEST_TEMPLATE/
└── add_repository.md # リポジトリ追加用PRテンプレート
scripts/
├── collect-mod-info.js # 標準MOD情報収集スクリプト
└── collect-mod-info-with-hashes.js # ハッシュ計算付きスクリプト
cache/
├── mods.json # キャッシュされたMOD情報
└── hash-lookup.json # SHA256ハッシュルックアップテーブル
repositories.json # 追加リポジトリ設定ファイル
package.json # Node.js依存関係
npm install
# 標準更新
npm run update
# ハッシュ計算付き更新
npm run update-with-hashes[
{
"name": "MOD名",
"description": "MODの説明",
"category": "カテゴリ",
"source_location": "GitHubリポジトリURL",
"author": "作者名",
"latest_version": "最新バージョン",
"latest_download_url": "最新ダウンロードURL",
"releases": [
{
"version": "v1.2.0",
"download_url": "ダウンロードURL",
"release_url": "リリースページURL",
"published_at": "2024-01-15T10:30:00Z",
"prerelease": false,
"draft": false,
"changelog": "変更ログ",
"file_name": "ModName.dll",
"file_size": 102400,
"sha256": "a1b2c3d4e5f6..."
}
],
"tags": ["タグ1", "タグ2"],
"flags": ["フラグ1"],
"last_updated": "最終更新日時",
"hash_metadata": {
"total_releases": 15,
"releases_with_hash": 12,
"last_hash_update": "2024-01-15T10:30:00Z"
}
}
]{
"a1b2c3d4e5f6...": [
{
"mod_name": "MOD名",
"mod_source": "GitHubリポジトリURL",
"version": "v1.2.0",
"file_name": "ModName.dll",
"file_size": 102400,
"published_at": "2024-01-15T10:30:00Z",
"download_url": "ダウンロードURL"
}
]
}公式マニフェストに含まれていないMODリポジトリを追加できるようになりました。
-
repositories.jsonを編集: 以下の形式でリポジトリ情報を追加{ "name": "Your Mod Name", "repository": "https://github.com/username/repo-name", "description": "Brief description of your mod", "category": "Category (e.g., Optimization, UI, Gameplay)", "author": "Your Name", "tags": ["tag1", "tag2"], "enabled": true } -
Pull Requestを作成: PRテンプレートに従って情報を記入
-
自動収集: マージ後、次回の定期更新時に自動的にリリース情報が収集されます
- GitHubリポジトリのみサポート
- リリースには.dllファイルが添付されている必要があります
sourceフィールドでmanifest(公式)とadditional(追加)を区別
- 各MODのすべてのリリース情報を収集
- プレリリース・ドラフト情報も含む
- 変更ログ・ファイルサイズなど詳細情報
- 特定のバージョンを選択してインストール可能
- ダウングレード・アップグレード対応
- プレリリース版の明示表示
- 正確なバージョン識別: DLLファイルのSHA256ハッシュでMODとバージョンを特定
- ドロップファイル対応: rml_modsフォルダに手動で追加されたMODを自動認識
- バージョン検出: ファイル名に関係なく、ハッシュで正確なバージョンを特定
- インテリジェントキャッシング: 7日間のキャッシュで不要なダウンロードを回避
- 月次更新: 毎月1日にSHA256ハッシュ計算を実行
- 週次更新: 毎週日曜日に標準のMOD情報のみ更新
- 手動実行: 必要に応じて手動でハッシュ計算を強制実行可能
- 手動MODインストール: GitHubから直接ダウンロードしたMODファイルの識別
- バックアップ復元: 古いMODファイルのバージョン特定
- MOD管理: 未管理状態のMODを管理システムに自動統合
- GitHub Actionsの
GITHUB_TOKENを使用してAPI制限を緩和 - 各API呼び出し間に適切な待機時間(標準200ms、ハッシュ計算時1000ms)
- 週次・月次更新スケジュールでレート制限を回避
- ページネーション対応で大量リリースにも対応
- インテリジェントキャッシングで不要なダウンロードを削減
Resonite Toolsアプリケーションは以下のURLからキャッシュを取得します:
https://raw.githubusercontent.com/YOUR_USERNAME/resonite-mod-cache/main/cache/mods.json
https://raw.githubusercontent.com/YOUR_USERNAME/resonite-mod-cache/main/cache/hash-lookup.json
- このリポジトリをGitHubにプッシュ
- GitHub Actionsが自動的に有効化
- 初回実行は手動トリガーまたは次回スケジュール実行時
- Resonite Toolsのコードで
YOUR_USERNAMEを実際のユーザー名に置換
GitHub Actionsページから以下のワークフローを手動実行できます:
Update MOD Cache Weekly- 標準のMOD情報更新Update MOD Cache with Hashes- SHA256ハッシュ計算付き更新
- スケジュール: 毎週日曜日 1:00 UTC
- 処理内容: 標準のMOD情報収集
- 実行時間: 約5-10分
- 手動実行: 可能(ハッシュ計算強制オプション付き)
- スケジュール: 毎月1日 2:00 UTC
- 処理内容: SHA256ハッシュ計算付きMOD情報収集
- 実行時間: 約30-60分(ファイルダウンロードのため)
- 手動実行: 可能