-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEventbriteAttendeesToAirtable.py
More file actions
executable file
·59 lines (49 loc) · 2.59 KB
/
EventbriteAttendeesToAirtable.py
File metadata and controls
executable file
·59 lines (49 loc) · 2.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from datetime import datetime, date
import requests
import json
eventbriteBearerToken = ""
airtableApiKey = ""
class Attendee:
def __init__(self, BoardingDate, DisembarkingDate, Email, EventbriteAttendeeId, EventbriteOrderId, EventTitle, ParticipantName, TotalCost):
self.BoardingDate = BoardingDate
self.DisembarkingDate = DisembarkingDate
self.Email = Email
self.EventbriteAttendeeId = EventbriteAttendeeId
self.EventbriteOrderId = EventbriteOrderId
self.EventTitle = EventTitle
self.ParticipantName = ParticipantName
self.TotalCost = TotalCost
# eventid = 95290732145 # 2020 Master Mariners Regatta aboard brigantine Matthew Turner
# eventid = 96794201061 # Bay Exploration Friday Sunset Sail 5/22
# eventid = 97014102793 # Maritime Heritage and Bay Ecology Saturday Sailing Adventure 6/6
eventid = 95296972811 # Rotary & Call of the Sea Polio Charity Sail aboard brigantine Matthew Turner
attendeesurl = "https://www.eventbriteapi.com/v3/events/" + str(eventid) + "/attendees"
eventurl = "https://www.eventbriteapi.com/v3/events/" + str(eventid)
eventbriteheaders = {"Authorization": "Bearer " + eventbriteBearerToken, "Content-Type": "application/json"}
airtableurl = "https://api.airtable.com/v0/appJdPg4q3BR7N0zb/By%20Individual%20Sails"
airtableheaders = {"Authorization": "Bearer " + airtableApiKey, "Content-Type": "application/json"}
event = requests.get(url = eventurl, headers = eventbriteheaders).json()
attendees = requests.get(url = attendeesurl, headers = eventbriteheaders).json()['attendees']
boardingdate = str(datetime.strptime(event['start']['local'], '%Y-%m-%dT%H:%M:%S').date())
disembarkingdate = str(datetime.strptime(event['end']['local'], '%Y-%m-%dT%H:%M:%S').date())
eventtitle = event['name']['text']
for i in range(0, len(attendees), 10):
chunk = attendees[i:i+10]
data = {"records": []}
count = 0
for attendee in chunk:
if attendee['cancelled']:
continue
count += 1
attendee = Attendee(boardingdate,\
disembarkingdate,\
attendee['profile']['email'],\
attendee['id'],\
attendee['order_id'],\
eventtitle,\
attendee['profile']['name'],\
float(attendee['costs']['base_price']['major_value']))
data["records"].append({"fields": attendee.__dict__})
print(count)
r = requests.post(url = airtableurl, headers = airtableheaders, data = json.dumps(data))
print(r.text)