Skip to content

Commit 402ccb4

Browse files
authored
fix character deaths where timestamp contains CEST (#265)
1 parent f559c35 commit 402ccb4

File tree

3 files changed

+874
-5
lines changed

3 files changed

+874
-5
lines changed

src/TibiaCharactersCharacter.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -392,11 +392,21 @@ func TibiaCharactersCharacterImpl(BoxContentHTML string) (*CharacterResponse, er
392392
DeathAssists := []Killers{}
393393

394394
const (
395-
initIndexer = `CET`
396-
levelIndexer = `at Level `
397-
killersIndexer = `by `
395+
initCetIndexer = `CET`
396+
initCestIndexer = `CEST`
397+
levelIndexer = `at Level `
398+
killersIndexer = `by `
398399
)
399400

401+
var initIndexer string
402+
timeZoneIdentifiers := []string{initCetIndexer, initCestIndexer}
403+
for _, tz := range timeZoneIdentifiers {
404+
if strings.Contains(dataNoTags, tz) {
405+
initIndexer = tz
406+
break
407+
}
408+
}
409+
400410
initIdx := strings.Index(
401411
dataNoTags, initIndexer,
402412
) + len(initIndexer)
@@ -412,8 +422,8 @@ func TibiaCharactersCharacterImpl(BoxContentHTML string) (*CharacterResponse, er
412422

413423
timeIdx := 0
414424
endTimeIdx := strings.Index(
415-
dataNoTags[timeIdx:], `CET`,
416-
) + timeIdx + len(`CET`)
425+
dataNoTags[timeIdx:], initIndexer,
426+
) + timeIdx + len(initIndexer)
417427

418428
time := TibiaDataDatetime(dataNoTags[timeIdx:endTimeIdx])
419429

src/TibiaCharactersCharacter_test.go

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3034,6 +3034,87 @@ func TestNumber10(t *testing.T) {
30343034
assert.Equal(6, character.UnlockedTitles)
30353035
}
30363036

3037+
func TestNumber11(t *testing.T) {
3038+
file, err := static.TestFiles.Open("testdata/characters/Orca Kaoksh.html")
3039+
if err != nil {
3040+
t.Fatalf("file opening error: %s", err)
3041+
}
3042+
defer file.Close()
3043+
3044+
data, err := io.ReadAll(file)
3045+
if err != nil {
3046+
t.Fatalf("File reading error: %s", err)
3047+
}
3048+
3049+
characterJson, err := TibiaCharactersCharacterImpl(string(data))
3050+
if err != nil {
3051+
t.Fatal(err)
3052+
}
3053+
3054+
assert := assert.New(t)
3055+
character := characterJson.Character.CharacterInfo
3056+
3057+
assert.Equal("Orca Kaoksh", character.Name)
3058+
3059+
//validate death data
3060+
assert.Equal(2, len(characterJson.Character.Deaths))
3061+
deaths := characterJson.Character.Deaths
3062+
3063+
for idx, tc := range []struct {
3064+
Assists []Killers
3065+
Killers []Killers
3066+
Level int
3067+
Reason string
3068+
Time string
3069+
}{
3070+
{
3071+
Assists: []Killers{},
3072+
Killers: []Killers{
3073+
{Name: "fire", Player: false, Traded: false, Summon: ""},
3074+
},
3075+
Level: 10,
3076+
Reason: "Died at Level 10 by fire.",
3077+
Time: "2023-10-08T16:19:35Z",
3078+
},
3079+
{
3080+
Assists: []Killers{},
3081+
Killers: []Killers{
3082+
{Name: "wasp", Player: false, Traded: false, Summon: ""},
3083+
},
3084+
Level: 8,
3085+
Reason: "Died at Level 8 by wasp.",
3086+
Time: "2023-10-07T00:27:38Z",
3087+
},
3088+
} {
3089+
assert.True(
3090+
reflect.DeepEqual(deaths[idx].Assists, tc.Assists),
3091+
"Wrong assists\nidx: %d\nwant: %#v\n\ngot: %#v",
3092+
idx, tc.Assists, deaths[idx].Assists,
3093+
)
3094+
assert.True(
3095+
reflect.DeepEqual(deaths[idx].Killers, tc.Killers),
3096+
"Wrong killers\nidx: %d\nwant: %#v\n\ngot: %#v",
3097+
idx, tc.Killers, deaths[idx].Killers,
3098+
)
3099+
assert.Equal(
3100+
deaths[idx].Level, tc.Level,
3101+
"Wrong Level\nidx: %d\nwant: %d\n\ngot: %d",
3102+
idx, tc.Level, deaths[idx].Level,
3103+
)
3104+
assert.Equal(
3105+
deaths[idx].Reason, tc.Reason,
3106+
"Wrong Reason\nidx: %d\nwant: %s\n\ngot: %s",
3107+
idx, tc.Reason, deaths[idx].Reason,
3108+
)
3109+
assert.Equal(
3110+
deaths[idx].Time, tc.Time,
3111+
"Wrong Time\nidx: %d\nwant: %s\n\ngot: %s",
3112+
idx, tc.Time, deaths[idx].Time,
3113+
)
3114+
}
3115+
3116+
}
3117+
30373118
func BenchmarkNumber1(b *testing.B) {
30383119
file, err := static.TestFiles.Open("testdata/characters/Darkside Rafa.html")
30393120
if err != nil {

0 commit comments

Comments
 (0)