ecdict 1.2.alpha3 → 1.2.alpha4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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