当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 终端查词典的ruby脚本
帖子发表于 : 2010-12-25 23:03 

注册: 2006-05-15 3:22
帖子: 56
送出感谢: 0 次
接收感谢: 0 次
代码:
#code=utf-8
# Author: hhuai
# Email: 8863824@gmail.com
# worked on: ubuntu 10.10 + rubymine3.0.1

require 'net/http'
require 'uri'
require 'rexml/document'

include REXML


class ConsoleDict
  def initialize(word)
    @word = word   
  end

  def get_content
    Net::HTTP.get URI.parse('http://dict.cn/ws.php?utf8=true&q='+@word)
  end

  def parser(xml)
    h = {"sent" => []}
    document = Document.new xml
    document.root.each_element do |element|
      value = nil
      if element.name.eql? "sent"
        sent_h = {}
        element.each do |dd|
          sent_h[dd.name] = dd.text
        end
        h[element.name] << sent_h
      else
        h[element.name] = element.text
      end
    end
    h
  end
end

if ARGV.length != 1
  puts "usage: "+File.basename(__FILE__)+" word"
  exit
end
console_dict =  ConsoleDict.new(ARGV[0])
xml = console_dict.get_content
#puts xml
begin
h = console_dict.parser xml
puts h["key"] + " [" + h["pron"] + "]"
puts h["def"]
puts "-"*70

if h["sent"] and h["sent"].is_a? Array
  h["sent"].each do |sent|
    puts sent["orig"].gsub(/<(\/)?em>/,'')
    puts sent["trans"]
  end
end

unless File.exist?("/usr/bin/mpg123")
  puts "if you want play audio, must be install mpg123, like sudo apt-get install mpg123."
end

mp3_path = "/tmp/"+h["key"]+".mp3"

#change you tool, if you want.
command = "wget -q --no-cookies -O "+mp3_path +" "+h["audio"]+" && mpg123 -q "+mp3_path
system(command)
rescue Exception=>e
   puts xml
   puts e.getmessage
end



2010.12.26
更新一下,发现一个没有解释时,程序会异常的问题。
将发音工具用mpg123来代替好了,moc难用。


例:
代码:
$ ruby ./lib/console_dict.rb  exclude
exclude [ik'sklu:d]
vt.排除, 阻止, 拒绝接受
----------------------------------------------------------------------
No one was excluded from sentry duty.
人人都得站岗放哨。
We cannot exclude the possibility that he killed his wife.
我们不能排除他杀了他妻子的可能性。


最后由 xiao2004 编辑于 2010-12-26 17:59,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 终端查词典的ruby脚本
帖子发表于 : 2010-12-25 23:16 
头像

注册: 2008-04-26 12:41
帖子: 11000
送出感谢: 11
接收感谢: 38
:em11 :em11 :em11


_________________
[新手必读]wubi安装常见问题(FAQ)
[分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法
kde下唯美的暗黑内透主题(无需编译)
无穷老机上的Trinity Desktop Environment


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 终端查词典的ruby脚本
帖子发表于 : 2010-12-25 23:54 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
咋这么长。
播放mp3,直接用play就是


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译