Who signed up for Twitter immediately before/after you?
This is just a quick hack, done in about 20 minutes in 32 lines of Python. The following script will print out the Twitter screen names of the people who signed up immediately before and after a given user.
import sys
from twitter import Api
from operator import add
from functools import partial
inc = partial(add, 1)
dec = partial(add, -1)
api = Api()
def getUser(u):
try:
return api.GetUser(u)
except Exception:
return None
def do(name):
user = getUser(name)
if user:
for f, what in (dec, 'Before:'), (inc, 'After:'):
i = user.id
while True:
i = f(i)
u = getUser(i)
if u:
print what, u.screen_name
break
else:
print 'Could not find user %r' % name
if __name__ == '__main__':
for name in sys.argv[1:]:
do(name)
I’m happy to have reached the point in my Python development where I can pretty much just type something like this in without really having to think, including the use of operator.add
and functools.partial
.
BTW, the users who signed up immediately before and after I did were skywalker and kitu012.
The above is just a hack. Notes:
- If it can’t retrieve a user for any reason, it just assumes there is no such user.
- Twitter periodically deletes accounts of abusers, so the answer will skip those.
- Twitter had lots of early hiccups, so there may be no guarantee that user ids were actually assigned sequentially.
- This script may run forever.
- I’m using the Python Twitter library written by DeWitt Clinton. It’s been a while since it was updated, and it doesn’t give you back the time a user was created in Twitter. It would be fun to print that too.
As you were.
You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.
April 29th, 2009 at 1:08 pm
Obviously I love functools and operator. But my new best friend is:
(1).__add__
(actually my new best friend is «(2.2).__rpow__», but same difference)
April 29th, 2009 at 2:08 pm
Obviously I love functools and operator. But my new best friend is:
(1).__add__
(actually my new best friend is «(2.2).__rpow__», but same difference)