@@ -873,6 +873,8 @@ class Auction(AuctionEntry):
873
873
The amount of exalted dust the character has.
874
874
exalted_dust_limit: :class:`int`
875
875
The dust limit of the character.
876
+ boss_points: :class:`int`
877
+ The boss points of the character.
876
878
items: :class:`ItemSummary`
877
879
The items the character has across inventory, depot and item stash.
878
880
store_items: :class:`ItemSummary`
@@ -903,6 +905,8 @@ class Auction(AuctionEntry):
903
905
The achievements the character has unlocked.
904
906
bestiary_progress: :class:`list` of :class:`BestiaryEntry`
905
907
The bestiary progress of the character.
908
+ bosstiary_progress: :class:`list` of :class:`BosstiaryEntry`
909
+ The bosstiary progress of the character.
906
910
"""
907
911
908
912
def __init__ (self , ** kwargs ):
@@ -936,6 +940,7 @@ def __init__(self, **kwargs):
936
940
self .hireling_outfits : int = kwargs .get ("hireling_outfits" , 0 )
937
941
self .exalted_dust : int = kwargs .get ("exalted_dust" , 0 )
938
942
self .exalted_dust_limit : int = kwargs .get ("exalted_dust_limit" , 0 )
943
+ self .boss_points : int = kwargs .get ("boss_points" , 0 )
939
944
self .items : ItemSummary = kwargs .get ("items" )
940
945
self .store_items : ItemSummary = kwargs .get ("store_items" )
941
946
self .mounts : Mounts = kwargs .get ("mounts" )
@@ -950,6 +955,7 @@ def __init__(self, **kwargs):
950
955
self .titles : List [str ] = kwargs .get ("titles" , [])
951
956
self .achievements : List [AchievementEntry ] = kwargs .get ("achievements" , [])
952
957
self .bestiary_progress : List [BestiaryEntry ] = kwargs .get ("bestiary_progress" , [])
958
+ self .bosstiary_progress : List [BestiaryEntry ] = kwargs .get ("bosstiary_progress" , [])
953
959
954
960
__slots__ = (
955
961
"hit_points" ,
@@ -979,6 +985,7 @@ def __init__(self, **kwargs):
979
985
"hireling_outfits" ,
980
986
"exalted_dust" ,
981
987
"exalted_dust_limit" ,
988
+ "boss_points" ,
982
989
"items" ,
983
990
"store_items" ,
984
991
"mounts" ,
@@ -994,6 +1001,7 @@ def __init__(self, **kwargs):
994
1001
"titles" ,
995
1002
"achievements" ,
996
1003
"bestiary_progress" ,
1004
+ "bosstiary_progress" ,
997
1005
)
998
1006
999
1007
# region Properties
@@ -1087,6 +1095,8 @@ def from_content(cls, content, auction_id=0, skip_details=False):
1087
1095
auction ._parse_achievements_table (details_tables ["Achievements" ])
1088
1096
if "BestiaryProgress" in details_tables :
1089
1097
auction ._parse_bestiary_table (details_tables ["BestiaryProgress" ])
1098
+ if "BosstiaryProgress" in details_tables :
1099
+ auction ._parse_bestiary_table (details_tables ["BosstiaryProgress" ], True )
1090
1100
return auction
1091
1101
# endregion
1092
1102
@@ -1226,7 +1236,7 @@ def _parse_achievements_table(self, table):
1226
1236
secret = col .find ("img" ) is not None
1227
1237
self .achievements .append (AchievementEntry (text , secret ))
1228
1238
1229
- def _parse_bestiary_table (self , table ):
1239
+ def _parse_bestiary_table (self , table , bosstiary = False ):
1230
1240
"""Parse the bestiary table and extracts its information.
1231
1241
1232
1242
Parameters
@@ -1243,7 +1253,10 @@ def _parse_bestiary_table(self, table):
1243
1253
step_c , kills_c , name_c = [c .text for c in cols ]
1244
1254
kills = parse_integer (kills_c .replace ("x" , "" ))
1245
1255
step = int (step_c )
1246
- self .bestiary_progress .append (BestiaryEntry (name_c , kills , step ))
1256
+ if not bosstiary :
1257
+ self .bestiary_progress .append (BestiaryEntry (name_c , kills , step ))
1258
+ else :
1259
+ self .bosstiary_progress .append (BestiaryEntry (name_c , kills , step ))
1247
1260
1248
1261
@classmethod
1249
1262
def _parse_page_items (cls , content , entry_class ):
@@ -1320,11 +1333,14 @@ def _parse_general_table(self, table):
1320
1333
self .hirelings = parse_integer (hirelings_data .get ("hirelings" , "" ))
1321
1334
self .hireling_jobs = parse_integer (hirelings_data .get ("hireling_jobs" , "" ))
1322
1335
self .hireling_outfits = parse_integer (hirelings_data .get ("hireling_outfits" , "" ))
1323
- if len (content_containers ) = = 9 :
1336
+ if len (content_containers ) > = 9 :
1324
1337
dust_data = self ._parse_data_table (content_containers [8 ])
1325
1338
dust_values = dust_data .get ("exalted_dust" , "0/0" ).split ("/" )
1326
1339
self .exalted_dust = parse_integer (dust_values [0 ])
1327
1340
self .exalted_dust_limit = parse_integer (dust_values [1 ])
1341
+ if len (content_containers ) >= 10 :
1342
+ boss_data = self ._parse_data_table (content_containers [9 ])
1343
+ self .boss_points = parse_integer (boss_data .get ("boss_points" , "" ))
1328
1344
# endregion
1329
1345
1330
1346
0 commit comments