summaryrefslogtreecommitdiffstats
path: root/openbb_platform/providers/seeking_alpha/openbb_seeking_alpha/utils/helpers.py
diff options
context:
space:
mode:
Diffstat (limited to 'openbb_platform/providers/seeking_alpha/openbb_seeking_alpha/utils/helpers.py')
-rw-r--r--openbb_platform/providers/seeking_alpha/openbb_seeking_alpha/utils/helpers.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/openbb_platform/providers/seeking_alpha/openbb_seeking_alpha/utils/helpers.py b/openbb_platform/providers/seeking_alpha/openbb_seeking_alpha/utils/helpers.py
new file mode 100644
index 00000000000..656b4d0c4fe
--- /dev/null
+++ b/openbb_platform/providers/seeking_alpha/openbb_seeking_alpha/utils/helpers.py
@@ -0,0 +1,40 @@
+"""Seeking Alpha Utilities."""
+
+from datetime import timedelta
+
+from openbb_core.provider.utils.helpers import amake_request
+
+HEADERS = {
+ "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:106.0) Gecko/20100101 Firefox/106.0",
+ "Accept": "*/*",
+ "Accept-Language": "de,en-US;q=0.7,en;q=0.3",
+ "Accept-Encoding": "gzip, deflate, br",
+ "Sec-Fetch-Dest": "empty",
+ "Sec-Fetch-Mode": "cors",
+ "Sec-Fetch-Site": "same-origin",
+ "Connection": "keep-alive",
+}
+
+
+def date_range(start_date, end_date):
+ """Yield dates between start_date and end_date."""
+ for n in range(int((end_date - start_date).days) + 1):
+ yield start_date + timedelta(n)
+
+
+async def get_seekingalpha_id(symbol: str) -> str:
+ """Map a ticker symbol to its Seeking Alpha ID."""
+ url = "https://seekingalpha.com/api/v3/searches"
+ querystring = {
+ "filter[type]": "symbols",
+ "filter[list]": "all",
+ "page[size]": "100",
+ }
+ querystring["filter[query]"] = symbol
+ payload = ""
+ response = await amake_request(
+ url, data=payload, headers=HEADERS, params=querystring
+ )
+ ids = response.get("symbols") # type: ignore
+
+ return str(ids[0].get("id", ""))