Exemplo n.º 1
0
Arquivo: api.py Projeto: mbsdev/helper
def lunch_blocks():
    now = datetime.datetime.now(pytz.timezone('US/Eastern'))
    day_of_week = 'Monday' if now.weekday() > 4 else now.strftime('%A')
    day_of_week_lower = day_of_week.lower()

    a, b = 'a_%s' % day_of_week_lower, 'b_%s' % day_of_week_lower
    a_or_b_today = db.get_ab_week()

    if a_or_b_today:
        correct_day_week = a if a_or_b_today['a_or_b'] == 'A' else b
        db_resp = db.get_lunch_blocks_multi_find(correct_day_week)
    else:
        correct_day_week = 'A/B'
        db_resp = db.get_both_lunch_blocks(a, b)

    ts, ts_delta, header_title, eng_week_day_name = None, None, None, None
    resp, classes = [], []


    for i in db_resp:
        ts = i['ts']
        ts_delta = clean_rd(relativedelta.relativedelta(datetime.datetime.now(), ts))
        week_id = 'A' if 'a_' in i['week_day_name'] else 'B'
        resp.append({
            'blocks': sorted(i['classes']),
            'header_title': u'%s week \u00b7 go to class first \u00b7 revised %s' % (week_id, ts_delta),
            'day_week': i['english_week_day_name']
        })

    return jsonify({
        'ok': 1,
        'result': resp,
        'navtitle': u'Lunch blocks \u00b7 %s (%s)' % (day_of_week,
                                                      correct_ab_week if not a_or_b_today else a_or_b_today['a_or_b'])
    })
Exemplo n.º 2
0
def news(item):
    xml = xmltodict.parse(item.resp)
    # item.date is localized to US/Eastern
    now = item.date
    three_days_ago = now - datetime.timedelta(days=3)

    stories = map(lambda x: {
        'url': x['link'],
        'text': x['title'],
        'pub_date': utils.news_ts_to_dt(x['pubDate']),
        'date_delta': utils.clean_rd(relativedelta.relativedelta(now, utils.news_ts_to_dt(x['pubDate']))),
        'class': 'article'
    }, xml['rss']['channel']['item'])
    if item.filter_news:
        recent_stories = sorted(
            filter(lambda x: x['pub_date'] >= three_days_ago, stories),
            key=lambda x: x['pub_date'],
            reverse=True)

        for i in xrange(len(recent_stories)):
            recent_stories[i]['pub_date'] = str(recent_stories[i]['pub_date'])

        return recent_stories
    else:
        sorted_articles = sorted(stories,
                                 key=lambda x: x['pub_date'],
                                 reverse=True)

        for i in xrange(len(sorted_articles)):
            sorted_articles[i]['pub_date'] = str(sorted_articles[i]['pub_date'])
        return sorted_articles
Exemplo n.º 3
0
Arquivo: api.py Projeto: mbsdev/helper
def form_list():
    res = []
    res_append = res.append

    for f in db.get_forms():
        res_append({
            'class': 'article',
            'img': 'doc.png',
            'url': 'https://now.2pitau.org/static/forms/%s' % f['filename'],
            'text': f['name'],
            'ts': f['ts'],
            'date_delta': clean_rd(relativedelta.relativedelta(datetime.datetime.now(), f['ts']))
        })
    return jsonify({
        'ok': 1,
        'forms': sorted(res, key=lambda x: x['ts'], reverse=True)
    })
Exemplo n.º 4
0
Arquivo: api.py Projeto: mbsdev/helper
def lunch_blocks_by_name(day_week_name):
    """intended only for Admin
    """
    if day_week_name.lower() not in AB_DAYS:
        raise UsageError('day-not-found')

    db_resp = db.get_lunch_blocks(day_week_name)
    ts_eastern, ts_delta, blocks = None, None, None

    if db_resp:
        ts = db_resp['ts']
        ts_delta = clean_rd(relativedelta.relativedelta(datetime.datetime.now(), ts))
        blocks = '\n'.join(sorted(db_resp['classes']))

        eastern = pytz.timezone('US/Eastern')
        ts_eastern = pytz.utc.localize(ts, is_dst=None).astimezone(eastern)

    return jsonify({
        'ok': 1,
        'ts_delta': ts_delta,
        'blocks': blocks,
        'ts': ts_eastern.strftime('%a, %d %b %Y %H:%M:%S %Z')
    })
Exemplo n.º 5
0
def clean_rd(d):
        return utils.clean_rd(relativedelta.relativedelta(datetime.datetime.now(), d))