User:ArtificerBot

From Artifact Wiki
Jump to: navigation, search

A bot used by User:Ketura for mass-updating card data across the wiki. View my source code here!

TODO List[edit]

Valve API
Status Feature
Complete download and catalog official API definitions
Complete download all official full card images
Skipped add config setting for converting official card images to jpg
Complete Rework card download to save both *.png and *.jpg


Game Files Extraction
Status Feature
Complete add function for extracting background art
Complete Rework card art extraction to save both *.png and *.jpg
Complete add autocropping logic for image extraction
Complete add function to read all lore, VO, and card text game files and merge them with official API values into a single cohesive model
Complete create card ID to truncated_underscore_card_name mapping (for voiceover data).
Complete create series of filters for text that will translate artifact's internal formatting markup into both "plain text markup" and mediawiki markup syntax.
Complete Add search terms to isolate specific keyword terms in game text.
Complete add function for extracting voiceover lines to *.mp3.


Wiki Interaction
Status Feature
Complete reorganize cargo tables to follow a pseudo-inheritance model (system 2)
Complete build cargo tables based on the model
Complete add function that mass uploads/updates card art/card images to wiki
Complete extend upload function to upload voiceover *.mp3 files.
Complete add function to read all card articles and output their current state for comparison
Complete add function to revert mass updates.
Complete add function that generates object definitions from card definitions
Complete Add function to convert object definitions to card articles
Complete Add function to output generated articles to disk for comparison
Complete Add function to parse existing articles to a programmatic form
Complete Add function to merge object definition with existing card article
Complete Add function to mass re-generate cargo cache on all pages
Complete add function that overwrites card articles with latest object definitions
Complete Add function to mass purge all card pages


Miscellaneous
Status Feature
Incomplete convert the Valve API code to use the ArtifactAPI library
Complete add set configuration so all functions can be limited to only using a given set or specific list of cards--default to "ALL"


Database Migration[edit]

Sets
Property Origin Notes
Name name
ID API: set_id
MarketOffset API: pack_item_def
ReleaseDate (Manual)


Cards
Property Origin Notes
ID API:card_id
BaseID API:base_card_id This is possibly a globally unique ID as opposed to a set-scope-unique ID, but it's impossible to tell until another expansion comes out.
MarketplaceID API:item_def Uses the set's MarketplaceOffset + base_card_id.
Name API:card_name
SetID API:set_id
CardType API:card_type Hero, Creep, Improvement, Spell, Item, Stronghold, Pathing, Ability, PassiveAbility
SubType API:sub_type Only currently relevant for Items. None, Consumable, Weapon, Armor, Accessory, Deed
Rarity API:rarity Basic, Common, Uncommon, Rare
Color API:is_black, is_blue, is_green, is_red API uses one of four flags, presumably to allow for multi-colored cards in the future. If they ever take advantage of this, we'll have to make GreenRed, BlueBlack, etc colors instead. Black, Blue, Green, Red.
Abilities API:references Comma-separated string list of abilities
TokenOf references The parent card that this card is spawned from. Indicates this is spawned by another card and not played directly.
SignatureOf references The parent hero that this card is a signature of.
IsCollectable API:item_def Can actually be put into a deck. False for hero Signature Cards, Abilities, Melee Creeps, Direction Cards, etc.
Text API:card_text / game files A plain text version of the card's text. The API can't fully be used here, as all symbols (such as Pulse) are stripped out; this will include such symbols using symbols (@) or tags ([Pulse]).
TextRaw game files A direct representation of how Artifact stores the game text.
TextFormatted API:card_text / game files A fully mediawiki-markdown-compatible formatting of the game text, ready to be pasted onto a page template.
CardImage API:set_id, API:card_name, API:card_id, API:language; API:large_image Composite ID that looks like "01_Venomancer_10001_card_default.jpg", which is a file hosted on the wiki. Pulled from the API.
CardImageRaw API:set_id, API:card_name, API:card_id, API:language; game files Composite ID that looks like "01_Venomancer_10001_cardraw_default.jpg", which is a file hosted on the wiki. The background image pulled from the game files.
CardIcon API:set_id, API:card_name, API:card_id, API:language; API:mini_image Composite ID that looks like "01_Venomancer_10001_icon_default.jpg", which is a file hosted on the wiki. Pulled from the API, except for Abilities which are missing (for Abilities, this is the same as the theoretical CardIconRaw, which is not provided).
Illustrator API:illustrator
VoiceActor (Manual) Unless this can be found in the game files.
Lore Game Files
LoreFormatted Game Files A wiki-friendly formatting of the lore string.
Keywords Game Files A comma-separated list of keywords found in this card's game text:
BeforeActionPhase, AfterCombatPhase, Fountain, ModifyAlly, ModifyEnemy, AlliedNeighbors, EnemyNeighbors, Purge, Taunt, Disarm, Stun, Silence, Lock, Condemn, Summon, Mana, Bounty, Gold, Siege, Cleave, Retaliate, Attack, Armor, Health, Regeneration, DeathShield, DamageImmunity, Pierce, PiercingDamage, Damage, Heal, Soulbound, LethalToCreep, LethalToHero, Hacks, Reveal, Pulse, GainsInitiative, RapidDeployment, DeathEffect, PlayEffect, ContinuousEffect, ReactiveEffect


Abilities
Property Origin Notes
ID API:card_id
Name API:card_name
CardID API:references A link to the card that uses this ability.
CardSpawned API:references Refers to the card that this card spawns, such as a summoned Creep.
AbilityType game text Active, Passive
PassiveAbilityType game text None, Continuous, Play, Death, Reactive
Text API:card_text / game files A plain text version of the ability's text. The API can't fully be used here, as all symbols (such as Pulse) are stripped out; this will include such symbols using symbols (@) or tags ([Pulse]).
TextFormatted API:card_text / game files A fully mediawiki-markdown-compatible formatting of the game text, ready to be pasted onto a page template.
AbilityIcon API:set_id, API:card_name, API:card_id, API:language; API:mini_image Composite ID that looks like "01_Venomous_Nature_10491_icon_default.jpg", which is a file hosted on the wiki. Pulled from the game files.
Charges charges
Cooldown parse game file text


Creeps
Property Origin Notes
ID API:card_id
Name API:card_name
ManaCost API:mana_cost
Attack API:attack
Armor API:armor
Health API:hit_points


Heroes
Property Origin Notes
ID API:card_id
Name API:card_name
Attack API:attack
Armor API:armor
Health API:hit_points
SignatureCardID API:references
HeroIcon API:set_id, API:card_name, API:card_id, API:language; API:ingame_image Composite ID that looks like "01_Venomancer_10001_hero_default.jpg", which is a file hosted on the wiki. Pulled from the API.
HeroIconRaw API:set_id, API:card_name, API:card_id, API:language; API:ingame_image Composite ID that looks like "01_Venomancer_10001_heroraw_default.jpg", which is a file hosted on the wiki. Pulled from the game files.


Improvements/Spells
Property Origin Notes
ID API:card_id
Name API:card_name
CardSpawned API:references Refers to the card that this card spawns, such as a summoned Creep.
ManaCost API:mana_cost
Charges API:charges
IsCrosslane API:is_crosslane This may or may not need updated in the future depending on the existence of left- or right-targeting-only cards.


Items
Property Origin Notes
ID API:card_id
Name API:card_name
GoldCost API:gold_cost
Modifiers  ? Comma-separated string list of effects on the equipped unit