Skip to content

Commit 4cccd0e

Browse files
authored
adding support for finished auctions (#115)
1 parent dc887dc commit 4cccd0e

File tree

5 files changed

+877
-3
lines changed

5 files changed

+877
-3
lines changed

src/TibiaHousesHouseV3_test.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,43 @@ func TestCormaya11(t *testing.T) {
8484
assert.Equal("2022-01-21T09:00:00Z", houseAuction.AuctionEnd)
8585
}
8686

87+
func TestCormaya9c(t *testing.T) {
88+
data, err := os.ReadFile("../testdata/houses/Premia/Edron/Cormaya9c.html")
89+
if err != nil {
90+
t.Errorf("File reading error: %s", err)
91+
return
92+
}
93+
94+
houseJson := TibiaHousesHouseV3Impl("54023", string(data))
95+
assert := assert.New(t)
96+
97+
assert.Equal(54023, houseJson.House.Houseid)
98+
assert.Equal("Premia", houseJson.House.World)
99+
assert.Equal("", houseJson.House.Town) //depends on TibiaDataHousesMapResolver
100+
assert.Equal("Cormaya 9c", houseJson.House.Name)
101+
assert.Equal("house", houseJson.House.Type)
102+
assert.Equal(2, houseJson.House.Beds)
103+
assert.Equal(25, houseJson.House.Size)
104+
assert.Equal(80000, houseJson.House.Rent)
105+
assert.Equal("https://static.tibia.com/images/houses/house_54023.png", houseJson.House.Img)
106+
107+
houseStatus := houseJson.House.Status
108+
assert.NotNil(houseStatus)
109+
assert.True(houseStatus.IsAuctioned)
110+
assert.False(houseStatus.IsRented)
111+
assert.False(houseStatus.IsMoving)
112+
assert.False(houseStatus.IsTransfering)
113+
assert.Equal(HouseRental{Owner: "", OwnerSex: "", PaidUntil: "", MovingDate: "", TransferReceiver: "", TransferPrice: 0, TransferAccept: false}, houseStatus.Rental)
114+
assert.Equal("The house is currently being auctioned. The auction has ended at Jan 21 2022, 10:00:00 CET. The highest bid so far is 12345 gold and has been submitted by Ciuchy Szajba.", houseStatus.Original)
115+
116+
houseAuction := houseJson.House.Status.Auction
117+
assert.NotNil(houseAuction)
118+
assert.Equal(12345, houseAuction.CurrentBid)
119+
assert.Equal("Ciuchy Szajba", houseAuction.CurrentBidder)
120+
assert.False(houseAuction.AuctionOngoing)
121+
assert.Equal("2022-01-21T09:00:00Z", houseAuction.AuctionEnd)
122+
}
123+
87124
func TestBeachHomeApartmentsFlat14(t *testing.T) {
88125
data, err := os.ReadFile("../testdata/houses/Premia/Thais/BeachHomeApartmentsFlat14.html")
89126
if err != nil {

src/TibiaHousesOverviewV3.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ type HousesHouse struct {
2525
Rent int `json:"rent"`
2626
IsRented bool `json:"rented"`
2727
IsAuctioned bool `json:"auctioned"`
28+
IsFinished bool `json:"finished"`
2829
Auction HousesAuction `json:"auction"`
2930
}
3031

@@ -44,7 +45,7 @@ type HousesOverviewResponse struct {
4445

4546
var (
4647
houseOverviewDataRegex = regexp.MustCompile(`<td.*><nobr>(.*)<\/nobr><\/td><td.*><nobr>([0-9]+).sqm<\/nobr><\/td><td.*><nobr>([0-9]+)(k+).gold<\/nobr><\/td><td.*><nobr>(.*)<\/nobr><\/td>.*houseid" value="([0-9]+)"\/><div.*`)
47-
houseOverviewAuctionedRegex = regexp.MustCompile(`auctioned.\(([0-9]+).gold;.(.*).left\)`)
48+
houseOverviewAuctionedRegex = regexp.MustCompile(`auctioned.\(([0-9]+).gold;.(finished|(.*).left)\)`)
4849
)
4950

5051
// TibiaHousesOverviewV3 func
@@ -111,7 +112,11 @@ func TibiaHousesOverviewV3Impl(c *gin.Context, world string, town string, htmlDa
111112
house.IsAuctioned = true
112113
subma1b := houseOverviewAuctionedRegex.FindAllStringSubmatch(s, -1)
113114
house.Auction.AuctionBid = TibiaDataStringToIntegerV3(subma1b[0][1])
114-
house.Auction.AuctionLeft = subma1b[0][2]
115+
if subma1b[0][2] == "finished" {
116+
house.IsFinished = true
117+
} else {
118+
house.Auction.AuctionLeft = subma1b[0][3]
119+
}
115120
}
116121

117122
// append house to list houses/guildhalls

src/TibiaHousesOverviewV3_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ func TestAnticaThaisHousesOverview(t *testing.T) {
4646
assert.Equal(50000, firstHouse.Rent)
4747
assert.True(firstHouse.IsRented)
4848
assert.False(firstHouse.IsAuctioned)
49+
assert.False(firstHouse.IsFinished)
4950
assert.Equal(HousesAuction{AuctionBid: 0, AuctionLeft: ""}, firstHouse.Auction)
5051

5152
lastHouse := housesJson.Houses.HouseList[117]
@@ -55,6 +56,7 @@ func TestAnticaThaisHousesOverview(t *testing.T) {
5556
assert.Equal(600000, lastHouse.Rent)
5657
assert.True(lastHouse.IsRented)
5758
assert.False(lastHouse.IsAuctioned)
59+
assert.False(lastHouse.IsFinished)
5860
assert.Equal(HousesAuction{AuctionBid: 0, AuctionLeft: ""}, lastHouse.Auction)
5961

6062
assert.Equal(14, len(housesJson.Houses.GuildhallList))
@@ -66,6 +68,7 @@ func TestAnticaThaisHousesOverview(t *testing.T) {
6668
assert.Equal(500000, firstGuild.Rent)
6769
assert.True(firstGuild.IsRented)
6870
assert.False(firstGuild.IsAuctioned)
71+
assert.False(firstGuild.IsFinished)
6972
assert.Equal(HousesAuction{AuctionBid: 0, AuctionLeft: ""}, firstGuild.Auction)
7073

7174
lastGuild := housesJson.Houses.GuildhallList[13]
@@ -75,6 +78,7 @@ func TestAnticaThaisHousesOverview(t *testing.T) {
7578
assert.Equal(5000000, lastGuild.Rent)
7679
assert.True(lastGuild.IsRented)
7780
assert.False(lastGuild.IsAuctioned)
81+
assert.False(lastGuild.IsFinished)
7882
assert.Equal(HousesAuction{AuctionBid: 0, AuctionLeft: ""}, lastGuild.Auction)
7983
}
8084

@@ -116,6 +120,7 @@ func TestPremiaFarmineHousesOverview(t *testing.T) {
116120
assert.Equal(150000, firstHouse.Rent)
117121
assert.False(firstHouse.IsRented)
118122
assert.True(firstHouse.IsAuctioned)
123+
assert.False(firstHouse.IsFinished)
119124
assert.Equal(HousesAuction{AuctionBid: 0, AuctionLeft: ""}, firstHouse.Auction)
120125

121126
assert.Equal(0, len(housesJson.Houses.GuildhallList))
@@ -159,7 +164,18 @@ func TestPremiaEdronHousesOverview(t *testing.T) {
159164
assert.Equal(150000, auctionedHouse.Rent)
160165
assert.False(auctionedHouse.IsRented)
161166
assert.True(auctionedHouse.IsAuctioned)
167+
assert.False(auctionedHouse.IsFinished)
162168
assert.Equal(HousesAuction{AuctionBid: 200000, AuctionLeft: "9 hours"}, auctionedHouse.Auction)
163169

170+
secondAuctionedHouse := housesJson.Houses.HouseList[56]
171+
assert.Equal("Cormaya 9c", secondAuctionedHouse.Name)
172+
assert.Equal(54023, secondAuctionedHouse.HouseID)
173+
assert.Equal(25, secondAuctionedHouse.Size)
174+
assert.Equal(80000, secondAuctionedHouse.Rent)
175+
assert.False(secondAuctionedHouse.IsRented)
176+
assert.True(secondAuctionedHouse.IsAuctioned)
177+
assert.True(secondAuctionedHouse.IsFinished)
178+
assert.Equal(HousesAuction{AuctionBid: 12345, AuctionLeft: ""}, secondAuctionedHouse.Auction)
179+
164180
assert.Equal(6, len(housesJson.Houses.GuildhallList))
165181
}

0 commit comments

Comments
 (0)