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
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
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)
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)
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
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
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
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)