ecdict 1.2.alpha3 → 1.2.alpha4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/ecdict +40 -31
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 333ca8bfcd36397b8dcbc4d73052e497ff76f3e243aeca6af93828a3e45e9f20
4
- data.tar.gz: b8250c7e80b76b0f42d3e46e2dc01fc23b69d2c8546fb71323801cf97f24fcd1
3
+ metadata.gz: f8bbfbe1dbd141fc1eecda848fa890fd0e4d85001a6d8e090ca735203786b7dd
4
+ data.tar.gz: c499d33a61ff61d7000538043fcf6691dd34310ccf5076e45c0e4054367708c3
5
5
  SHA512:
6
- metadata.gz: 9c57d33dcc3503908527f3af5afcd7175073ff1225d3a81e004f723e18445f27b1d1f7a5808711bda4984aac396801f19d2cd10941e2301b4fa2bf1f9dea295b
7
- data.tar.gz: 3df6d4d09ca0e9494a5a1e290665cce693a198ab1ddb270018dc571414dd87e830630272178283afe75d25e538166c06d2076edf324a5e42f156107de5498e59
6
+ metadata.gz: c8e94e4a5dd550cf36dc3e7820b7920c8b45a743a493ff10e1a68e7940d7a536a53078416efe9a984c7aaadb20e1ffc98414c9474d88bf584ccd48bb4e30167c
7
+ data.tar.gz: cf720681affcbf4a6233bcb04f5bfd8d036a91133b06d73b0f4c4f4a79f96b350f8fc76189dce4cbecf042595d6f89130cd7a97bc43ed94f4ad0e295d7ac4034
data/bin/ecdict CHANGED
@@ -15,6 +15,12 @@
15
15
  # 1. ecdict installer
16
16
  # 2. ecdict cmd
17
17
  # 3. ecdict repl
18
+ #
19
+ # Exit -1: 下载原始数据失败
20
+ # Exit -2: 解压原始数据至CSV失败
21
+ # EXit -3: 从CSV生成数据库失败
22
+ # Exit 1: 无词典
23
+ # Exit 2: 缺少参数
18
24
  # ------------------------------------------------------
19
25
 
20
26
  require 'sqlite3'
@@ -24,7 +30,7 @@ ECDictRAWDATA = File.join(ECDICT_STORAGE, 'ecdict-csv.7z')
24
30
  ECDictDB = File.join(ECDICT_STORAGE, 'ecdict.db')
25
31
  ECDictCSV = File.join(ECDICT_STORAGE, 'ecdict.csv')
26
32
 
27
- ECDICT_GEM_VERSION = "1.2.alpha3"
33
+ ECDICT_GEM_VERSION = "1.2.alpha4"
28
34
 
29
35
  # 这个版本是我从上游下载的CSV后自己压缩的
30
36
  # 这个文件的实际创建日期(上游作者创建)是2017/06/04
@@ -38,6 +44,16 @@ require 'fileutils'
38
44
  FileUtils.mkdir_p(ECDICT_STORAGE)
39
45
  $DB = SQLite3::Database.new ECDictDB
40
46
 
47
+ def db_close
48
+ $DB.close if $DB
49
+ end
50
+
51
+ def db_close_and_exit(num = 0)
52
+ db_close
53
+ exit num
54
+ end
55
+
56
+
41
57
 
42
58
  ####################
43
59
  # helper: for color
@@ -152,9 +168,6 @@ end
152
168
  # 2. create table in the db
153
169
  # 3. insert data from CSV into the table
154
170
  #
155
- # exit 1 : create db failed
156
- # exit 2 : insert data failed
157
- #
158
171
  def generate_sqlite_db()
159
172
 
160
173
  # SQLite3::Database.new已经生成了该文件,所以需要提前判断到底是否存在
@@ -171,9 +184,6 @@ def generate_sqlite_db()
171
184
  end
172
185
  end
173
186
 
174
- def db_close
175
- $DB.close if $DB
176
- end
177
187
 
178
188
  # 共15个字段,存的时候只需要14个
179
189
  # 1.id 主键,自增
@@ -225,7 +235,7 @@ EOF
225
235
  puts "=> 创建数据库文件#{ECDictDB}失败,或表`ecdict`生成失败"
226
236
  db_close
227
237
  File.delete(ECDictDB)
228
- exit 1
238
+ return false
229
239
  end
230
240
 
231
241
 
@@ -288,13 +298,14 @@ EOF
288
298
  rescue Exception => e
289
299
  puts "=> #{e.message}"
290
300
  puts "=> 数据库插入信息失败"
291
- File.delete(ECDictDB)
292
301
  db_close
293
- exit 2
302
+ File.delete(ECDictDB)
303
+ return false
294
304
  end
295
305
  puts
296
306
  puts "=> 数据库#{ECDictDB}已完整生成"
297
307
  db_close
308
+ return true
298
309
  end
299
310
 
300
311
 
@@ -328,8 +339,8 @@ end
328
339
  def reply_once(query)
329
340
 
330
341
  if !check_db_integrity
331
- puts "ecdict: 数据库不存在或数据库不完整,请使用ecdict -i来下载安装词典数据"
332
- exit -1
342
+ puts "ecdict: 数据库不存在或数据库不完整,请使用`ecdict -i`来下载安装词典数据"
343
+ db_close_and_exit(1)
333
344
  end
334
345
 
335
346
  tables = []
@@ -348,8 +359,9 @@ def reply_once(query)
348
359
  end
349
360
 
350
361
  if rows.empty?
351
- puts "ecdict: 未找到结果,请检查单词拼写是否正确",""
352
- exit 2
362
+ puts "ecdict: 未找到结果,请检查单词拼写是否正确"
363
+ db_close
364
+ return
353
365
  else
354
366
  line = rows[0]
355
367
  phonetic,trans,definition,exchange = line[0],line[1],line[2],line[3]
@@ -395,11 +407,11 @@ def chinese_search(cn_word, support_phrase: false)
395
407
 
396
408
  if cn_word.empty?
397
409
  puts "ecdict: 请输入要查询的中文,或使用`ecdict -h`查看帮助"
398
- exit 1
410
+ db_close_and_exit(2)
399
411
  end
400
412
  if !check_db_integrity
401
413
  puts "=> 数据库不存在或数据库不完整,请使用`ecdict -i`来下载安装词典数据"
402
- exit -1
414
+ db_close_and_exit(1)
403
415
  end
404
416
 
405
417
  if support_phrase
@@ -420,7 +432,8 @@ def chinese_search(cn_word, support_phrase: false)
420
432
  end
421
433
  if rows.empty?
422
434
  puts "ecdict: 未找到相关英文,请不要输入中文短语或短句,仅支持词的搜索"
423
- exit 2
435
+ db_close
436
+ return
424
437
  else
425
438
  # 有的时候并不是没有结果,而是被我们过滤掉了,对此确认一下
426
439
  found_a_word = false
@@ -543,12 +556,7 @@ def start_ecrepl
543
556
 
544
557
  if !check_db_integrity
545
558
  puts "ecdict: 数据库不存在或数据库不完整,请使用`ecdict -i`来下载安装词典数据"
546
- exit -1
547
- end
548
-
549
- def db_close_and_exit
550
- $DB.close if $DB
551
- exit 0
559
+ db_close_and_exit(1)
552
560
  end
553
561
 
554
562
  begin
@@ -606,7 +614,8 @@ def start_ecrepl
606
614
  while line = Reline.readline("\e[32mecdict> \e[0m", true)
607
615
  case word = line.chomp
608
616
  when 'exit'
609
- db_close_and_exit
617
+ db_close
618
+ return
610
619
  when ''
611
620
  # NOOP
612
621
  else
@@ -616,7 +625,8 @@ def start_ecrepl
616
625
  rescue Interrupt
617
626
  puts '^C'
618
627
  `stty #{stty_save}` if stty_save
619
- db_close_and_exit
628
+ db_close
629
+ return
620
630
  end
621
631
 
622
632
  end
@@ -630,10 +640,10 @@ def delete_cache
630
640
  begin
631
641
  FileUtils.rm_rf(ECDICT_STORAGE)
632
642
  rescue => e
633
- puts "=> #{e.message}"
634
- puts "=> 清空词典数据失败"
643
+ puts "ecdict: #{e.message}"
644
+ puts "ecdict: 清空词典数据失败"
635
645
  else
636
- puts "=> 清空词典数据完成"
646
+ puts "ecdict: 清空词典数据完成"
637
647
  end
638
648
  puts
639
649
  end
@@ -678,10 +688,10 @@ end
678
688
  if ARGV.empty?
679
689
  if !check_db_integrity
680
690
  puts "ecdict: 数据库不存在或数据库不完整,请使用`ecdict -i`来下载安装词典数据"
681
- exit -1
691
+ db_close_and_exit(1)
682
692
  end
683
693
  puts "ecdict: 请输入要查询的词/词组 或使用`ecdict -h`查看帮助"
684
- exit 1
694
+ db_close_and_exit
685
695
  end
686
696
 
687
697
  query = ARGV.shift
@@ -696,4 +706,3 @@ when "-cp" then chinese_search(ARGV.join, support_phrase: true)
696
706
  else
697
707
  reply_once(query)
698
708
  end
699
-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecdict
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.alpha3
4
+ version: 1.2.alpha4
5
5
  platform: ruby
6
6
  authors:
7
7
  - ccmywish