Skip to content

Commit ceb796b

Browse files
idiomatic go (#19)
* idiomatic go * remove underscores * fixing nbsp space character used in some strings Co-authored-by: Tobias Lindberg <tobias.ehlert@gmail.com>
1 parent d1526b2 commit ceb796b

8 files changed

+106
-101
lines changed

src/TibiaCharactersCharacterV3.go

Lines changed: 35 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -164,44 +164,43 @@ func TibiaCharactersCharacterV3(c *gin.Context) {
164164

165165
// Running query on every .TableContainer
166166
ReaderHTML.Find(".TableContainer").Each(func(index int, s *goquery.Selection) {
167-
168167
// Storing HTML into CharacterDivHTML
169168
CharacterDivHTML, err := s.Html()
170169
if err != nil {
171170
log.Fatal(err)
172171
}
173172

174-
if strings.Contains(CharacterDivHTML, "Text\">Character Information") {
173+
switch {
174+
case strings.Contains(CharacterDivHTML, "Text\">Character Information"):
175175
// Character Information
176176
CharacterSection = "characterinformation"
177-
} else if strings.Contains(CharacterDivHTML, "Text\">Account Badges") {
177+
case strings.Contains(CharacterDivHTML, "Text\">Account Badges"):
178178
// Account Badges
179179
CharacterSection = "accountbadges"
180-
} else if strings.Contains(CharacterDivHTML, "Text\">Account Achievements") {
180+
case strings.Contains(CharacterDivHTML, "Text\">Account Achievements"):
181181
// Account Achievements
182182
CharacterSection = "accountachievements"
183-
} else if strings.Contains(CharacterDivHTML, "Text\">Character Deaths") {
183+
case strings.Contains(CharacterDivHTML, "Text\">Character Deaths"):
184184
// Character Deaths
185185
CharacterSection = "characterdeaths"
186-
} else if strings.Contains(CharacterDivHTML, "Text\">Account Information") {
186+
case strings.Contains(CharacterDivHTML, "Text\">Account Information"):
187187
// Account Information
188188
CharacterSection = "accountinformation"
189-
} else if strings.Contains(CharacterDivHTML, "Text\">Search Character") {
189+
case strings.Contains(CharacterDivHTML, "Text\">Search Character"):
190190
// Search Character
191191
CharacterSection = "searchcharacter"
192-
} else if strings.Contains(CharacterDivHTML, "Text\">Characters") {
192+
case strings.Contains(CharacterDivHTML, "Text\">Characters"):
193193
// Characters
194194
CharacterSection = "characters"
195195
}
196196

197197
// parsing CharacterDivHTML to goquery format
198198
CharacterDivQuery, _ := goquery.NewDocumentFromReader(strings.NewReader(CharacterDivHTML))
199199

200-
if CharacterSection == "characterinformation" || CharacterSection == "accountinformation" {
201-
200+
switch CharacterSection {
201+
case "characterinformation", "accountinformation":
202202
// Running query over each tr in character content container
203203
CharacterDivQuery.Find(localDivQueryString).Each(func(index int, s *goquery.Selection) {
204-
205204
// Storing HTML into CharacterTrHTML
206205
CharacterTrHTML, err := s.Html()
207206
if err != nil {
@@ -218,8 +217,8 @@ func TibiaCharactersCharacterV3(c *gin.Context) {
218217
subma1 := regex1.FindAllStringSubmatch(CharacterTrHTML, -1)
219218

220219
if len(subma1) > 0 {
221-
222-
if subma1[0][1] == "Name" {
220+
switch TibiaDataSanitizeNbspSpaceString(subma1[0][1]) {
221+
case "Name":
223222
Tmp := strings.Split(subma1[0][2], "<")
224223
CharacterInformationData.Name = strings.TrimSpace(Tmp[0])
225224
if strings.Contains(Tmp[0], ", will be deleted at") {
@@ -231,33 +230,32 @@ func TibiaCharactersCharacterV3(c *gin.Context) {
231230
CharacterInformationData.Traded = true
232231
CharacterInformationData.Name = strings.Replace(CharacterInformationData.Name, localTradedString, "", -1)
233232
}
234-
} else if subma1[0][1] == "Former Names" {
233+
case "Former Names":
235234
CharacterInformationData.FormerNames = strings.Split(subma1[0][2], ", ")
236-
} else if subma1[0][1] == "Sex" {
235+
case "Sex":
237236
CharacterInformationData.Sex = subma1[0][2]
238-
} else if subma1[0][1] == "Title" {
237+
case "Title":
239238
regex1t := regexp.MustCompile(`(.*) \(([0-9]+).*`)
240239
subma1t := regex1t.FindAllStringSubmatch(subma1[0][2], -1)
241240
CharacterInformationData.Title = subma1t[0][1]
242241
CharacterInformationData.UnlockedTitles = TibiadataStringToIntegerV3(subma1t[0][2])
243-
} else if subma1[0][1] == "Vocation" {
242+
case "Vocation":
244243
CharacterInformationData.Vocation = subma1[0][2]
245-
} else if subma1[0][1] == "Level" {
244+
case "Level":
246245
CharacterInformationData.Level = TibiadataStringToIntegerV3(subma1[0][2])
247-
} else if subma1[0][1] == "Achievement Points" {
246+
case "Achievement Points":
248247
CharacterInformationData.AchievementPoints = TibiadataStringToIntegerV3(subma1[0][2])
249-
} else if subma1[0][1] == "World" {
248+
case "World":
250249
CharacterInformationData.World = subma1[0][2]
251-
} else if subma1[0][1] == "Former World" {
250+
case "Former World":
252251
CharacterInformationData.FormerWorlds = strings.Split(subma1[0][2], ", ")
253-
} else if subma1[0][1] == "Residence" {
252+
case "Residence":
254253
CharacterInformationData.Residence = subma1[0][2]
255-
} else if strings.Contains(subma1[0][1], "Account") && strings.Contains(subma1[0][1], "Status") {
256-
// } else if subma1[0][1] == "Account Status" {
254+
case "Account Status":
257255
CharacterInformationData.AccountStatus = subma1[0][2]
258-
} else if subma1[0][1] == "Married To" {
256+
case "Married To":
259257
CharacterInformationData.MarriedTo = TibiadataRemoveURLsV3(subma1[0][2])
260-
} else if subma1[0][1] == "House" {
258+
case "House":
261259
regex1h := regexp.MustCompile(`.*houseid=([0-9]+).*character=.*>(.*)</a> \((.*)\) is paid until (.*)`)
262260
subma1h := regex1h.FindAllStringSubmatch(subma1[0][2], -1)
263261
CharacterInformationData.Houses = append(CharacterInformationData.Houses, Houses{
@@ -266,36 +264,31 @@ func TibiaCharactersCharacterV3(c *gin.Context) {
266264
Paid: TibiadataDateV3(subma1h[0][4]),
267265
HouseID: TibiadataStringToIntegerV3(subma1h[0][1]),
268266
})
269-
} else if strings.Contains(subma1[0][1], "Guild") && strings.Contains(subma1[0][1], "Membership") {
270-
// } else if subma1[0][1] == "Guild Membership" {
267+
case "Guild Membership":
271268
Tmp := strings.Split(subma1[0][2], " of the <a href=")
272269
CharacterInformationData.Guild.Rank = Tmp[0]
273270
CharacterInformationData.Guild.GuildName = TibiadataRemoveURLsV3("<a href=" + Tmp[1])
274-
} else if subma1[0][1] == "Last Login" {
271+
case "Last Login":
275272
if subma1[0][2] != "never logged in" {
276273
CharacterInformationData.LastLogin = TibiadataDatetimeV3(subma1[0][2])
277274
}
278-
} else if subma1[0][1] == "Comment" {
275+
case "Comment":
279276
CharacterInformationData.Comment = strings.ReplaceAll(subma1[0][2], "<br/>", "\n")
280-
} else if subma1[0][1] == "Loyalty Title" {
277+
case "Loyalty Title":
281278
AccountInformationData.LoyaltyTitle = subma1[0][2]
282-
} else if subma1[0][1] == "Created" {
279+
case "Created":
283280
AccountInformationData.Created = TibiadataDatetimeV3(subma1[0][2])
284-
} else if subma1[0][1] == "Position" {
281+
case "Position":
285282
TmpPosition := strings.Split(subma1[0][2], "<")
286283
AccountInformationData.Position = strings.TrimSpace(TmpPosition[0])
287-
} else {
284+
default:
288285
log.Println("LEFT OVER: `" + subma1[0][1] + "` = `" + subma1[0][2] + "`")
289286
}
290-
291287
}
292-
293288
})
294-
295-
} else if CharacterSection == "accountbadges" {
289+
case "accountbadges":
296290
// Running query over each tr in list
297291
CharacterDivQuery.Find(".TableContentContainer tr td").Each(func(index int, s *goquery.Selection) {
298-
299292
// Storing HTML into CharacterListHTML
300293
CharacterListHTML, err := s.Html()
301294
if err != nil {
@@ -315,11 +308,9 @@ func TibiaCharactersCharacterV3(c *gin.Context) {
315308
Description: subma1[0][2],
316309
})
317310
})
318-
319-
} else if CharacterSection == "accountachievements" {
311+
case "accountachievements":
320312
// Running query over each tr in list
321313
CharacterDivQuery.Find(localDivQueryString).Each(func(index int, s *goquery.Selection) {
322-
323314
// Storing HTML into CharacterListHTML
324315
CharacterListHTML, err := s.Html()
325316
if err != nil {
@@ -349,11 +340,9 @@ func TibiaCharactersCharacterV3(c *gin.Context) {
349340
}
350341

351342
})
352-
353-
} else if CharacterSection == "characterdeaths" {
343+
case "characterdeaths":
354344
// Running query over each tr in list
355345
CharacterDivQuery.Find(localDivQueryString).Each(func(index int, s *goquery.Selection) {
356-
357346
// Storing HTML into CharacterListHTML
358347
CharacterListHTML, err := s.Html()
359348
if err != nil {
@@ -439,15 +428,11 @@ func TibiaCharactersCharacterV3(c *gin.Context) {
439428
Assists: DeathAssists,
440429
Reason: ReasonString,
441430
})
442-
443431
}
444-
445432
})
446-
447-
} else if CharacterSection == "characters" {
433+
case "characters":
448434
// Running query over each tr in character list
449435
CharacterDivQuery.Find(localDivQueryString).Each(func(index int, s *goquery.Selection) {
450-
451436
// Storing HTML into CharacterListHTML
452437
CharacterListHTML, err := s.Html()
453438
if err != nil {
@@ -462,7 +447,6 @@ func TibiaCharactersCharacterV3(c *gin.Context) {
462447
subma1 := regex1.FindAllStringSubmatch(CharacterListHTML, -1)
463448

464449
if len(subma1) > 0 {
465-
466450
TmpCharacterName := subma1[0][1]
467451

468452
var TmpTraded bool
@@ -501,10 +485,8 @@ func TibiaCharactersCharacterV3(c *gin.Context) {
501485
Traded: TmpTraded,
502486
})
503487
}
504-
505488
})
506489
}
507-
508490
})
509491

510492
//

src/TibiaCreaturesCreatureV3.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,11 @@ func TibiaCreaturesCreatureV3(c *gin.Context) {
114114
if strings.Contains(subma1[0][4], "It takes ") && strings.Contains(subma1[0][4], " mana to ") {
115115
regex24 := regexp.MustCompile(`.*It takes (.*) mana to (.*)`)
116116
subma24 := regex24.FindAllStringSubmatch(subma1[0][4], -1)
117-
if strings.Contains(subma24[0][2], "convince these creatures but they cannot be") {
117+
subma2402 := subma24[0][2]
118+
if strings.Contains(subma2402, "convince these creatures but they cannot be") {
118119
CreatureBeConvinced = true
119120
CreatureConvincedMana = TibiadataStringToIntegerV3(subma24[0][1])
120-
} else if strings.Contains(subma24[0][2], "summon or convince these creatures") {
121+
} else if strings.Contains(subma2402, "summon or convince these creatures") {
121122
CreatureBeSummoned = true
122123
CreatureSummonedMana = TibiadataStringToIntegerV3(subma24[0][1])
123124
CreatureBeConvinced = true

src/TibiaFansitesV3.go

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,15 @@ func TibiaFansitesV3(c *gin.Context) {
101101
imgs1 := imgRE1.FindAllStringSubmatch(subma1[0][5], -1)
102102
out := make([]string, len(imgs1))
103103
for i := range out {
104-
if strings.Contains(imgs1[i][1], "Statistics") {
104+
s := imgs1[i][1]
105+
switch {
106+
case strings.Contains(s, "Statistics"):
105107
ContentTypeData.Statistics = true
106-
} else if strings.Contains(imgs1[i][1], "ArticlesNews") {
108+
case strings.Contains(s, "ArticlesNews"):
107109
ContentTypeData.Texts = true
108-
} else if strings.Contains(imgs1[i][1], "Tools") {
110+
case strings.Contains(s, "Tools"):
109111
ContentTypeData.Tools = true
110-
} else if strings.Contains(imgs1[i][1], "Wiki") {
112+
case strings.Contains(s, "Wiki"):
111113
ContentTypeData.Wiki = true
112114
}
113115
}
@@ -118,19 +120,21 @@ func TibiaFansitesV3(c *gin.Context) {
118120
imgs2 := imgRE2.FindAllStringSubmatch(subma1[0][6], -1)
119121
out2 := make([]string, len(imgs2))
120122
for i := range out2 {
121-
if strings.Contains(imgs2[i][1], "Discord") {
123+
s := imgs2[i][1]
124+
switch {
125+
case strings.Contains(s, "Discord"):
122126
SocialMediaData.Discord = true
123-
} else if strings.Contains(imgs2[i][1], "Facebook") {
127+
case strings.Contains(s, "Facebook"):
124128
SocialMediaData.Facebook = true
125-
} else if strings.Contains(imgs2[i][1], "Instagram") {
129+
case strings.Contains(s, "Instagram"):
126130
SocialMediaData.Instagram = true
127-
} else if strings.Contains(imgs2[i][1], "Reddit") {
131+
case strings.Contains(s, "Reddit"):
128132
SocialMediaData.Reddit = true
129-
} else if strings.Contains(imgs2[i][1], "Twitch") {
133+
case strings.Contains(s, "Twitch"):
130134
SocialMediaData.Twitch = true
131-
} else if strings.Contains(imgs2[i][1], "Twitter") {
135+
case strings.Contains(s, "Twitter"):
132136
SocialMediaData.Twitter = true
133-
} else if strings.Contains(imgs2[i][1], "Youtube") {
137+
case strings.Contains(s, "Youtube"):
134138
SocialMediaData.Youtube = true
135139
}
136140
}
@@ -160,7 +164,8 @@ func TibiaFansitesV3(c *gin.Context) {
160164
FansiteItemURLData = ""
161165
}
162166

163-
if FansiteType == "promoted" {
167+
switch FansiteType {
168+
case "promoted":
164169
PromotedFansitesData = append(PromotedFansitesData, Fansite{
165170
Name: subma1[0][3],
166171
LogoURL: subma1[0][2],
@@ -173,7 +178,7 @@ func TibiaFansitesV3(c *gin.Context) {
173178
FansiteItem: FansiteItemData,
174179
FansiteItemURL: FansiteItemURLData,
175180
})
176-
} else if FansiteType == "supported" {
181+
case "supported":
177182
SupportedFansitesData = append(SupportedFansitesData, Fansite{
178183
Name: subma1[0][3],
179184
LogoURL: subma1[0][2],

src/TibiaSpellsOverviewV3.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,26 +86,28 @@ func TibiaSpellsOverviewV3(c *gin.Context) {
8686

8787
// check if regex return length is over 0 and the match of name is over 1
8888
if len(subma1) > 0 {
89-
9089
// SpellGroup
9190
GroupAttack = false
9291
GroupHealing = false
9392
GroupSupport = false
9493

95-
if subma1[0][4] == "Attack" {
94+
switch subma1[0][4] {
95+
case "Attack":
9696
GroupAttack = true
97-
} else if subma1[0][4] == "Healing" {
97+
case "Healing":
9898
GroupHealing = true
99-
} else if subma1[0][4] == "Support" {
99+
case "Support":
100100
GroupSupport = true
101101
}
102102

103103
// Type
104104
TypeInstant = false
105105
TypeRune = false
106-
if subma1[0][5] == "Instant" {
106+
107+
switch subma1[0][5] {
108+
case "Instant":
107109
TypeInstant = true
108-
} else if subma1[0][5] == "Rune" {
110+
case "Rune":
109111
TypeRune = true
110112
}
111113

0 commit comments

Comments
 (0)