Skip to content

v0.3.0

Choose a tag to compare

@peterm2024 peterm2024 released this 02 Aug 15:57
· 87 commits to main since this release

Windows-Anwendung, keine Installation nötig: PoE-VIEW2.exe herunterladen und starten.

Hinweis: Die Datei ist nicht codesigniert. Windows SmartScreen und Virenscanner warnen deshalb vor einem unbekannten Herausgeber — das ist bei unsignierten PyInstaller-Builds normal.

Behoben

  • Ein Spalten-Filter auf der Tab-Spalte (Header-Rechtsklick) überlebte
    bisher den Wechsel von der Charakter- zur Truhen-Ansicht (oder zwischen
    zwei Truhenfächern) — passte der Filterwert dort auf keinen einzigen
    Fach-/Slot-Namen, verschwanden alle Items kommentarlos, ohne sichtbaren
    Hinweis (die Tab-Spalte ist im Einzelfach-View automatisch ausgeblendet,
    der 🔍-Marker also unsichtbar). Ein solcher Filter wird jetzt beim
    tatsächlichen Wechsel der angezeigten Quelle automatisch entfernt.
    Filter auf anderen Spalten (Name, Base, Value, …) bleiben unverändert
    über einen View-Wechsel hinweg erhalten.
  • Refresh-Modus "Stash": bereits geladene Remove-only-Fächer (können nur
    schrumpfen, nie wachsen) wurden im Rundlauf wie jedes andere gefüllte
    Fach behandelt und damit unnötig oft neu geladen. Sie kommen jetzt nur
    noch dran, wenn es sonst kein anderes gefülltes Fach gibt — die gleiche
    Nachrangigkeit, die der Auto-Refresh-Modus schon hatte.
  • Preis-Anzeige: Ein poe.ninja-Abruf ohne eine einzige Preiszeile (z. B.
    ein transienter Ausrutscher) wurde bislang wie ein normaler Erfolg 6
    Stunden lang gecacht — eine Liga konnte dadurch stundenlang ohne jeden
    Preis dastehen, obwohl poe.ninja längst wieder normal antwortete. Ein
    solches Ergebnis läuft jetzt nach 1 Stunde statt 6 Stunden ab.
    Hinweis: SSF-Ligen (z. B. "Solo Self-Found") werden von poe.ninja
    grundsätzlich nicht getrackt — ohne Spieler-Handel gibt es dort keine
    Handelsaktivität, aus der sich Preise ableiten ließen. Das ist eine
    Grenze der Datenquelle, kein Fehler in PoE-VIEW2.
  • "Load All Tabs" wirkte bei großen Truhen eingefroren: Der
    Fortschrittsbalken zählte Truhenfächer, die Arbeit fällt aber pro Abruf
    an. Ein Map-Stash bündelt hunderte Sektionen in einem einzigen Fach —
    die Anzeige stand dadurch über eine Stunde auf derselben Zahl. Der
    Balken läuft jetzt über die tatsächlichen Abrufe, das Label nennt
    zusätzlich das Fach ("Section 128 of 1088 · tab 3 of 519") und eine
    geschätzte Restzeit.
  • Unique-Stash: Die selbst vergebenen Fach-Namen ("Ring", "Sceptre", …)
    gingen verloren, sobald das Eltern-Fach erneut geladen wurde — nach
    einem "Load All Tabs"-Lauf hießen dadurch fast alle Unterfächer wieder
    "UniqueStash". Die Namen bleiben jetzt erhalten; bereits betroffene
    Caches füllen sich beim nächsten Laden des Eltern-Fachs wieder auf,
    soweit die Items noch zwischengespeichert sind.
  • Unique-Stash: Kinder eines Remove-only-Tabs zeigten nur noch
    "(Remove-only)" statt der Kategorie ("Ring (Remove-only)") — der
    GGG-Suffix im Namensfeld wurde fälschlich als vollständiger Name
    gewertet.
  • Rate-Limit-Dashboard zeigt jetzt sofort "(Paused)" neben dem
    Policy-Namen, sobald der Refresh-Modus "Pause" aktiv ist.
  • Rate-Limit-Dashboard: der angezeigte Verbrauch je Regel zeigt jetzt immer
    den zuletzt von GGG gemeldeten Rohwert. Reale Header-Logs zeigten, dass
    GGGs Zähler nicht gleitend pro Treffer altert, sondern in Blöcken von
    ~60 Sekunden auf einmal sinkt — die vorherige, feiner gedachte
    Interpolation traf dadurch systematisch daneben. Die tatsächliche
    Warte-Entscheidung war davon nie betroffen und bleibt unverändert
    konservativ.
  • Die Refresh-Modi "Single" und "Stash" liefen nach einiger Zeit in eine
    fünfminütige Zwangspause. Ihr gleichmäßiger Takt war so berechnet, dass
    er das Rate-Limit gerade eben nicht reißt — er unterstellte dabei aber,
    der einzige Verbraucher zu sein. Klicks auf noch nicht geladene Fächer,
    Liga-Wechsel und die Abrufe direkt nach dem Programmstart füllen dasselbe
    Kontingent jedoch mit, wodurch die verbleibende Marge von einer einzigen
    Anfrage sofort aufgebraucht war. Der Takt pausiert jetzt selbsttätig,
    sobald das Fenster zu voll ist, und nennt den Grund in der Statuszeile.
  • Liga-Wechsel trugen weiterhin zur 300s-Zwangspause bei: der Abruf der
    Fach-LISTE der neu gewählten Liga lief ungebremst, und eine Lücke im
    gerade erst gebauten Rate-Limit-Schutz ließ auch den Refresh-Modus-Takt
    direkt danach ungebremst durch. Beides behoben — der Listen-Abruf
    entfällt jetzt bei zu vollem Fenster (der gecachte Baum bleibt sichtbar),
    und der Refresh-Modus-Schutz greift jetzt auch unmittelbar nach einem
    Liga- oder Modus-Wechsel zuverlässig.
  • "Load All Tabs", "Refresh" und der Refresh-Modus-Umschalter blieben ohne
    gültigen Login anklickbar, solange noch ein Daten-Cache aus einer
    früheren Sitzung sichtbar war — der Fortschrittsdialog von "Load All
    Tabs" öffnete sich dann, hing aber für immer bei 0 %, weil der Job vom
    Worker lautlos verworfen wurde. Diese drei Online-Funktionen sind jetzt
    gesperrt, solange kein Login besteht; Stash-Baum, Charakterliste und
    Liga-Auswahl bleiben zum Durchsuchen des Caches weiter nutzbar.

Hinzugefügt

  • Frei konfigurierbare Item-Nachschlagewerke: Über den Settings-Dialog
    (Reiter "External Tools") lassen sich eigene Seiten mit Name und
    URL-Vorlage eintragen, in der {slug} durch den Item-Namen ersetzt
    wird. Ein Rechtsklick auf ein Item öffnet die so hinterlegten Seiten.
    Die Liste ist ab Werk leer — PoE-VIEW2 bringt bewusst keine fremde
    Seite mit und kontaktiert von sich aus keine; wer einen Eintrag anlegt,
    trifft diese Entscheidung selbst. Der Slug berücksichtigt dabei, dass
    nur Uniques einen eigenständig auffindbaren Namen haben: bei allen
    anderen Seltenheiten wird der Basis-Typ verlinkt statt eines zufällig
    gewürfelten Namens.
  • Charakter-Item-Verlauf: ein neues, aufziehbares Panel unterhalb der
    Item-Tabelle protokolliert die letzten 120 Items, die neu im
    Charakter-Inventar aufgetaucht oder daraus verschwunden sind (↑/↓) —
    über alle Charaktere hinweg, unabhängig davon, welcher gerade angezeigt
    wird. Damit lässt sich kurz nachschauen, was man gerade in die Truhe
    gelegt, verkauft oder gehandelt hat. Eigenes, kompaktes Spaltenformat
    (Zeit, Charakter, Ereignis, Icon, Name, Base, Stack, Value);
    standardmäßig auf eine Zeile eingeklappt, per Ziehen am Splitter
    aufziehbar. Rechtsklick/Doppelklick funktionieren wie in der
    Haupttabelle (externe Tools, vergrößerte Ansicht).
  • Charakter-Ansicht: Beim Beobachten eines Charakter-Inventars (z. B. per
    Zonenwechsel-Trigger, siehe unten) werden Zeilen, die sich seit dem
    letzten Refresh geändert haben oder neu hinzugekommen sind, türkis
    hervorgehoben. Aus dem Inventar verschwundene Items werden nicht
    sofort entfernt, sondern für einen Refresh-Zyklus grau und
    durchgestrichen angezeigt.
  • Optionaler Zonenwechsel-Trigger für den Live-Refresh (Settings-Dialog,
    Reiter "Zone Refresh", standardmäßig AUS): PoE-VIEW2 kann Peters lokale
    Client.txt beobachten (rein lesend, Pfad muss selbst eingetragen
    werden) und lädt die gerade offene Truhe/den Charakter sofort neu,
    sobald PoE einen Zonenwechsel meldet — GGGs Stash-API liefert neue
    Daten offenbar ohnehin erst danach, gezieltes Nachladen spart also
    Rate-Limit-Budget gegenüber reinem Zeit-Takt.
  • Neuer Settings-Dialog (⚙-Button in der Toolbar) mit einem Reiter
    "Columns": welche Item-Tabellen-Spalten sichtbar sind und in welcher
    Reihenfolge lässt sich dort per Häkchen und Drag & Drop einstellen,
    zusätzlich zum bisherigen schnellen Ein/Aus-Schalter im
    Header-Rechtsklickmenü. Beide Wege teilen sich denselben gespeicherten
    Stand.
  • Fenster lässt sich nicht mehr kleiner als 800x600 ziehen — darunter
    wurden Bedienelemente in der Toolbar (u. a. das Suchfeld) hinter einem
    Overflow-Pfeil versteckt.
  • Doppelklick auf ein Item öffnet eine vergrößerte Ansicht: großes Icon
    und der vollständige Property-/Mod-Text ohne die Zeilen-Kürzung des
    kompakten Detail-Panels. Bei Divination Cards zeigt sie das echte
    Karten-Artwork (GGGs eigenes CDN) statt des für jede Karte identischen
    generischen Icons aus der Stash-API, mit einem dekorativen
    Pergament-Rahmen angelehnt an die bekannte Karten-Optik.
  • Doppelklick auf einen Charakter öffnet eine Paperdoll: Ausrüstung als
    Puppenlayout (Helm, Waffen, Rüstung, Ringe, Gürtel, Handschuhe, Stiefel,
    Flaschen, ggf. Waffentausch-Set/Trinket) statt flacher Tabellenzeilen,
    inklusive Liste der Jewels im Passiv-Baum. Klick auf einen Slot zeigt das
    Item im Detail-Panel.
  • Item-Tabelle startet jetzt voreingestellt aufsteigend nach Wert sortiert
    statt in roher API-Reihenfolge — Items mit unbekanntem oder geringem
    Preis ("wahrscheinlich Schrott") gruppieren sich dadurch von selbst oben.
    Ein Klick auf eine andere Spalte überschreibt die Voreinstellung wie
    jede normale Sortierung.
  • Rate-Limit-Dashboard: jede Regel zeigt jetzt zusätzlich eine grobe
    Schätzung, wann der Zähler das nächste Mal sinkt ("12/30 · 300 s · next
    in 2:19", immer mit "" — GGGs Zähler sinkt blockweise statt gleitend
    pro Treffer, sobald zwei Absenkungen beobachtet wurden, ist ihr
    ungefährer Rhythmus gelernt). Kurz nach dem Start kann bauartbedingt
    minutenlang nichts sinken — ohne diese Angabe sah der stillstehende
    Zähler wie ein Hänger aus.
  • "Load All Tabs" zeigt im Fortschrittsdialog einen Sekunden-Countdown bis
    zum nächsten Abruf ("Next tab in 8s") und, falls das Rate-Limit gerade
    bremst, dessen Restzeit statt scheinbaren Stillstands. Zusätzlich springt
    der Stash-Baum jeweils auf das gerade abgerufene Fach und klappt es auf.
  • Neuer Refresh-Modus Pause: keinerlei Hintergrund-Anfragen. Manuelle
    Klicks, die ⟳-Buttons im Baum und "Load All Tabs" funktionieren
    unverändert und bekommen das volle Rate-Limit-Budget.
  • Log: jede Rate-Limit-Antwort schreibt jetzt zusätzlich eine Zeile mit den
    rohen X-Rate-Limit-Werten je Regel plus dem gelernten Absenkungs-Takt.
    Diese Rohdaten haben belegt, dass GGGs Zähler blockweise statt gleitend
    sinkt, siehe FALLSTRICKE_UND_WORKAROUNDS.md #45.
  • Preis-Anzeige über poe.ninja: neue Value-Spalte in der Item-Tabelle
    (Chaos-Wert × Stack, Anzeige in Chaos oder Divine je nach Höhe) sowie
    Gesamtwert der sichtbaren Items in der Statuszeile. Umfasst Currency,
    Fragmente, Uniques (inkl. 5-/6-Link-Preise), Gems (exakt nach
    Level/Qualität/Corrupted), Divination Cards, Scarabs, Essences, Fossils
    u. a. — bewusst ohne Rare-Item-Basispreise. Unbekannte Preise bleiben
    leer statt 0; Items unter einem Chaos werden dezent abgeblendet. Preise
    werden pro Liga bis zu 6 Stunden gecacht.
  • Item.sockets/Item.max_links im Datenmodell (Grundlage der
    Link-genauen Unique-Preis-Zuordnung).
  • Neue Base-Spalte in der Item-Tabelle (item.baseType, z. B. "Sun
    Plate", "Crimson Jewel") — anders als Name bei Uniques/Rares immer die
    reine Item-Basis statt eines Fantasienamens.
  • Item-Detail-Panel zeigt jetzt Itemlevel, Charakter-Levelanforderung und
    Attributs-Anforderungen (Str/Dex/Int) sowie eine "Unidentified"-Markierung
    für unidentifizierte Items (neben "Corrupted").
  • Regex-Suche (Umschalter ".*" neben dem Suchfeld, standardmäßig an):
    Die Suche versteht jetzt reguläre Ausdrücke wie PoEs eigene Truhensuche.
    Sockets stehen dafür in derselben Schreibweise im Suchindex wie im Spiel
    ("R-R-G"), sodass auf poe.re zusammengeklickte Muster unverändert
    funktionieren — etwa r-r-g|r-g-r|g-r-r für einen 3-Link mit zwei roten
    und einem grünen Socket oder (-\w){5} für 6-Links. Ein unfertiges
    Muster fällt still auf die normale Textsuche zurück.