Class: YahooFinanceClient::Session
- Inherits:
-
Object
- Object
- YahooFinanceClient::Session
- Includes:
- Singleton
- Defined in:
- lib/yahoo_finance_client/session.rb
Overview
Handles Yahoo Finance authentication with multiple fallback strategies
Constant Summary collapse
- SESSION_TTL =
60- USER_AGENT =
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0"- COOKIE_URL =
"https://fc.yahoo.com"- CRUMB_URL_QUERY1 =
"https://query1.finance.yahoo.com/v1/test/getcrumb"- CRUMB_URL_QUERY2 =
"https://query2.finance.yahoo.com/v1/test/getcrumb"- HOMEPAGE_URL =
"https://finance.yahoo.com"- CRUMB_PATTERNS =
[/"crumb"\s*:\s*"([^"]+)"/, /"CrsrfToken"\s*:\s*"([^"]+)"/, /crumb=([a-zA-Z0-9_.~-]+)/].freeze
Instance Attribute Summary collapse
-
#base_url ⇒ Object
readonly
Returns the value of attribute base_url.
-
#cookie ⇒ Object
readonly
Returns the value of attribute cookie.
-
#crumb ⇒ Object
readonly
Returns the value of attribute crumb.
Instance Method Summary collapse
- #ensure_authenticated ⇒ Object
-
#initialize ⇒ Session
constructor
A new instance of Session.
- #invalidate! ⇒ Object
- #valid_session? ⇒ Boolean
Constructor Details
#initialize ⇒ Session
Returns a new instance of Session.
21 22 23 |
# File 'lib/yahoo_finance_client/session.rb', line 21 def initialize reset! end |
Instance Attribute Details
#base_url ⇒ Object (readonly)
Returns the value of attribute base_url.
19 20 21 |
# File 'lib/yahoo_finance_client/session.rb', line 19 def base_url @base_url end |
#cookie ⇒ Object (readonly)
Returns the value of attribute cookie.
19 20 21 |
# File 'lib/yahoo_finance_client/session.rb', line 19 def @cookie end |
#crumb ⇒ Object (readonly)
Returns the value of attribute crumb.
19 20 21 |
# File 'lib/yahoo_finance_client/session.rb', line 19 def crumb @crumb end |
Instance Method Details
#ensure_authenticated ⇒ Object
25 26 27 28 29 |
# File 'lib/yahoo_finance_client/session.rb', line 25 def ensure_authenticated return if valid_session? authenticate! end |
#invalidate! ⇒ Object
31 32 33 |
# File 'lib/yahoo_finance_client/session.rb', line 31 def invalidate! reset! end |
#valid_session? ⇒ Boolean
35 36 37 38 39 |
# File 'lib/yahoo_finance_client/session.rb', line 35 def valid_session? return false unless @cookie && @crumb && @authenticated_at Time.now - @authenticated_at < SESSION_TTL end |