Created
March 23, 2014 14:03
-
-
Save koaning/9723443 to your computer and use it in GitHub Desktop.
script for meetup api
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests as rq | |
import json | |
import collections | |
import time | |
API_KEY = 'APIKEY' | |
GROUP_ID = 'GROUPID' | |
def handle_event(event, event_dict): | |
event_dict[ event ] = {} | |
rsvp_link = 'https://api.meetup.com/2/rsvps?&sign=true&page=100' + '&key=' + API_KEY | |
rsvp_link += '&event_id=' + event | |
rsvp_resp = rq.request('GET', rsvp_link) | |
for person in [a['member']['member_id'] for a in rsvp_resp.json()['results']]: | |
event_dict[ event ][ person ] = 1 | |
return event_dict | |
def get_all_events(): | |
all_events = [] | |
link = 'https://api.meetup.com/2/events?&sign=true&status=past&page=200' | |
link += '&group_id=' + GROUP_ID | |
link += '&key=' + API_KEY | |
for offset in range(0,1): | |
req_link = link + '&offset=' + str(offset) | |
response = rq.request('GET',req_link) | |
for event in response.json()['results']: | |
all_events.append( event['id'] ) | |
return all_events | |
event_dict = collections.OrderedDict() | |
counter = 0 | |
for event in get_all_events(): | |
time.sleep( 0.1 ) | |
counter = counter + 1 | |
event_dict = handle_event(event, event_dict) | |
print "event :" + str(counter) + ", event_dict_len : " + str(len(event_dict.keys())) | |
event_mapper = {} | |
person_mapper = {} | |
i = 0 | |
j = 0 | |
data = [] | |
for event in event_dict: | |
if event not in event_mapper.keys(): | |
event_mapper[ event ] = i | |
i = i + 1 | |
for person in event_dict[event].keys(): | |
if person not in person_mapper.keys(): | |
person_mapper[ person ] = j | |
j = j + 1 | |
data.append( { 'x' : event_mapper[event], 'y' : person_mapper[person] } ) | |
print json.dumps(data) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment