From ec2a5da899199f7a57054ece4a9e47e8b1677960 Mon Sep 17 00:00:00 2001 From: Eric Chernuka Date: Mon, 27 Jan 2025 19:21:59 -0700 Subject: [PATCH 1/2] Update stock-tracker extension - chore: add contributors - fix: make modifiers work from todo - fix: add throttle true to avoid rate limits - fix: add browser header to trick yahoo api --- extensions/stock-tracker/package.json | 3 +++ extensions/stock-tracker/src/favorites-list.tsx | 6 ++---- extensions/stock-tracker/src/index.tsx | 8 +++++++- extensions/stock-tracker/src/yahoo-finance/client.ts | 11 ++++++++--- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/extensions/stock-tracker/package.json b/extensions/stock-tracker/package.json index 51d90c73a5a..7f8d9e2f88d 100644 --- a/extensions/stock-tracker/package.json +++ b/extensions/stock-tracker/package.json @@ -5,6 +5,9 @@ "description": "Shows stock market data for individual stocks or your portfolio by using Yahoo Finance.", "icon": "extension-icon.png", "author": "hmarr", + "contributors": [ + "ericchernuka" + ], "categories": [ "Finance" ], diff --git a/extensions/stock-tracker/src/favorites-list.tsx b/extensions/stock-tracker/src/favorites-list.tsx index b1645789053..ee876e8f137 100644 --- a/extensions/stock-tracker/src/favorites-list.tsx +++ b/extensions/stock-tracker/src/favorites-list.tsx @@ -41,15 +41,13 @@ function FavouritesActions({ favorites, quote, favoritesStore }: FavouritesActio favoritesStore.moveUp(quote.symbol!)} /> favoritesStore.moveDown(quote.symbol!)} /> diff --git a/extensions/stock-tracker/src/index.tsx b/extensions/stock-tracker/src/index.tsx index ce598bb7c90..d7faac4c7ca 100644 --- a/extensions/stock-tracker/src/index.tsx +++ b/extensions/stock-tracker/src/index.tsx @@ -10,7 +10,13 @@ export default function Command() { const isLoading = searchText.length > 0 ? searchIsLoading : favoritesIsLoading; return ( - + {searchText.length > 0 ? ( ) : ( diff --git a/extensions/stock-tracker/src/yahoo-finance/client.ts b/extensions/stock-tracker/src/yahoo-finance/client.ts index ae8a630530c..b2ccf13187e 100644 --- a/extensions/stock-tracker/src/yahoo-finance/client.ts +++ b/extensions/stock-tracker/src/yahoo-finance/client.ts @@ -1,6 +1,11 @@ import { LocalStorage } from "@raycast/api"; import fetch from "cross-fetch"; +const HEADERS = { + "User-Agent": + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36", +} as const; + export async function get(path: string, params: { [key: string]: string }, signal: AbortSignal): Promise { // Requests to Yahoo Finance require a cookie (header) and a crumb (query param). const { cookie, crumb } = await cookieCrumb(); @@ -30,7 +35,7 @@ async function request( } const response = await fetch(url.toString(), { - headers: { cookie }, + headers: { cookie, ...HEADERS }, signal, }); if (response.status !== 200) { @@ -69,7 +74,7 @@ export async function cookieCrumb(): Promise { } async function getCookie(): Promise { - const response = await fetch("https://fc.yahoo.com"); + const response = await fetch("https://fc.yahoo.com", { headers: HEADERS }); const cookie = response.headers.get("set-cookie"); if (!cookie) { throw new Error("Failed to fetch cookie"); @@ -79,7 +84,7 @@ async function getCookie(): Promise { async function getCrumb(cookie: string): Promise { const response = await fetch("https://query1.finance.yahoo.com/v1/test/getcrumb", { - headers: { cookie }, + headers: { cookie, ...HEADERS }, }); const crumb = await response.text(); if (!crumb) { From 281441f532839b901960dd45fc8e5838d7f5e5cd Mon Sep 17 00:00:00 2001 From: Eric Chernuka Date: Mon, 27 Jan 2025 19:34:36 -0700 Subject: [PATCH 2/2] Update stock-tracker extension - feat: update changelog - chore: add contributors - fix: make modifiers work from todo - fix: add throttle true to avoid rate limits - fix: add browser header to trick yahoo api --- extensions/stock-tracker/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/extensions/stock-tracker/CHANGELOG.md b/extensions/stock-tracker/CHANGELOG.md index 0d187d7a1ea..bade511cf73 100644 --- a/extensions/stock-tracker/CHANGELOG.md +++ b/extensions/stock-tracker/CHANGELOG.md @@ -1,5 +1,9 @@ # Stock Tracker Changelog +## [Fix] - 2025-01-27 + +- Fix the integration with the Yahoo Finance API by adding a browser header + ## [Fix] - 2023-06-03 - Fix the integration with the Yahoo Finance API by providing a cookie