generated from VLADIMIR/template
updates
This commit is contained in:
@@ -45,24 +45,29 @@ func (p *ScheduleParser) Run(ctx context.Context) {
|
||||
defer ticker.Stop()
|
||||
|
||||
sheetURL := "https://docs.google.com/spreadsheets/d/1v57bCAG764j1ULXDMb3amNFMzkkLmObKWsl5oE0Xq00/edit?gid=57461713#gid=57461713"
|
||||
p.parseAndSaveSchedule(ctx, sheetURL)
|
||||
for {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return
|
||||
case <-ticker.C:
|
||||
days, err := p.parseSchedule(ctx, sheetURL)
|
||||
if err != nil {
|
||||
log.Printf("Error parse schedule: %s\n", sheetURL)
|
||||
break
|
||||
}
|
||||
if err := p.scheduleStorage.SaveSchedule(days); err != nil {
|
||||
log.Printf("Error save err: %s schedule: %s\n", err, sheetURL)
|
||||
}
|
||||
p.parseAndSaveSchedule(ctx, sheetURL)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (p *ScheduleParser) parseSchedule(ctx context.Context, sheetURL string) ([]*models.Day, error) {
|
||||
func (p *ScheduleParser) parseAndSaveSchedule(ctx context.Context, sheetURL string) {
|
||||
schedule, err := p.parseSchedule(ctx, sheetURL)
|
||||
if err != nil {
|
||||
log.Printf("Error parse schedule: %s\n", sheetURL)
|
||||
return
|
||||
}
|
||||
if err := p.scheduleStorage.SaveSchedule(schedule); err != nil {
|
||||
log.Printf("Error save err: %s schedule: %s\n", err, sheetURL)
|
||||
}
|
||||
}
|
||||
|
||||
func (p *ScheduleParser) parseSchedule(ctx context.Context, sheetURL string) (*models.Schedule, error) {
|
||||
var performances []performance
|
||||
if err := p.dataParser.Parse(ctx, sheetURL, &performances); err != nil {
|
||||
return nil, err
|
||||
@@ -70,7 +75,7 @@ func (p *ScheduleParser) parseSchedule(ctx context.Context, sheetURL string) ([]
|
||||
return p.mapSchedule(performances), nil
|
||||
}
|
||||
|
||||
func (p *ScheduleParser) mapSchedule(performances []performance) []*models.Day {
|
||||
func (p *ScheduleParser) mapSchedule(performances []performance) *models.Schedule {
|
||||
days := []*models.Day{}
|
||||
currentDay := &models.Day{}
|
||||
for i, performance := range performances {
|
||||
@@ -101,7 +106,10 @@ func (p *ScheduleParser) mapSchedule(performances []performance) []*models.Day {
|
||||
)
|
||||
}
|
||||
days = append(days, currentDay)
|
||||
return days
|
||||
return &models.Schedule{
|
||||
UpdateTime: time.Now().String(),
|
||||
Days: days,
|
||||
}
|
||||
}
|
||||
|
||||
func (p *ScheduleParser) mapDate(date string) (time.Time, error) {
|
||||
|
||||
Reference in New Issue
Block a user