Skip to content

Latest commit

 

History

History
533 lines (439 loc) · 24 KB

CHANGELOG.md

File metadata and controls

533 lines (439 loc) · 24 KB

Changelog

9.0.0+tibiash.7

  • Read loot ranges with commas as thousands separators, like 1,000-2,000, as 1000 to 2000 instead of 0 to 2. This covers creature loot and the Loot Statistics pages. A Loot Statistics entry like Gold Coin, times:1,234, amount:1,000-2,000 keeps 1,234 and 1,000-2,000 whole, and an entry whose times has no number is skipped instead of stopping the task. Neither side of a range has a sign, as before, and 1,0002-3 still reads as 2 to 3. No current value changes.
  • Read a currency linked with a leading colon, like [[:Gold Token]], as Gold Token instead of :Gold Token, in item.value_buy_currency and mount.price_currency. Colon links to files, images and categories are still skipped. No current value changes.
  • Keep the Loot Statistics task running past a bad page. An entry without times is skipped, and a page whose kills is 0, missing or not a number gets no drop rows, since no chance can be computed. Before, each of these stopped the task for every later page. A page with negative kills also gets no drop rows, and an entry with negative times is skipped, instead of replacing a drop with a negative chance. No current value changes.

9.0.0+tibiash.6

  • Read numbers with commas as thousands separators, like 50,000, as the whole number instead of the digits before the first comma. This fixes creature hitpoints and experience, item value_buy and value_sell, outfit full_price and other quantities. A comma not followed by exactly three digits still ends the number, and an ID list like itemid = 629,630,631 or mount_id = 421,437,438,747 still gives its first ID. A creature's max damage without a {{Max Damage}} template reads 1,300+ as 1300, and a range like 600-1000? by its larger number.
  • Keep the first number of every ID field, like the client IDs, so achievementid = 12,345 gives 12, not 12345. This covers house.house_id, achievement.achievement_id, world.world_board, world.trade_board, game_update.news_id and item_key.number. No current value changes.
  • Add the item.value_buy_currency column. It holds the article's pricecurrency, otherwise a currency written after the price in npcprice, like 50 [[Gold Token]]s, otherwise Gold Coin, and NULL when value_buy is NULL or 0. A linked currency gives the page it links to, so [[Silver Token]]s gives Silver Token, and mount.price_currency now reads links the same way. 25 Years Backpack's price of 7197 is now in Theons, not gold.

9.0.0+tibiash.5

  • Store spell.effect, spell.spell_type, spell.group_spell, spell.level and spell.cooldown as NULL when a spell's article has no such field, and spell.cooldown as NULL when it is not a whole number of seconds, like 1-2s, instead of dropping the spell. A spell with no mana field gets 0, which means special conditions apply. Force Strike, Broadcast, Poison Storm, Undead Legion, Sniper, Second Wind and Ultimate Explosion are now kept.
  • Read a charm's three costs split by commas, like 800, 1200, 4000, when its cost field has no slash, instead of dropping the charm. Low Blow is now kept.
  • Store npc.city as NULL when an NPC's article has no city field, instead of dropping the NPC. Such an NPC's travel legs start where a From [[Place]] note or a shuttle names, and otherwise have a NULL origin. A Blue Stone is now kept.
  • Store achievement.name and achievement.description as NULL when an achievement's article has no such field, instead of dropping the achievement. achievement.description is now nullable. Achievement 563 is now kept.
  • Add the mount.price_currency column. It holds the article's pricecurrency, otherwise Tournament Coins for a tournament mount, otherwise Tibia Coins, and NULL when the mount has no price. Landsailer's price of 140 is now in Event Points, not Tibia Coins.

9.0.0+tibiash.4

  • Store version as NULL in game_update, house, outfit and mount when an article has no implemented field, instead of dropping the article. A misspelled field like implementation is not read, as the wiki does not show it.
  • Store mount.taming_method as NULL when a mount's article has no taming_method field, instead of dropping the mount. Landsailer is now kept.

9.0.0+tibiash.3

  • Drop everything after an unclosed <!-- in creature.race_id, outfit.male_client_id, outfit.female_client_id and mount.client_id, as MediaWiki hides it. A value like <!-- 51952 is now stored as NULL.
  • List up to 100 issues in the upstream check, and fail when the list reaches that limit. A cut-short list could miss the "Upstream has new commits" issue and open a second one.
  • Ship CHANGELOG.md in the sdist, which named a CHANGELOG.rst that does not exist, and leave out the upstream check's test, which tests CI tooling the sdist does not ship.

9.0.0+tibiash.2

  • Start each leg of a shuttle NPC at the other leg's destination when no From [[Place]] note names the start. An NPC is a shuttle when it has exactly two positions and exactly two destinations, and each position matches exactly one destination by city, subarea or geolabel, ignoring case, each destination by a different position. Harlow's and Tarak's legs now start at the other end of their route.
  • Add creature.race_id, the client race ID of a creature: the first integer in the race_id field of its article, or NULL when there is none.
  • Ignore wiki comments in creature.race_id, outfit.male_client_id, outfit.female_client_id and mount.client_id. A value that is only a comment, like <!-- objectID: 51952-->, is stored as NULL.
  • Add a weekly upstream check. A scheduled workflow compares Galarzaa90/tibiawiki-sql with our main. When upstream has commits our main lacks, it opens, updates or reopens one "Upstream has new commits" issue that lists them. When there are none, it closes that issue.

9.0.0+tibiash.1

  • Add the npc_location table with every position of an NPC, numbered 1 to 7. Each position has its city, subarea, geolabel and x, y and z coordinates.
  • Add npc_destination.origin, the place where each travel leg starts. It comes from a note that is only a From [[Place]] link. Without one, it is the NPC's city if the NPC has a position in that city whose city, subarea and geolabel all differ from the destination, ignoring case. Otherwise it is NULL.
  • Add the item attributes restores_hp_min, restores_hp_max, restores_mana_min and restores_mana_max, parsed from the restores between A and B Hit Points, and between C and D Mana Points sentence in an item's notes.
  • Add outfit.male_client_id, outfit.female_client_id and mount.client_id, the client IDs (look types) of outfits and mounts.
  • Store a missing or malformed client ID or npc_location coordinate as NULL. The existing npc.x and npc.y keep upstream's behaviour.

9.0.0 (2026-07-22)

  • Fix NPC offers with thousand separators not being parsed properly (e.g. NPC Coco)
  • Creature.mitigation is now a float.
  • Also consider Category:Unavailable when skipping deprecated articles.
  • Charm.cost replaced by cost_level_1, cost_level_2 and cost_level_3 for each charm's level.
  • Renamed many item attributes (item_attribute) for more clarity:
    • level -> required_level
    • vocation -> required_vocation
    • attack+ -> attack_extra
    • imbue_slots -> imbuement_slots
    • hit%+ -> hit_chance_extra
    • magic -> magic_level
    • magic_level -> required_magic_level
    • critical_chance -> critical_hit_extra_chance
    • critical% -> critical_hit_extra_damage
    • hpleech_chance -> hp_leech_chance
    • hpleech% -> hp_leech_amount
    • manaleech_chance -> mana_leech_chance
    • manaleech% -> mana_leech_amount
    • fire_attack -> attack_fire
    • energy_attack -> attack_energy
    • ice_attack -> attack_ice
    • earth_attack -> attack_earth
    • death_attack -> attack_death
    • physical% -> resistance_physical
    • earth% -> resistance_earth
    • fire% -> resistance_fire
    • energy% -> resistance_energy
    • ice% -> resistance_ice
    • holy% -> resistance_holy
    • death% -> resistance_death
    • drowning% -> resistance_drowning
    • death_magic_level -> magic_level_death
    • earth_magic_level -> magic_level_earth
    • energy_magic_level -> magic_level_energy
    • fire_magic_level -> magic_level_fire
    • healing_magic_level -> magic_level_healing
    • holy_magic_level -> magic_level_holy
    • ice_magic_level -> magic_level_ice
  • Parse additional item attributes:
    • hit_chance
    • mantra
    • base_power
    • wrappable
    • cooldown

8.2.0 (2026-07-14)

  • Add -I/--include-deprecated-images argument to download images from deprecated entities even when skipping them.

8.1.0 (2026-07-11)

  • Add spell base power (base_power) to parser, schema and models.

8.0.1 (2026-06-16)

  • Add support for new NPC transport template.
  • Add support for new update date format.
  • Add argument to print parsing errors to file.

8.0.0 (2026-02-21)

  • Spell changes
    • Remove npc_spell table.
    • Remove spell teacher relations from API models (Npc.teaches, Spell.taught_by).
    • Remove spell purchase price (spell.price) from parser, schema and models.
    • Remove spell-offer generation from Module:ItemPrices/spelldata.
  • Creature changes
    • Fix elemental modifier mapping: energyDmgMod now maps to modifier_energy and iceDmgMod to modifier_ice.
  • Item changes
    • Add missing item infobox mapping for death_attack.
    • Add weapon proficiency perks.
    • Add proficiency_perks to Item (stored in item_proficiency_perk).

7.0.3 (2025-07-28)

  • Fix SQL generation not working on Docker due to not having the CONCAT SQLite extension.

7.0.2 (2025-06-09)

  • Fix key's item_id not being saved correctly.

7.0.1 (2025-05-19)

  • Add vocation and elemental_bond to item attributes.

7.0.0 (2025-05-17)

  • WikiClient is no longer a "static class", an instance must now be created in order to better reuse HTTP sessions.
  • General model changes:
    • All timestamp properties are now datetime.datetime objects. Their database counterparts are IS08601 strings.
    • Added many model classes that simplify the data displayed.
  • Achievement changes
    • Spoiler properly handles quest links.
    • Rename spoiler to is_spoiler.
    • Rename premium to is_premium.
    • Links now cleaned from description.
  • Spell changes
    • Added monk attribute.
    • Rename type to spell_type
    • Added cooldown2 and cooldown3 for reduced cooldowns by the Wheel of Destiny.
    • Rename premium to is_premium.
    • Rename promotion to is_promotion.
    • Added is_wheel_spell attribute.
    • Added is_passive attribute.
  • Item changes
    • Added is_immobile attribute.
    • Rename promotion to is_promotion.
    • Added parseable attributes:
      • is_rotatable
      • augments
    • Renamed attributes:
      • hangable to is_hangable.
      • writable to is_writable.
      • rewritable to is_rewritable.
      • consumable to is_consumable.
      • unshootable to blocks_projectiles.
      • walkable to is_walkable.
  • Creature changes
    • Added mitigation attribute.
    • Added spawn_type attribute.
    • Added cooldown attribute.
    • Renamed boss to is_boss.
  • Quest changes
    • Added missing premium attribute, renamed to is_premium
    • Renamed rookgaard to is_rookgaard_quest.
  • House changes
    • Renamed guildhall to is_guildhall
  • Outfit changes
    • Renamed type to outfit_type.
    • Renamed premium to is_premium.
    • Renamed bought to is_bought.
    • Renamed tournament to is_tournament.
  • World changes
    • online_since, offline_since and protected_since are now datetime.date objects.
    • Renamed experimental to is_experimental.
    • Renamed preview to is_preview.
    • Renamed experimental to is_experimental.
  • Mount changes:
    • Renamed buyable to is_buyable.
  • Update changes:
    • Renamed date to release_date.

6.2.1 (2024-06-27)

  • Fix database generation failing due to invalid date format.

6.2.0 (2022-07-23)

  • Added bosstiary_class to creatures.
  • NPC Offers are read from the ItemPrices data list.
  • NPC Spell offers are read from the ItemPrices spell list.
  • Performance improvements.

6.1.0 (2022-01-04)

  • Added upgrade_classification to item attributes.
  • Fixed empty creature and item sounds being saved.
  • Fixed empty creature abilities being saved.
  • Marked more SQLite columns as NOT NULL.

6.0.2 (2021-09-10)

  • Fixed spell effects including file names.

6.0.1 (2021-08-18)

  • Fixed some creature drops not being parsed properly, resulting in incomplete data.

6.0.0 (2021-08-17)

  • Books are now parsed.
  • Changes to creature's max damage and abilities parsing:
    • Added creature_max_damage and creature_ability tables to parse more detailed information about creature's max damage and abilities.
    • Added the respective classes CreatureMaxDamage and CreatureAbility.
    • Removed max_damage and abilities columns from creature table.
    • Creature class attributes max_damage and abilities were updated to new types.
  • Added achievement_id column and attribute to achievement table and Achievement class respectively.
  • Changes to NPC jobs and races.
    • Jobs and races are now stored on a separate table as there are usually multiple entries per NPC.
    • Removed job and job_additionals columns and attributes from npc table and Npc class respectively.
    • Replaced jobs property on Npc model with an attribute.
    • Removed race column and attribute from npc table and Npc class respectively.
    • Added races attribute with the list of races of the NPC.
    • Added job
  • Item's store information is now parsed.
    • Added item_store_offer table and ItemStoreOffer class.
    • Added store_offers attribute to Item class.
  • Renamed type attributes and columns to more specific names to avoid conflict with Python's builtin type function.
    • Renamed to item_type in item table and Item class.
    • Renamed to creature_type in creature table and Creature class.
  • Parsing relies more on mwparserfromhell and less on regular expressions.
  • TibiaWiki merged items into "objects" (non pickupable). So now the item table will contain a lot more records.
    • More attributes related to "objects" are now added to the item_attribute table.
  • Added support for attributes added in the Summer Update 2020 and some other missing attributes.

5.0.1 (2021-05-17)

  • Fixed wrong attribute definition for Spell model.

5.0.0 (2021-05-17)

  • Added Updates model and game_update table.
  • Added infobox_attributes to WikiEntry class to easily extract any infobox attribute.
  • Added missing premium attribute to Achievement model. Column was already saved.
  • Added battleye_type class and column to World model and world table.
  • Added library_race, runs_at, modifier_healing, and location to Creature model and creature table.
  • Added slots class and column to Imbuement model and imbuement table.
  • Added group_secondary, group_rune, premium, promotion, cooldown_group, and cooldown_group_secondary attributes and columns to Spell class and spell table.
  • Added job_additionals to Npc model and npc table.
  • Breaking change: Renamed classz column to group_spell in spell table.

4.1.2 (2021-04-16)

  • Added missing bestiary_kills and charm_points values for creatures in the Challenging class.

4.1.1 (2021-03-11)

  • Added missing version attribute to Spell.

4.1.0 (2021-01-18)

  • Improved image cache, the timestamp of images are now saved and checked on subsequent calls.
  • By default, all articles are parsed, including deprecated, they can be skipped using --skip-deprecated.
  • Added status column and field to main tables and models. Indicates the status of the entity (active, deprecated, event, ts-only).
  • Fixed Worlds not being parsed due to the corresponding category being renamed on TibiaWiki.

4.0.1 (2020-11-23)

  • Updated API to consider the changes on Fandom's API for pagination.

4.0.0 (2019-12-13)

  • Fixed database generation failing for images with redirects
  • Added indexes to various columns and various tables, this should increase search performance.
  • Made title and name columns case insensitive.
  • Added location column to House class and house table.
  • Added Outfit class and outfit table.
    • Added OutfitImage class and outfit_image table since outfits have multiple images.
    • Added OutfitQuest class and outfit_quest table for quests required for outfits or its addons.
  • Added type_secondary column and field to item and creature tables and Item and Creature classes.
  • Added look_text property to Item, renders the item's look text.
  • Added reistances property to Item, gets a dictionary of the item's resistances.
  • Breaking change: Renamed class columns and fields in item table and Item class to item_class.
  • Breaking change: Renamed class columns and fields in creature table and Creature class to creature_class.

3.0.1 (2019-05-16)

  • Item.attribute_dict returns empty dictionary instead of None if Item.attributes is empty.

3.0.0 (2019-05-15)

  • Charms are now read from their TibiaWiki articles instead of a static json file.
  • Charm class and charm table changes:
    • Added article_id, title, timestamp and version
    • Renamed description to effect.
  • New creature_sound and item_sound, containing "sounds" made by creatures and items respectively.
  • Creature class and creature table changes:
    • Added push_objects.
    • Added sounds to class.
  • Quest class and quest table changes:
    • Added rookgaard, type, quest_log, active_time and estimated_time.
  • Item class and itemtable changes:
    • Added marketable, pickupable, light_color and light_radius,
    • Added sounds to class.
  • New tracked attributes in item_attribute
    • destructible
    • holds_liquid
    • writeable
    • rewriteable
    • consumable
    • writable_chars

2.2.0 (2019-05-03)

  • New table mount, containing all mounts and their information.
  • Fixed incorrect potions entries due to NPC Minzy.

2.1.1 (2019-03-25)

  • Fixed physical and earth modifiers not showing up in weak_to, immune_to and resistant_to Creature properties.
  • Fixed incorrect weak_to property.
  • Fixed missing modifier_hpdrain Creature attribute.

2.1.0 (2019-03-19)

  • elemental_attack Item Attribute split into fire_attack, ice_attack, energy_attack and earth_attack to reflect changes in TibiaWiki's template.
  • Added bestiary_kills and charm_points properties to Creature.
  • Added elemental_modifiers, weak_to, immune_to and resistant_to properties to Creature.
  • New table world and model World. Contains information of Game worlds, including now offline worlds.

2.0.2 (2019-01-14)

  • Elemental protection and required vocation item attributes were not getting set.

2.0.1 (2018-11-26)

  • Fixed imbuement materials not getting saved in the database.

2.0.0 (2018-11-22)

  • New model classes, to unify the generation process.
  • Live fetching is now possible, obtain data directly from the Wiki.
  • Database generation now shows progress bars and time estimates.
  • The database schema is now generated dynamically.
  • The database structure has changed:
    • Renamed tables:
      • achievements -> achievement
      • creatures -> creature
      • creatures_drops -> creature_drop
      • houses - house
      • imbuements -> imbuement
      • imbuements_materials -> imbuement_material
      • items -> item
      • items_attributes -> item_attribute
      • npcs -> npc
      • npcs_buying -> npc_offer_buy
      • npcs_selling -> npc_offer_sell
      • npcs_destinations -> npc_destination
      • npcs_spells -> npc_spell
      • quests -> quest
      • quests_dangers -> quest_danger
      • quests_rewards -> quest_reward
      • rashid_positions -> rashid_position
      • spells -> spell
    • Renamed columns:
      • All tables:
        • id -> article_id
        • last_edit -> timestamp
      • Table: creature:
        • summon -> summon_cost
        • convince -> convince_cost
        • occurrence -> bestiary_occurrence
        • see_invisible -> sees_invisible
        • walkthrough -> walks_through
        • walksaround -> walks_around
        • All element columns now have modifier at the beginning (e.g. phyisical -> modifier_phyisical)
      • Table: item
        • value -> value_sell
        • price -> value_buy
      • id -> house_id in table house
      • attribute -> value in table item_attribute
      • destination -> name in table npc_destination
    • Added columns:
      • title in all tables, except child tables and charm, rashid_position and map:
      • client_id in table item
      • location in npc and rashid_position tables.
      • effect in table spell.
    • Removed columns:
      • day_name from rashid_position

1.2.0 (2018-10-16)

  • New charm table, contains information about all charms.

1.1.1 (2018-09-23)

  • Improved parsing of walksaround and walksthrough

1.1.0 (2018-09-22)

  • Added new columns to creatures table:

    • walksaround
    • walksthrough

1.0.1 (2018-07-02)

  • Fixed bug caused when a category had a number of articles that was exactly a multiple of 50.

1.0.0 (2018-07-01)

  • id is now TibiaWiki’s article id for the element, making them more reliable than autoincremented ids.

  • Fixed bug with potion’s prices.

  • Fixed bug with paralysable being inverted.

  • New tables imbuements and imbuements_materials.

  • Unknown creature attributes are no longer parsed as False, but None.

  • New columns in creatures table:

    • bestiary_class
    • bestiary_level
    • occurrence
    • armor
    • speed

0.3.0 (2017-12-18)

  • New items_keys table, contains key numbers with their uses and locations.
  • New rashid_positions database, contains Rashid’s coordinates for each weekday.
  • Added article, class and type to creatures table.
  • Added article, class and client_id to items table.
  • Added last_edit column to most tables.

0.2.0 (2017-11-14)

  • Improved the parsing of all data tables, resulting in more consistency in values, less empty strings (not NULL) and better handling of default values.
  • New database_info table, it contains two rows, “version” and “generated_date”, containing the script vused and the date the database was generated respectively.
  • Added a new currency column to npcs_buying and npcs_selling, it contains the id of the item used as currency for that transaction (e.g. gold coins, gold tokens, silver tokens, etc).
  • Better parsing for item npc offers, a lot more offers are saved now, including item trades (e.g. 1 fighting spirit for 2 royal helmets).
  • More item attributes are saved to item_attributes.

0.1.1 (2017-11-12)

  • Better attribute parsing, this means values should me more consistent and there are no entries without the name column
  • No changes were made to the schema.

0.1.0 (2017-11-09)

  • Creatures table, with all their attributes, including a separate table for all their loot.
  • Loot drop percentage are calculated from loot statistics
  • Item table, with their basic attributes, and their separate attributes on a separate table
  • NPCs table with their information, including spawn location.
  • NPCs sell and buy offers
  • Achievements, with their spoiler info
  • Quests basic infor