diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-01-28 09:50:25 -0500 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-01-28 09:50:25 -0500 |
commit | 5744df39e15f85c6cc8a9faf8924d77e76d2b216 (patch) | |
tree | a8c8dd40a94d1fa0d5377566aa5548ae55a163da /includes/zhtable/Makefile.py | |
parent | 4bb2aeca1d198391ca856aa16c40b8559c68daec (diff) | |
parent | 224b22a051051f6c2e494c3a2fb4adb42898e2d1 (diff) |
Merge branch 'archwiki'
Conflicts:
extensions/FluxBBAuthPlugin.php
extensions/SyntaxHighlight_GeSHi/README
extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php
extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php
extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php
extensions/SyntaxHighlight_GeSHi/geshi/docs/CHANGES
extensions/SyntaxHighlight_GeSHi/geshi/docs/THANKS
extensions/SyntaxHighlight_GeSHi/geshi/docs/TODO
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractClass.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractClass_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractMethod.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractPrivateClass.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractPrivateClass_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractPrivateMethod.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Class.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Class_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Constant.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Constructor.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Destructor.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Function.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Global.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/I.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Index.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Interface.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Interface_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/L.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Lminus.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Lplus.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Method.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Page.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Page_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/PrivateClass.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/PrivateClass_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/PrivateMethod.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/PrivateVariable.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/StaticMethod.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/StaticVariable.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/T.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Tminus.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Tplus.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Variable.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/blank.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/class_folder.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/file.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/folder.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/function_folder.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/next_button.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/next_button_disabled.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/package.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/package_folder.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/previous_button.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/previous_button_disabled.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/private_class_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/tutorial.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/tutorial_folder.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/up_button.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/geshi-doc.html
extensions/SyntaxHighlight_GeSHi/geshi/docs/geshi-doc.txt
extensions/SyntaxHighlight_GeSHi/geshi/geshi.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/4cs.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/6502acme.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/6502kickass.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/6502tasm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/68000devpac.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/abap.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/actionscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/actionscript3.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ada.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/algol68.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/apache.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/applescript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/apt_sources.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/asm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/asp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/autoconf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/autohotkey.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/autoit.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/avisynth.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/awk.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/bascomavr.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/bash.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/basic4gl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/bf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/bibtex.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/blitzbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/bnf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/boo.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/c.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/c_loadrunner.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/c_mac.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/caddcl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cadlisp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cfdg.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cfm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/chaiscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cil.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/clojure.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cmake.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cobol.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/coffeescript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cpp-qt.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cpp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/csharp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/css.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cuesheet.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/d.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/dcs.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/delphi.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/diff.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/div.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/dos.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/dot.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/e.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ecmascript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/eiffel.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/email.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/epc.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/erlang.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/euphoria.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/f1.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/falcon.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/fo.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/fortran.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/freebasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/fsharp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gambas.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gdb.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/genero.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/genie.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gettext.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/glsl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gml.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gnuplot.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/go.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/groovy.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gwbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/haskell.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/hicest.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/hq9plus.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/html4strict.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/html5.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/icon.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/idl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ini.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/inno.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/intercal.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/io.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/j.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/java.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/java5.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/javascript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/jquery.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/kixtart.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/klonec.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/klonecpp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/latex.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lb.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lisp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/llvm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/locobasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/logtalk.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lolcode.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lotusformulas.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lotusscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lsl2.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lua.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/m68k.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/magiksf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/make.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mapbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/matlab.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mirc.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mmix.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/modula2.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/modula3.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mpasm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mxml.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mysql.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/newlisp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/nsis.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oberon2.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/objc.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/objeck.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ocaml-brief.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ocaml.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oobas.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oracle11.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oracle8.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oxygene.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oz.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pascal.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pcre.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/per.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/perl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/perl6.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/php-brief.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/php.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pic16.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pike.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pixelbender.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pli.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/plsql.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/postgresql.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/povray.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/powerbuilder.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/powershell.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/proftpd.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/progress.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/prolog.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/properties.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/providex.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/purebasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pycon.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/python.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/q.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/qbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/rails.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/rebol.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/reg.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/robots.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/rpmspec.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/rsplus.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ruby.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/sas.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/scala.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/scheme.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/scilab.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/sdlbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/smalltalk.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/smarty.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/sql.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/systemverilog.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/tcl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/teraterm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/text.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/thinbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/tsql.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/typoscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/unicon.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/uscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/vala.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/vb.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/vbnet.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/verilog.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/vhdl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/vim.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/visualfoxpro.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/visualprolog.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/whitespace.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/whois.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/winbatch.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/xbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/xml.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/xorg_conf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/xpp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/yaml.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/z80.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/zxbasic.php
Diffstat (limited to 'includes/zhtable/Makefile.py')
-rw-r--r-- | includes/zhtable/Makefile.py | 391 |
1 files changed, 0 insertions, 391 deletions
diff --git a/includes/zhtable/Makefile.py b/includes/zhtable/Makefile.py deleted file mode 100644 index fd603ce4..00000000 --- a/includes/zhtable/Makefile.py +++ /dev/null @@ -1,391 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# @author Philip -import tarfile as tf -import zipfile as zf -import os, re, shutil, sys, platform - -pyversion = platform.python_version() -islinux = platform.system().lower() == 'linux' - -if pyversion[:3] in ['2.6', '2.7']: - import urllib as urllib_request - import codecs - open = codecs.open - _unichr = unichr - if sys.maxunicode < 0x10000: - def unichr(i): - if i < 0x10000: - return _unichr(i) - else: - return _unichr( 0xD7C0 + ( i>>10 ) ) + _unichr( 0xDC00 + ( i & 0x3FF ) ) -elif pyversion[:2] == '3.': - import urllib.request as urllib_request - unichr = chr - -def unichr2( *args ): - return [unichr( int( i.split('<')[0][2:], 16 ) ) for i in args] - -def unichr3( *args ): - return [unichr( int( i[2:7], 16 ) ) for i in args if i[2:7]] - -# DEFINE -UNIHAN_VER = '5.2.0' -SF_MIRROR = 'dfn' -SCIM_TABLES_VER = '0.5.10' -SCIM_PINYIN_VER = '0.5.91' -LIBTABE_VER = '0.2.3' -# END OF DEFINE - -def download( url, dest ): - if os.path.isfile( dest ): - print( 'File %s is up to date.' % dest ) - return - global islinux - if islinux: - # we use wget instead urlretrieve under Linux, - # because wget could display details like download progress - os.system( 'wget %s -O %s' % ( url, dest ) ) - else: - print( 'Downloading from [%s] ...' % url ) - urllib_request.urlretrieve( url, dest ) - print( 'Download complete.\n' ) - return - -def uncompress( fp, member, encoding = 'U8' ): - name = member.rsplit( '/', 1 )[-1] - print( 'Extracting %s ...' % name ) - fp.extract( member ) - shutil.move( member, name ) - if '/' in member: - shutil.rmtree( member.split( '/', 1 )[0] ) - return open( name, 'rb', encoding, 'ignore' ) - -unzip = lambda path, member, encoding = 'U8': \ - uncompress( zf.ZipFile( path ), member, encoding ) - -untargz = lambda path, member, encoding = 'U8': \ - uncompress( tf.open( path, 'r:gz' ), member, encoding ) - -def parserCore( fp, pos, beginmark = None, endmark = None ): - if beginmark and endmark: - start = False - else: start = True - mlist = set() - for line in fp: - if beginmark and line.startswith( beginmark ): - start = True - continue - elif endmark and line.startswith( endmark ): - break - if start and not line.startswith( '#' ): - elems = line.split() - if len( elems ) < 2: - continue - elif len( elems[0] ) > 1 and \ - len( elems[pos] ) > 1: # words only - mlist.add( elems[pos] ) - return mlist - -def tablesParser( path, name ): - """ Read file from scim-tables and parse it. """ - global SCIM_TABLES_VER - src = 'scim-tables-%s/tables/zh/%s' % ( SCIM_TABLES_VER, name ) - fp = untargz( path, src, 'U8' ) - return parserCore( fp, 1, 'BEGIN_TABLE', 'END_TABLE' ) - -ezbigParser = lambda path: tablesParser( path, 'EZ-Big.txt.in' ) -wubiParser = lambda path: tablesParser( path, 'Wubi.txt.in' ) -zrmParser = lambda path: tablesParser( path, 'Ziranma.txt.in' ) - -def phraseParser( path ): - """ Read phrase_lib.txt and parse it. """ - global SCIM_PINYIN_VER - src = 'scim-pinyin-%s/data/phrase_lib.txt' % SCIM_PINYIN_VER - dst = 'phrase_lib.txt' - fp = untargz( path, src, 'U8' ) - return parserCore( fp, 0 ) - -def tsiParser( path ): - """ Read tsi.src and parse it. """ - src = 'libtabe/tsi-src/tsi.src' - dst = 'tsi.src' - fp = untargz( path, src, 'big5hkscs' ) - return parserCore( fp, 0 ) - -def unihanParser( path ): - """ Read Unihan_Variants.txt and parse it. """ - fp = unzip( path, 'Unihan_Variants.txt', 'U8' ) - t2s = dict() - s2t = dict() - for line in fp: - if line.startswith( '#' ): - continue - else: - elems = line.split() - if len( elems ) < 3: - continue - type = elems.pop( 1 ) - elems = unichr2( *elems ) - if type == 'kTraditionalVariant': - s2t[elems[0]] = elems[1:] - elif type == 'kSimplifiedVariant': - t2s[elems[0]] = elems[1:] - fp.close() - return ( t2s, s2t ) - -def applyExcludes( mlist, path ): - """ Apply exclude rules from path to mlist. """ - excludes = open( path, 'rb', 'U8' ).read().split() - excludes = [word.split( '#' )[0].strip() for word in excludes] - excludes = '|'.join( excludes ) - excptn = re.compile( '.*(?:%s).*' % excludes ) - diff = [mword for mword in mlist if excptn.search( mword )] - mlist.difference_update( diff ) - return mlist - -def charManualTable( path ): - fp = open( path, 'rb', 'U8' ) - ret = {} - for line in fp: - elems = line.split( '#' )[0].split( '|' ) - elems = unichr3( *elems ) - if len( elems ) > 1: - ret[elems[0]] = elems[1:] - return ret - -def toManyRules( src_table ): - tomany = set() - for ( f, t ) in src_table.iteritems(): - for i in range( 1, len( t ) ): - tomany.add( t[i] ) - return tomany - -def removeRules( path, table ): - fp = open( path, 'rb', 'U8' ) - texc = list() - for line in fp: - elems = line.split( '=>' ) - f = t = elems[0].strip() - if len( elems ) == 2: - t = elems[1].strip() - f = f.strip('"').strip("'") - t = t.strip('"').strip("'") - if f: - try: - table.pop( f ) - except: - pass - if t: - texc.append( t ) - texcptn = re.compile( '^(?:%s)$' % '|'.join( texc ) ) - for (tmp_f, tmp_t) in table.copy().iteritems(): - if texcptn.match( tmp_t ): - table.pop( tmp_f ) - return table - -def customRules( path ): - fp = open( path, 'rb', 'U8' ) - ret = dict() - for line in fp: - elems = line.split( '#' )[0].split() - if len( elems ) > 1: - ret[elems[0]] = elems[1] - return ret - -def dictToSortedList( src_table, pos ): - return sorted( src_table.items(), key = lambda m: m[pos] ) - -def translate( text, conv_table ): - i = 0 - while i < len( text ): - for j in range( len( text ) - i, 0, -1 ): - f = text[i:][:j] - t = conv_table.get( f ) - if t: - text = text[:i] + t + text[i:][j:] - i += len(t) - 1 - break - i += 1 - return text - -def manualWordsTable( path, conv_table, reconv_table ): - fp = open( path, 'rb', 'U8' ) - reconv_table = {} - wordlist = [line.split( '#' )[0].strip() for line in fp] - wordlist = list( set( wordlist ) ) - wordlist.sort( key = len, reverse = True ) - while wordlist: - word = wordlist.pop() - new_word = translate( word, conv_table ) - rcv_word = translate( word, reconv_table ) - if word != rcv_word: - reconv_table[word] = word - reconv_table[new_word] = word - return reconv_table - -def defaultWordsTable( src_wordlist, src_tomany, char_conv_table, char_reconv_table ): - wordlist = list( src_wordlist ) - wordlist.sort( key = len, reverse = True ) - word_conv_table = {} - word_reconv_table = {} - conv_table = char_conv_table.copy() - reconv_table = char_reconv_table.copy() - tomanyptn = re.compile( '(?:%s)' % '|'.join( src_tomany ) ) - while wordlist: - conv_table.update( word_conv_table ) - reconv_table.update( word_reconv_table ) - word = wordlist.pop() - new_word_len = word_len = len( word ) - while new_word_len == word_len: - add = False - test_word = translate( word, reconv_table ) - new_word = translate( word, conv_table ) - if not reconv_table.get( new_word ) \ - and ( test_word != word \ - or ( tomanyptn.search( word ) \ - and word != translate( new_word, reconv_table ) ) ): - word_conv_table[word] = new_word - word_reconv_table[new_word] = word - try: - word = wordlist.pop() - except IndexError: - break - new_word_len = len(word) - return word_reconv_table - -def PHPArray( table ): - lines = ['\'%s\' => \'%s\',' % (f, t) for (f, t) in table if f and t] - return '\n'.join(lines) - -def main(): - #Get Unihan.zip: - url = 'http://www.unicode.org/Public/%s/ucd/Unihan.zip' % UNIHAN_VER - han_dest = 'Unihan.zip' - download( url, han_dest ) - - # Get scim-tables-$(SCIM_TABLES_VER).tar.gz: - url = 'http://%s.dl.sourceforge.net/sourceforge/scim/scim-tables-%s.tar.gz' % ( SF_MIRROR, SCIM_TABLES_VER ) - tbe_dest = 'scim-tables-%s.tar.gz' % SCIM_TABLES_VER - download( url, tbe_dest ) - - # Get scim-pinyin-$(SCIM_PINYIN_VER).tar.gz: - url = 'http://%s.dl.sourceforge.net/sourceforge/scim/scim-pinyin-%s.tar.gz' % ( SF_MIRROR, SCIM_PINYIN_VER ) - pyn_dest = 'scim-pinyin-%s.tar.gz' % SCIM_PINYIN_VER - download( url, pyn_dest ) - - # Get libtabe-$(LIBTABE_VER).tgz: - url = 'http://%s.dl.sourceforge.net/sourceforge/libtabe/libtabe-%s.tgz' % ( SF_MIRROR, LIBTABE_VER ) - lbt_dest = 'libtabe-%s.tgz' % LIBTABE_VER - download( url, lbt_dest ) - - # Unihan.txt - ( t2s_1tomany, s2t_1tomany ) = unihanParser( han_dest ) - - t2s_1tomany.update( charManualTable( 'trad2simp.manual' ) ) - s2t_1tomany.update( charManualTable( 'simp2trad.manual' ) ) - - t2s_1to1 = dict( [( f, t[0] ) for ( f, t ) in t2s_1tomany.iteritems()] ) - s2t_1to1 = dict( [( f, t[0] ) for ( f, t ) in s2t_1tomany.iteritems()] ) - - s_tomany = toManyRules( t2s_1tomany ) - t_tomany = toManyRules( s2t_1tomany ) - - # noconvert rules - t2s_1to1 = removeRules( 'trad2simp_noconvert.manual', t2s_1to1 ) - s2t_1to1 = removeRules( 'simp2trad_noconvert.manual', s2t_1to1 ) - - # the supper set for word to word conversion - t2s_1to1_supp = t2s_1to1.copy() - s2t_1to1_supp = s2t_1to1.copy() - t2s_1to1_supp.update( customRules( 'trad2simp_supp_set.manual' ) ) - s2t_1to1_supp.update( customRules( 'simp2trad_supp_set.manual' ) ) - - # word to word manual rules - t2s_word2word_manual = manualWordsTable( 'simpphrases.manual', s2t_1to1_supp, t2s_1to1_supp ) - t2s_word2word_manual.update( customRules( 'toSimp.manual' ) ) - s2t_word2word_manual = manualWordsTable( 'tradphrases.manual', t2s_1to1_supp, s2t_1to1_supp ) - s2t_word2word_manual.update( customRules( 'toTrad.manual' ) ) - - # word to word rules from input methods - t_wordlist = set() - s_wordlist = set() - t_wordlist.update( ezbigParser( tbe_dest ), - tsiParser( lbt_dest ) ) - s_wordlist.update( wubiParser( tbe_dest ), - zrmParser( tbe_dest ), - phraseParser( pyn_dest ) ) - - # exclude - s_wordlist = applyExcludes( s_wordlist, 'simpphrases_exclude.manual' ) - t_wordlist = applyExcludes( t_wordlist, 'tradphrases_exclude.manual' ) - - s2t_supp = s2t_1to1_supp.copy() - s2t_supp.update( s2t_word2word_manual ) - t2s_supp = t2s_1to1_supp.copy() - t2s_supp.update( t2s_word2word_manual ) - - # parse list to dict - t2s_word2word = defaultWordsTable( s_wordlist, s_tomany, s2t_1to1_supp, t2s_supp ) - t2s_word2word.update( t2s_word2word_manual ) - s2t_word2word = defaultWordsTable( t_wordlist, t_tomany, t2s_1to1_supp, s2t_supp ) - s2t_word2word.update( s2t_word2word_manual ) - - # Final tables - # sorted list toHans - t2s_1to1 = dict( [( f, t ) for ( f, t ) in t2s_1to1.iteritems() if f != t] ) - toHans = dictToSortedList( t2s_1to1, 0 ) + dictToSortedList( t2s_word2word, 1 ) - # sorted list toHant - s2t_1to1 = dict( [( f, t ) for ( f, t ) in s2t_1to1.iteritems() if f != t] ) - toHant = dictToSortedList( s2t_1to1, 0 ) + dictToSortedList( s2t_word2word, 1 ) - # sorted list toCN - toCN = dictToSortedList( customRules( 'toCN.manual' ), 1 ) - # sorted list toHK - toHK = dictToSortedList( customRules( 'toHK.manual' ), 1 ) - # sorted list toSG - toSG = dictToSortedList( customRules( 'toSG.manual' ), 1 ) - # sorted list toTW - toTW = dictToSortedList( customRules( 'toTW.manual' ), 1 ) - - # Get PHP Array - php = '''<?php -/** - * Simplified / Traditional Chinese conversion tables - * - * Automatically generated using code and data in includes/zhtable/ - * Do not modify directly! - * - * @file - */ - -$zh2Hant = array(\n''' - php += PHPArray( toHant ) \ - + '\n);\n\n$zh2Hans = array(\n' \ - + PHPArray( toHans ) \ - + '\n);\n\n$zh2TW = array(\n' \ - + PHPArray( toTW ) \ - + '\n);\n\n$zh2HK = array(\n' \ - + PHPArray( toHK ) \ - + '\n);\n\n$zh2CN = array(\n' \ - + PHPArray( toCN ) \ - + '\n);\n\n$zh2SG = array(\n' \ - + PHPArray( toSG ) \ - + '\n);\n' - - f = open( os.path.join( '..', 'ZhConversion.php' ), 'wb', encoding = 'utf8' ) - print ('Writing ZhConversion.php ... ') - f.write( php ) - f.close() - - # Remove temporary files - print ('Deleting temporary files ... ') - os.remove('EZ-Big.txt.in') - os.remove('phrase_lib.txt') - os.remove('tsi.src') - os.remove('Unihan_Variants.txt') - os.remove('Wubi.txt.in') - os.remove('Ziranma.txt.in') - - -if __name__ == '__main__': - main() |