sekka 1.5.7 → 1.5.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION.yml +1 -1
- data/emacs/sekka.el +94 -16
- data/lib/sekka/sekkaversion.rb +1 -1
- metadata +20 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60bdf6a44d924978bd822a1964693ba999eb0032
|
4
|
+
data.tar.gz: 9da6c58564582ae7bc4e0e4c4c16e388a1487c48
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac0e777364bf1e07232486b74b3e50bb552ce774d7492920ee0869b430eee72f741a8967fdcd2a8e0f092a0adc367ac96cec2a25a51f017bc426fc1c41085e9a
|
7
|
+
data.tar.gz: 5a2964f084b8f1c8dc488e7c82e5ed6b08e99f232d95c1c42b9727add922093db317d8b79c7347da9b516636c1005312477c7dbd6b0683b89d42f19e6c44278f
|
data/VERSION.yml
CHANGED
data/emacs/sekka.el
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
;; Copyright (C) 2010-2014 Kiyoka Nishiyama
|
4
4
|
;;
|
5
5
|
;; Author: Kiyoka Nishiyama <kiyoka@sumibi.org>
|
6
|
-
;; Version: 1.5.
|
6
|
+
;; Version: 1.5.8 ;;SEKKA-VERSION
|
7
7
|
;; Keywords: ime, skk, japanese
|
8
8
|
;; Package-Requires: ((cl-lib "0.3") (concurrent "0.3.1") (popup "0.5.0"))
|
9
9
|
;; URL: https://github.com/kiyoka/sekka
|
@@ -82,6 +82,11 @@
|
|
82
82
|
:type 'string
|
83
83
|
:group 'sekka)
|
84
84
|
|
85
|
+
(defcustom sekka-use-curl t
|
86
|
+
"non-nil でcurlコマンドを使う。nilでEmacs Lisp(url.elを使う)"
|
87
|
+
:type 'boolean
|
88
|
+
:group 'sekka)
|
89
|
+
|
85
90
|
(defcustom sekka-curl "curl"
|
86
91
|
"curlコマンドの絶対パスを設定する"
|
87
92
|
:type 'string
|
@@ -208,6 +213,8 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
208
213
|
(goto-char (point-max))
|
209
214
|
(insert string)))))
|
210
215
|
|
216
|
+
;; HTTPクライアントの多重起動防止用
|
217
|
+
(defvar sekka-busy 0)
|
211
218
|
|
212
219
|
;;; 現在のsekka-serverの接続先
|
213
220
|
(defvar current-sekka-server-url nil)
|
@@ -378,7 +385,7 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
378
385
|
result)))
|
379
386
|
(let ((arg-alist
|
380
387
|
(cons
|
381
|
-
`(userid . ,sekka-login-name)
|
388
|
+
`("userid" . ,sekka-login-name)
|
382
389
|
arg-alist)))
|
383
390
|
(or
|
384
391
|
(one-request func-name arg-alist)
|
@@ -397,7 +404,7 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
397
404
|
(list "--noproxy" sekka-no-proxy-hosts)
|
398
405
|
nil)
|
399
406
|
(sekka-construct-curl-argstr (cons
|
400
|
-
'(format . "sexp")
|
407
|
+
'("format" . "sexp")
|
401
408
|
arg-alist))))
|
402
409
|
(buffername "*sekka-output*")
|
403
410
|
(result ""))
|
@@ -429,12 +436,74 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
429
436
|
"henkan"
|
430
437
|
'(
|
431
438
|
("yomi" . "Nihon")
|
432
|
-
(limit
|
433
|
-
(method
|
439
|
+
("limit" . "1")
|
440
|
+
("method" . "normal")
|
434
441
|
("userid" . "kiyoka")))
|
435
442
|
)
|
436
443
|
|
437
|
-
|
444
|
+
|
445
|
+
(defun sekka-url-http-post (url args)
|
446
|
+
"Send ARGS to URL as a POST request."
|
447
|
+
(progn
|
448
|
+
(setq url-request-method "POST")
|
449
|
+
(setq url-http-version "1.0")
|
450
|
+
(setq url-request-extra-headers
|
451
|
+
'(("Content-Type" . "application/x-www-form-urlencoded")))
|
452
|
+
(setq url-request-data
|
453
|
+
(mapconcat (lambda (arg)
|
454
|
+
(concat (url-hexify-string (car arg))
|
455
|
+
"="
|
456
|
+
(url-hexify-string (cdr arg))))
|
457
|
+
args
|
458
|
+
"&"))
|
459
|
+
(let* ((lines
|
460
|
+
(let ((buf (url-retrieve-synchronously url)))
|
461
|
+
(sekka-debug-print (buffer-name buf))
|
462
|
+
(sekka-debug-print "\n")
|
463
|
+
(if buf
|
464
|
+
(with-current-buffer buf
|
465
|
+
(decode-coding-string
|
466
|
+
(let ((str (buffer-substring-no-properties (point-min) (point-max))))
|
467
|
+
(sekka-debug-print (format "http result code:%s\n" url-http-response-status))
|
468
|
+
(sekka-debug-print (format "(%d-%d) eoh=%s\n" (point-min) (point-max) url-http-end-of-headers))
|
469
|
+
(sekka-debug-print (format "<<<%s>>>\n" str))
|
470
|
+
str)
|
471
|
+
'utf-8))
|
472
|
+
(list "curl: (7) Couldn't connect to host 'localhost'")))) ;; Emulate curl error.
|
473
|
+
(line-list
|
474
|
+
(split-string lines "\n")))
|
475
|
+
|
476
|
+
(car (reverse line-list)))))
|
477
|
+
|
478
|
+
;;
|
479
|
+
;; http request function with pure emacs
|
480
|
+
;; (no proxy supported)
|
481
|
+
(defun sekka-rest-request-by-pure (func-name arg-alist)
|
482
|
+
(setq sekka-busy (+ sekka-busy 1))
|
483
|
+
(sekka-debug-print (format "sekka-busy=%d\n" sekka-busy))
|
484
|
+
(let* ((arg-alist
|
485
|
+
(cons
|
486
|
+
'("format" . "sexp")
|
487
|
+
arg-alist))
|
488
|
+
(result
|
489
|
+
(sekka-url-http-post
|
490
|
+
(concat current-sekka-server-url func-name)
|
491
|
+
arg-alist)))
|
492
|
+
(setq sekka-busy (- sekka-busy 1))
|
493
|
+
(sekka-debug-print (format "sekka-busy=%d\n" sekka-busy))
|
494
|
+
result))
|
495
|
+
|
496
|
+
(when nil
|
497
|
+
;; unit test
|
498
|
+
(setq sekka-login-name (user-login-name))
|
499
|
+
(setq current-sekka-server-url "http://localhost:12929/")
|
500
|
+
(sekka-rest-request-by-pure
|
501
|
+
"henkan"
|
502
|
+
'(
|
503
|
+
("yomi" . "Nihon")
|
504
|
+
("limit" . "1")
|
505
|
+
("method" . "normal")
|
506
|
+
("userid" . "kiyoka"))))
|
438
507
|
|
439
508
|
(defun sekka-rest-request-sub (func-name arg-alist)
|
440
509
|
(if sekka-psudo-server
|
@@ -452,7 +521,11 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
452
521
|
;; "(\"初回起動\", \"諸快気堂\", \"諸開基堂\", \"しょかいきどう\", \"ショカイキドウ\")"
|
453
522
|
))
|
454
523
|
;; 実際のサーバに接続する
|
455
|
-
(
|
524
|
+
(cond
|
525
|
+
(sekka-use-curl
|
526
|
+
(sekka-rest-request-by-curl func-name arg-alist))
|
527
|
+
(t
|
528
|
+
(sekka-rest-request-by-pure func-name arg-alist)))))
|
456
529
|
|
457
530
|
;;
|
458
531
|
;; 現在時刻をUNIXタイムを返す(単位は秒)
|
@@ -476,9 +549,9 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
476
549
|
(sekka-debug-print (format "henkan-send :[%s]\n" yomi))
|
477
550
|
|
478
551
|
(let (
|
479
|
-
(result (sekka-rest-request "henkan" `((yomi . ,yomi)
|
480
|
-
(limit . ,(format "%d" limit))
|
481
|
-
(method . ,sekka-roman-method)))))
|
552
|
+
(result (sekka-rest-request "henkan" `(("yomi" . ,yomi)
|
553
|
+
("limit" . ,(format "%d" limit))
|
554
|
+
("method" . ,sekka-roman-method)))))
|
482
555
|
(sekka-debug-print (format "henkan-result:%S\n" result))
|
483
556
|
(if (eq (string-to-char result) ?\( )
|
484
557
|
(progn
|
@@ -502,8 +575,8 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
502
575
|
;;(message "Requesting to sekka server...")
|
503
576
|
|
504
577
|
(let ((result (sekka-rest-request "kakutei" `(
|
505
|
-
(key . ,key)
|
506
|
-
(tango . ,tango)))))
|
578
|
+
("key" . ,key)
|
579
|
+
("tango" . ,tango)))))
|
507
580
|
(sekka-debug-print (format "kakutei-result:%S\n" result))
|
508
581
|
(message result)
|
509
582
|
t))
|
@@ -518,7 +591,7 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
518
591
|
;;(message "Requesting to sekka server...")
|
519
592
|
|
520
593
|
(let ((result (sekka-rest-request "googleime" `(
|
521
|
-
(yomi . ,yomi)))))
|
594
|
+
("yomi" . ,yomi)))))
|
522
595
|
(sekka-debug-print (format "googleime-result:%S\n" result))
|
523
596
|
(progn
|
524
597
|
(message nil)
|
@@ -554,7 +627,7 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
554
627
|
(setq x (pop str-lst))
|
555
628
|
;;(message "Requesting to sekka server...")
|
556
629
|
(sekka-debug-print (format "register [%s]\n" x))
|
557
|
-
(lexical-let ((result (sekka-rest-request "register" `((dict . ,x)))))
|
630
|
+
(lexical-let ((result (sekka-rest-request "register" `(("dict" . ,x)))))
|
558
631
|
(sekka-debug-print (format "register-result:%S\n" result))))
|
559
632
|
(setq sekka-uploading-flag nil)
|
560
633
|
(redraw-modeline)))
|
@@ -853,6 +926,7 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
853
926
|
(define-key map "\C-r" 'popup-select)
|
854
927
|
map))
|
855
928
|
|
929
|
+
|
856
930
|
;; 選択操作回数のインクリメント
|
857
931
|
(defun sekka-select-operation-inc ()
|
858
932
|
(incf sekka-select-operation-times)
|
@@ -872,7 +946,7 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
872
946
|
:scroll-bar t
|
873
947
|
:margin t
|
874
948
|
:keymap sekka-popup-menu-keymap
|
875
|
-
|
949
|
+
:initial-index sekka-cand-cur)))
|
876
950
|
(let ((selected-word (car (split-string result " "))))
|
877
951
|
(setq sekka-cand-cur (sekka-find-by-tango selected-word))))))
|
878
952
|
|
@@ -1497,6 +1571,10 @@ non-nil で明示的に呼びだすまでGoogleIMEは起動しない。"
|
|
1497
1571
|
"リアルタイムで変換中のガイドを出す
|
1498
1572
|
sekka-modeがONの間中呼び出される可能性がある。"
|
1499
1573
|
(cond
|
1574
|
+
((< 0 sekka-busy)
|
1575
|
+
;; 残り回数のデクリメント
|
1576
|
+
(setq sekka-timer-rest (- sekka-timer-rest 1))
|
1577
|
+
(sekka-debug-print "busy!\n"))
|
1500
1578
|
((or (null sekka-mode)
|
1501
1579
|
(> 1 sekka-timer-rest))
|
1502
1580
|
(cancel-timer sekka-timer)
|
@@ -1666,7 +1744,7 @@ point から行頭方向に同種の文字列が続く間を漢字変換しま
|
|
1666
1744
|
(setq default-input-method "japanese-sekka")
|
1667
1745
|
|
1668
1746
|
(defconst sekka-version
|
1669
|
-
"1.5.
|
1747
|
+
"1.5.8" ;;SEKKA-VERSION
|
1670
1748
|
)
|
1671
1749
|
(defun sekka-version (&optional arg)
|
1672
1750
|
"入力モード変更"
|
data/lib/sekka/sekkaversion.rb
CHANGED
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sekka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kiyoka Nishiyama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eventmachine
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: memcache-client
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.8'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.8'
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -70,56 +70,56 @@ dependencies:
|
|
70
70
|
name: rack
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '1.5'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.5'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: ruby-progressbar
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '1.4'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.4'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: bundler
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ~>
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '1.7'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ~>
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '1.7'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rake
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '10.0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ~>
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '10.0'
|
125
125
|
description: Sekka is a SKK like input method. Sekka server provides REST Based API.
|
@@ -134,9 +134,9 @@ executables:
|
|
134
134
|
extensions: []
|
135
135
|
extra_rdoc_files: []
|
136
136
|
files:
|
137
|
-
-
|
138
|
-
-
|
139
|
-
-
|
137
|
+
- .gemtest
|
138
|
+
- .gitignore
|
139
|
+
- .travis.yml
|
140
140
|
- COPYING
|
141
141
|
- DESIGN
|
142
142
|
- README.md
|
@@ -253,17 +253,17 @@ require_paths:
|
|
253
253
|
- lib
|
254
254
|
required_ruby_version: !ruby/object:Gem::Requirement
|
255
255
|
requirements:
|
256
|
-
- -
|
256
|
+
- - '>='
|
257
257
|
- !ruby/object:Gem::Version
|
258
258
|
version: '0'
|
259
259
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
260
260
|
requirements:
|
261
|
-
- -
|
261
|
+
- - '>='
|
262
262
|
- !ruby/object:Gem::Version
|
263
263
|
version: '0'
|
264
264
|
requirements: []
|
265
265
|
rubyforge_project:
|
266
|
-
rubygems_version: 2.
|
266
|
+
rubygems_version: 2.0.14
|
267
267
|
signing_key:
|
268
268
|
specification_version: 4
|
269
269
|
summary: Sekka is a SKK like input method.
|