Exemplo n.º 1
0
def monthly_calendar(year, month, lang, project):
    ret = []
    weeks = monthcalendar(year, month)
    for week in weeks:
        ret_week = {'days': []}
        for day in week:
            chart = None
            if day > 0:
                filename = HTML_PATH_TMPL.format(lang=lang,
                                                 project=project,
                                                 year=year,
                                                 month=month,
                                                 day=day)
                if isfile(filename):
                    chart = True
            ret_week['days'].append({'year': year,
                                     'local_year': int_to_local_str(year, locale=lang),
                                     'month': month,
                                     'day': day,
                                     'local_day': int_to_local_str(day, locale=lang),
                                     'lang': lang,
                                     'project': project,
                                     'chart': chart})
        ret.append(ret_week)
    return ret
Exemplo n.º 2
0
def monthly_calendar(year, month, lang, project):
    ret = []
    weeks = monthcalendar(year, month)
    for week in weeks:
        ret_week = {'days': []}
        for day in week:
            chart = None
            if day > 0:
                filename = HTML_PATH_TMPL.format(lang=lang,
                                                 project=project,
                                                 year=year,
                                                 month=month,
                                                 day=day)
                if isfile(filename):
                    chart = True
            ret_week['days'].append({
                'year':
                year,
                'local_year':
                int_to_local_str(year, locale=lang),
                'month':
                month,
                'day':
                day,
                'local_day':
                int_to_local_str(day, locale=lang),
                'lang':
                lang,
                'project':
                project,
                'chart':
                chart
            })
        ret.append(ret_week)
    return ret
Exemplo n.º 3
0
def save_chart(query_date, lang, project):
    data = load_data(query_date, lang, project)
    data['current'] = HTML_FILE_TMPL.format(lang=lang,
                                            project=project,
                                            year=query_date.year,
                                            month=query_date.month,
                                            day=query_date.day)
    #TODO: Shouldn't need to format HTML_FILE_TMPL and HTML_PATH_TMPL
    data['prev'] = check_chart(query_date, 1, lang, project)
    data['next'] = check_chart(query_date, -1, lang, project)
    data['formatted_date'] = int_to_local_str(data['formatted_date'],
                                              locale=lang)
    for i, article in enumerate(data['articles']):
        data['articles'][i]['local_rank'] = int_to_local_str(article['rank'],
                                                             locale=lang)
        data['articles'][i]['rank'] = article['rank']
        views = data['articles'][i]['views_short']
        data['articles'][i]['local_views_short'] = int_to_local_str(
            views, locale=lang)
        view_delta = data['articles'][i]['view_delta']
        data['articles'][i]['local_view_delta'] = int_to_local_str(view_delta,
                                                                   locale=lang)
        streak_len = data['articles'][i]['streak_len']
        data['articles'][i]['local_streak_len'] = int_to_local_str(streak_len,
                                                                   locale=lang)
    data['dir_depth'] = '../' * 4
    data['is_index'] = False
    data['project_lower'] = project
    data.setdefault('meta', {})['generated'] = datetime.utcnow().isoformat()

    outfile_name = HTML_PATH_TMPL.format(lang=lang,
                                         project=project,
                                         year=query_date.year,
                                         month=query_date.month,
                                         day=query_date.day)
    chart_template = choose_template(template=DEFAULT_TEMPLATE_NAME, lang=lang)
    save_rendered(outfile_name, chart_template, data)
    most_recent = check_most_recent(lang=lang, project=project)
    if query_date == most_recent:
        lang_index_path = LANG_INDEX_PATH.format(lang=lang)
        lang_index = pjoin(lang_index_path, 'index.html')
        data['dir_depth'] = '../'
        data['is_index'] = True
        # TODO: Check for localized template
        save_rendered(lang_index, chart_template, data)
        if lang == DEFAULT_LANG and project == DEFAULT_PROJECT:
            main_index = pjoin(INDEX_PATH, 'index.html')
            data['dir_depth'] = ''
            data['is_index'] = True
            save_rendered(main_index, chart_template, data)
Exemplo n.º 4
0
def save_chart(query_date, lang, project):
    data = load_data(query_date, lang, project)
    data['current'] = HTML_FILE_TMPL.format(lang=lang,
                                            project=project,
                                            year=query_date.year,
                                            month=query_date.month,
                                            day=query_date.day)
    #TODO: Shouldn't need to format HTML_FILE_TMPL and HTML_PATH_TMPL
    data['prev'] = check_chart(query_date, 1, lang, project)
    data['next'] = check_chart(query_date, -1, lang, project)
    data['formatted_date'] = int_to_local_str(data['formatted_date'],
                                               locale=lang)
    for i, article in enumerate(data['articles']):
        data['articles'][i]['local_rank'] = int_to_local_str(article['rank'],
                                                             locale=lang)
        data['articles'][i]['rank'] = article['rank']
        views = data['articles'][i]['views_short']
        data['articles'][i]['local_views_short'] = int_to_local_str(views, locale=lang)
        view_delta = data['articles'][i]['view_delta']
        data['articles'][i]['local_view_delta'] = int_to_local_str(views, locale=lang)
        streak_len = data['articles'][i]['streak_len']
        data['articles'][i]['local_streak_len'] = int_to_local_str(streak_len,
                                                                locale=lang)
    data['dir_depth'] = '../' * 4
    data['is_index'] = False
    data['project_lower'] = project
    data.setdefault('meta', {})['generated'] = datetime.utcnow().isoformat()

    outfile_name = HTML_PATH_TMPL.format(lang=lang,
                                         project=project,
                                         year=query_date.year,
                                         month=query_date.month,
                                         day=query_date.day)
    chart_template = choose_template(template=DEFAULT_TEMPLATE_NAME,
                                     lang=lang)
    save_rendered(outfile_name, chart_template, data)
    most_recent = check_most_recent(lang=lang, project=project)
    if query_date == most_recent:
        lang_index_path = LANG_INDEX_PATH.format(lang=lang)
        lang_index = pjoin(lang_index_path, 'index.html')
        data['dir_depth'] = '../'
        data['is_index'] = True
        # TODO: Check for localized template
        save_rendered(lang_index, chart_template, data)
        if lang == DEFAULT_LANG and project == DEFAULT_PROJECT:
            main_index = pjoin(INDEX_PATH, 'index.html')
            data['dir_depth'] = ''
            data['is_index'] = True
            save_rendered(main_index, chart_template, data)
Exemplo n.º 5
0
def yearly_calendar(year, lang, project):
    ret = []
    year_path = YEAR_PATH.format(year=year, lang=lang, project=project)
    for root, dirs, files in os.walk(year_path):
        for month in sorted(dirs, key=int):
            month = int(month)
            month_name = get_month_names(locale=lang)
            weekdays = get_day_names(locale=lang)
            mname = month_name[month]
            mdata = {
                'month_name': mname,
                'month': month,
                'year': year,
                'local_year': int_to_local_str(year, locale=lang),
                'weekdays': {
                    'mon': weekdays[0],
                    'tues': weekdays[1],
                    'wed': weekdays[2],
                    'thurs': weekdays[3],
                    'fri': weekdays[4],
                    'sat': weekdays[5],
                    'sun': weekdays[6]
                }
            }
            mdata['dates'] = monthly_calendar(year, month, lang, project)
            ret.append(mdata)
    ret.reverse()
    return ret
Exemplo n.º 6
0
def update_month(query_date, lang, project):
    year = query_date.year
    month = query_date.month
    month_name = get_month_names(locale=lang)
    weekdays = get_day_names(locale=lang)
    data = {'dir_depth': '../' * 4,
            'month_name': month_name[month],
            'project': project.capitalize(),
            'full_lang': LOCAL_LANG_MAP[lang],
            'prev_month': check_month(query_date, 1, lang, project),
            'next_month': check_month(query_date, -1, lang, project),
            'year': year,
            'local_year': int_to_local_str(year, locale=lang),
            'meta': {'generated': datetime.utcnow().isoformat()},
            'weekdays': {'mon': weekdays[0],
                         'tues': weekdays[1],
                         'wed': weekdays[2],
                         'thurs': weekdays[3],
                         'fri': weekdays[4],
                         'sat': weekdays[5],
                         'sun': weekdays[6]}}
    data['dates'] = monthly_calendar(year, month, lang, project)
    month_index_path = MONTH_INDEX_PATH.format(lang=lang,
                                               project=project,
                                               year=year,
                                               month=month)
    month_index = pjoin(month_index_path, 'index.html')
    month_template = choose_template(template=MONTH_INDEX_TMPL,
                                     lang=lang)
    save_rendered(month_index, month_template, data)
    return data
Exemplo n.º 7
0
def update_month(query_date, lang, project):
    year = query_date.year
    month = query_date.month
    month_name = get_month_names(locale=lang)
    weekdays = get_day_names(locale=lang)
    data = {'dir_depth': '../' * 4,
            'month_name': month_name[month],
            'project': project.capitalize(),
            'full_lang': LOCAL_LANG_MAP[lang],
            'prev_month': check_month(query_date, 1, lang, project),
            'next_month': check_month(query_date, -1, lang, project),
            'year': year,
            'local_year': int_to_local_str(year, locale=lang),
            'meta': {'generated': datetime.utcnow().isoformat()},
            'weekdays': {'mon': weekdays[0],
                         'tues': weekdays[1],
                         'wed': weekdays[2],
                         'thurs': weekdays[3],
                         'fri': weekdays[4],
                         'sat': weekdays[5],
                         'sun': weekdays[6]}}
    data['dates'] = monthly_calendar(year, month, lang, project)
    month_index_path = MONTH_INDEX_PATH.format(lang=lang,
                                               project=project,
                                               year=year,
                                               month=month)
    month_index = pjoin(month_index_path, 'index.html')
    month_template = choose_template(template=MONTH_INDEX_TMPL,
                                     lang=lang)
    save_rendered(month_index, month_template, data)
    return data
Exemplo n.º 8
0
def yearly_calendar(year, lang, project):
    ret = []
    year_path = YEAR_PATH.format(year=year,
                                 lang=lang,
                                 project=project)
    for root, dirs, files in os.walk(year_path):
        for month in sorted(dirs, key=int):
            month = int(month)
            month_name = get_month_names(locale=lang)
            weekdays = get_day_names(locale=lang)
            mname = month_name[month]
            mdata = {'month_name': mname,
                     'month': month,
                     'year': year,
                     'local_year': int_to_local_str(year, locale=lang),
                     'weekdays': {'mon': weekdays[0],
                                  'tues': weekdays[1],
                                  'wed': weekdays[2],
                                  'thurs': weekdays[3],
                                  'fri': weekdays[4],
                                  'sat': weekdays[5],
                                  'sun': weekdays[6]}}
            mdata['dates'] = monthly_calendar(year, month, lang, project)
            ret.append(mdata)
    ret.reverse()
    return ret
Exemplo n.º 9
0
def update_year(year, lang, project):
    full_lang = LOCAL_LANG_MAP[lang]
    year_data = {'months': [],
                 'year': year,
                 'local_year': int_to_local_str(year, locale=lang),
                 'project': project.capitalize(),
                 'full_lang': full_lang,
                 'meta': {'generated': datetime.utcnow().isoformat()},
                 'dir_depth': '../' * 3}
    year_data['months'] = yearly_calendar(year, lang, project)
    year_index_path = YEAR_INDEX_PATH.format(year=year,
                                             lang=lang,
                                             project=project)
    year_index = pjoin(year_index_path, 'index.html')
    year_template = choose_template(template=YEAR_INDEX_TMPL,
                                    lang=lang)
    save_rendered(year_index, year_template, year_data)
Exemplo n.º 10
0
def update_year(year, lang, project):
    full_lang = LOCAL_LANG_MAP[lang]
    year_data = {'months': [],
                 'year': year,
                 'local_year': int_to_local_str(year, locale=lang),
                 'project': project.capitalize(),
                 'full_lang': full_lang,
                 'meta': {'generated': datetime.utcnow().isoformat()},
                 'dir_depth': '../' * 3}
    year_data['months'] = yearly_calendar(year, lang, project)
    year_index_path = YEAR_INDEX_PATH.format(year=year,
                                             lang=lang,
                                             project=project)
    year_index = pjoin(year_index_path, 'index.html')
    year_template = choose_template(template=YEAR_INDEX_TMPL,
                                    lang=lang)
    save_rendered(year_index, year_template, year_data)