[MediaWiki-commits] [Gerrit] Add Chinese dialects to template script - change (apps...wikipedia)

2015-06-15 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Add Chinese dialects to template script
..


Add Chinese dialects to template script

- Add Simplified and Traditional dialects to template script.
- Update FileAlias, MainPageName, and SpecialAlias files with updated template 
script.

Change-Id: Ic2d351a93d0a26dce41d31b3b9f918b838331f26
---
M scripts/make-templates.py
M wikipedia/src/main/java/org/wikipedia/staticdata/FileAliasData.java
M wikipedia/src/main/java/org/wikipedia/staticdata/MainPageNameData.java
M wikipedia/src/main/java/org/wikipedia/staticdata/SpecialAliasData.java
4 files changed, 483 insertions(+), 436 deletions(-)

Approvals:
  Dbrant: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/scripts/make-templates.py b/scripts/make-templates.py
index d3395ad..3e574a2 100755
--- a/scripts/make-templates.py
+++ b/scripts/make-templates.py
@@ -1,4 +1,7 @@
 #!/usr/bin/env python
+# coding=utf-8
+
+import copy
 import os
 import json
 import unicodecsv as csv
@@ -6,6 +9,10 @@
 from urllib2 import urlopen
 from jinja2 import Environment, FileSystemLoader
 
+
+CHINESE_WIKI_LANG = zh
+SIMPLIFIED_CHINESE_LANG = zh-hans
+TRADITIONAL_CHINESE_LANG = zh-hant
 
 # Wikis that cause problems and hence we pretend
 # do not exist.
@@ -33,19 +40,24 @@
 os.path.join(os.path.dirname(os.path.realpath(__file__)), 
utemplates)
 ))
 
-def get_filtered_wiki_list(self):
-return [wiki for wiki in self.wikis if wiki.lang not in OSTRITCH_WIKIS]
-
 def render(self, template, class_name, **kwargs):
 data = {
 uclass_name: class_name,
-uwikis: self.get_filtered_wiki_list()
+uwikis: self.wikis
 }
 data.update(kwargs)
 rendered = self.template_env.get_template(template).render(**data)
 out = codecs.open(class_name + u.java, uw, uutf-8)
 out.write(rendered)
 out.close()
+
+
+def build_wiki(lang, english_name, local_name, total_pages=0):
+wiki = Wiki(lang)
+wiki.props[english_name] = english_name
+wiki.props[local_name] = local_name
+wiki.props[total_pages] = total_pages
+return wiki
 
 
 def list_from_wikistats():
@@ -60,20 +72,46 @@
 if is_first:
 is_first = False
 continue  # skip headers
-wiki = Wiki(row[2])
-wiki.props[uenglish_name] = row[1]
-wiki.props[ulocal_name] = row[10]
-wiki.props[utotal_pages] = row[3]
+wiki = build_wiki(lang=row[2], english_name=row[1], local_name=row[10],
+  total_pages=row[3])
 wikis.append(wiki)
 
-# Manually add TestWiki to this list
-testWiki = Wiki(utest)
-testWiki.props[uenglish_name] = Test
-testWiki.props[ulocal_name] = Test
-testWiki.props[utotal_pages] = 0
-wikis.append(testWiki)
+return wikis
 
-return WikiList(wikis)
+
+# Remove unsupported wikis.
+def filter_supported_wikis(wikis):
+return [wiki for wiki in wikis if wiki.lang not in OSTRITCH_WIKIS]
+
+
+# Apply manual tweaks to the list of wikis before they're populated.
+def preprocess_wikis(wikis):
+# Add TestWiki.
+wikis.append(build_wiki(lang=test, english_name=Test, 
local_name=Test,
+ total_pages=0))
+
+return wikis
+
+
+# Apply manual tweaks to the list of wikis after they're populated.
+def postprocess_wikis(wiki_list):
+# Add Simplified and Traditional Chinese dialects.
+chineseWiki = next((wiki for wiki in wiki_list.wikis if wiki.lang == 
CHINESE_WIKI_LANG), None)
+chineseWikiIndex = wiki_list.wikis.index(chineseWiki)
+
+simplifiedWiki = copy.deepcopy(chineseWiki)
+simplifiedWiki.lang = SIMPLIFIED_CHINESE_LANG
+simplifiedWiki.props[english_name] = Simplified Chinese
+simplifiedWiki.props[local_name] = 简体
+wiki_list.wikis.insert(chineseWikiIndex + 1, simplifiedWiki)
+
+traditionalWiki = copy.deepcopy(chineseWiki)
+traditionalWiki.lang = TRADITIONAL_CHINESE_LANG
+traditionalWiki.props[english_name] = Traditional Chinese
+traditionalWiki.props[local_name] = 繁體
+wiki_list.wikis.insert(chineseWikiIndex + 2, traditionalWiki)
+
+return wiki_list
 
 
 # Populate the aliases for Special: and File: in all wikis
@@ -132,12 +170,16 @@
 
 chain(
 list_from_wikistats,
+filter_supported_wikis,
+preprocess_wikis,
+WikiList,
 populate_aliases,
+populate_main_pages,
+postprocess_wikis,
 render_template(ubasichash.java.jinja, uSpecialAliasData, 
key=uspecial_alias),
 render_template(ubasichash.java.jinja, uFileAliasData, 
key=ufile_alias),
 render_simple_json(uspecial_alias, uspecialalias.json),
 render_simple_json(ufile_alias, ufilealias.json),
-populate_main_pages,
 render_template(ubasichash.java.jinja, uMainPageNameData, 
key=umain_page_name),
 render_simple_json(umain_page_name, umainpages.json)
 )
diff 

[MediaWiki-commits] [Gerrit] Add Chinese dialects to template script - change (apps...wikipedia)

2015-06-11 Thread Niedzielski (Code Review)
Niedzielski has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/217750

Change subject: Add Chinese dialects to template script
..

Add Chinese dialects to template script

- Add Simplified and Traditional dialects to template script.
- Update FileAlias, MainPageName, and SpecialAlias files with updated template 
script.

Change-Id: Ic2d351a93d0a26dce41d31b3b9f918b838331f26
---
M scripts/make-templates.py
M wikipedia/src/main/java/org/wikipedia/staticdata/FileAliasData.java
M wikipedia/src/main/java/org/wikipedia/staticdata/MainPageNameData.java
M wikipedia/src/main/java/org/wikipedia/staticdata/SpecialAliasData.java
4 files changed, 483 insertions(+), 436 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/50/217750/1

diff --git a/scripts/make-templates.py b/scripts/make-templates.py
index d3395ad..3e574a2 100755
--- a/scripts/make-templates.py
+++ b/scripts/make-templates.py
@@ -1,4 +1,7 @@
 #!/usr/bin/env python
+# coding=utf-8
+
+import copy
 import os
 import json
 import unicodecsv as csv
@@ -6,6 +9,10 @@
 from urllib2 import urlopen
 from jinja2 import Environment, FileSystemLoader
 
+
+CHINESE_WIKI_LANG = zh
+SIMPLIFIED_CHINESE_LANG = zh-hans
+TRADITIONAL_CHINESE_LANG = zh-hant
 
 # Wikis that cause problems and hence we pretend
 # do not exist.
@@ -33,19 +40,24 @@
 os.path.join(os.path.dirname(os.path.realpath(__file__)), 
utemplates)
 ))
 
-def get_filtered_wiki_list(self):
-return [wiki for wiki in self.wikis if wiki.lang not in OSTRITCH_WIKIS]
-
 def render(self, template, class_name, **kwargs):
 data = {
 uclass_name: class_name,
-uwikis: self.get_filtered_wiki_list()
+uwikis: self.wikis
 }
 data.update(kwargs)
 rendered = self.template_env.get_template(template).render(**data)
 out = codecs.open(class_name + u.java, uw, uutf-8)
 out.write(rendered)
 out.close()
+
+
+def build_wiki(lang, english_name, local_name, total_pages=0):
+wiki = Wiki(lang)
+wiki.props[english_name] = english_name
+wiki.props[local_name] = local_name
+wiki.props[total_pages] = total_pages
+return wiki
 
 
 def list_from_wikistats():
@@ -60,20 +72,46 @@
 if is_first:
 is_first = False
 continue  # skip headers
-wiki = Wiki(row[2])
-wiki.props[uenglish_name] = row[1]
-wiki.props[ulocal_name] = row[10]
-wiki.props[utotal_pages] = row[3]
+wiki = build_wiki(lang=row[2], english_name=row[1], local_name=row[10],
+  total_pages=row[3])
 wikis.append(wiki)
 
-# Manually add TestWiki to this list
-testWiki = Wiki(utest)
-testWiki.props[uenglish_name] = Test
-testWiki.props[ulocal_name] = Test
-testWiki.props[utotal_pages] = 0
-wikis.append(testWiki)
+return wikis
 
-return WikiList(wikis)
+
+# Remove unsupported wikis.
+def filter_supported_wikis(wikis):
+return [wiki for wiki in wikis if wiki.lang not in OSTRITCH_WIKIS]
+
+
+# Apply manual tweaks to the list of wikis before they're populated.
+def preprocess_wikis(wikis):
+# Add TestWiki.
+wikis.append(build_wiki(lang=test, english_name=Test, 
local_name=Test,
+ total_pages=0))
+
+return wikis
+
+
+# Apply manual tweaks to the list of wikis after they're populated.
+def postprocess_wikis(wiki_list):
+# Add Simplified and Traditional Chinese dialects.
+chineseWiki = next((wiki for wiki in wiki_list.wikis if wiki.lang == 
CHINESE_WIKI_LANG), None)
+chineseWikiIndex = wiki_list.wikis.index(chineseWiki)
+
+simplifiedWiki = copy.deepcopy(chineseWiki)
+simplifiedWiki.lang = SIMPLIFIED_CHINESE_LANG
+simplifiedWiki.props[english_name] = Simplified Chinese
+simplifiedWiki.props[local_name] = 简体
+wiki_list.wikis.insert(chineseWikiIndex + 1, simplifiedWiki)
+
+traditionalWiki = copy.deepcopy(chineseWiki)
+traditionalWiki.lang = TRADITIONAL_CHINESE_LANG
+traditionalWiki.props[english_name] = Traditional Chinese
+traditionalWiki.props[local_name] = 繁體
+wiki_list.wikis.insert(chineseWikiIndex + 2, traditionalWiki)
+
+return wiki_list
 
 
 # Populate the aliases for Special: and File: in all wikis
@@ -132,12 +170,16 @@
 
 chain(
 list_from_wikistats,
+filter_supported_wikis,
+preprocess_wikis,
+WikiList,
 populate_aliases,
+populate_main_pages,
+postprocess_wikis,
 render_template(ubasichash.java.jinja, uSpecialAliasData, 
key=uspecial_alias),
 render_template(ubasichash.java.jinja, uFileAliasData, 
key=ufile_alias),
 render_simple_json(uspecial_alias, uspecialalias.json),
 render_simple_json(ufile_alias, ufilealias.json),
-populate_main_pages,
 render_template(ubasichash.java.jinja, uMainPageNameData, 
key=umain_page_name),