User:ArtificerBot
A bot used by User:Ketura for mass-updating card data across the wiki. View my source code here!
TODO List[edit]
Status | Feature |
---|---|
Complete | download and catalog official API definitions |
Complete | download all official full card images |
|
add config setting for converting official card images to jpg |
Complete | Rework card download to save both *.png and *.jpg |
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. |
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 |
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]
Property | Origin | Notes |
---|---|---|
Name | name | |
ID | API: set_id | |
MarketOffset | API: pack_item_def | |
ReleaseDate | (Manual) |
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 |
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 |
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 |
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. |
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. |
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 |