Skip to content

Commit 1c65157

Browse files
committed
add support for new templates
1 parent 17f42f8 commit 1c65157

3 files changed

Lines changed: 72 additions & 39 deletions

File tree

weeklypedia/bake.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
from mail import Mailinglist, sendy_send_campaign, KEY
1414
from fetch import get_latest_data_path
1515

16-
from common import (DATA_BASE_PATH,
16+
from common import (ARCHIVE_URL,
17+
DATA_BASE_PATH,
1718
DEFAULT_LANGUAGE,
1819
DEFAULT_INTRO,
1920
DEBUG,
@@ -23,6 +24,7 @@
2324
SUBJECT_TMPL,
2425
SUPPORTED_LANGS,
2526
SIGNUP_MAP,
27+
SENDY_IDS,
2628
mkdir_p)
2729

2830
_CUR_PATH = dirname(os.path.abspath(__file__))
@@ -38,7 +40,6 @@
3840

3941
with open(os.path.join(_CUR_PATH, 'secrets.json')) as secrets_json:
4042
secrets = json.load(secrets_json)
41-
SENDY_ID_MAP = secrets.get('sendy_ids')
4243

4344
class Issue(object):
4445
def __init__(self,
@@ -188,7 +189,9 @@ def render_issue(render_ctx, issue_ashes_env,
188189
lang = render_ctx['short_lang_name']
189190
env = issue_ashes_env
190191
ctx = localize_data(render_ctx, lang)
191-
ctx['list_id'] = SENDY_ID_MAP[lang]
192+
ctx['list_id'] = SENDY_IDS[lang]
193+
ctx['archive_link'] = ARCHIVE_URL % lang
194+
192195
if format == 'html':
193196
ret = lang_fallback_render(env, lang, 'archive.html', ctx)
194197
elif format == 'email':
@@ -240,7 +243,7 @@ def render_archive(issue_ashes_env, lang):
240243
ret['issues'].insert(0, {'path': archive_path,
241244
'date': display_date})
242245
ret['lang'] = LANG_MAP[lang]
243-
ret['list_id'] = SENDY_ID_MAP[lang]
246+
ret['list_id'] = SENDY_IDS[lang]
244247
return issue_ashes_env.render('template_archive_index.html', ret)
245248

246249

@@ -261,6 +264,7 @@ def render_and_save_archives(issue_ashes_env):
261264
ret = []
262265
for lang in SUPPORTED_LANGS:
263266
out_path = ARCHIVE_INDEX_PATH_TMPL.format(lang_shortcode=lang)
267+
mkdir_p(pjoin(ARCHIVE_BASE_PATH, lang))
264268
out_file = open(out_path, 'w')
265269
with out_file:
266270
rendered = render_archive(issue_ashes_env, lang)

weeklypedia/common.py

Lines changed: 59 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import os
44
import json
55
from os.path import dirname, join as pjoin
6+
from boltons.fileutils import mkdir_p
67

78
DEBUG = False
89

@@ -15,33 +16,59 @@
1516
_CUR_PATH = dirname(os.path.abspath(__file__))
1617

1718
LANG_MAP = json.load(open(pjoin(_CUR_PATH, 'language_codes.json')))
18-
LOCAL_LANG_MAP = {'en': u'English'}
19-
# 'de': u'Deutsch',
20-
# 'fr': u'Français',
21-
# 'ko': u'한국어',
22-
# 'et': u'Eesti',
23-
# 'sv': u'Svenska',
24-
# 'da': u'Dansk',
25-
# 'it': u'Italiano',
26-
# 'ca': u'Català',
27-
# 'es': u'Español',
28-
# 'fa': u'فارسی',
29-
# 'ur': u'اردو',
30-
# 'zh': u'中文',
31-
# 'kn': u'ಕನ್ನಡ',
32-
# 'lv': u'Latvian',
33-
# 'el': u'ελληνική',
34-
# 'te': u'తెలుగు',
35-
# 'oc': 'Occitan',
36-
# 'ru': 'Russian',
37-
# 'uk': 'Ukrainian'}
19+
LOCAL_LANG_MAP = {'en': u'English',
20+
'de': u'Deutsch',
21+
'eo': u'Esperanto',
22+
'fr': u'Français',
23+
'ko': u'한국어',
24+
'et': u'Eesti',
25+
'sv': u'Svenska',
26+
'da': u'Dansk',
27+
'it': u'Italiano',
28+
'ca': u'Català',
29+
'es': u'Español',
30+
'fa': u'فارسی',
31+
'ur': u'اردو',
32+
'zh': u'中文',
33+
'kn': u'ಕನ್ನಡ',
34+
'lv': u'Latvian',
35+
'el': u'ελληνική',
36+
'te': u'తెలుగు',
37+
'oc': 'Occitan',
38+
'ru': 'Russian',
39+
'uk': 'Ukrainian'}
3840
SENDKEY = json.load(open(os.path.join(_CUR_PATH, 'secrets.json'))).get('key')
39-
SUPPORTED_LANGS = ['en']
40-
# 'de', 'fr', 'ko', 'et', 'sv', 'da', 'it', 'ca', 'es',
41-
# 'fa', 'zh', 'ur', 'kn', 'lv', 'el', 'te', 'oc', 'ru', 'uk']
41+
42+
SENDY_IDS = {'ca': '9sW1OtFlCbJlYgxSXuahHQ',
43+
'zh': 'aSQ6TT0VKpw0tmzBPaRZDg',
44+
'da': '0cs1zVQp3892EjjL0763350TeQ',
45+
'en': 'rFf1E97OGw9qMfZh1F81KA',
46+
#'en': 'VN7NFOFUPp5WjrbMSH7Puw', # debug
47+
'es': 'HTPao3LPmzm0UrCNxfBUgA',
48+
'eo': 'H804892jOtJrNTukmVWOlrbA',
49+
'et': 'db8mkJ2Tl6pnNUIIVfMFog',
50+
'fr': 'ELz1OOSd3olC6LSCJmCqhw',
51+
'de': 't0892Imxu8HTkzoPkrow11MQ',
52+
'it': 'EkOruTQZ64fx7V5k9heZNw',
53+
'kn': 'Dn9KffuyqLRKSY9XAwPCHQ',
54+
'ko': '65Y8dYqreq2Frkav2WmJ9Q',
55+
'lv': 'zgfaJH8Jskz7VxNai9zc763A',
56+
'sv': 'bqpefw4ZBxMBHxrTz9dPKg',
57+
'fa': 'mRGhgpBb4RnwDe25RtP8fA',
58+
'el': 'Ts6mbUlmOCiD0mlWPL8T4A',
59+
'oc': 'OrhmrHkNlTRR9KWNMAgDMQ',
60+
'ru': 'IUDkAYoiJDQ7P3AQtLIAhQ',
61+
'es': '5EzGTlwChgHME1TDa763nncA',
62+
'te': 'rp4VkbQ1p2QXi560nIrF3w',
63+
'ur': 'QiUlnjE3S9kPdvpzWQdK5Q',
64+
'uk': 'gYfAtFPIVbJgVLkEfpO892Uw '}
65+
66+
SUPPORTED_LANGS = SENDY_IDS.keys()
67+
4268
API_BASE_URL = 'http://weeklypedia.toolforge.org/fetch/'
4369

4470
ARCHIVE_BASE_PATH = pjoin(dirname(_CUR_PATH), 'static', 'archive')
71+
ARCHIVE_URL = 'https://weekly.hatnote.com/archive/%s/index.html'
4572

4673
DATA_BASE_PATH = pjoin(dirname(_CUR_PATH), 'static', 'data')
4774
DATA_PATH_TMPL = '{lang_shortcode}/{date_str}{dev_flag}/weeklypedia_{lang_shortcode}_{date_str}{dev_flag}.json'
@@ -72,12 +99,12 @@
7299
'uk': 'http://eepurl.com/dxJKwf'}
73100

74101

75-
def mkdir_p(path):
76-
# bolton
77-
import errno
78-
try:
79-
os.makedirs(path)
80-
except OSError as exc:
81-
if exc.errno == errno.EEXIST and os.path.isdir(path):
82-
return
83-
raise
102+
# def mkdir_p(path):
103+
# # bolton
104+
# import errno
105+
# try:
106+
# os.makedirs(path)
107+
# except OSError as exc:
108+
# if exc.errno == errno.EEXIST and os.path.isdir(path):
109+
# return
110+
# raise

weeklypedia/publish.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,14 @@
66
from argparse import ArgumentParser
77
from clastic.render import AshesRenderFactory
88

9-
from common import DEBUG, DEBUG_LIST_ID, SENDKEY
9+
from common import DEBUG, DEBUG_LIST_ID, SENDKEY, SUPPORTED_LANGS
1010

1111
from web import (comma_int,
1212
ISSUE_TEMPLATES_PATH)
1313

1414
from bake import (Issue,
1515
bake_latest_issue,
16-
render_index,
17-
SUPPORTED_LANGS)
16+
render_index)
1817

1918
_CUR_PATH = dirname(os.path.abspath(__file__))
2019

@@ -69,3 +68,6 @@ def get_argparser():
6968
print 'not sending...'
7069
else:
7170
print send_issue(lang, mailer, debug)
71+
72+
else:
73+
print '!! language %s not supported' % args.lang

0 commit comments

Comments
 (0)