Skip to content

Commit c14d2b4

Browse files
committed
Fixed changes in auction tooltips
1 parent 839af05 commit c14d2b4

File tree

4 files changed

+69
-31
lines changed

4 files changed

+69
-31
lines changed

tests/resources/bazaar/tibiacom_auction_finished.txt

Lines changed: 23 additions & 1 deletion
Large diffs are not rendered by default.

tests/resources/bazaar/tibiacom_history.txt

Lines changed: 18 additions & 1 deletion
Large diffs are not rendered by default.

tests/tests_bazaar.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -88,28 +88,28 @@ def test_character_bazaar_from_content_history(self):
8888

8989
self.assertIsNotNone(bazaar)
9090
self.assertEqual(1, bazaar.page)
91-
self.assertEqual(777, bazaar.total_pages)
92-
self.assertEqual(19407, bazaar.results_count)
91+
self.assertEqual(1449, bazaar.total_pages)
92+
self.assertEqual(36219, bazaar.results_count)
9393
self.assertEqual(25, len(bazaar.entries))
9494
self.assertIsNotNone(bazaar.url)
9595

9696
auction = bazaar.entries[0]
97-
self.assertEqual(1060, auction.auction_id)
98-
self.assertEqual(752, auction.bid)
99-
self.assertEqual("Maroze Loth", auction.name)
100-
self.assertEqual(130, auction.level)
101-
self.assertEqual("Pyra", auction.world)
102-
self.assertEqual(Vocation.ELITE_KNIGHT, auction.vocation)
97+
self.assertEqual(325058, auction.auction_id)
98+
self.assertEqual(900, auction.bid)
99+
self.assertEqual("Rcrazy Illuminati", auction.name)
100+
self.assertEqual(255, auction.level)
101+
self.assertEqual("Celebra", auction.world)
102+
self.assertEqual(Vocation.MASTER_SORCERER, auction.vocation)
103103
self.assertEqual(Sex.MALE, auction.sex)
104104
self.assertEqual(BidType.WINNING, auction.bid_type)
105105
self.assertIsNotNone(auction.character_url)
106-
self.assertEqual(2, len(auction.displayed_items))
107-
self.assertEqual(128, auction.outfit.outfit_id)
106+
self.assertEqual(1, len(auction.displayed_items))
107+
self.assertEqual(143, auction.outfit.outfit_id)
108108

109109
first_item = auction.displayed_items[0]
110-
self.assertEqual(391, first_item.count)
111-
self.assertEqual(268, first_item.item_id)
112-
self.assertEqual("mana potion", first_item.name)
110+
self.assertEqual(1, first_item.count)
111+
self.assertEqual(25700, first_item.item_id)
112+
self.assertEqual("dream blossom staff", first_item.name)
113113
self.assertIsNotNone(first_item.image_url)
114114

115115
self.assertIsNone(bazaar.filters)
@@ -161,8 +161,8 @@ def test_auction_details_from_content_finished(self):
161161
self.assertIsInstance(auction.creation_date, datetime.datetime)
162162
self.assertEqual(26006721711, auction.experience)
163163
self.assertEqual(41893, auction.gold)
164-
self.assertEqual(540, auction.achievement_points)
165-
self.assertIsInstance(auction.regular_world_transfer_available_date, datetime.datetime)
164+
self.assertEqual(553, auction.achievement_points)
165+
self.assertIsNone(auction.regular_world_transfer_available_date)
166166
self.assertEqual(110, auction.available_charm_points)
167167
self.assertEqual(5800, auction.spent_charm_points)
168168

@@ -227,7 +227,7 @@ def test_auction_details_from_content_finished(self):
227227
self.assertEqual(8, len(auction.charms))
228228
self.assertEqual(0, len(auction.completed_cyclopedia_map_areas))
229229
self.assertEqual(16, len(auction.titles))
230-
self.assertEqual(214, len(auction.achievements))
230+
self.assertEqual(217, len(auction.achievements))
231231
self.assertEqual(509, len(auction.bestiary_progress))
232232
self.assertEqual(205, len(auction.completed_bestiary_entries))
233233

tibiapy/bazaar.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
id_addon_regex = re.compile(r'(\d+)_(\d)\.gif')
4646
id_regex = re.compile(r'(\d+).(?:gif|png)')
4747
description_regex = re.compile(r'"(?:an?\s)?([^"]+)"')
48-
quotes = re.compile(r'"([^"]+)"')
48+
amount_regex = re.compile(r'([\d,]+)x')
4949

5050
log = logging.getLogger("tibiapy")
5151

@@ -468,9 +468,6 @@ def _parse_image_box(cls, item_box):
468468
img_tag = item_box.find("img")
469469
if not img_tag:
470470
return None
471-
m = quotes.search(description)
472-
if m:
473-
description = m.group(1)
474471
return cls(image_url=img_tag["src"], name=description)
475472

476473

@@ -514,19 +511,19 @@ def _parse_image_box(cls, item_box):
514511
img_tag = item_box.find("img")
515512
if not img_tag:
516513
return None
517-
amount_text = item_box.find("div", attrs={"class": "ObjectAmount"})
518-
amount = parse_tibia_money(amount_text.text) if amount_text else 1
514+
m = amount_regex.match(title_text)
515+
amount = 1
516+
if m:
517+
amount = parse_integer(m.group(1))
518+
title_text = amount_regex.sub("", title_text, 1).strip()
519519
item_id = 0
520-
name = None
521520
description = None
522-
if "\n" in title_text:
523-
description = title_text.split("\n", 1)[1]
521+
name, *desc = title_text.split("\n")
522+
if desc:
523+
description = desc[0]
524524
m = id_regex.search(img_tag["src"])
525525
if m:
526526
item_id = int(m.group(1))
527-
m = description_regex.search(title_text)
528-
if m:
529-
name = m.group(1)
530527
return DisplayItem(image_url=img_tag["src"], name=name, count=amount, item_id=item_id, description=description)
531528

532529

@@ -593,6 +590,8 @@ def __repr__(self):
593590
@classmethod
594591
def _parse_image_box(cls, item_box):
595592
outfit = super()._parse_image_box(item_box)
593+
name = outfit.name.split("(")[0].strip()
594+
outfit.name = name
596595
m = id_addon_regex.search(outfit.image_url)
597596
if m:
598597
outfit.outfit_id = int(m.group(1))
@@ -750,7 +749,7 @@ def _parse_auction(cls, auction_row, auction_id=0):
750749
auction.auction_end = parse_tibia_datetime(end_date_tag.text.replace('\xa0', ' '))
751750
bids_container = auction_row.find("div", {"class": "ShortAuctionDataBidRow"})
752751
bid_tag = bids_container.find("div", {"class", "ShortAuctionDataValue"})
753-
bid_type_tag = bids_container.find_all("div", {"class", "ShortAuctionDataLabel"})[-1]
752+
bid_type_tag = bids_container.find_all("div", {"class", "ShortAuctionDataLabel"})[0]
754753
bid_type_str = bid_type_tag.text.replace(":", "").strip()
755754
auction.bid_type = try_enum(BidType, bid_type_str)
756755
auction.bid = parse_integer(bid_tag.text)

0 commit comments

Comments
 (0)