import unicodedata
import enum
import base64
+from argparse import ArgumentParser, RawTextHelpFormatter
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class jpMainWindow(QMainWindow):
kanji_dlg = None
- def __init__(self, *args, title='', **kwargs):
+ def __init__(self, *args, title='', cl_args=None, **kwargs):
super().__init__(*args, **kwargs)
self.init_ui(title)
+ # evaluate command line arguments
+ if cl_args is not None:
+ if cl_args.kanjidic:
+ self.kanjidic()
+ elif cl_args.kanji_lookup:
+ self.kanjidic(cl_args.kanji_lookup)
+ elif cl_args.clip_kanji:
+ self.kanjidic(self.clipboard.text())
+ elif cl_args.word_lookup:
+ self.show()
+ self.search_box.lineEdit().setText(cl_args.word_lookup)
+ self.search()
+ elif cl_args.clip_word:
+ self.show()
+ self.kbd_paste()
+ self.search()
+ else:
+ self.show()
def init_ui(self, title=''):
jpIcon()
def kanjidic_clicked(self, kanji=''):
if kanji:
+ self.show()
self.search_box.lineEdit().setText(kanji)
self.activateWindow()
self.search()
############################################################
# main function
+def _parse_cmdline():
+ parser = ArgumentParser(
+ formatter_class=RawTextHelpFormatter,
+ description='Jiten-pai Japanese dictionary',
+ epilog='\n'
+ )
+ parser.add_argument('-k', '--kanjidic', action='count', help='start with KanjiDic')
+ parser.add_argument('-c', '--clip-kanji', action='count', help='look up kanji from clipboard')
+ parser.add_argument('-l', '--kanji-lookup', metavar='KANJI', help='look up KANJI in kanji dictionary')
+ parser.add_argument('-w', '--word-lookup', metavar='WORD', help='look up WORD in word dictionary')
+ parser.add_argument('-v', '--clip-word', action='count', help='look up word from clipboard')
+ return parser.parse_args()
+
def main():
global app
_load_cfg()
_vc_load()
+ cl_args = _parse_cmdline()
# set up window
os.environ['QT_LOGGING_RULES'] = 'qt5ct.debug=false'
app = QApplication(sys.argv)
app.setApplicationName(_JITENPAI_NAME)
- root = jpMainWindow(title=_JITENPAI_NAME + ' ' + _JITENPAI_VERSION)
- root.show()
+ root = jpMainWindow(title=_JITENPAI_NAME + ' ' + _JITENPAI_VERSION, cl_args=cl_args)
die(app.exec_())
# run application
import os
import re
import json
+from argparse import ArgumentParser, RawTextHelpFormatter
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
dic_ok = True
radlist = None
- def __init__(self, *args, parent=None, title=_KANJIDIC_NAME + ' ' + _KANJIDIC_VERSION, **kwargs):
+ def __init__(self, *args, parent=None, title=_KANJIDIC_NAME + ' ' + _KANJIDIC_VERSION, cl_args=None, **kwargs):
super().__init__(*args, **kwargs)
self._parent = parent
if parent:
if not _kanjidic_load(cfg['kanjidic']):
self.show_error('Error loading kanjidic!')
self.dic_ok = False
+ # evaluate command line arguments
+ if cl_args is not None:
+ if cl_args.kanji_lookup:
+ self.show_info(cl_args.kanji_lookup)
+ elif cl_args.clip_kanji:
+ self.show_info(self.clipboard.text())
def init_cfg(self):
_load_cfg()
############################################################
# main function
+def _parse_cmdline():
+ parser = ArgumentParser(
+ formatter_class=RawTextHelpFormatter,
+ description='Jiten-pai kanji dictionary',
+ epilog='\n'
+ )
+ parser.add_argument('-c', '--clip-kanji', action='count', help='look up kanji from clipboard')
+ parser.add_argument('-l', '--kanji-lookup', metavar='KANJI', help='look up KANJI in kanji dictionary')
+ return parser.parse_args()
+
def _main():
global _standalone
_standalone = True
- kanji = sys.argv[1] if len(sys.argv) > 1 else ''
+ cl_args = _parse_cmdline()
os.environ['QT_LOGGING_RULES'] = 'qt5ct.debug=false'
app = QApplication(sys.argv)
app.setApplicationName(_KANJIDIC_NAME)
- root = kdMainWindow()
+ root = kdMainWindow(cl_args=cl_args)
root.show()
- root.show_info(kanji)
sys.exit(app.exec_())
if __name__== "__main__":