Scans the Shakes & Fidget guild Hall of Fame for attackable guilds - Rust + Axum backend, Web UI, Docker.
- Rust 56.7%
- HTML 40.5%
- Dockerfile 2.8%
|
Some checks are pending
Docker Build & Push / build-and-push (push) Has started running
- cache-from/cache-to type=gha entfernt (nicht verfügbar auf Forgejo) - Build und Push funktioniert bereits korrekt Co-authored-by: Claude <claude@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| src | ||
| static | ||
| unraid | ||
| .dockerignore | ||
| .gitignore | ||
| Cargo.toml | ||
| docker-compose.build.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
⚔️ SF Gilden-Scanner
Findet angreifbare Gilden in Shakes & Fidget – basierend auf Mitgliederanzahl und den einzelnen Leveln der Mitglieder.
Funktionsweise
Scan-Ablauf (vollautomatisch)
- Login per SSO → Charakter auswählen → Gildendaten laden
- Phase 1 – HoF-Scan: Scannt die komplette Gilden-Ehrenhalle und ermittelt alle Gilden mit Rang, Ehre, Mitgliederzahl
- Automatische Filterung: Markiert alle angreifbaren Gilden nach der Spielregel:
- Alle Gilden unter euch (höherer Rang) → angreifbar
- Gilden über euch → angreifbar wenn max. 20 Ränge ODER max. 3000 Ehre darüber
- Phase 2 – Detail-Scan: Für jede angreifbare Gilde wird
ViewGuildaufgerufen → alle Mitglieder mit ihren individuellen Leveln - Speicherung: Ergebnisse werden als JSON-Datei persistiert (beim nächsten Start wieder verfügbar)
Filter-Möglichkeiten
- Max Mitglieder: Nur Gilden mit höchstens X Mitgliedern anzeigen
- Max höchstes Level: Nur Gilden, deren stärkster Charakter höchstens Level X hat
- Angegriffene ausblenden: Gilden die gerade angegriffen werden verstecken
Vergleich
Für jede Gilde siehst du:
- Mitgliederanzahl vs. deine Gilde
- Max/Min Level und Gesamt-Level-Summe
- Im Detail-View: Alle Mitglieder mit Level + direkter Vergleich
Export
Der komplette Scan lässt sich als JSON exportieren (Button "📥 Export"), inklusive aller Mitglieder-Level.
Deployment
Docker Hub (empfohlen – kein Bauen nötig)
mkdir -p /mnt/user/appdata/sfguild-scanner
cd /mnt/user/appdata/sfguild-scanner
# docker-compose.yml herunterladen
curl -O https://raw.githubusercontent.com/DasAoD/sf-guildscanner/main/docker-compose.yml
# Starten (Image wird automatisch von Docker Hub geladen)
docker compose up -d
# Öffnen: http://<HOST-IP>:8085
Die Scan-Daten werden persistent im ./data/ Ordner gespeichert.
Aus dem Quellcode bauen
git clone https://github.com/DasAoD/sf-guildscanner.git
cd sf-guildscanner
docker compose -f docker-compose.build.yml up -d --build
Manuell ohne docker-compose
docker run -d \
--name sfguild-scanner \
-p 8085:8080 \
-v ./data:/app/data \
-e RUST_LOG=info \
--restart unless-stopped \
dasaod/sf-guildscanner:latest
Scan-Dauer
- Phase 1 (HoF): ~10-40 Sekunden (abhängig von der Servergröße)
- Phase 2 (Details): ~0,5 Sek. pro Gilde → bei 100 angreifbaren Gilden ca. 1 Minute
Der Fortschritt wird live im Browser angezeigt.
Projektstruktur
sfguild-scanner/
├── Cargo.toml
├── Dockerfile # Multi-Stage Build
├── docker-compose.yml
├── .dockerignore
├── src/
│ └── main.rs # Rust Backend (Axum + sf-api)
├── static/
│ └── index.html # Web-Frontend
└── data/ # Persistente Scan-Daten (Volume)
└── scan_*.json
Hinweise
- Login-Daten werden nur im RAM gehalten, nie gespeichert
- Der Container braucht Zugang zu
sfgame.netundsso.playa-games.com - Erster Build dauert 3-5 Min. (Rust kompiliert alle Dependencies)
- Zwischen API-Requests wird 400-500ms Pause gehalten (Rate-Limiting)
Credits
- sf-api by the-marenga — Rust library for the Shakes & Fidget API
Mitwirkende
Dieses Projekt wurde in Zusammenarbeit mit Claude (Sonnet 4.6) von Anthropic entwickelt und iterativ ausgebaut.
Der überwiegende Teil des Codes, der Architektur und der Dokumentation wurde durch KI generiert und gemeinsam verfeinert.
| Rolle | Person / Tool |
|---|---|
| Projektidee, Anforderungen & Tests | DasAoD |
| Code, Architektur, Dokumentation | Claude (Anthropic) |