Пример #1
0
def give_awards():
    import re
    from r2.models import Account, Subreddit, Award
    from r2.lib import utils
    from datetime import datetime, timedelta

    
    q = Account._query(Account.c._spam == False,
                       Account.c._deleted == False,
                       sort = asc('_date'),
                       #Account.c.link_karma>-1,
                       limit = 1000,
                       data = True)
    

    i=0
    ctime = datetime.now(g.tz)
    for account in utils.fetch_things2(q):
        prev_visit = last_visit(account)
        if not prev_visit:
            print "%s hasn't logged in for a long time" % account.name
            continue
        if (ctime - prev_visit).days > 90:
            print "%s hasn't logged in for %d days" % (account.name,(ctime-prev_visit).days)
            continue
        tsince = ctime - account._date
        if tsince.days < 30:
            Award.give_if_needed("newbie", account)
        elif tsince.days >= 30:
            Award.take_away("newbie", account)
        if tsince.days >= 365 and tsince.days < 365*2:
            Award.give_if_needed("1year", account)
        elif tsince.days >= 365*2:
            Award.take_away("1year", account)
            Award.give_if_needed("2years", account)
        if account.email_verified:
            print "%s has verified email: %s" % (account.name,account.email)
            Award.give_if_needed("verified_email", account)
Пример #2
0
    def engolden(self, account, days):
        from r2.models import Award

        account.gold = True

        now = datetime.now(g.display_tz)

        existing_expiration = getattr(account, "gold_expiration", None)
        if existing_expiration is None or existing_expiration < now:
            existing_expiration = now
        account.gold_expiration = existing_expiration + timedelta(days)

        description = "Since " + now.strftime("%B %Y")
        trophy = Award.give_if_needed("reddit_gold", account,
                                     description=description,
                                     url="/gold/about")
        if trophy and trophy.description.endswith("Member Emeritus"):
            trophy.description = description
            trophy._commit()
        account._commit()

        account.friend_rels_cache(_update=True)