diff --git a/THANKS b/THANKS index 8122d9d0..d32d1bbf 100644 --- a/THANKS +++ b/THANKS @@ -4,80 +4,157 @@ Gunicorn THANKS A number of people have contributed to Gunicorn by reporting problems, suggesting improvements or submitting changes. Some of these people are: +Benoit Chesneau +Paul J. Davis Curt Micol Eric Florenzano Johan Bergström -Xavier Grangier -Sergey Shepelev -Chris Dent -Matt Good -Randall Leeds -thomasst -Jonas Borgström -PA Parent -Travis Cline -Adrien Lemaire -Oliver Tonnhofer -Anand Chitipothu Jannis Leidel -Josh Ourisman -Chris Lamb +Jonas Nockert +Paul Davis +Paul Smith +Randall Leeds +Thomas Steinacher +Greg Taylor +Randall Leeds +George Kollias +PA Parent +Bartosz Oler +Anand Chitipothu +Travis Cline +Travis Swicegood +Oliver Tonnhofer +Ben Cochran +Justin Quick Neil Chintomby Alex Robbins -Graham Dumpleton +Graham Dumpleton Dan Sully -Fabian Topfstedt -Denis Bilenko +Aaron Kavlie Michael Schurter -Masahiro Nakagawa +WoLpH +Jim Garrison +Keegan Carruthers-Smith +John Hensley +Brian Rosner Denis Bilenko Phil Schanely -Evan Mezeske -Darii Denis -Dan Callaghan +Chris Lamb +Kristian Øllegaard +Benjamin Gilbert +Evan Mezeske +Sergey Rublev Kristian Glass Mazdak Rezvani Maxim Kamenkov +Chris Forbes Konstantin Kapustin +Bobby Beckmann +Wojtek Djoume Salvetti -ZheFu Peng (CMGS) +shouse-cars +CMGS +Christoph Heer +414nch4n Caleb Brown Marc Abramowitz -Vangelis Koukis +Leonardo Santagada +aartur +Xie Shi Prateek Singh Paudel -Andrew Gorcester -Kenneth Reitz +zakdances +mpaolini +Bruno Bigras Eric Shull Christos Stavrakakis -Dan Callaghan sib +Chris Adams +Mike Tigas +Qiangning Hong David Vincelli Adnane Belmadiaf Dan Callaghan Greg McGuire -Kevin Luikens +Dmitry Medvinsky +Shane Reustle +Anton Vlasenko +Stephane Wirtel +Mahmoud Hashemi Chris Streeter -Jean-Philippe Serafin +Matt Behrens +German Larrain +Ronan Amicel +Kevin Luikens +Kyle Kelley +jean-philippe serafin Krzysztof Urbaniak Alexandre Zani -Andreas StÃŒhrk +Graham Dumpleton +Kevin Gessner +Andreas Stührk +Jet Sun +Gaurav Kumar +Jorge Niedbalski +Lars Hansson Philip Cristiano Jorge Niedbalski R Moriyoshi Koizumi +Jeremy Volkman +py +Dima Barsky Alex Gaynor -Stephane Wirtel +Stephen DiCato +Simon Lundmark +wong2 kracekumar keakon -Xie Shi Steven Cummings +WooParadog +Mieszko +Kenneth Reitz +David Wolever +Omer Katz +Alasdair Nicol +Anil V +Igor Petrov +Neil Williams +George Notaras +Raphaël Slinckx +Dariusz Suchojad +Randall Leeds +Łukasz Kucharski Malthe Borch +Adrien CLERC +Rik +Levi Gross +Trey Long +Jeryn Mathew Berker Peksag W. Trevor King -Jeryn Mathew +Kirill Zaborsky +Bob Hagemann +Sébastien Fievet +Stephen Holsapple +Hobson Lane Alexis Le-Quoc +Yue Du +Nick Pillitteri +TedWantsMore +Matt Robenolt +Ben Oswald +bninja +Philipp Saveliev +Matt Billenstein +Nikolay Kim +Andrew Svetlov +Andrew Burdo +Rhys Powell Thomas Grainger +INADA Naoki Daniel Quinn Jakub Paweł Głazik -WooParadog +Matt Good Kyle Mulka +Marc Abramowitz Hebert J +Kevin Littlejohn diff --git a/scripts/update_thanks.py b/scripts/update_thanks.py new file mode 100644 index 00000000..115587de --- /dev/null +++ b/scripts/update_thanks.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python +# Usage: git log --format="%an <%ae>" | python update_thanks.py +# You will get a result.txt file, you can work with the file (update, remove, ...) +# +# Install +# ======= +# pip install validate_email pyDNS +# +from __future__ import print_function +import os +import sys + +from validate_email import validate_email +from email.utils import parseaddr +import DNS.Base + +addresses = set() +bad_addresses = set() +collection = [] + +lines = list(reversed(sys.stdin.readlines())) + +for author in map(str.strip, lines): + realname, email_address = parseaddr(author) + + if email_address not in addresses: + if email_address in bad_addresses: + continue + else: + try: + value = validate_email(email_address) + if value: + addresses.add(email_address) + collection.append(author) + else: + bad_addresses.add(email_address) + except DNS.Base.TimeoutError: + bad_addresses.add(email_address) + + +with open('result.txt', 'w') as output: + output.write('\n'.join(collection)) \ No newline at end of file