Reputation: 523
This is my first time here so I hope I post this question at the right place. :)
I need to build flood control for my script but I'm not good at all this datetime to time conversions with UTC and stuff. I hope you can help me out. I'm using the Google App Engine with Python. I've got a datetimeproperty at the DataStore database which should be checked if it's older than 20 seconds, then proceed.
Could anybody help me out?
So in semi-psuedo:
q = db.GqlQuery("SELECT * FROM Kudo WHERE fromuser = :1", user)
lastplus = q.get()
if lastplus.date is older than 20 seconds:
print"Go!"
Upvotes: 39
Views: 45547
Reputation: 98836
Try this:
from datetime import timedelta, datetime
if lastplus.date < datetime.utcnow() + timedelta(seconds = -20):
print "fee fie fo foo!"
Upvotes: 6
Reputation: 1529
You can use the datetime.timedelta datatype, like this:
import datetime
lastplus = q.get()
if lastplus.date < datetime.datetime.now()-datetime.timedelta(seconds=20):
print "Go"
Read more about it here: http://docs.python.org/library/datetime.html
Cheers,
Philip
Upvotes: 60