Skip to content

Commit

Permalink
Implemented special date visit achievement.
Browse files Browse the repository at this point in the history
  • Loading branch information
ronhuang committed Sep 12, 2011
1 parent f0a6d7c commit fd79eb9
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 3 deletions.
26 changes: 25 additions & 1 deletion backend/midautumn/achievement.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from google.appengine.ext import db
from django.utils import simplejson as json
from midautumn.models import FacebookUser
from midautumn.utils import pretty_time
from midautumn.utils import pretty_time, localdate


ITEM_OFFSET = 1000
Expand Down Expand Up @@ -351,3 +351,27 @@ def check_continuous_visit(user):
'description': description,
'icon_url': '/img/' + icon,
}]


def check_visit_date(user):
now = localdate()

if now not in TIME_VALUE:
return []

achievement_id = TIME_OFFSET + TIME_KEY.index(now)

# check if already received achievement
query = user.achievement_set.filter('achievement_id =', achievement_id)
if query.count() > 0:
return []

ua = UserAchievement(owner=user, achievement_id=achievement_id)
key = ua.put()

title, description, icon = TIME_VALUE[now]
return [{'key': key.id(),
'title': title,
'description': description,
'icon_url': '/img/' + icon,
}]
4 changes: 3 additions & 1 deletion backend/midautumn/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,9 @@ def post(self):
else:
self._handle_visit(user)

achievements = achievement.check_continuous_visit(user)
achievements = []
achievements.extend(achievement.check_continuous_visit(user))
achievements.extend(achievement.check_visit_date(user))
args = {'result': 'success',
'achievements': achievements
}
Expand Down
6 changes: 5 additions & 1 deletion backend/midautumn/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@


import time
from datetime import timedelta, tzinfo
from datetime import timedelta, tzinfo, datetime


ZERO = timedelta(0)
Expand Down Expand Up @@ -59,3 +59,7 @@ def pretty_time(dt, tz=tpe):
'localized': localtime.strftime(fmt),
'timestamp': int(time.mktime(utctime.timetuple())),
}

def localdate(tz=tpe):
now = datetime.now(tz)
return now.date()

0 comments on commit fd79eb9

Please sign in to comment.