Skip to content

Commit df219f6

Browse files
committed
TibiaCharactersCharacter: reduce allocations when parsing deaths
1 parent 4e64756 commit df219f6

File tree

1 file changed

+18
-19
lines changed

1 file changed

+18
-19
lines changed

src/TibiaCharactersCharacter.go

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -349,47 +349,46 @@ func TibiaCharactersCharacterImpl(BoxContentHTML string) (*CharacterResponse, er
349349
CharacterListHTML = strings.ReplaceAll(CharacterListHTML, ".<br/>Assisted by", ". Assisted by")
350350
CharacterListHTML = TibiaDataSanitizeStrings(CharacterListHTML)
351351

352+
dataNoTags := RemoveHtmlTag(CharacterListHTML)
353+
352354
// defining responses
353355
DeathKillers := []Killers{}
354356
DeathAssists := []Killers{}
355357

356358
const (
357-
initIndexer = `</td><td>`
358-
timeIndexer = `<td width="25%" valign="top">`
359+
initIndexer = `CET`
359360
levelIndexer = `at Level `
360361
killersIndexer = `by `
361362
)
362363

363364
initIdx := strings.Index(
364-
CharacterListHTML, initIndexer,
365+
dataNoTags, initIndexer,
365366
) + len(initIndexer)
366367
endInitIdx := strings.Index(
367-
CharacterListHTML[initIdx:], `<`,
368-
) + initIdx
368+
dataNoTags[initIdx:], `by `,
369+
) + initIdx + len(`by `)
369370

370-
reasonStart := CharacterListHTML[initIdx:endInitIdx]
371-
reasonRest := RemoveHtmlTag(CharacterListHTML[endInitIdx:])
371+
reasonStart := dataNoTags[initIdx:endInitIdx]
372+
reasonRest := dataNoTags[endInitIdx:]
372373

373374
// store for reply later on.. and sanitizing string
374375
reasonString := reasonStart + reasonRest
375376

376-
timeIdx := strings.Index(
377-
CharacterListHTML, timeIndexer,
378-
) + len(timeIndexer)
377+
timeIdx := 0
379378
endTimeIdx := strings.Index(
380-
CharacterListHTML[timeIdx:], `</td><td>`,
381-
) + timeIdx
379+
dataNoTags[timeIdx:], `CET`,
380+
) + timeIdx + len(`CET`)
382381

383-
time := TibiaDataDatetime(CharacterListHTML[timeIdx:endTimeIdx])
382+
time := TibiaDataDatetime(dataNoTags[timeIdx:endTimeIdx])
384383

385384
levelIdx := strings.Index(
386-
CharacterListHTML, levelIndexer,
385+
dataNoTags, levelIndexer,
387386
) + len(levelIndexer)
388387
endLevelIdx := strings.Index(
389-
CharacterListHTML[levelIdx:], " ",
388+
dataNoTags[levelIdx:], " ",
390389
) + levelIdx
391390

392-
level := TibiaDataStringToInteger(CharacterListHTML[levelIdx:endLevelIdx])
391+
level := TibiaDataStringToInteger(dataNoTags[levelIdx:endLevelIdx])
393392

394393
killersIdx := strings.Index(
395394
CharacterListHTML, killersIndexer,
@@ -401,7 +400,7 @@ func TibiaCharactersCharacterImpl(BoxContentHTML string) (*CharacterResponse, er
401400
rawListofKillers := CharacterListHTML[killersIdx:endKillersIdx]
402401

403402
// if kill is with assist..
404-
if strings.Contains(CharacterListHTML, ". Assisted by ") {
403+
if strings.Contains(dataNoTags, ". Assisted by ") {
405404
TmpListOfDeath := strings.Split(CharacterListHTML, ". Assisted by ")
406405
rawListofKillers = TmpListOfDeath[0][killersIdx:]
407406
TmpAssist := TmpListOfDeath[1]
@@ -421,7 +420,7 @@ func TibiaCharactersCharacterImpl(BoxContentHTML string) (*CharacterResponse, er
421420
for i := range ListOfAssists {
422421
name, isPlayer, isTraded, theSummon := TibiaDataParseKiller(ListOfAssists[i])
423422
DeathAssists = append(DeathAssists, Killers{
424-
Name: strings.TrimSuffix(RemoveHtmlTag(name), "."),
423+
Name: strings.TrimSuffix(strings.TrimSuffix(name, ".</td>"), "."),
425424
Player: isPlayer,
426425
Traded: isTraded,
427426
Summon: theSummon,
@@ -445,7 +444,7 @@ func TibiaCharactersCharacterImpl(BoxContentHTML string) (*CharacterResponse, er
445444
for i := range ListOfKillers {
446445
name, isPlayer, isTraded, theSummon := TibiaDataParseKiller(ListOfKillers[i])
447446
DeathKillers = append(DeathKillers, Killers{
448-
Name: strings.TrimSuffix(RemoveHtmlTag(name), "."),
447+
Name: strings.TrimSuffix(strings.TrimSuffix(name, ".</td>"), "."),
449448
Player: isPlayer,
450449
Traded: isTraded,
451450
Summon: theSummon,

0 commit comments

Comments
 (0)