Skip to content

Commit 31fd172

Browse files
committedAug 5, 2024
finished teamList, at least for boftt type pages.
1 parent 4f1190e commit 31fd172

26 files changed

+22076
-12803
lines changed
 

‎.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
node_modules
22
.vscode/launch.json
3-
paigeModuleCopy
3+
paigeModuleCopy
4+
rejectPile/spice.log

‎assets/yala/20240802_15.png

940 KB
Loading
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

‎colly/dee2Collector.go

+10-5
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,12 @@ func InitializeDEE2Collector() *colly.Collector {
6565
idStr := e.ChildText("div.container-center > h2 > span.label-success")
6666
featureEvent.EventId, _ = strconv.Atoi(idStr)
6767
featureEvent.FullName = strings.TrimSpace(e.ChildText("div.container-center > h2"))[len(idStr):]
68-
featureEvent.PeriodStart, featureEvent.PeriodEnd = SplitDateRange(e.ChildText("div.container-center > div.row > div:nth-of-type(4)"))
69-
featureEvent.RegistrationStart, featureEvent.RegistrationEnd = SplitDateRange(e.ChildText("div.container-center > div.row > div.row > div:nth-of-type(2)"))
70-
featureEvent.ImpressionStart, featureEvent.ImpressionEnd = SplitDateRange(e.ChildText("div.container-center > div.row > div.row > div:nth-of-type(4)"))
68+
featureEvent.PeriodStart, featureEvent.PeriodEnd, err = SplitDateRange(e.ChildText("div.container-center > div.row > div:nth-of-type(4)"))
69+
HugoDateHerrorCheck(err, featureEvent.FullName)
70+
featureEvent.RegistrationStart, featureEvent.RegistrationEnd, err = SplitDateRange(e.ChildText("div.container-center > div.row > div.row > div:nth-of-type(2)"))
71+
HugoDateHerrorCheck(err, featureEvent.FullName)
72+
featureEvent.ImpressionStart, featureEvent.ImpressionEnd, err = SplitDateRange(e.ChildText("div.container-center > div.row > div.row > div:nth-of-type(4)"))
73+
HugoDateHerrorCheck(err, featureEvent.FullName)
7174
featureEvent.EntryCount, err = strconv.Atoi(e.ChildText("div.container-center > div.row > div.row > div:nth-of-type(6)"))
7275
ConversionErrorCheck(err, featureEvent.FullName)
7376
featureEvent.ImpressionCount, err = strconv.Atoi(e.ChildText("div.container-center > div.row > div.row > div:nth-of-type(8)"))
@@ -82,8 +85,10 @@ func InitializeDEE2Collector() *colly.Collector {
8285
listEvent.FullName = e.ChildText("td:nth-of-type(2) a")
8386
listEvent.EventId, err = strconv.Atoi(e.ChildText("td:nth-of-type(1)"))
8487
ConversionErrorCheck(err, listEvent.FullName)
85-
listEvent.RegistrationStart, listEvent.RegistrationEnd = SplitDateRange(e.ChildText("td:nth-of-type(3)"))
86-
listEvent.ImpressionStart, listEvent.ImpressionEnd = SplitDateRange(e.ChildText("td:nth-of-type(4)"))
88+
listEvent.RegistrationStart, listEvent.RegistrationEnd, err = SplitDateRange(e.ChildText("td:nth-of-type(3)"))
89+
HugoDateHerrorCheck(err, listEvent.FullName)
90+
listEvent.ImpressionStart, listEvent.ImpressionEnd, err = SplitDateRange(e.ChildText("td:nth-of-type(4)"))
91+
HugoDateHerrorCheck(err, listEvent.FullName)
8792
listEvent.PeriodStart = listEvent.RegistrationStart
8893
listEvent.PeriodEnd = listEvent.ImpressionEnd
8994
listEvent.EntryCount, err = strconv.Atoi(e.ChildText("td:nth-of-type(5)"))

‎colly/helperFunctions.go

+227-9
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66
"log"
77
"os"
8+
"regexp"
89
"strings"
910
"time"
1011
"unicode"
@@ -178,20 +179,53 @@ func ConversionErrorCheck(err error, eventName string) {
178179
logger.Error().Msg(fmt.Sprintf("Error converting event ID for %s to int: %s\n", eventName, err))
179180
}
180181
}
181-
func SplitDateRange(dateRange string) (startDate string, endDate string) {
182-
layout := "2006/01/02"
182+
func HugoDateHerrorCheck(err error, eventName string) {
183+
if err != nil {
184+
logger.Error().Msg(fmt.Sprintf("Error converting Date Time for %s to iso layout: %s\n", eventName, err))
185+
}
186+
}
187+
188+
func GetHugoDateTime(dateStr string) (string, error) {
189+
dateLayouts := []string{
190+
"2006/01/02",
191+
"2006/01/02 15:04:05",
192+
}
183193
isoLayout := "2006-01-02T15:04:05+09:00"
184194

185-
start := strings.Split(dateRange, "~")[0]
186-
end := strings.Split(dateRange, "~")[1]
195+
var parsedTime time.Time
196+
var err error
187197

188-
startTime, _ := time.Parse(layout, start)
189-
endTime, _ := time.Parse(layout, end)
198+
for _, layout := range dateLayouts {
199+
parsedTime, err = time.Parse(layout, dateStr)
200+
if err == nil {
201+
break
202+
}
203+
}
190204

191-
startDate = startTime.Format(isoLayout)
192-
endDate = endTime.Format(isoLayout)
205+
if err != nil {
206+
return "", err
207+
}
193208

194-
return
209+
return parsedTime.Format(isoLayout), nil
210+
}
211+
212+
func SplitDateRange(dateRange string) (startDate string, endDate string, err error) {
213+
dates := strings.Split(dateRange, "~")
214+
if len(dates) != 2 {
215+
return "", "", fmt.Errorf("invalid date range format")
216+
}
217+
218+
startDate, err = GetHugoDateTime(dates[0])
219+
if err != nil {
220+
return "", "", fmt.Errorf("error converting start date: %w", err)
221+
}
222+
223+
endDate, err = GetHugoDateTime(dates[1])
224+
if err != nil {
225+
return "", "", fmt.Errorf("error converting end date: %w", err)
226+
}
227+
228+
return startDate, endDate, nil
195229
}
196230

197231
func IsKanji(r rune) bool {
@@ -217,3 +251,187 @@ func HasKanji(str string) bool {
217251
}
218252
return false
219253
}
254+
255+
func splitMembers(input string, memberCount int) ([]string, bool) {
256+
/*
257+
258+
// Second pass
259+
result = secondPassSplit(input)
260+
if len(result) == memberCount {
261+
return result, true
262+
}
263+
*/
264+
265+
// fourth pass
266+
fourthPassResult := fourthPassSplit(input)
267+
if len(fourthPassResult) == memberCount {
268+
return fourthPassResult, true
269+
}
270+
271+
var thirdPassResult []string
272+
// third pass
273+
for _, element := range fourthPassResult {
274+
midResult := thirdPassSplit(element)
275+
thirdPassResult = append(thirdPassResult, midResult...)
276+
}
277+
// result = thirdPassSplit(input)
278+
if len(thirdPassResult) == memberCount {
279+
return thirdPassResult, true
280+
}
281+
/*
282+
// First pass
283+
result = firstPassSplit(input)
284+
if len(result) == memberCount {
285+
return result, true
286+
}
287+
*/
288+
289+
return thirdPassResult, false
290+
}
291+
292+
func firstPassSplit(input string) []string {
293+
re := regexp.MustCompile(`(.*?))`)
294+
matches := re.FindAllString(input, -1)
295+
296+
var result []string
297+
for _, match := range matches {
298+
trimmed := strings.TrimSpace(match)
299+
if trimmed != "" && !strings.ContainsRune(trimmed, '\uFFFD') {
300+
result = append(result, trimmed)
301+
}
302+
}
303+
304+
// Handle any remaining text after the last ")"
305+
lastIndex := strings.LastIndex(input, ")")
306+
if lastIndex != -1 && lastIndex < len(input)-1 {
307+
remaining := strings.TrimSpace(input[lastIndex+1:])
308+
if remaining != "" && !strings.ContainsRune(remaining, '\uFFFD') {
309+
result = append(result, remaining)
310+
}
311+
}
312+
313+
return result
314+
}
315+
316+
func secondPassSplit(input string) []string {
317+
re := regexp.MustCompile(`(.*?]),?\s*`)
318+
matches := re.FindAllString(input, -1)
319+
320+
var result []string
321+
for _, match := range matches {
322+
trimmed := strings.TrimRight(strings.TrimSpace(match), ", ")
323+
if trimmed != "" && !strings.ContainsRune(trimmed, '\uFFFD') {
324+
result = append(result, trimmed)
325+
}
326+
}
327+
328+
// Handle any remaining text after the last "]"
329+
lastIndex := strings.LastIndex(input, "]")
330+
if lastIndex != -1 && lastIndex < len(input)-1 {
331+
remaining := strings.TrimSpace(input[lastIndex+1:])
332+
if remaining != "" && !strings.ContainsRune(remaining, '\uFFFD') {
333+
result = append(result, remaining)
334+
}
335+
}
336+
337+
return result
338+
}
339+
340+
func thirdPassSplit(input string) []string {
341+
var result []string
342+
var current []rune
343+
344+
for i, r := range input {
345+
current = append(current, r)
346+
347+
if r == ')' || r == ')' {
348+
shouldSplit := false
349+
for j := i + 1; j < len(input); j++ {
350+
nextRune := rune(input[j])
351+
if !unicode.IsSpace(nextRune) {
352+
if nextRune != '(' && nextRune != '(' {
353+
shouldSplit = true
354+
}
355+
break
356+
}
357+
}
358+
if shouldSplit {
359+
result = append(result, string(current))
360+
current = nil
361+
}
362+
}
363+
}
364+
365+
if len(current) > 0 {
366+
result = append(result, string(current))
367+
}
368+
369+
var cleanedResult []string
370+
for i := 0; i < len(result); i++ {
371+
cleaned := strings.TrimLeftFunc(result[i], func(r rune) bool {
372+
return unicode.IsSpace(r) || r == ',' || r == '、' || r == ';'
373+
})
374+
if cleaned != "" {
375+
cleanedResult = append(cleanedResult, cleaned)
376+
}
377+
}
378+
379+
return cleanedResult
380+
}
381+
382+
func fourthPassSplit(input string) []string {
383+
var result []string
384+
var current []rune
385+
386+
for _, r := range input {
387+
current = append(current, r)
388+
if r == '】' || r == ']' {
389+
result = append(result, string(current))
390+
current = nil
391+
}
392+
}
393+
394+
if len(current) > 0 {
395+
result = append(result, string(current))
396+
}
397+
398+
// Clean elements after the first one
399+
for i := 1; i < len(result); i++ {
400+
result[i] = strings.TrimLeftFunc(result[i], func(r rune) bool {
401+
return cleanPrefix(r)
402+
})
403+
}
404+
405+
return result
406+
}
407+
408+
func cleanPrefix(r rune) bool {
409+
return unicode.IsSpace(r) || r == ',' || r == '、' || r == ';' || r == '/' || r == '•' || r == '1' || r == '2' || r == '3' || r == '4' || r == '5' || r == '6' || r == '7' || r == '8' || r == '9' || r == '0' || r == '.' || r == '✦'
410+
411+
}
412+
413+
func ProcessTeamNameLabel(team *Team) {
414+
team.TeamIsRecruiting = false
415+
team.TeamIsWithdrawn = false
416+
team.TeamIsDisqualified = false
417+
team.TeamIsWarned = false
418+
for _, label := range team.TeamNameLabelRaw {
419+
recruiting := "チームメンバー募集中!"
420+
withdrawn := "チーム辞退"
421+
disqualified := "失格"
422+
warned := "チーム規定違反警告"
423+
if label == recruiting {
424+
team.TeamIsRecruiting = true
425+
}
426+
if label == withdrawn {
427+
team.TeamIsWithdrawn = true
428+
}
429+
if label == disqualified {
430+
team.TeamIsDisqualified = true
431+
}
432+
if label == warned {
433+
team.TeamIsWarned = true
434+
}
435+
}
436+
437+
}

‎colly/main.go

+3
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ func main() {
5858
}
5959
teamListLinkCollector.Wait()
6060

61+
// TODO teamProfileCollector next
62+
// TODO teamSongsCollector next
63+
6164
for id, event := range bofEvents {
6265
ctx := colly.NewContext()
6366
ctx.Put("eventId", id)

‎colly/query.jq

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
map(select(.hasModernList == true) | {fullName, listLink, infoLink, teamListLink, testString, testStringArray, teams: (.teams | select(. != null) | map({teamName, teamLeaderName, teamLeaderCountryCode, teamLeaderCountryFlag}))})
1+
map(select(.shortName == "boftt") | {fullName, listLink, infoLink, teamListLink, testString, testStringArray, teams: (.teams | select(. != null) | map({teamName, teamLeaderName, teamLeaderCountryCode, teamLeaderCountryFlag, teamMemberCount, teamReleasedWorksCount, teamDeclaredWorksCount, teamIsRecruiting, teamIsWithdrawn, teamIsDisqualified, teamIsWarned, teamUpdate, testString, testStringArray}))})
22

3+
# map(select(.shortName == "boftt") | {fullName, listLink, infoLink, teamListLink, testString, testStringArray, teams: (.teams | select(. != null) | map (select(.teamMemberListIsCorrect == true)) | map({teamName, teamLeaderName, teamLeaderCountryCode, teamLeaderCountryFlag, teamMemberCount, teamReleasedWorksCount, teamDeclaredWorksCount, teamMemberListRaw, teamMemberListProcessed, testString, testStringArray}))})
4+
5+
#map(select(.shortName == "boftt") | {fullName, listLink, infoLink, teamListLink, testString, testStringArray, teams: (.teams | select(. != null) | map(select(.testStringArray | length != 2)) | map({teamName, teamLeaderName, teamLeaderCountryCode, teamLeaderCountryFlag, teamMemberCount, teamReleasedWorksCount, teamDeclaredWorksCount, testString, testStringArray}))})
36

47
#map(select(.hasModernList == true) | {fullName, listLink, testString, teams: (.teams | map(.teamName))})
58
#map(select(.hasModernList == true) | {fullName, listLink, testString, testStringArray })

‎colly/result.json

+1,264-8,100
Large diffs are not rendered by default.

‎colly/tlCollector.go

+41
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ func InitializeTLCollector() *colly.Collector {
6060
eventId, ok := e.Request.Ctx.GetAny("eventId").(int)
6161
if ok {
6262
event := bofEvents[eventId]
63+
// TODO seperate modernTeamlist with premodern, like even bofet is too old to count as modern
6364
selectors = modernTeamlistSelectors
6465

6566
team := Team{}
@@ -71,8 +72,48 @@ func InitializeTLCollector() *colly.Collector {
7172
team.TeamName = s.ChildText(selectors.TeamListName)
7273
team.TeamProfileLink = fmt.Sprintf("%s%s", manbowEventUrlPrefix, s.ChildAttr(selectors.TeamListProfileLink, "href"))
7374
team.TeamLeaderName = s.ChildText(selectors.TeamListLeaderName)
75+
76+
team.TeamNameLabelRaw = s.ChildTexts(selectors.TeamListNameLabel)
77+
ProcessTeamNameLabel(&team)
78+
7479
team.TeamLeaderCountryCode = s.ChildAttr(selectors.TeamListLeaderCountry, "title")
7580
team.TeamLeaderCountryFlag = strings.Replace(s.ChildAttr(selectors.TeamListLeaderCountry, "src"), "./", manbowEventUrlPrefix, 1)
81+
team.TeamMemberCount, err = strconv.Atoi(strings.TrimRight(s.ChildText(selectors.TeamListMemberCount), "人"))
82+
ConversionErrorCheck(err, event.ShortName)
83+
worksString := s.ChildText(selectors.TeamListWorks)
84+
parts := strings.Split(worksString, " / ")
85+
// TODO handle team pages that do not have the works string format "x / y作品"
86+
if len(parts) == 2 {
87+
team.TeamReleasedWorksCount, err = strconv.Atoi(parts[0])
88+
ConversionErrorCheck(err, event.ShortName)
89+
team.TeamDeclaredWorksCount, err = strconv.Atoi(strings.Replace(parts[1], "作品", "", 1))
90+
ConversionErrorCheck(err, event.ShortName)
91+
}
92+
93+
team.TeamMemberListRaw = s.ChildText(selectors.TeamListMembers)
94+
// TODO check these cases regularly to see if they've properly updated their team
95+
if team.TeamName == "Green Team" {
96+
team.TeamMemberCount = 7
97+
}
98+
if team.TeamName == "再会/Saikai チームメンバー募集中!" {
99+
team.TeamMemberCount = 15
100+
}
101+
if team.TeamName == "Team" {
102+
team.TeamMemberCount = 10
103+
}
104+
/*
105+
if team.TeamId == 48 {
106+
team.TeamMemberListProcessed, team.TeamMemberListIsCorrect = splitMembers(team.TeamMemberListRaw, team.TeamMemberCount)
107+
}
108+
*/
109+
110+
// TODO worry about proper member splitting later
111+
team.TeamMemberListProcessed, team.TeamMemberListIsCorrect = splitMembers(team.TeamMemberListRaw, team.TeamMemberCount)
112+
113+
team.TeamLastUpdate, err = GetHugoDateTime(s.ChildText(selectors.TeamListUpdate))
114+
if err != nil {
115+
HugoDateHerrorCheck(err, event.ShortName)
116+
}
76117

77118
event.Teams = append(event.Teams, team)
78119
})

‎colly/types.go

+28-15
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,28 @@ type Song struct {
1010

1111
// Team struct
1212
type Team struct {
13-
TeamId int `json:"teamId"`
14-
TeamEmblemSrc string `json:"teamEmblemSrc"`
15-
TeamName string `json:"teamName"`
16-
TeamProfileLink string `json:"teamProfileLink"`
17-
TeamLeaderName string `json:"teamLeaderName"`
18-
TeamLeaderCountryCode string `json:"teamLeaderCountryCode"`
19-
TeamLeaderCountryFlag string `json:"teamLeaderCountryFlag"`
20-
TeamMemberCount int `json:"teamMemberCount"`
21-
TeamReleasedWorkCount int `json:"teamReleasedWorkCount"`
22-
TeamDeclaredWorkCount int `json:"teamDeclaredWorkCount"`
23-
TeamMemberListRaw string `json:"teamMemberListRaw"`
24-
TeamUpdate string `json:"teamUpdate"`
25-
TestString string `json:"testString"`
26-
TestStringArray []string `json:"testStringArray"`
27-
Songs []Song `json:"songs"`
13+
TeamId int `json:"teamId"`
14+
TeamEmblemSrc string `json:"teamEmblemSrc"`
15+
TeamName string `json:"teamName"`
16+
TeamNameLabelRaw []string `json:"teamNameLabelRaw"`
17+
TeamIsRecruiting bool `json:"teamIsRecruiting"`
18+
TeamIsWithdrawn bool `json:"teamIsWithdrawn"`
19+
TeamIsDisqualified bool `json:"teamIsDisqualified"`
20+
TeamIsWarned bool `json:"teamIsWarned"`
21+
TeamProfileLink string `json:"teamProfileLink"`
22+
TeamLeaderName string `json:"teamLeaderName"`
23+
TeamLeaderCountryCode string `json:"teamLeaderCountryCode"`
24+
TeamLeaderCountryFlag string `json:"teamLeaderCountryFlag"`
25+
TeamMemberCount int `json:"teamMemberCount"`
26+
TeamReleasedWorksCount int `json:"teamReleasedWorksCount"`
27+
TeamDeclaredWorksCount int `json:"teamDeclaredWorksCount"`
28+
TeamMemberListRaw string `json:"teamMemberListRaw"`
29+
TeamMemberListProcessed []string `json:"teamMemberListProcessed"`
30+
TeamMemberListIsCorrect bool `json:"teamMemberListIsCorrect"`
31+
TeamLastUpdate string `json:"teamLastUpdate"`
32+
TestString string `json:"testString"`
33+
TestStringArray []string `json:"testStringArray"`
34+
Songs []Song `json:"songs"`
2835
}
2936

3037
// Event struct
@@ -82,12 +89,18 @@ type selectorSet struct {
8289
FancyTitle string
8390
TeamElement string
8491
TeamName string
92+
TeamNameLabel string
8593
FirstTeamName string
8694
TeamRow string
8795
TeamId string
8896
TeamEmblemSrc string
8997
TeamListProfileLink string
9098
TeamListName string
99+
TeamListNameLabel string
91100
TeamListLeaderName string
92101
TeamListLeaderCountry string
102+
TeamListMemberCount string
103+
TeamListWorks string
104+
TeamListMembers string
105+
TeamListUpdate string
93106
}

‎colly/variables.go

+11-1
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,15 @@ var modernListName_h3 = "#modern_list > div > div:nth-child(1) > div:nth-child(1
2727
var teamlistRow = "table > tbody > tr"
2828
var teamlistId = "td:nth-child(1) > a"
2929
var teamlistEmblemSrc = "td:nth-child(2) > a > img"
30-
var teamlistName = "td:nth-child(4)"
30+
var teamlistName = "td:nth-child(4) > a"
31+
var teamlistNameLabel = "td:nth-child(4) > strong"
3132
var teamlistProfileLink = "td:nth-child(3) > a"
3233
var teamlistLeaderName = "td:nth-child(5)"
3334
var teamlistLeaderCountry = "td:nth-child(5) > img.flag"
35+
var teamlistMemberCount = "td:nth-child(6)"
36+
var teamlistWorks = "td:nth-child(7)"
37+
var teamlistMembers = "td:nth-child(8)"
38+
var teamlistUpdate = "td:nth-child(9)"
3439

3540
var modernListSelectors = selectorSet{
3641
TeamList: "#modern_list",
@@ -46,8 +51,13 @@ var modernTeamlistSelectors = selectorSet{
4651
TeamEmblemSrc: teamlistEmblemSrc,
4752
TeamListProfileLink: teamlistProfileLink,
4853
TeamListName: teamlistName,
54+
TeamListNameLabel: teamlistNameLabel,
4955
TeamListLeaderName: teamlistLeaderName,
5056
TeamListLeaderCountry: teamlistLeaderCountry,
57+
TeamListMemberCount: teamlistMemberCount,
58+
TeamListWorks: teamlistWorks,
59+
TeamListMembers: teamlistMembers,
60+
TeamListUpdate: teamlistUpdate,
5161
}
5262

5363
var modernInfoListSelectors = selectorSet{

‎go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ require (
1212
github.com/antchfx/htmlquery v1.2.3 // indirect
1313
github.com/antchfx/xmlquery v1.2.4 // indirect
1414
github.com/antchfx/xpath v1.1.8 // indirect
15+
github.com/dlclark/regexp2 v1.11.2 // indirect
1516
github.com/fatih/color v1.17.0 // indirect
1617
github.com/gobwas/glob v0.2.3 // indirect
1718
github.com/gocolly/colly/v2 v2.1.0 // indirect

‎go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
2121
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
2222
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2323
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
24+
github.com/dlclark/regexp2 v1.11.2 h1:/u628IuisSTwri5/UKloiIsH8+qF2Pu7xEQX+yIKg68=
25+
github.com/dlclark/regexp2 v1.11.2/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
2426
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
2527
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
2628
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=

‎logs/bof/event110.json

+3,539-679
Large diffs are not rendered by default.

‎logs/bof/event116.json

+3,083-570
Large diffs are not rendered by default.

‎logs/bof/event127.json

+1,609-389
Large diffs are not rendered by default.

‎logs/bof/event133.json

+2,155-520
Large diffs are not rendered by default.

‎logs/bof/event137.json

+1,932-464
Large diffs are not rendered by default.

‎logs/bof/event140.json

+2,006-484
Large diffs are not rendered by default.

‎logs/bof/event142.json

+3,871-1,000
Large diffs are not rendered by default.

‎logs/bof/event146.json

+2,284-561
Large diffs are not rendered by default.

‎logs/other/event145.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"periodStart": "2024-07-06T00:00:00+09:00",
1414
"periodEnd": "2024-08-11T00:00:00+09:00",
1515
"entryCount": 57,
16-
"impressionCount": 486,
16+
"impressionCount": 629,
1717
"infoLink": "",
1818
"detailLink": "",
1919
"listLink": "",

‎logs/other/event19.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
"bannerType1": "https://manbow.nothing.sh/event/images/19.jpg",
99
"registrationStart": "2004-09-15T00:00:00+09:00",
1010
"registrationEnd": "2004-09-22T00:00:00+09:00",
11-
"impressionStart": "2004-09-22T00:00:00+09:00",
12-
"impressionEnd": "0001-01-01T00:00:00+09:00",
11+
"impressionStart": "",
12+
"impressionEnd": "",
1313
"periodStart": "2004-09-15T00:00:00+09:00",
14-
"periodEnd": "0001-01-01T00:00:00+09:00",
14+
"periodEnd": "",
1515
"entryCount": 2,
1616
"impressionCount": 8,
1717
"infoLink": "http://www.geocities.jp/retrofuture_ag/",

0 commit comments

Comments
 (0)
Please sign in to comment.