Note
Due to this library relying on external content, older versions are not guaranteed to work. Try to always use the latest version.
- Add Ocenia world location.
- Add support for parsing the fansites section.
- Add revealed gems to auction details.
- Fixed get_highscores not handling null values in parameters.
- Fixed house parsing not handing guildhalls properly.
- Fixed houses missing "paid until" date.
- Fixed pypi packaging issue.
- Fixed bazaar filters not being set correctly for some values.
- Fixed transfer recipient not being set in houses.
- Fixed highest bid and time left not being set in houses in the houses section.
- Fix spells not sold in any cities (revelation perks) having a single "cities" entry
none
instead of being empty.
- 🚨 Python 3.7 and below no longer supported.
- All models are now Pydantic models, for better data validation, serialization and deserialization.
- Models no longer contain methods to parse content, these have been moved to dedicated parser classes.
- 🚨 The location of models inside the module changed, so all imports need to be modified.
- Model changes:
Character
:account_status
field replaced withis_premium
.traded
field renamed tois_traded
.deleted
property renamed tois_scheduled_for_deletion
.hidden
property renamed tois_hidden
.
Achievement
:secret
field renamed tois_secret
CharacterHouse
:owner
field removed.status
field removed.type
field removed.paid_until_date
field renamed tppaid_until
.- Removed
owner
,status
andtype
fromCharacterHouse
.
Killer
:- Model name renamed to
DeathParticipant
. player
field renamed tois_player
.traded
field renamed tois_traded
.
- Model name renamed to
Death
:by_player
property renamed tois_by_player
name
field removed.
OtherCharacter
:online
field renamed tois_online
.deleted
field renamed tois_deleted
.traded
field renamed tois_traded
.main
field renamed tois_main
.
WorldEntry
/World
:online
field renamed tois_online
battleye_date
field renamed tobattleye_since
premium_only
field renamed tois_premium_only
experimental
field renamed tois_experimental
battleye_protected
property renamed tois_battleye_protected
OnlineCharacter
:world
field removed.
SpellsSection
:premium
field renamed tois_premium
SpellEntry
/Spell
:premium
field renamed tois_premium
News
/NewsEntry
:category_icon
field removed. Can be accessed throughcategory.big_icon_url
andcategory.small_icon_url
.date
field renamed topublished_on
NewsArchive
:start_date
field renamed tofrom_date
.end_date
field renamed toto_date
.types
field is now of typeset
.categories
field is now of typeset
.
NewsCategory
(enum)- Added
big_icon_url
andsmall_icon_url
properties.
- Added
Leaderboard
:current
field renamed tois_current
.page
field renamed tocurrent_page
.last_update
field removed.- ``last_updated``field added, a datetime of when was the last update.
LeaderboardEntry
:name
field might beNone
if characte is deleted.
Highscores
:.page
field renamed tocurrent_page
.last_updated
field is now adatetime
instead of atimedelta
.
GuildMember
:joined
field renamed tojoined_on
.online
field renamed tois_online
.
GuildInvite
:date
field renamed toinvited_on
.
GuildHouse
:paid_until_date
field renamed tppaid_until
.owner
field removed.world
field removed.status
field removed.type
field removed.
ForumBoard
:threads
field renamed toentries
.page
field renamed tocurrent_page
.section_id
field added.results_count
field added.
ForumThread
:posts
field renamed toentries
.board_id
field added.section_id
field added.results_count
field added.previous_topic_number
may beNone
instead of0
.next_topic_number
may beNone
instead of0
.
LastPost
.date
field renamed toposted_on
.deleted
field renamed tois_author_deleted
.traded
field renamed tois_author_traded
.
CMPostArchive
:start_date
field renamed tofrom_date
end_date
field renamed toto_date
page
field renamed tocurrent_page
posts
field renamed toentries
CMPost
:date
field renamed toposted_on
Auction
renamed toAuctionDetails
and is no longer a subclass ofAuctionEntry
.AuctionEntry
renamed toAuction
.CharacterBazaar
:page
field renamed tocurrent_page
.
BestiaryEntry
:completed
property renamed tois_completed
.
- Renamed
DisplayImage
toItemEntry
. - Renamed
DisplayMount
toMountEntry
. - Renamed
DisplayOutfit
toOutfitEntry
. - Renamed
DisplayFamiliar
toFamiliarEntry
. - Renamed
page
tocurrent_page
,results
toresults_count
, andfully_fetched
tois_fully_fetched
inItemSummary
,Mounts
,Familiars
andOutfits
. - Added
thread_starter_deleted
toThreadEntry
.
- Renamed
Category
toHighscoresCategory
. - Renamed
BattlEyeTypeFilter
toAuctionBattlEyeFilter
. - Renamed
VocationFilter
toHighscoresProfession
. - Renamed
BattlEyeHighscoresFilter
toHighscoresBattlEyeType
. - Renamed
VocationAuctionFilter
toAuctionVocationFilter
. - Renamed
VocationSpellFilter
toSpellVocationFilter
. - Renamed
SkillFilter
toAuctionSkillFilter
. - Added
ForumSection
model and its respective parser, to fetch a list of board entries. - Removed
get_url
class methods from all models, replaced by functions in the urls package. - Fixed
Character
account badges not being parsed properly.
- Added
tier
to items in auctions.
- Fixed Houses section not parsing due to a change in the filters table.
- Fixed status parameter not generating the correct URL in the houses section.
- Adjusted parsing to support the changes related to mobile devices introduced on the day of this release. The following sections were affected:
- Highscores
- News
- Forums
- Spells
- Added
BOSS_POINTS
toCategory
in highscores.
- Added
boss_points
andbosstiary_progress
to auctions.
- Added support for Boostable Bosses.
- Fixed bug in news ticker with a
div
tag failing to parse. - Updated code to detect the discussion thread link.
- Added
exalted_dust
andexalted_dust_limit
attributes to auctions.
- Added
traded
attribute to death killers, to indicate that the killer was traded after the death occurred. - Properly handle deaths caused by summons of traded characters.
- Fixed many sections not being parsed correctly due to changes to Tibia.com.
- Houses list
- News list
- Spells section
- Forums section
- Fixed character's houses failing to parse due to a bug in the display in Tibia.com.
- Temporarily disabling this attribute.
- Added parsing for Tibia Drome leaderboards, new
Leaderboard
class. - Auxiliary classes
LeaderboardEntry
andLeaderboardRotation
were added as well. - New
Client
method:fetch_leaderboards
.
- Auxiliary classes
- Added parsing for Tibia Drome leaderboards, new
- Added parsing for Spells library, new
SpellsSection
class. - Auxiliary classes
Spell
andSpellEntry
. - New
Client
methods:fetch_spell
andfetch_spells
- Auxiliary classes
- Added parsing for Spells library, new
- Fix last page of highscores having
0
as page value. - Using the
Client
class, you can now fetch and parse content from the test version of www.tibia.com when available. - Note that if the test website has changes, parsing might not be possible.
- Internal URL attributes might still point to the regular website.
- Using the
- New
HousesSection
class, including the house filtering attributes. - New
NewsArchive
class, including the news filtering attributes. - New
GuildsSection
class, to replace the lists ofGuildEntry
- Many "ListedObject" classes were renamed to "ObjectEntry", for details check the breaking changes below.
- Fixed bug with other characters not being parsed.
- Added
traded
attribute toLastPost
class. - Added
thread_starter_traded
attribute toThreadEntry
Breaking Changes:
- Python 3.7 or higher is now required.
- House classes no longer have
get_list_url
andlist_from_content
methods. Client.fetch_world_houses
now returns aHousesSection
instance in its data attribute, instead of a list ofListedHouses
.ListedHouse.highest_bid
attribute now may beNone
if the house's auction has not yet started.ListedHouse
class renamed toHouseEntry
.- Removed deprecated property
AuctionFilters.item
. Client.fetch_news_archive
,Client.fetch_recent_news
now returns an instance ofNewsArchive
in thedata
attribute.ListedNews
class renamed toNewsEntry
.News
andNewsEntry
no longer have aget_list_url
method.ListedBoard
class renamed toBoardEntry
.ListedThread
class renamed toThreadEntry
.ListedAnnouncement
class renamed toAnnouncementEntry
.ListedWorld
class renamed toWorldEntry
.ListedAuction
class renamed toAuctionEntry
.AuctionDetails
class renamed toAuction
.ListedGuild
class renamed toGuildEntry
.ListedTournament
class renamed toTournamentEntry
.Creature
class renamed toCreatureEntry
.CreatureDetail
class renamed toCreature
.Guild
andGuildEntry
class no longer have aget_list_url
method.- Renamed
begin_date
parameter tostart_date
infetch_news_archive
. - Renamed
race
attribute ofCreatureEntry
andCreature
toidentifier
, method parameters renamed as well. CreaturesSection.from_boosted_creature_header
renamed toCreaturesSection.boosted_creature_from_header
.
- Fixed titles being parsed as part of the name for guild members with symbols in their name.
- Fixed worlds not being parsed correctly again due to tournament worlds order changing. After this fix, the order should not matter anymore.
- Fixed parsing bug on characters, returning an incorrect exception when a character doesn't exist.
- Fixed worlds not being parsed correctly due to tournament worlds order changing.
- Fixed house transfer date not being parsed properly.
- Fixed parsing errors for forum posts that contained a copy of the signature separator in the signature.
- Fixed bug with extraneous character in some item descriptions, causing auction to give a parsing error.
- Added
prey_wildcards
attribute toAuctionDetails
. - Added
filters
parameter toCharacterBazaar.get_auctions_history_url
andClient.fetch_auction_history
.
- Breaking change: Removed
BoostedCreature
class, replaced byCreature
class. - Attributes should be compatible,
image_url
is a property ofCreature
, calculated from itsrace
attribute.
- Attributes should be compatible,
- Breaking change: Removed
- Added parsing and fetching for the Creature library section.
- Added
CreatureSection
,Creature
, andCreatureDetail
classes.
- Added
- Added
traded
attribute toForumAuthor
. Indicates if the author was a traded character. - Previously, it would mark the author as a deleted character and its name would include
(traded)
.
- Previously, it would mark the author as a deleted character and its name would include
- Added
- Fixed a bug with
ForumBoards
not parsing due to the cookies dialog that was added. - Added
battleye_type
attribute toListedWorld
andWorld
classes. Indicates the type of BattlEye protection the world has. battleye_protected
is now a property instead of an attribute.
- Added
- Added
YELLOW
andGREEN
aliases to all BattlEye related enums. - Fixed wrong timezone being used for forum related dates.
- Adjusted highscores parsing for upcoming Tibia.com changes.
- Parse familiars from auctions
- Updated the way tooltips in auctions are parsed, the format changed, resulting in the previous code not working anymore.
- Results count in bazaar pages are now properly parsed when there are comma thousand separators.
- Item amounts are now more accurate instead of being based from their indicator (which was grouping them in thousands)
- Fixed auction history parsing breaking due to the cookie consent dialog.
- Fixed world list parsing breaking due to the cookie consent dialog.
- Fixed bug in guild names being parsed with Non-Breaking spaces instead of a regular space.
- Fixed bug in Event Calendar parsing.
- Fixed guild information being parsed incorrectly for characters in guilds containing "of the" in their name.
- Added support for the new filtering options in Highscores
- Added
battleye_filter
andpvp_types_filter
attributes.
- Added
- Added
get_page_url()
instance method toHighscores
class. - Added
previous_page_url
andnext_page_url
properties.
- Fixed bug in Event Calendar parsing.
- Updated the URL used to fetch additional auction pages (items, mounts, outfits).
- Fixed charm expansion not being parsed correctly in auctions.
- Fetching auctions while skipping details is now faster.
- Fixed bug in tournaments parsing.
- Fixed bug with ascending ordering (lowest / earliest) not being passed to the request URL.
- Fixed bug with auctions with more than 10 charms failing to parse.
- Fixed bug with recently traded characters in "other characters" section not being properly parsed.
- Added support for the new filtering options added to current auctions:
- Added new enumeration:
AuctionSearchType
- Renamed
AuctionFilters
attributeitem
tosearch_string
. Property alias kept for backwards compatibility. - Added new attribute
AuctionFilters.search_type
- Added new enumeration:
- Added option to only parse the listed information of an auction, to skip the rest of the parsing.
- Fixed wrong type hint in
ListedAuction
forstatus
.
- Added support for the Character Bazaar
- Added classes:
CharacterBazaar
,ListedAuction
andAuctionDetails
and many auxiliary classes.
- Added classes:
- Client methods throw a
SiteMaintenanceError
when Tibia.com is under maintenance, to be able to tell apart from other network errors.
- Properly parse the name of recently traded characters.
- Added
traded
attribute toCharacter
andOtherCharacter
.
- Added
- Fixed bug when parsing "other characters" from Tibia.com due to an unannounced change in the website.
- Added support for the new rules and score set added for the most recent Tournament.
- Added
ScoreSet.creature_kills
- Added
ScoreSet.area_discovery
- Added
ScoreSet.skill_gain_loss
- Added
RuleSet.shared_xp_bonus
- Added
- Added
fetch_forum_post
method to fetch a forum post directly. - Fixed bug with forum posts made by tournament characters.
- Fixed bug with character title being parsed incorrectly when the character has no title selected and a single unlocked title.
- Fixed values being mapped incorrectly for highscores.
ExpHighscoresEntry
is now removed.
Highscores.world
is nowNone
when the highscores are for all worlds.
- The
Client
class' methods now return their responses wrapped in aTibiaResponse
object. This contains information about Tibia.com's cache. - Added parsing for Guild wars.
- Added class
GuildWars
- Added class
GuildWarsEntry
- Added
url_wars
property andget_url_wars
class method to all Guild classes. - Added
active_war
attribute toGuild
.
- Added class
- Added parsing for the Tibia forums: Boards, Threads, Posts, Announcements
- Added classes
ForumBoard
andListedBoard
- Added classes
ForumThread
andListedThread
- Added classes
ForumAnnouncement
andListedAnnouncement
- Added classes
ForumPost
- Added auxiliary classes
LastPost
,ForumAuthor
andThreadStatus
. - Added property
thread_url
toNews
.
- Added classes
- Updated highscores for Summer Update 2020:
page
andtotal_pages
are now fields instead of properties.- Added
last_updated
field. - Added
Category.GOSHNARS_TAINT
andCategory.CHARM_POINTS
. - Added
VocationFilter.NONE
.
- Removed deprecated property
house
fromCharacter
, usehouses
instead. - Removed support for Python 3.5.
- Changed the hierarchy of base classes. Base classes no longer implement
Serializable
,Serializable
is now directly implemented by most classes. - Removed TibiaData functionality.
- Fixed bed count not being parsed on houses.
- Added parsing of Tournaments and Tournament Leaderboards.
- Fixed parsing errors with characters that had deaths by killers with "and" in their name.
- Fixed an error when trying to parse a character with more deaths than what can be displayed in Tibia.com
Character.deaths_truncated
field was added to keep track of this case.
- Fixed exception when attempting to parse highscores with no results (e.g. a new world on its first day).
- Fixed incorrect argument name (house) in
Character
constructor.
- Added support for multiple houses per character. Accessible on
Character.houses
field. Character.house
is now deprecated. It will contain the character's first house orNone
.
- Fixed bug with deaths not being parsed when a killer had
and
in their name.
- Fixed bug with world parsing when there are more than 1000 players online.
- Fixed incorrect highscores URL.
- Fixed a bug with deaths not being parsed when a killer in assists had
and
in their name.
- Added proxy option to client.
- Fixed bug with account badges parsing failing when no badges were selected.
- Fixed account badges parsing due to changes on the layout by CipSoft.
- Disabled client compression for POST requests.
- Enabled client side compression
- Fixed killed by players and players kill stats being inverted for
KillStatistics
- Fixed bug with character parsing failing when the guild rank is
(member)
.
- Added support for account badges and character titles.
- Added ways to sort and filter House list results like in Tibia.com.
- Added support to get the Boosted Creature of the day.
- Replaced references to
secure.tibia.com
withwww.tibia.com
as the former always redirects to the front page.
- Added asynchronous client to fetch and parse Tibia.com sections.
- Added news parsing.
- Added kill statistics parsing.
- Added support for tournament worlds.
- Added support for house prices with 'k' suffixes.
- Fixed incorrect parsing of deaths with summons involved when parsing characters from TibiaData.
- Fixed TibiaData URLs of tibia characters with special characters in their names. (e.g Himmelhüpferin)
- Fixed character houses having attributes mixed up.
- Parsing Highscores from Tibia.com and TibiaData.
- Some strings from TibiaData had unpredictable trailing whitespaces, all leading and trailing whitespaces are removed.
- Added type hints to many variables and methods.
- Added support for TibiaData JSON parsing. To have interoperability between Tibia.com and TibiaData.
- Added support for parsing Houses, House lists, World and World list
- Added support for many missing attributes in Character and Guilds.
- All objects are now serializable to JSON strings.
Initial release:
- Parses content from tibia.com
- Character pages
- Guild pages
- Guild list pages
- Parses content into JSON format strings.
- Parses content into Python objects.