ishapi 0.1.8.265 → 0.1.8.266
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 +4 -4
- data/app/controllers/ishapi/option_price_items_controller.rb +19 -23
- data/app/jobs/ishapi/email_message_intake_job.rb +23 -1
- data/app/views/ishapi/option_price_items/index.jbuilder +17 -0
- data/app/views/ishapi/option_price_items/view.jbuilder +2 -1
- data/config/routes.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 833283278eccda017d3d8af0fcaff21a3b89d5f408f3640d85a061a4cc79753b
|
|
4
|
+
data.tar.gz: 39ba1400e727a379f9811ef1baaedc3baf6976cebe79f248fb7f4b9c52b62b6e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 85f0662bf4c7f5adf0518dae52a41c11585d2cbecc1fd27553c823fa23b0f6d30b246d52e512cb54eb5c0b1f598c836bf8f40d267986080ffde1d9d857f37ae9
|
|
7
|
+
data.tar.gz: 853e067daaed10e499a8a1aaaa582216c7ed1a24eb478b7014467cf6db2bc6a5dd91e823a471d4aa915582c9747d88f81ffc5e4016ccef7f4a66e9cb877db8bc
|
|
@@ -8,41 +8,37 @@ module Ishapi
|
|
|
8
8
|
|
|
9
9
|
## params: symbol, begin_at, end_at
|
|
10
10
|
def view
|
|
11
|
-
authorize! :view_chain, ::Iro::OptionPriceItem
|
|
11
|
+
authorize! :view_chain, ::Iro::OptionPriceItem
|
|
12
12
|
@opis = ::Iro::OptionPriceItem.where({ ticker: params[:symbol]
|
|
13
13
|
}).where( "timestamp BETWEEN ? and ? ", params[:begin_at], params[:end_at]
|
|
14
14
|
).limit(100)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def view_by_symbol
|
|
18
|
-
authorize! :view_chain, ::Iro::OptionPriceItem
|
|
18
|
+
authorize! :view_chain, ::Iro::OptionPriceItem
|
|
19
19
|
@opis = ::Iro::OptionPriceItem.where({ symbol: params[:symbol]
|
|
20
20
|
}).limit(100)
|
|
21
21
|
render 'view'
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
+
# kind-1, always
|
|
25
|
+
def index
|
|
26
|
+
authorize! :view_chain, ::Iro::OptionPriceItem
|
|
27
|
+
@opis = Iro::OptionPriceItem.where({
|
|
28
|
+
expirationDate: '1676062800000',
|
|
29
|
+
timestamp: '2023-02-06 14:46:48',
|
|
30
|
+
})
|
|
31
|
+
@outs = {}
|
|
32
|
+
@opis.map do |opi|
|
|
33
|
+
r = @outs[opi.strikePrice] || {}
|
|
34
|
+
r[opi.putCall] = ((opi.bid + opi.ask)/2).round(3)
|
|
35
|
+
@outs[opi.strikePrice] = r
|
|
36
|
+
end
|
|
37
|
+
render json: @outs
|
|
38
|
+
return
|
|
39
|
+
end
|
|
40
|
+
|
|
24
41
|
end
|
|
25
42
|
end
|
|
26
43
|
|
|
27
|
-
## this is in scratchpadjs / done
|
|
28
|
-
=begin
|
|
29
|
-
|
|
30
|
-
SELECT symbol, bid, ask, MAX(`timestamp`) as a
|
|
31
|
-
FROM iwa_option_price_items
|
|
32
|
-
where symbol = "GME_021023P20"
|
|
33
|
-
GROUP BY symbol, bid, ask, DATE(`timestamp`), HOUR(`timestamp`), Minute(`timestamp`)
|
|
34
|
-
order by a desc;
|
|
35
|
-
|
|
36
|
-
SELECT symbol, MAX(`timestamp`) as a
|
|
37
|
-
FROM iwa_option_price_items
|
|
38
|
-
where symbol = "GME_021023P20"
|
|
39
|
-
GROUP BY symbol, DATE(`timestamp`), HOUR(`timestamp`), Minute(`timestamp`)
|
|
40
|
-
order by a desc;
|
|
41
|
-
|
|
42
|
-
select timestamp as a FROM iwa_option_price_items
|
|
43
|
-
where symbol = "GME_021023P20"
|
|
44
|
-
order by a desc;
|
|
45
|
-
|
|
46
|
-
=end
|
|
47
|
-
|
|
48
44
|
|
|
@@ -13,10 +13,15 @@ class Ishapi::EmailMessageIntakeJob < Ishapi::ApplicationJob
|
|
|
13
13
|
queue_as :default
|
|
14
14
|
|
|
15
15
|
## For recursive parts of type `related`.
|
|
16
|
+
## Content dispositions:
|
|
17
|
+
# "inline; creation-date=\"Tue, 11 Apr 2023 19:39:42 GMT\"; filename=image005.png; modification-date=\"Tue, 11 Apr 2023 19:47:53 GMT\"; size=14916",
|
|
18
|
+
#
|
|
16
19
|
## Content Types:
|
|
17
|
-
# "text/html; charset=utf-8"
|
|
18
20
|
# "application/pdf; name=\"Securities Forward Agreement -- HaulHub Inc -- Victor Pudeyev -- 2021-10-26.docx.pdf\""
|
|
19
21
|
# "image/jpeg; name=TX_DL_2.jpg"
|
|
22
|
+
# "image/png; name=image005.png"
|
|
23
|
+
# "multipart/alternative; boundary=_000_BL0PR10MB2913C560ADE059F0AB3A6D11829A9BL0PR10MB2913namp_",
|
|
24
|
+
# "text/html; charset=utf-8"
|
|
20
25
|
# "text/plain; charset=UTF-8"
|
|
21
26
|
def churn_subpart message, part
|
|
22
27
|
if part.content_disposition&.include?('attachment')
|
|
@@ -89,11 +94,28 @@ class Ishapi::EmailMessageIntakeJob < Ishapi::ApplicationJob
|
|
|
89
94
|
ccs: the_mail.cc,
|
|
90
95
|
bccs: the_mail.bcc,
|
|
91
96
|
})
|
|
97
|
+
if the_mail.body.preamble.present?
|
|
98
|
+
@message.preamble = the_mail.body.preamble
|
|
99
|
+
end
|
|
100
|
+
if the_mail.body.epilogue.present?
|
|
101
|
+
@message.epilogue = the_mail.body.epilogue
|
|
102
|
+
end
|
|
92
103
|
|
|
93
104
|
the_mail.parts.each do |part|
|
|
94
105
|
churn_subpart( @message, part )
|
|
95
106
|
end
|
|
96
107
|
|
|
108
|
+
the_mail.attachments.each do |att|
|
|
109
|
+
photo = Photo.new({
|
|
110
|
+
content_type: att.content_type.split(';')[0],
|
|
111
|
+
original_filename: att.content_type_parameters[:name],
|
|
112
|
+
image_data: att.body.encoded,
|
|
113
|
+
email_message_id: @message.id,
|
|
114
|
+
})
|
|
115
|
+
photo.decode_base64_image
|
|
116
|
+
photo.save
|
|
117
|
+
end
|
|
118
|
+
|
|
97
119
|
if the_mail.parts.length == 0
|
|
98
120
|
body = the_mail.body.decoded.encode('UTF-8', invalid: :replace, undef: :replace, replace: '?')
|
|
99
121
|
if the_mail.content_type.include?('text/html')
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#
|
|
2
|
+
# ishapi / option_price_items / index
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
json.array! @outs do |out|
|
|
6
|
+
json.strikePrice opi.strikePrice
|
|
7
|
+
json.symbol opi.symbol
|
|
8
|
+
json.bid opi.bid
|
|
9
|
+
json.ask opi.ask
|
|
10
|
+
json.natural ((opi.bid + opi.ask )/2).round(3)
|
|
11
|
+
json.last opi.last
|
|
12
|
+
# json.lastPrice opi.lastPrice
|
|
13
|
+
# json.open opi.openPrice
|
|
14
|
+
json.timestamp opi.timestamp.strftime('%H:%M:%S')
|
|
15
|
+
json.seconds opi.timestamp.to_i
|
|
16
|
+
end
|
|
17
|
+
|
data/config/routes.rb
CHANGED
|
@@ -55,6 +55,7 @@ Ishapi::Engine.routes.draw do
|
|
|
55
55
|
|
|
56
56
|
# resources :option_price_items
|
|
57
57
|
get 'option_price_items/view-by/symbol/:symbol', to: 'option_price_items#view_by_symbol', :constraints => { :symbol => /[^\/]+/ } ## the symbol is detailed eg 'GME_011924P30'
|
|
58
|
+
get 'option_price_items/index1', to: 'option_price_items#index', defaults: { kind: 'kind-1' }
|
|
58
59
|
get 'option_price_items/view/:symbol/from/:begin_at/to/:end_at', to: 'option_price_items#view'
|
|
59
60
|
|
|
60
61
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ishapi
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.8.
|
|
4
|
+
version: 0.1.8.266
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- piousbox
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-04-
|
|
11
|
+
date: 2023-04-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -266,6 +266,7 @@ files:
|
|
|
266
266
|
- app/views/ishapi/my/videos/index.jbuilder
|
|
267
267
|
- app/views/ishapi/newsitems/_index.jbuilder
|
|
268
268
|
- app/views/ishapi/newsitems/index.jbuilder
|
|
269
|
+
- app/views/ishapi/option_price_items/index.jbuilder
|
|
269
270
|
- app/views/ishapi/option_price_items/view.jbuilder
|
|
270
271
|
- app/views/ishapi/orders/_item.jbuilder
|
|
271
272
|
- app/views/ishapi/orders/_show.jbuilder
|