Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F665922
bourosama_plugin.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
bourosama_plugin.ex
View Options
defmodule
LSG.IRC.BoursoramaPlugin
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
(
IRC.PubSub
,
"trigger:cac40"
,
regopts
)
{
:ok
,
_
}
=
Registry
.
register
(
IRC.PubSub
,
"trigger:caca40"
,
regopts
)
{
:ok
,
nil
}
end
def
handle_info
({
:irc
,
:trigger
,
cac
,
m
=
%
IRC.Message
{
trigger
:
%
IRC.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
Sat, Feb 28, 11:28 AM (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
87075
Default Alt Text
bourosama_plugin.ex (1 KB)
Attached To
rNOLA Nola
Event Timeline
Log In to Comment