@@ -13,7 +13,7 @@ import (
13
13
14
14
type eleventScraper struct {
15
15
Permalink string
16
- VenueID string
16
+ VenueIDs [] string
17
17
}
18
18
19
19
type EleventShowtime struct {
@@ -35,7 +35,7 @@ type EleventEventListing struct {
35
35
func (s eleventScraper ) Scrape (ch chan <- []model.Showtime , dates []time.Time , tz * time.Location ) error {
36
36
showtimes := make ([]model.Showtime , 0 )
37
37
38
- url := fmt .Sprintf ("https://www.goelevent.com/%v/e/List?v=%v " , s .Permalink , s . VenueID )
38
+ url := fmt .Sprintf ("https://www.goelevent.com/%v/e/List" , s .Permalink )
39
39
// TODO: more idiomatic way?
40
40
res , err := http .Get (url )
41
41
if err != nil {
@@ -48,6 +48,8 @@ func (s eleventScraper) Scrape(ch chan<- []model.Showtime, dates []time.Time, tz
48
48
return err
49
49
}
50
50
51
+ var venueIds = s .VenueIDs
52
+
51
53
doc .Find ("#event-search-list-module" ).Each (func (i int , s * goquery.Selection ) {
52
54
modelStr , exists := s .Attr ("model" )
53
55
var eventList = EleventEventListing {}
@@ -56,6 +58,12 @@ func (s eleventScraper) Scrape(ch chan<- []model.Showtime, dates []time.Time, tz
56
58
57
59
for _ , event := range eventList .Events {
58
60
for _ , showtime := range event .Schedule {
61
+ for venueID := range venueIds {
62
+ if showtime .VenueID != venueID {
63
+ break
64
+ }
65
+ }
66
+
59
67
when , err := time .Parse ("2006-01-02T15:04:05" , showtime .StartDateTime )
60
68
localizedWhen := time .Date (when .Year (), when .Month (), when .Day (), when .Hour (), when .Minute (), 0 , 0 , tz )
61
69
if err != nil {
@@ -98,11 +106,19 @@ func init() {
98
106
if ! ok {
99
107
return nil , fmt .Errorf ("missing required param: %v" , "permalink" )
100
108
}
101
- venueID , ok := args ["venueID " ].(string )
109
+ rawVenueIDs , ok := args ["venueIDs " ].([] interface {} )
102
110
if ! ok {
103
- return nil , fmt .Errorf ("missing required param: %v" , "venueID" )
111
+ return nil , fmt .Errorf ("missing required param: %v" , "venueIDs" )
112
+ }
113
+ venueIDs := make ([]string , 1 )
114
+ for _ , v := range rawVenueIDs {
115
+ venueID , ok := v .(string )
116
+ if ! ok {
117
+ return nil , fmt .Errorf ("malformed venueID, must be string" )
118
+ }
119
+ venueIDs = append (venueIDs , venueID )
104
120
}
105
121
106
- return & eleventScraper {permalink , venueID }, nil
122
+ return & eleventScraper {permalink , venueIDs }, nil
107
123
})
108
124
}
0 commit comments