@@ -811,8 +811,9 @@ class AuctionDetails(ListedAuction):
811811 The total amount of gold the character has.
812812 achievement_points: :class:`int`
813813 The number of achievement points of the character.
814- regular_world_transfer: :class:`bool`
815- Whether the character can use a regular transfer.
814+ regular_world_transfer_available_date: :class:`datetime.datetmie`
815+ The date after regular world transfers will be available to purchase and use.
816+ :obj:`None` indicates it is available immediately.
816817 charm_expansion: :class:`bool`
817818 Whether the character has a charm expansion or not.
818819 available_charm_points: :class:`int`
@@ -875,7 +876,8 @@ def __init__(self, **kwargs):
875876 self .experience : int = kwargs .get ("experience" , 0 )
876877 self .gold : int = kwargs .get ("gold" , 0 )
877878 self .achievement_points : int = kwargs .get ("achievement_points" , 0 )
878- self .regular_world_transfer_available : bool = kwargs .get ("regular_world_transfer_available" , False )
879+ self .regular_world_transfer_available_date : datetime .datetime = \
880+ kwargs .get ("regular_world_transfer_available_date" )
879881 self .charm_expansion : bool = kwargs .get ("charm_expansion" , False )
880882 self .available_charm_points : int = kwargs .get ("available_charm_points" , 0 )
881883 self .spent_charm_points : int = kwargs .get ("spent_charm_points" , 0 )
@@ -915,7 +917,7 @@ def __init__(self, **kwargs):
915917 "experience" ,
916918 "gold" ,
917919 "achievement_points" ,
918- "regular_world_transfer_available " ,
920+ "regular_world_transfer_available_date " ,
919921 "charm_expansion" ,
920922 "available_charm_points" ,
921923 "spent_charm_points" ,
@@ -942,16 +944,21 @@ def __init__(self, **kwargs):
942944 "bestiary_progress" ,
943945 )
944946
945- @property
946- def skills_map (self ) -> Dict [str , 'SkillEntry' ]:
947- """:class:`dict` of :class:`str`, :class:`SkillEntry`: A mapping of skills by their name."""
948- return {skill .name : skill for skill in self .skills }
949-
950947 @property
951948 def completed_bestiary_entries (self ):
952949 """:class:`list` of :class:`BestiaryEntry`: Gets a list of completed bestiary entries."""
953950 return [e for e in self .bestiary_progress if e .completed ]
954951
952+ @property
953+ def regular_world_transfer_available (self ):
954+ """:class:`bool`: Whether regular world transfers are available immediately for this character."""
955+ return self .regular_world_transfer_available_date is None
956+
957+ @property
958+ def skills_map (self ) -> Dict [str , 'SkillEntry' ]:
959+ """:class:`dict` of :class:`str`, :class:`SkillEntry`: A mapping of skills by their name."""
960+ return {skill .name : skill for skill in self .skills }
961+
955962 @classmethod
956963 def from_content (cls , content , auction_id = 0 ):
957964 """Parses an auction detail page from Tibia.com and extracts its data.
@@ -1222,6 +1229,12 @@ def _parse_general_table(self, table):
12221229 self .gold = parse_integer (additional_stats .get ("gold" , "0" ))
12231230 self .achievement_points = parse_integer (additional_stats .get ("achievement_points" , "0" ))
12241231
1232+ transfer_data = self ._parse_data_table (content_containers [3 ])
1233+ transfer_text = transfer_data .get ("regular_world_transfer" )
1234+ if "after" in transfer_text :
1235+ date_string = transfer_text .split ("after " )[1 ]
1236+ self .regular_world_transfer_available_date = parse_tibia_datetime (date_string )
1237+
12251238 charms_data = self ._parse_data_table (content_containers [4 ])
12261239 self .charm_expansion = "yes" in charms_data .get ("charms_expansion" , "" )
12271240 self .available_charm_points = parse_integer (charms_data .get ("available_charm_points" ))
0 commit comments