Automate pulling data from wow.tools
Molkree opened this issue ยท 11 comments
When there's a new WoW build we can automatically update some stuff in ATT repo.
- Check and update
GlobalStrings
(wow.tools table). Until now, I've been taking it manually from townlong-yak but it seems to be down, possibly forever. Note that wow.tools has a somewhat different version which is curious. Maybe it has something to do withFlags
field in the wow.tools table? - Check
ItemSparse
andItem
tables:- Bump
MaxItemID.txt
file for future harvests. - Add all new items to some list for easier inspection. This one is harder because we'll need to check diffs (against the build in
LAST_EXPANSION_PATCH
inParser/Framework/Framework.cs
). Should also note item renames (which happens a lot during PTR) but is not a big deal.
- Bump
- Check
QuestV2CliTask
andQuestV2
for new Quests.QuestV2CliTask
only has some quests because its only "Task" quests, meaning world quests and bonus objectives, location bound stuff. Same as items above:- Bump
MaxQuestID.txt
. - Add to
MissingQuests.lua
when the questID is missing in either the form ofq(questID
orquestID=questID
inCategories.lua
.
- Bump
- Check
Achievement
for new Achievements.- Add to
MissingAchievements.lua
when the achievementID is missing in the form ofach(achievementID
inCategories.lua
.
- Add to
- Check
Factions
for new Factions.- Add to
MissingFactions.lua
- Add to
- Check
TaxiNodes
for new Flight Paths.- Add to
MissingFlightPaths.lua
- Add to
- Check
GarrFollower
for new Followers.- Add to
MissingFollowers.lua
when the followerID is missing in the form offollower(followerID
inCategories.lua
.
- Add to
- Check
TransmogIllusion
for new Illusions.- Add to
MissingIllusions.lua
- Add to
- Check
Mount
for new Mounts.- Add to
MissingMounts.lua
- Add to
- Check
BattlePetSpecies
for new Pets.- Add to
MissingPets.lua
- Add to
- Check
SkillLine
for new Professions.- Add to
MissingRecipes.lua
- Check
SkillLineAbility
for each SkillLineID/ProfessionID for new Recipes.- Add to
MissingRecipes.lua
(Note: Make sure the ProfessionID is attached, i.e above like builds).
- Add to
- Add to
- Check
ItemModifiedAppearance
for new sourceIDs.- Add to
MissingSourceIDs.lua
when the sourceID is missing in the form ofs(sourceID
inCategories.lua
.
- Add to
- Check
CharTitles
for new Titles.- Add to
MissingTitles.lua
when the titleID (we want MaskID) is missing in the form oftitle(titleID
inCategories.lua
.
- Add to
- Check
Toy
for new Toys.- Add to
MissingToys.lua
when the itemID is missing in the form ofi(itemID
inCategories.lua
and in form ofi(itemID)
inToyDB.lua
.
- Add to
- Bump WoW build in Parser.
- Add an option to pull everything within an interval (or at least the current build/everything option).
- Add an option to exclude IDs.
- Make raw files that are not touched to not generate unecessary data everytime
- Add a sleep timer to not slow down servers for others
Ideally these will be a bunch of short scripts that could be run with a main one. Should be possible to easily add to GitHub Actions as well so you only have to run the job and get a pull request with all changes later.
I would like to have a better way of editing data in general that the Parser utilizes without needing to rebuild the Parser itself. So hopefully can have like a JSON file that gets read by the Parser and uses that data for whatever function.
This would include the different build versions of each game version, so it could be updated and used for Parsing by anyone at any time rather than needing "someone" to have to rebuild and commit the actual Parser itself.
Why QuestV2CliTask? Seems to only be specialized quests. I recommend we change it to QuestV2. Why Item Sparse instead of item?
Why QuestV2CliTask? Seems to only be specialized quests. I recommend we change it to QuestV2.
Because QuestV2CliTask
has names. I haven't noticed that it has fewer quests, we can use both.
Why Item Sparse instead of item?
Same reason, only picked that one because it has names. We can use both.
- when the questID is missing in either the form of
q(questID
orquestID=questID
inCategories.lua
Why are there two different forms? What is this second one?
- Add an option to pull everything within an interval (or at least the current build/everything option).
Can you be more specific? What does everything mean in this case? I suppose interval here means between two builds?
Why are all MissingThings.lua
files inside the 00 - Item Database
folder? It doesn't make sense, they are not all items.
- when the questID is missing in either the form of
q(questID
orquestID=questID
inCategories.lua
Why are there two different forms? What is this second one?
questID=### would happen if an Item/NPC is directly marked as a quest. Though we are trying to get away from that format and use provider of the Item on the Quest as an actual group. Npcs tagged with Quests will remain.
Why are all
MissingThings.lua
files inside the00 - Item Database
folder? It doesn't make sense, they are not all items.
Maybe Item Database
should be renamed to Conditional Data
or something that doesn't imply all content relates to Items specifically. Rather than adding a $$$ Database
folder for each type of thing.