Created
October 12, 2016 17:43
-
-
Save magopian/6663b0c97bd2c351dc9a0c61c5b2d992 to your computer and use it in GitHub Desktop.
Dirty script to get/filter attendees for the PyConFR 2016
This file contains hidden or 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
# Needs the following libraries: | |
# requests==2.11.1 | |
# unidecode | |
import csv | |
import requests | |
import sys | |
from collections import OrderedDict | |
from unidecode import unidecode | |
# Keys: | |
# [u'si_vous-souhaitez-preciser-quelque-chose-nhesitez-pas', | |
# u'je_serais-presente-le-vendredi-pour-les-sprints', | |
# u'je_serais-presente-le-jeudi-pour-les-sprints', | |
# u'il_sera-possible-dacheter-des-tshirts-sur-place-souhaiteriez-vous-en-acheter-le-jour-meme-ceci-na-pas-valeur-dune-reservation', | |
# u'nous_sommes-a-la-recherche-de-quelques-bonnes-volontees-durant-les-conferences-si-vous-souhaitez-nous-epauler-merci-de-cocher-cette-case-nous-vous-recontacterons', | |
# u'prenom_et-nom-ou-pseudo', | |
# u'si_vous-souhaitez-un-tshirt-quelle-coupe', | |
# u'last_modified', | |
# u'si_vous-souhaitez-un-tshirt-quelle-taille', | |
# u'email_si-vous-souhaitez-etre-contactes-pour-des-informations-de-derniere-minute', | |
# u'je_serais-presente-le-dimanche-pour-les-conferences', | |
# u'id', | |
# u'je_serais-presente-le-samedi-pour-les-conferences'] | |
NAME_FIELD = 'prenom_et-nom-ou-pseudo' | |
EMAIL_FIELD = 'email_si-vous-souhaitez-etre-contactes-pour-des-informations-de-derniere-minute' | |
THURSDAY = 'je_serais-presente-le-jeudi-pour-les-sprints' | |
FRIDAY = 'je_serais-presente-le-vendredi-pour-les-sprints' | |
SATURDAY = 'je_serais-presente-le-samedi-pour-les-conferences' | |
SUNDAY = 'je_serais-presente-le-dimanche-pour-les-conferences' | |
TSHIRT = 'il_sera-possible-dacheter-des-tshirts-sur-place-souhaiteriez-vous-en-acheter-le-jour-meme-ceci-na-pas-valeur-dune-reservation' | |
inscrits = requests.get( | |
'https://kinto.notmyidea.org/v1/buckets/formbuilder/collections/696b6731ce0441ff/records', | |
headers={'Authorization': 'Basic Zm9ybTo2OTZiNjczMWNlMDQ0MWZmYTk4ZDNjOGJhZWMzZjFjYw=='}, | |
params={'_sort': '-prenom_et-nom-ou-pseudo'}).json()['data'] | |
fields = [ | |
'prenom_et-nom-ou-pseudo', | |
'Bénévole', | |
'TB', | |
'ISEN', | |
'Rennes1', | |
'INSA', | |
'ESIR', | |
'Supelec', | |
'Epitech', | |
'SupInfo', | |
'Chercheu-r-se', | |
'Dév', | |
'Autre', | |
] | |
inscrits = [[r[NAME_FIELD].title(), r] for r in inscrits | |
if (NAME_FIELD in r) and | |
r[NAME_FIELD] and | |
r.get(THURSDAY, False) | |
# r.get(FRIDAY, False) | |
# r.get(SATURDAY, False) | |
# r.get(SUNDAY, False) | |
# r.get(TSHIRT, False) == "Je souhaite acheter un t-shirt le jour de l'événement" | |
] | |
inscrits = OrderedDict(sorted(inscrits, key=lambda r: unidecode(r[0]))) | |
# inscrits = OrderedDict(inscrits) | |
with open('benevoles.txt', 'r') as f: | |
benevoles = f.read().split('\n') | |
for name, inscrit in inscrits.items(): | |
email = inscrit.get(EMAIL_FIELD) | |
if email and email in benevoles: | |
inscrit['Bénévole'] = 'X' | |
writer = csv.DictWriter(sys.stdout, fieldnames=fields, extrasaction='ignore') | |
writer.writeheader() | |
writer.writerows(inscrits.values()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment