[Checkins] SVN: hurry.tinymce/trunk/ Added ability to specify additional languages which are downloaded and installed to TinyMCE.

Sebastian Wehrmann sw at gocept.com
Wed Sep 7 09:03:26 EST 2011


Log message for revision 122742:
  Added ability to specify additional languages which are downloaded and installed to TinyMCE.

Changed:
  U   hurry.tinymce/trunk/CHANGES.txt
  U   hurry.tinymce/trunk/src/hurry/tinymce/download.py
  U   hurry.tinymce/trunk/src/hurry/tinymce/prepare.py

-=-
Modified: hurry.tinymce/trunk/CHANGES.txt
===================================================================
--- hurry.tinymce/trunk/CHANGES.txt	2011-09-07 13:47:59 UTC (rev 122741)
+++ hurry.tinymce/trunk/CHANGES.txt	2011-09-07 14:03:26 UTC (rev 122742)
@@ -1,22 +1,20 @@
 CHANGES
 *******
 
-3.3 (2011-09-06) (TinyMCE version 3.3.9.4)
-==========================================
+3.3.9.4 (2011-09-06) (TinyMCE version 3.3.9.4)
+==============================================
 
 * Upgrade to TinyMCE version 3.3.9.4
 
+* Add ability to specify additional languages which are downloaded and
+  installed to TinyMCE. By default, german is installed additionally.
+
 * Change download behaviour to match the current TinyMCE download
   infrastructure.
 
 * Pin version of hurry.recource to 0.9.1 because newer version have
   incompatible api changes.
 
-3.2.3.2 (unreleased) (TinyMCE version: 3.2.3)
-=============================================
-
-* ...
-
 3.2.3.1 (2009-05-04) (TinyMCE version: 3.2.3)
 =============================================
 

Modified: hurry.tinymce/trunk/src/hurry/tinymce/download.py
===================================================================
--- hurry.tinymce/trunk/src/hurry/tinymce/download.py	2011-09-07 13:47:59 UTC (rev 122741)
+++ hurry.tinymce/trunk/src/hurry/tinymce/download.py	2011-09-07 14:03:26 UTC (rev 122742)
@@ -3,28 +3,40 @@
 import os
 
 GH_URL_TEMPLATE = 'https://github.com/downloads/tinymce/tinymce/tinymce_%s.zip'
+LANG_URL_TEMPLATE = ('http://www.tinymce.com/i18n/index.php?ctrl=export&'
+                     'act=zip&la[]=%s&submitted=Download&pr_id=7&la_export=js')
 
-def download(version, callback):
-    """Download a tinymce of version.
 
+def download_and_extract(url, callback):
+    """Download zip from url and extract to temp directory.
+
     When downloaded, call callback with path to directory
     with an extracted tinymce. The callback will then be able to copy
     this to the appropriate location.
+
     """
-    url = GH_URL_TEMPLATE % version
     f = urllib2.urlopen(url)
     file_data = f.read()
     f.close()
 
-    dirpath = tempfile.mkdtemp()
-    import pdb; pdb.set_trace() 
+    dir_path = tempfile.mkdtemp()
     try:
-        tinymce_path = os.path.join(dirpath, 'tinymce.zip')
-        ex_path = os.path.join(dirpath, 'tinymce_ex')
-        g = open(tinymce_path, 'wb')
+        zip_path = os.path.join(dir_path, 'temp.zip')
+        ex_path = os.path.join(dir_path, 'temp_ex')
+        g = open(zip_path, 'wb')
         g.write(file_data)
         g.close()
-        os.system('unzip -qq "%s" -d "%s"' % (tinymce_path, ex_path))
+        os.system('unzip -qq "%s" -d "%s"' % (zip_path, ex_path))
         callback(ex_path)
     finally:
-        shutil.rmtree(dirpath, ignore_errors=True)
+        shutil.rmtree(dir_path, ignore_errors=True)
+
+
+def download_tinymce(version, callback):
+    """Download a tinymce of version."""
+    download_and_extract(GH_URL_TEMPLATE % version, callback)
+
+
+def download_language(lang, callback):
+    """Download a language and add it to tinymce."""
+    download_and_extract(LANG_URL_TEMPLATE % lang, callback)

Modified: hurry.tinymce/trunk/src/hurry/tinymce/prepare.py
===================================================================
--- hurry.tinymce/trunk/src/hurry/tinymce/prepare.py	2011-09-07 13:47:59 UTC (rev 122741)
+++ hurry.tinymce/trunk/src/hurry/tinymce/prepare.py	2011-09-07 14:03:26 UTC (rev 122742)
@@ -1,7 +1,7 @@
 import os, sys
 import shutil
 
-from hurry.tinymce.download import download
+from hurry.tinymce.download import download_tinymce, download_language
 
 def main():
     try:
@@ -26,4 +26,16 @@
             build_path = os.path.join(ex_path, 'jscripts', 'tiny_mce')
         shutil.copytree(build_path, dest_path)
 
-    download(version, copy_tinymce)
+    def copy_language(ex_path):
+        """Copy language files to 'tinymce-build' in package."""
+        base_path = os.path.join(ex_path, 'tinymce_language_pack')
+        for path, folders, files in os.walk(base_path):
+            for filename in files:
+                source = os.path.join(path, filename)
+                # source contains seperator, so is.path.join does not help us
+                # here
+                target = dest_path + source.replace(base_path, '')
+                shutil.copy(source, target)
+
+    download_tinymce(version, copy_tinymce)
+    download_language('de', copy_language)



More information about the checkins mailing list