|
13 | 13 | from tibiapy.models import (AchievementEntry, AjaxPaginator, Auction, AuctionFilters, BestiaryEntry, BlessingEntry,
|
14 | 14 | CharacterBazaar, CharmEntry, FamiliarEntry, Familiars, ItemEntry, ItemSummary, MountEntry,
|
15 | 15 | Mounts, OutfitEntry, OutfitImage, Outfits, SalesArgument, SkillEntry)
|
| 16 | +from tibiapy.models.bazaar import RevealedGem |
16 | 17 | from tibiapy.utils import (clean_text, convert_line_breaks, get_rows, parse_form_data, parse_integer, parse_pagination,
|
17 | 18 | parse_tibia_datetime, parse_tibiacom_content, try_enum)
|
18 | 19 |
|
@@ -216,6 +217,9 @@ def from_content(cls, content: str, auction_id: int = 0, skip_details: bool = Fa
|
216 | 217 | if "BosstiaryProgress" in details_tables:
|
217 | 218 | cls._parse_bestiary_table(builder, details_tables["BosstiaryProgress"], True)
|
218 | 219 |
|
| 220 | + if "RevealedGems" in details_tables: |
| 221 | + cls._parse_revealed_gems_table(builder, details_tables["RevealedGems"]) |
| 222 | + |
219 | 223 | auction.details = builder.build()
|
220 | 224 | return auction
|
221 | 225 |
|
@@ -682,6 +686,19 @@ def _parse_displayed_familiar(cls, item_box):
|
682 | 686 |
|
683 | 687 | return familiar
|
684 | 688 |
|
| 689 | + @classmethod |
| 690 | + def _parse_revealed_gems_table(cls, builder: AuctionDetailsBuilder, table: bs4.Tag): |
| 691 | + table_content = table.select_one("table.TableContent") |
| 692 | + _, *rows = get_rows(table_content) |
| 693 | + for row in rows: |
| 694 | + gem_tag = row.select_one("div.Gem") |
| 695 | + gem_type = gem_tag["title"] |
| 696 | + effects = [t.text for t in row.select("span")] |
| 697 | + builder.add_revealed_gem(RevealedGem( |
| 698 | + gem_type=gem_type, |
| 699 | + mods=effects, |
| 700 | + )) |
| 701 | + |
685 | 702 | @classmethod
|
686 | 703 | def _parse_page_items(cls, content, paginator: AjaxPaginator):
|
687 | 704 | parsed_content = parse_tibiacom_content(content, builder="html5lib")
|
|
0 commit comments