Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F77429
boursorama.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
boursorama.ex
View Options
defmodule
Nola.Plugins.Boursorama
do
def
irc_doc
()
do
"""
#
bourses
Un peu comme [finance](
#
finance), mais en un peu mieux, et un peu moins bien.
Source: [boursorama.com](https://boursorama.com)
* **!caca40** affiche l'état du cac40
"""
end
def
start_link
()
do
GenServer
.
start_link
(
__MODULE__
,
[],
name
:
__MODULE__
)
end
@cac40_url
"https://www.boursorama.com/bourse/actions/palmares/france/?france_filter%5Bmarket%5D=1rPCAC&france_filter%5Bsector%5D=&france_filter%5Bvariation%5D=50002&france_filter%5Bperiod%5D=1&france_filter%5Bfilter%5D="
def
init
(
_
)
do
regopts
=
[
plugin
:
__MODULE__
]
{
:ok
,
_
}
=
Registry
.
register
(
Nola.PubSub
,
"trigger:cac40"
,
regopts
)
{
:ok
,
_
}
=
Registry
.
register
(
Nola.PubSub
,
"trigger:caca40"
,
regopts
)
{
:ok
,
nil
}
end
def
handle_info
({
:irc
,
:trigger
,
cac
,
m
=
%
Nola.Message
{
trigger
:
%
Nola.Trigger
{
type
:
:bang
}}},
state
)
when
cac
in
[
"cac40"
,
"caca40"
]
do
case
HTTPoison
.
get
(
@cac40_url
,
[],
[])
do
{
:ok
,
%
HTTPoison.Response
{
status_code
:
200
,
body
:
body
}}
->
html
=
Floki
.
parse
(
body
)
board
=
Floki
.
find
(
body
,
"div.c-tradingboard"
)
cac40
=
Floki
.
find
(
board
,
".c-tradingboard__main > .c-tradingboard__infos"
)
instrument
=
Floki
.
find
(
cac40
,
".c-instrument"
)
last
=
Floki
.
find
(
instrument
,
"span[data-ist-last]"
)
|>
Floki
.
text
()
|>
String
.
replace
(
" "
,
""
)
variation
=
Floki
.
find
(
instrument
,
"span[data-ist-variation]"
)
|>
Floki
.
text
()
sign
=
case
variation
do
"-"
<>
_
->
"▼"
"+"
->
"▲"
_
->
""
end
m
.
replyfun
.
(
"caca40:
#{
sign
}
#{
variation
}
#{
last
}
"
)
{
:error
,
%
HTTPoison.Response
{
status_code
:
code
}}
->
m
.
replyfun
.
(
"caca40: erreur http
#{
code
}
"
)
_
->
m
.
replyfun
.
(
"caca40: erreur http"
)
end
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Mon, Jul 7, 3:18 PM (1 d, 10 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
49910
Default Alt Text
boursorama.ex (1 KB)
Attached To
rNOLA Nola
Event Timeline
Log In to Comment