py/gadict_srs_anki.py
changeset 644 e38cd6112193
parent 618 6ad7203ac9dc
child 646 2d488cfc4c0c
equal deleted inserted replaced
643:c2c32f45dde6 644:e38cd6112193
     5 import sys
     5 import sys
     6 import codecs
     6 import codecs
     7 import tempfile
     7 import tempfile
     8 import shutil
     8 import shutil
     9 import signal
     9 import signal
       
    10 import regex
    10 
    11 
    11 import gadict
    12 import gadict
    12 
    13 
    13 
    14 
    14 FINAME = None
    15 FINAME = None
    15 FONAME = None
    16 FONAME = None
    16 if len(sys.argv) >= 2:
       
    17     FINAME = sys.argv[1]
       
    18 if len(sys.argv) >= 3:
       
    19     FONAME = sys.argv[2]
       
    20 LANGS = None
    17 LANGS = None
    21 if len(sys.argv) >= 4:
    18 
    22     LANGS = set(sys.argv[3].split(","))
    19 # -lang:ru,uk
       
    20 ARG_LANG_RE = regex.compile("-lang:(.+)")
       
    21 # -freq:var:TAG=FILE or -freq:freq:TAG=FILE
       
    22 ARG_FREQ_RE = regex.compile("-freq:(freq|var):([^=]+)=(.+)")
       
    23 
       
    24 look_for_files = False
       
    25 for idx in range(1, len(sys.argv)):
       
    26     arg = sys.argv[idx]
       
    27     if arg == "--":
       
    28         look_for_files = True
       
    29         continue
       
    30     if not look_for_files:
       
    31         m = ARG_LANG_RE.match(arg)
       
    32         if m:
       
    33             LANGS = set(m.group(1).split(","))
       
    34             for lang in LANGS:
       
    35                 if len(lang) != 2:
       
    36                     raise Exception("Incorrect language specification: '{:s}'".format(arg))
       
    37             continue
       
    38         m = ARG_FREQ_RE.match(arg)
       
    39         if m:
       
    40             LANGS = set(arg.split(","))
       
    41             for lang in LANGS:
       
    42                 if len(lang) != 2:
       
    43                     raise Exception("Incorrect language specification: '{:s}'".format(arg))
       
    44             continue
       
    45         if arg.startswith("-"):
       
    46             raise Exception("Unsupported option format: '{:s}'".format(arg))
       
    47     if not FINAME:
       
    48         FINAME = arg
       
    49         continue
       
    50     if not FONAME:
       
    51         FONAME = arg
       
    52         continue
       
    53     raise Exception("Unnecessary argument: '{:s}'".format(arg))
       
    54 
    23 
    55 
    24 FIN = io.open(FINAME, mode='r', buffering=1, encoding="utf-8")
    56 FIN = io.open(FINAME, mode='r', buffering=1, encoding="utf-8")
    25 
    57 
    26 PARSER = gadict.Parser()
    58 PARSER = gadict.Parser()
    27 try:
    59 try: