lita-finance 0.1.0
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/.gitignore +17 -0
- data/Gemfile +3 -0
- data/README.md +25 -0
- data/Rakefile +6 -0
- data/lib/lita/handlers/finance.rb +63 -0
- data/lib/lita-finance.rb +12 -0
- data/lita-finance.gemspec +24 -0
- data/locales/en.yml +4 -0
- data/spec/lita/handlers/finance_spec.rb +4 -0
- data/spec/spec_helper.rb +6 -0
- data/templates/.gitkeep +0 -0
- metadata +142 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b06a2d84936649de3ca43ee06a830b22c0ae2530
|
4
|
+
data.tar.gz: 326b620f0e4b77d8690f243e40165fe3e274b8be
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 14eebda9a6cbdd95a0384cbab2178778e22679bfcb07de701a35aa1d2428a4c87c729947668a31e79615c5fb451a7352a3bda85db20ef1f551b46f31e5eb9f9e
|
7
|
+
data.tar.gz: 57a973e632ab959a22c64bee73abaa0e6befbbc9f780466831420a6a1204e026036018374e2b9428bdd4f17e87094063953c0700a136d3c8c955b614d092c7b4
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# lita-finance
|
2
|
+
|
3
|
+
**lita-finance** is a handler for Lita that uses Yahoo Finance API to fetch latest quote data for a given equity.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add lita-finance to your Lita instance's Gemfile:
|
8
|
+
|
9
|
+
``` ruby
|
10
|
+
gem "lita-finance"
|
11
|
+
```
|
12
|
+
|
13
|
+
## Configuration
|
14
|
+
|
15
|
+
No configuration needed for this handler.
|
16
|
+
|
17
|
+
## Usage
|
18
|
+
|
19
|
+
```
|
20
|
+
Lita: finance search apple
|
21
|
+
```
|
22
|
+
|
23
|
+
```
|
24
|
+
Lita: finance info AAPL
|
25
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
module Lita
|
2
|
+
module Handlers
|
3
|
+
class Finance < Handler
|
4
|
+
route %r{(finance search) (.+)}i, :search, command: true, help: { 'finance search NAME' => 'Replies with a list of matching ticker SYMBOLS.' }
|
5
|
+
route %r{(finance info) (.+)}i, :info, command: true, help: { 'finance info SYMBOL' => 'Replies with latest financial information for SYMBOL' }
|
6
|
+
|
7
|
+
def search(response)
|
8
|
+
search = response.matches[0][1]
|
9
|
+
|
10
|
+
http_response = http.get(
|
11
|
+
'http://autoc.finance.yahoo.com/autoc',
|
12
|
+
query: search,
|
13
|
+
region: 'EU',
|
14
|
+
lang: 'en-US'
|
15
|
+
)
|
16
|
+
|
17
|
+
data = MultiJson.load(http_response.body)
|
18
|
+
|
19
|
+
results = data['ResultSet']['Result']
|
20
|
+
|
21
|
+
reply = ''
|
22
|
+
results.each_with_index do |result, index|
|
23
|
+
reply << "#{index + 1}. #{result['name']}: #{result['symbol']} - #{result['exchDisp']} - #{result['typeDisp']}\n"
|
24
|
+
end
|
25
|
+
|
26
|
+
response.reply !reply.empty? ? reply : 'No results found.'
|
27
|
+
|
28
|
+
rescue
|
29
|
+
response.reply 'Something went wrong. Try again.'
|
30
|
+
end
|
31
|
+
|
32
|
+
def info(response)
|
33
|
+
symbol = response.matches[0][1]
|
34
|
+
|
35
|
+
http_response = http.get(
|
36
|
+
'https://query.yahooapis.com/v1/public/yql',
|
37
|
+
q: "select * from yahoo.finance.quote where symbol in ('#{symbol}')",
|
38
|
+
format: 'json',
|
39
|
+
env: 'store://RjdEzitN2Hceujh3tGHPj6'
|
40
|
+
)
|
41
|
+
|
42
|
+
data = MultiJson.load(http_response.body)
|
43
|
+
|
44
|
+
quote = data['query']['results']['quote']
|
45
|
+
|
46
|
+
quote.delete('symbol')
|
47
|
+
|
48
|
+
reply = ''
|
49
|
+
quote.each do |key, value|
|
50
|
+
value = value.nil? ? 'N/A' : value
|
51
|
+
reply << "#{key}: #{value}\n"
|
52
|
+
end
|
53
|
+
|
54
|
+
response.reply reply
|
55
|
+
|
56
|
+
rescue
|
57
|
+
response.reply 'Something went wrong. Try again.'
|
58
|
+
end
|
59
|
+
|
60
|
+
Lita.register_handler(self)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
data/lib/lita-finance.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require "lita"
|
2
|
+
|
3
|
+
Lita.load_locales Dir[File.expand_path(
|
4
|
+
File.join("..", "..", "locales", "*.yml"), __FILE__
|
5
|
+
)]
|
6
|
+
|
7
|
+
require "lita/handlers/finance"
|
8
|
+
|
9
|
+
Lita::Handlers::Finance.template_root File.expand_path(
|
10
|
+
File.join("..", "..", "templates"),
|
11
|
+
__FILE__
|
12
|
+
)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = "lita-finance"
|
3
|
+
spec.version = "0.1.0"
|
4
|
+
spec.authors = ["Samuel Carlsson"]
|
5
|
+
spec.email = ["samuel@luxnet.se"]
|
6
|
+
spec.description = %q{Financial data handler for Lita}
|
7
|
+
spec.summary = %q{Financial data handler for Lita}
|
8
|
+
spec.homepage = ""
|
9
|
+
spec.license = "MIT"
|
10
|
+
spec.metadata = { "lita_plugin_type" => "handler" }
|
11
|
+
|
12
|
+
spec.files = `git ls-files`.split($/)
|
13
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
14
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
15
|
+
spec.require_paths = ["lib"]
|
16
|
+
|
17
|
+
spec.add_runtime_dependency "lita", ">= 4.7"
|
18
|
+
|
19
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
20
|
+
spec.add_development_dependency "pry-byebug"
|
21
|
+
spec.add_development_dependency "rake"
|
22
|
+
spec.add_development_dependency "rack-test"
|
23
|
+
spec.add_development_dependency "rspec", ">= 3.0.0"
|
24
|
+
end
|
data/locales/en.yml
ADDED
data/spec/spec_helper.rb
ADDED
data/templates/.gitkeep
ADDED
File without changes
|
metadata
ADDED
@@ -0,0 +1,142 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lita-finance
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Samuel Carlsson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-10-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: lita
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.7'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry-byebug
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rack-test
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 3.0.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 3.0.0
|
97
|
+
description: Financial data handler for Lita
|
98
|
+
email:
|
99
|
+
- samuel@luxnet.se
|
100
|
+
executables: []
|
101
|
+
extensions: []
|
102
|
+
extra_rdoc_files: []
|
103
|
+
files:
|
104
|
+
- ".gitignore"
|
105
|
+
- Gemfile
|
106
|
+
- README.md
|
107
|
+
- Rakefile
|
108
|
+
- lib/lita-finance.rb
|
109
|
+
- lib/lita/handlers/finance.rb
|
110
|
+
- lita-finance.gemspec
|
111
|
+
- locales/en.yml
|
112
|
+
- spec/lita/handlers/finance_spec.rb
|
113
|
+
- spec/spec_helper.rb
|
114
|
+
- templates/.gitkeep
|
115
|
+
homepage: ''
|
116
|
+
licenses:
|
117
|
+
- MIT
|
118
|
+
metadata:
|
119
|
+
lita_plugin_type: handler
|
120
|
+
post_install_message:
|
121
|
+
rdoc_options: []
|
122
|
+
require_paths:
|
123
|
+
- lib
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
requirements: []
|
135
|
+
rubyforge_project:
|
136
|
+
rubygems_version: 2.5.1
|
137
|
+
signing_key:
|
138
|
+
specification_version: 4
|
139
|
+
summary: Financial data handler for Lita
|
140
|
+
test_files:
|
141
|
+
- spec/lita/handlers/finance_spec.rb
|
142
|
+
- spec/spec_helper.rb
|