Skip to content

Commit 376e099

Browse files
committed
Fixed Yahoo consent form handling
1 parent 7b451bf commit 376e099

5 files changed

Lines changed: 22 additions & 26 deletions

File tree

examples.ods

-2.78 KB
Binary file not shown.

src/baseclient.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,12 @@ def __init__(self):
6161
os.makedirs(self.basedir, exist_ok=True)
6262

6363
user_agents = [
64-
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0',
65-
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0',
66-
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0',
67-
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0',
68-
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:124.0) Gecko/20100101 Firefox/124.0',
69-
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:125.0) Gecko/20100101 Firefox/125.0',
70-
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0',
71-
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0',
7264
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0',
7365
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0',
66+
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.0',
67+
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:131.0) Gecko/20100101 Firefox/131.0',
68+
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0',
69+
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0',
7470
]
7571

7672
self.default_headers = {

src/financials_yahoo.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
# version 3 of the License, or (at your option) any later version.
99

1010

11-
import csv
1211
import datetime
1312
import json
1413
import logging
@@ -144,7 +143,8 @@ def handleCookiesAndConsent(self, url, ticker, datacode, html_file):
144143

145144
data = {'reject': 'reject'}
146145
for d in inputs:
147-
data[d.attrib['name']] = d.attrib['value']
146+
if 'name' in d.attrib and 'value' in d.attrib:
147+
data[d.attrib['name']] = d.attrib['value']
148148

149149
try:
150150
text = self.urlopen(self.last_url, redirect=True, data=urllib.parse.urlencode(data))

src/generate_metainfo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
cur_dir = os.getcwd()
1515

1616
addin_id = "com.financials.getinfo"
17-
addin_version = "3.7.0"
17+
addin_version = "3.7.1"
1818
addin_displayname = "Financial Market Extension"
1919
addin_publisher_link = "https://github.com/cmallwitz/Financials-Extension"
2020
addin_publisher_name = "The Publisher"

src/test_yahoo.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -183,34 +183,34 @@ def test_realtime_US_options(self):
183183

184184
# symbol from https://finance.yahoo.com/quote/IBM/options?p=IBM
185185

186-
s = financials.getRealtime('IBM250117C00165000', Datacode.PREV_CLOSE.value, 'YAHOO')
186+
s = financials.getRealtime('IBM250321C00260000', Datacode.PREV_CLOSE.value, 'YAHOO')
187187
self.assertEqual(float, type(s), 'test_realtime_US_options PREV_CLOSE {}'.format(s))
188188

189-
s = financials.getRealtime('IBM250117C00165000', Datacode.NAME.value, 'YAHOO')
189+
s = financials.getRealtime('IBM250321C00260000', Datacode.NAME.value, 'YAHOO')
190190
self.assertEqual(str, type(s), 'test_realtime_US_options NAME {}'.format(s))
191-
self.assertEqual('IBM Jan 2025 165.000 call', s, 'test_realtime_US_options NAME {}'.format(s))
191+
self.assertEqual('IBM Mar 2025 260.000 call', s, 'test_realtime_US_options NAME {}'.format(s))
192192

193-
s = financials.getRealtime('IBM250117C00165000', Datacode.EXPIRY_DATE.value, 'YAHOO')
193+
s = financials.getRealtime('IBM250321C00260000', Datacode.EXPIRY_DATE.value, 'YAHOO')
194194
self.assertEqual(str, type(s), 'test_realtime_US_options EXPIRY_DATE {}'.format(s))
195195
self.assertTrue(testutils.is_date(s), 'test_realtime_US_options EXPIRY_DATE {}'.format(s))
196-
self.assertEqual("2025-01-17", s, 'test_realtime_US_options EXPIRY_DATE {}'.format(s))
196+
self.assertEqual("2025-03-21", s, 'test_realtime_US_options EXPIRY_DATE {}'.format(s))
197197

198-
s = financials.getRealtime('IBM250117C00165000', Datacode.LAST_PRICE.value, 'YAHOO')
198+
s = financials.getRealtime('IBM250321C00260000', Datacode.LAST_PRICE.value, 'YAHOO')
199199
self.assertEqual(float, type(s), 'test_realtime_US_options LAST_PRICE {}'.format(s))
200200

201-
s = financials.getRealtime('IBM250117C00165000', Datacode.OPEN.value, 'YAHOO')
201+
s = financials.getRealtime('IBM250321C00260000', Datacode.OPEN.value, 'YAHOO')
202202
self.assertEqual(float, type(s), 'test_realtime_US_options OPEN {}'.format(s))
203203

204-
s = financials.getRealtime('IBM250117C00165000', Datacode.VOLUME.value, 'YAHOO')
204+
s = financials.getRealtime('IBM250321C00260000', Datacode.VOLUME.value, 'YAHOO')
205205
self.assertEqual(float, type(s), 'test_realtime_US_options VOLUME {}'.format(s))
206206

207-
s = financials.getRealtime('IBM250117C00165000', Datacode.BID.value, 'YAHOO')
207+
s = financials.getRealtime('IBM250321C00260000', Datacode.BID.value, 'YAHOO')
208208
self.assertEqual(float, type(s), 'test_realtime_US_options BID {}'.format(s))
209209

210-
s = financials.getRealtime('IBM250117C00165000', Datacode.ASK.value, 'YAHOO')
210+
s = financials.getRealtime('IBM250321C00260000', Datacode.ASK.value, 'YAHOO')
211211
self.assertEqual(float, type(s), 'test_realtime_US_options ASK {}'.format(s))
212212

213-
s = financials.getRealtime('IBM250117C00165000', Datacode.PAYOUT_RATIO.value, 'YAHOO')
213+
s = financials.getRealtime('IBM250321C00260000', Datacode.PAYOUT_RATIO.value, 'YAHOO')
214214
self.assertIsNone(s, 'test_realtime_US_options PAYOUT_RATIO {}'.format(s))
215215

216216
s = financials.getRealtime('IBM250117C00165000', Datacode.SECTOR.value, 'YAHOO')
@@ -220,16 +220,16 @@ def test_realtime_US_futures(self):
220220

221221
s = financials.getRealtime('ES=F', Datacode.NAME.value, 'YAHOO')
222222
self.assertEqual(str, type(s), 'test_realtime_US_futures NAME {}'.format(s))
223-
self.assertEqual('E-Mini S&P 500 Dec 24', s, 'test_realtime_US_futures NAME {}'.format(s))
223+
self.assertEqual('E-Mini S&P 500 Mar 25', s, 'test_realtime_US_futures NAME {}'.format(s))
224224

225225
s = financials.getRealtime('ES=F', Datacode.TICKER.value, 'YAHOO')
226226
self.assertEqual(str, type(s), 'test_realtime_US_futures TICKER {}'.format(s))
227-
self.assertEqual('ESZ24.CME', s, 'test_realtime_US_futures TICKER {}'.format(s))
227+
self.assertEqual('ESH25.CME', s, 'test_realtime_US_futures TICKER {}'.format(s))
228228

229229
s = financials.getRealtime('ES=F', Datacode.SETTLEMENT_DATE.value, 'YAHOO')
230230
self.assertEqual(str, type(s), 'test_realtime_US_futures SETTLEMENT_DATE {}'.format(s))
231231
self.assertTrue(testutils.is_date(s), 'test_realtime_US_futures SETTLEMENT_DATE {}'.format(s))
232-
self.assertEqual("2024-12-20", s, 'test_realtime_US_futures SETTLEMENT_DATE {}'.format(s))
232+
self.assertEqual("2025-03-21", s, 'test_realtime_US_futures SETTLEMENT_DATE {}'.format(s))
233233

234234
s = financials.getRealtime('ES=F', Datacode.LAST_PRICE.value, 'YAHOO')
235235
self.assertEqual(float, type(s), 'test_realtime_US_futures LAST_PRICE {}'.format(s))
@@ -353,7 +353,7 @@ def test_DK_equity(self):
353353

354354
s = financials.getRealtime('NOVO-B.CO', 'industry', 'YAHOO')
355355
self.assertEqual(str, type(s), 'test_DK_equity INDUSTRY {}'.format(s))
356-
self.assertEqual('Biotechnology', s, 'test_DK_equity INDUSTRY {}'.format(s))
356+
self.assertEqual('Drug Manufacturers - General', s, 'test_DK_equity INDUSTRY {}'.format(s))
357357

358358
s = financials.getRealtime('MAERSK-B.CO', 'currency', 'YAHOO')
359359
self.assertEqual('DKK', s, 'test_DK_equity CURRENCY {}'.format(s))

0 commit comments

Comments
 (0)