Skip to content

Open WoW Forever /played imports - #26

Merged
Lucrona merged 2 commits into
wow-playedfrom
cursor/wow-forever-imports-4791
Nov 10, 2026
Merged

Lucrona merged 2 commits into
wow-playedfrom
cursor/wow-forever-imports-4791

Conversation

@Lucrona

@Lucrona Lucrona commented Nov 9, 2026 •

Copy link
Copy Markdown
Owner

Do not merge yet. PR 24 stays the parked design reference.

Forever /played can be uploaded from the addon file. Retail uploads keep their current checks. An accepted Forever upload writes an imported total the same way Retail does, on wow_forever only. It does not write Retail or wow_forever_beta.

Shown hours, for both games, are the higher of app-tracked time and the latest imported total plus menu time /played missed (carry_min) plus tracked play after that snapshot. Lifetime tracked time and lifetime /played are not added together. A duplicate Forever snapshot does not add another total. A lower total is rejected and the stored value stays. Beta and ambiguous files stay quarantined.

The addon is 1.1.0. Retail still uses realm, name, and signature version 1 files. A Forever client records WOW_PROJECT_ID, the build, and whether IsBetaBuild, IsPublicTestClient, or IsTestBuild could be asked. Live Forever is project 18, those APIs present, and all of them false, with a first name and a surname and no realm. A beta/test client, or a project 18 client whose beta APIs are missing, is quarantined. Interface 16001 is not treated as proof. _Forever.toc and _Camelot.toc are Interface 16001.

The website Forever radio is on. A Retail-shaped file sent as Forever is quarantined and creates no character. A new surname is a second character; the old row stays. Hiding and showing the row does not change /played. Forever characters are not verified, but an accepted one still counts in the Forever imported total. BNET_FOREVER_ACCOUNT and BNET_FOREVER_LOOKUP are off. Turning lookup on later uses profile-forever-{region} and /profile/wow/character/{first}-{surname}, keeps the last good profile fields, and does not delete a character or any hours on a miss.

An older imported row with empty inputs no longer makes the total crash.

Migration 0056_wow_forever_imports.sql adds nullable columns on wow_characters (flavour, project_id, client_build, first_name, surname) and creates empty wow_played_quarantine. Existing rows are not updated or deleted. There is no change to sessions or steam_playtime.

No Battle.net credentials were available here, so these calls were not made. Before either flag is turned on, the deploy worker should record, from this server, the HTTP status and JSON shape of:

  • GET https://{region}.api.blizzard.com/data/wow/ruleset/index?namespace=static-forever-{region}
  • GET https://{region}.api.blizzard.com/profile/wow/character/{first}-{surname}?namespace=profile-forever-{region}&locale=en_US for one public Forever character
  • GET https://{region}.api.blizzard.com/profile/user/wow?namespace=profile-forever-{region}&locale=en_US with a user token that has wow.profile

Leave both flags off until those responses show the expected namespace and a first-surname character. Live addon QA still needs a Forever client in game.

The compact public profile panel is not in this pull request.

Checks before this push: cargo fmt --all, cargo clippy --workspace --all-targets -- -D warnings, and cargo test --workspace passed. Head 4af682d. No installer was built.

Open in Web Open in Cursor 

cursoragent and others added 2 commits November 9, 2026 20:20
The addon records Forever as first name and surname, and quarantines a beta or unconfirmed client instead of guessing. The server stores those characters without writing an imported game total, so tracked Forever sessions are not added to /played.

Co-authored-by: Lucrona <Lucrona@users.noreply.github.com>
Accepted Forever characters count on wow_forever only. Display still keeps the higher of tracked time and the imported total plus play after the snapshot, so the two lifetimes are not added. An older import row with no stored inputs no longer fails the total.

Co-authored-by: Lucrona <Lucrona@users.noreply.github.com>
@Lucrona
Lucrona merged commit af62443 into wow-played Nov 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants