Adamw has uploaded a new change for review.
https://gerrit.wikimedia.org/r/91338
Change subject: WIP (FR #1113) checks for translation existence
......................................................................
WIP (FR #1113) checks for translation existence
Change-Id: I57636c560b02c835a7e2b4a0896267341383749c
---
A language_audit/check_pages
A language_audit/config.yaml.example
M mediawiki/api.py
A mediawiki/i18n.py
A mediawiki/page.py
5 files changed, 70 insertions(+), 2 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/tools
refs/changes/38/91338/1
diff --git a/language_audit/check_pages b/language_audit/check_pages
new file mode 100755
index 0000000..5ac86a5
--- /dev/null
+++ b/language_audit/check_pages
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+
+import os
+import os.path
+import re
+import sys
+
+from process.globals import load_config
+load_config("language_audit")
+
+from process.globals import config
+from process.lock import begin, end
+
+from mediawiki.i18n import get_languages
+from mediawiki.page import get_content
+
+def check_pages():
+ for check_spec in config.check_page_languages:
+ api_url = check_spec['api']
+ languages = sorted([ l['code'] for l in get_languages(api=api_url) ])
+ for lang in languages:
+ title = check_spec['page'].format(language=lang)
+ content = get_content(title, api=api_url)
+ description = re.sub(r'^https?://([^/]+)/.*$', r'\1', api_url) +
": " + title
+ if not content:
+ print "MISSING: " + description
+ else:
+ print "found: " + description
+
+if __name__ == "__main__":
+ try:
+ begin()
+
+ check_pages()
+ finally:
+ end()
diff --git a/language_audit/config.yaml.example
b/language_audit/config.yaml.example
new file mode 100644
index 0000000..67b12b5
--- /dev/null
+++ b/language_audit/config.yaml.example
@@ -0,0 +1,8 @@
+centralnotice_mw_api:
+ "http://meta.wikimedia.org/w/api.php"
+check_page_languages:
+ -
+ api: "https://wikimediafoundation.org/w/api.php"
+ page: "Thank_You/{language}"
+debug:
+ 1
diff --git a/mediawiki/api.py b/mediawiki/api.py
index 8c6bd87..49ea188 100644
--- a/mediawiki/api.py
+++ b/mediawiki/api.py
@@ -6,11 +6,11 @@
import json
-def mw_call( args ):
+def mw_call(args, api=config.centralnotice_mw_api):
import simplemediawiki
wiki = simplemediawiki.MediaWiki(
- config.centralnotice_mw_api,
+ api,
user_agent='bot: fr-anal'
)
result = wiki.call( args )
diff --git a/mediawiki/i18n.py b/mediawiki/i18n.py
new file mode 100644
index 0000000..0a32e9f
--- /dev/null
+++ b/mediawiki/i18n.py
@@ -0,0 +1,9 @@
+from mediawiki.api import mw_call
+
+def get_languages(**kw):
+ result = mw_call({
+ 'action': 'query',
+ 'meta': 'siteinfo',
+ 'siprop': 'languages',
+ }, **kw)
+ return result['languages']
diff --git a/mediawiki/page.py b/mediawiki/page.py
new file mode 100644
index 0000000..3bb9384
--- /dev/null
+++ b/mediawiki/page.py
@@ -0,0 +1,15 @@
+from mediawiki.api import mw_call
+
+def get_content(title, **kw):
+ result = mw_call({
+ 'action': 'query',
+ 'prop': 'revisions',
+ 'titles': title,
+ 'rvprop': 'content',
+ }, **kw)
+ page = result['pages'].values().pop()
+ if 'revisions' in page:
+ revision = page['revisions'].pop()
+ return revision['*']
+ else:
+ return None
--
To view, visit https://gerrit.wikimedia.org/r/91338
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I57636c560b02c835a7e2b4a0896267341383749c
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/tools
Gerrit-Branch: master
Gerrit-Owner: Adamw <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits