leo_mp3_parser 0.0.04
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.
- checksums.yaml +7 -0
- data/lib/leo_mp3_parser.rb +51 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8c0d9083e376be708569526c7135112850d111ab
|
4
|
+
data.tar.gz: e0387284b726162da9033b55a86f3c2bc0d9d081
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cf23f9a9b6ef38f99e0d9e1e23637f27932840bf1d1ea17beec5e562c207a3c3afa17e1673de72bce376937fd81b10f685f0ff542dc876bf3c09d394a3de1066
|
7
|
+
data.tar.gz: 272035151f1bfb341661d97ce86cfc5287bcddc2f83e6076f411c9d75ee0ef6055776c9b0fcf93db3fe501d6c7d07861e169b51705c33499ca95f8111bf591e8
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'pry-byebug'
|
2
|
+
require 'nokogiri'
|
3
|
+
require 'open-uri'
|
4
|
+
class LeoMp3Parser
|
5
|
+
# attr_accessor :language_and_term
|
6
|
+
# def initialize(language_and_term = {})
|
7
|
+
# validate_arguments(language_and_term)
|
8
|
+
# @language_and_term = language_and_term
|
9
|
+
# end
|
10
|
+
|
11
|
+
def validate_arguments(language_and_term)
|
12
|
+
raise ArgumentError.new('argument must be a Hash') unless language_and_term.is_a? Hash
|
13
|
+
raise ArgumentError.new('Keys must be :language and :term') unless (language_and_term.keys.include?(:language) && language_and_term.keys.include?(:term))
|
14
|
+
language_and_term.values.map do |value|
|
15
|
+
raise ArgumentError.new('Values must be Strings') unless value.is_a? String
|
16
|
+
end
|
17
|
+
language_and_term.values.map do |value|
|
18
|
+
raise ArgumentError.new('Values can not be emtpy') if value.empty?
|
19
|
+
end
|
20
|
+
raise ArgumentError.new('Language must be set to ende, esde or frde') unless (language_and_term[:language].include?('ende') || language_and_term[:language].include?('esde') || language_and_term[:language].include?('frde'))
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_audio_url(language_and_term)
|
24
|
+
validate_arguments(language_and_term)
|
25
|
+
url = compose_query(language_and_term)
|
26
|
+
compose_url(url)
|
27
|
+
end
|
28
|
+
|
29
|
+
def compose_query(language_and_term)
|
30
|
+
url = 'https://dict.leo.org/dictQuery/m-vocab/' << language_and_term[:language]
|
31
|
+
url << '/query.xml?tolerMode=nof&lp=ende&lang=en&rmWords=off&rmSearch=on&directN=0&search='
|
32
|
+
url << language_and_term[:term]
|
33
|
+
url << '&searchLoc=0&resultOrder=basic&multiwordShowSingle=on§LenMax=16'
|
34
|
+
end
|
35
|
+
|
36
|
+
def instantiate_nokogiri_object(url)
|
37
|
+
Nokogiri::XML(open(url))
|
38
|
+
rescue
|
39
|
+
:danger
|
40
|
+
end
|
41
|
+
|
42
|
+
def parse_audio_identifier(url)
|
43
|
+
instantiate_nokogiri_object(url).at_css('pron').first[1]
|
44
|
+
rescue
|
45
|
+
:danger
|
46
|
+
end
|
47
|
+
|
48
|
+
def compose_url(url)
|
49
|
+
"https://dict.leo.org/media/audio/#{parse_audio_identifier(url)}.mp3"
|
50
|
+
end
|
51
|
+
end
|
metadata
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: leo_mp3_parser
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.04
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- 'Maximilian Maintz, alias: Netznarkose'
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-03-19 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A simple leo mp3 parser
|
14
|
+
email: mmaintz@posteo.de
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/leo_mp3_parser.rb
|
20
|
+
homepage: https://github.com/Netznarkose
|
21
|
+
licenses:
|
22
|
+
- MIT
|
23
|
+
metadata: {}
|
24
|
+
post_install_message:
|
25
|
+
rdoc_options: []
|
26
|
+
require_paths:
|
27
|
+
- lib
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
requirements: []
|
39
|
+
rubyforge_project:
|
40
|
+
rubygems_version: 2.6.10
|
41
|
+
signing_key:
|
42
|
+
specification_version: 4
|
43
|
+
summary: identifies urls to audiofiles on leo dictionary
|
44
|
+
test_files: []
|