Skip to content

Commit

Permalink
support 'obsolete' items
Browse files Browse the repository at this point in the history
  • Loading branch information
flopp committed May 25, 2024
1 parent 3810ca2 commit 8b03e7c
Showing 1 changed file with 38 additions and 3 deletions.
41 changes: 38 additions & 3 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ type Event struct {
Old bool
Status string
Cancelled bool
Obsolete bool
Special bool
Location Location
Details string
Expand Down Expand Up @@ -248,6 +249,7 @@ func createSeparatorEvent(label string) *Event {
"",
false,
false,
false,
Location{},
"",
"",
Expand Down Expand Up @@ -673,7 +675,8 @@ func fetchEvents(config ConfigData, srv *sheets.Service, today time.Time, eventT
statusS := cols.getValue("STATUS", row)
special := statusS == "spezial"
cancelled := statusS == "abgesagt"
if special || cancelled {
obsolete := statusS == "obsolete"
if special || cancelled || obsolete {
statusS = ""
}
urlS := cols.getValue("URL", row)
Expand Down Expand Up @@ -740,6 +743,7 @@ func fetchEvents(config ConfigData, srv *sheets.Service, today time.Time, eventT
isOld,
statusS,
cancelled,
obsolete,
special,
location,
description1,
Expand Down Expand Up @@ -945,6 +949,20 @@ func splitEvents(events []*Event) ([]*Event, []*Event) {
return futureEvents, pastEvents
}

func splitObsolete(events []*Event) ([]*Event, []*Event) {
currentEvents := make([]*Event, 0)
obsoleteEvents := make([]*Event, 0)

for _, event := range events {
if event.Obsolete {
obsoleteEvents = append(obsoleteEvents, event)
} else {
currentEvents = append(currentEvents, event)
}
}
return currentEvents, obsoleteEvents
}

func addMonthSeparators(events []*Event) []*Event {
result := make([]*Event, 0, len(events))
var last time.Time
Expand Down Expand Up @@ -1172,7 +1190,7 @@ func updateAddedDates(events []*Event, added *utils.Added, eventType string, tim
}
}

func CreateHtaccess(events, events_old, groups, shops []*Event, outDir string) error {
func CreateHtaccess(events, events_old, groups, shops, events_obsolete, groups_obsolete, shops_obsolete []*Event, outDir string) error {
if err := utils.MakeDir(outDir); err != nil {
return err
}
Expand Down Expand Up @@ -1215,6 +1233,16 @@ func CreateHtaccess(events, events_old, groups, shops []*Event, outDir string) e
}
}

for _, e := range events_obsolete {
destination.WriteString(fmt.Sprintf("Redirect /%s /\n", e.Slug()))
}
for _, e := range groups_obsolete {
destination.WriteString(fmt.Sprintf("Redirect /%s /lauftreffs.html\n", e.Slug()))
}
for _, e := range shops_obsolete {
destination.WriteString(fmt.Sprintf("Redirect /%s /shops.html\n", e.Slug()))
}

return nil
}

Expand Down Expand Up @@ -1276,8 +1304,11 @@ func main() {

var events []*Event
var events_old []*Event
var events_obsolete []*Event
var groups []*Event
var groups_obsolete []*Event
var shops []*Event
var shops_obsolete []*Event
var parkrun []*ParkrunEvent

config_data, err := os.ReadFile(options.configFile)
Expand Down Expand Up @@ -1364,6 +1395,10 @@ func main() {
}
}

events, events_obsolete = splitObsolete(events)
groups, groups_obsolete = splitObsolete(groups)
shops, shops_obsolete = splitObsolete(shops)

validateDateOrder(events)
findPrevNextEvents(events)
events, events_old = splitEvents(events)
Expand Down Expand Up @@ -1764,6 +1799,6 @@ func main() {
}
utils.ExecuteTemplate("sitemap", out.Join("sitemap.html"), sitemapTemplate)

err = CreateHtaccess(events, events_old, groups, shops, options.outDir)
err = CreateHtaccess(events, events_old, groups, shops, events_obsolete, groups_obsolete, shops_obsolete, options.outDir)
utils.Check(err)
}

0 comments on commit 8b03e7c

Please sign in to comment.