Modliste: melden was sich geaendert hat, einzeln laden
Deploy / check (push) Has been cancelled
Deploy / deploy (push) Has been cancelled

Bisher gab es fuer Mods nur einen Link auf das Sammelpaket des Hosters — vier
Gigabyte, auch wenn sich zwei Dateien geaendert haben. Jetzt liest der Bot die
Modliste aus der Statusabfrage, die er ohnehin holt, und meldet im Kanal, was
neu, aktualisiert oder entfernt wurde. Beim ersten Durchlauf bleibt es still,
sonst kaeme eine Meldung ueber 110 "neue" Mods.

Geaendert heisst: andere Version oder anderer Hash. Beides einzeln reicht
nicht — manche Modder bessern nach, ohne die Version zu erhoehen.

Dazu die Seite /mods/<server>: jeder Mod mit Version und Groesse, Suche ueber
Titel, Dateiname und Autor, und ein Download je Zeile. Der laeuft durch den
Bot, damit der Zugangs-Code des Spielservers nicht in einem Link landet — mit
dem Code liesse sich auch der ganze Spielstand lesen. Angefragt wird nur, was
wirklich in der Modliste steht; ueber den Dateinamen kommt man an nichts
anderes heran.

Groessen lernt der Bot beim Weiterleiten. Der Spielserver beantwortet kein
HEAD (501) und ignoriert Range, es gibt also keinen billigen Weg, sie vorher
zu erfahren — und 4 GB nur fuers Anzeigen zu holen waere keiner.

Nebenbei gefunden und behoben: 'server.mods' und 'commands.tag' gab es je
zweimal in den Sprachdateien. Der spaetere Eintrag gewinnt still, deshalb
stand auf dem neuen Knopf woertlich "%s Mods (110)" und auf der Befehlsseite
die Beschreibung von /tag statt der Kopfzeile.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 11:22:55 +02:00
co-authored by Claude Opus 5
parent 9b681754fa
commit 1ef06f747c
12 changed files with 527 additions and 10 deletions
+36
View File
@@ -16,6 +16,7 @@ der Hoster ausgibt; der Port ist **nicht** immer 8080.
| `dedicated-server-savegame.html?file=careerSavegame` | ~20 KB | Einstellungen, Geld, Spielzeit, Modliste |
| `dedicated-server-savegame.html?file=vehicles` | ~39 KB | jedes Fahrzeug mit Preis, `farmId`, Betriebsstunden |
| `dedicated-server-savegame.html?file=economy` | ~305 KB | Preiskurve je Fruchtart über zwölf Perioden |
| `mods/<name>.zip` | 0,07 1381 MB | die Mod-Datei selbst, **nicht** unter `/feed` |
Andere Dateinamen antworten mit `204` und leerem Rumpf. Geprüft und **nicht**
verfügbar: `farms`, `farmland`, `farmlands`, `fields`, `field`, `items`,
@@ -61,6 +62,41 @@ Mit dem richtigen Maßstab liegen die Parzellen-Schwerpunkte **unter 15 px** von
ihrer Marke entfernt, gemessen auf einem 1024er Bild; mit dem falschen rund
200 px. Der Unterschied ist so deutlich, dass eine einzige Prüfung reicht.
## Mods
Die Statusabfrage listet jeden Mod mit `name`, `author`, `version` und `hash`.
Der Name ist der Dateiname ohne `.zip` — damit lässt sich jede Datei einzeln
laden, ohne das Sammelpaket über alles zu ziehen. Auf dem Testserver: **109 von
110 Mods abrufbar, zusammen 4,06 GB.**
Der `hash` ist GIANTS' eigener Fingerabdruck. Was er ist, steht nirgends, und
gemessen ist er **weder** die MD5 der ausgelieferten Zip **noch** die der
`modDesc.xml` darin. Als Prüfsumme für heruntergeladene Dateien taugt er also
nicht — als Melder „hier hat sich etwas geändert" schon.
Was beim Bauen wichtig ist:
| | |
|---|---|
| `HEAD` | **501** — nicht unterstützt, die Grösse gibt es nur per GET |
| `Range` | wird ignoriert (200 statt 206) — **kein Fortsetzen** |
| `Last-Modified` | vorhanden, aber der Zeitpunkt des Hochladens, nicht der Version |
| `ETag` | keiner |
| Zwei Abrufe | byte-gleich — statische Dateien, kein Neupacken |
Kein Fortsetzen ist der wunde Punkt: die grösste Datei auf dem Testserver ist
**1,38 GB**. Bricht der Download ab, fängt er von vorn an. Wer das besser
machen will, muss selbst zwischenspeichern.
**Gekaufte Inhalte antworten mit 403.** `pdlc_strawHarvestPack` ist das
einzige der 110, das der Server nicht herausgibt — richtig so, es ist bezahltes
DLC und kommt über Steam.
**Der Dateiname muss nichts mit dem Mod zu tun haben.** Auf dem Testserver
heisst ein Eintrag `all_mods_download`, ist aber „Bale Autoload Pack" — da hat
jemand den Sammel-Download des Hosters in den Mod-Ordner gelegt. Das Spiel
lädt ihn anstandslos, aber jeder Abgleich über den Namen stolpert darüber.
## Was in der Fahrzeugdatei steht
`file=vehicles` ist die ergiebigste der drei Savegame-Dateien. Je `<vehicle>`: