60 lines
3.3 KiB
TypeScript
60 lines
3.3 KiB
TypeScript
/**
|
|
* Shared configuration for QM operations
|
|
*/
|
|
|
|
import { getRandomUserAgent } from "@stock-bot/utils";
|
|
|
|
// QM Session IDs for different endpoints
|
|
export const QM_SESSION_IDS = {
|
|
LOOKUP: 'dc8c9930437f65d30f6597768800957017bac203a0a50342932757c8dfa158d6', // lookup endpoint
|
|
SYMBOL: '1e1d7cb1de1fd2fe52684abdea41a446919a5fe12776dfab88615ac1ce1ec2f6', // getProfiles
|
|
PRICES: '5ad521e05faf5778d567f6d0012ec34d6cdbaeb2462f41568f66558bc7b4ced9', // getEnhancedChartData
|
|
FINANCIALS: '4e4f1565fb7c9f2a8b4b32b9aa3137af684f3da8a2ce97799d3a7117b14f07be', // getFinancialsEnhancedBySymbol
|
|
// FILINGS: '', //
|
|
// INTRADAY: '', //
|
|
// '5ad521e05faf5778d567f6d0012ec34d6cdbaeb2462f41568f66558bc7b4ced9' // getEhnachedChartData
|
|
// '5ad521e05faf5778d567f6d0012ec34d6cdbaeb2462f41568f66558bc7b4ced9': [], //4488d072b
|
|
// cc1cbdaf040f76db8f4c94f7d156b9b9b716e1a7509ec9c74a48a47f6b6b9f87: [], //97ff00cf3 // getQuotes
|
|
// '74963ff42f1db2320d051762b5d3950ff9eab23f9d5c5b592551b4ca0441d086': [], //32ca24e394b // getSplitsBySymbol getBrokerRatingsBySymbol getDividendsBySymbol getEarningsSurprisesBySymbol getEarningsEventsBySymbol
|
|
// '1e1d7cb1de1fd2fe52684abdea41a446919a5fe12776dfab88615ac1ce1ec2f6': [], //fb5721812d2c // getEnhancedQuotes getProfiles
|
|
// a900a06cc6b3e8036afb9eeb1bbf9783f0007698ed8f5cb1e373dc790e7be2e5: [], //cc882cd95f9 // getEnhancedQuotes
|
|
// a863d519e38f80e45d10e280fb1afc729816e23f0218db2f3e8b23005a9ad8dd: [], //05a09a41225 // getCompanyFilings getEnhancedQuotes
|
|
// b3cdb1873f3682c5aeeac097be6181529bfb755945e5a412a24f4b9316291427: [], //6a63f56a6 // getHeadlinesTickerStory
|
|
// '97b24911d7b034620aafad9441afdb2bc906ee5c992d86933c5903254ca29709': [], //c56424868d // detailed-quotes
|
|
// '8a394f09cb8540c8be8988780660a7ae5b583c331a1f6cb12834f051a0169a8f': [], //2a86d214e50e5 // getGlobalIndustrySectorPeers getKeyRatiosBySymbol getGlobalIndustrySectorCodeList
|
|
// '2f059f75e2a839437095c9e7e4991d2365bafa7bbb086672a87ae0cf8d92eb01': [], // 48fa36d // getNethouseBySymbol
|
|
// d7ae7e0091dd1d7011948c3dc4af09b5ec552285d92bb188be2618968bc78e3f: [], // 63548ee //getRecentTradesBySymbol getQuotes getLevel2Quote getRecentTradesBySymbol
|
|
// d22d1db8f67fe6e420b4028e5129b289ca64862aa6cee8459193747b68c01de3: [], // 84e9e
|
|
// '6e0b22a7cbc02ac3fa07d45e2880b7696aaebeb29574dce81789e570570c9002': [], //
|
|
// Add other session IDs as needed
|
|
} as const;
|
|
|
|
// QM API Configuration
|
|
export const QM_CONFIG = {
|
|
BASE_URL: 'https://app.quotemedia.com',
|
|
SESSION_PATH: '/auth/g/authenticate/dataTool/v0/500',
|
|
LOOKUP_URL: 'https://app.quotemedia.com/datatool/lookup.json',
|
|
SYMBOL_URL: 'https://app.quotemedia.com/datatool/getProfiles.json',
|
|
PRICES_URL: 'https://app.quotemedia.com/datatool/getEnhancedChartData.json',
|
|
EVENTS_URL: 'https://app.quotemedia.com/datatool/getIndicatorsBySymbol.json',
|
|
FINANCIALS_URL: 'https://app.quotemedia.com/datatool/getFinancialsEnhancedBySymbol.json',
|
|
} as const;
|
|
|
|
// Session management settings
|
|
export const SESSION_CONFIG = {
|
|
MAX_SESSIONS: 5,
|
|
MAX_FAILED_CALLS: 5,
|
|
SESSION_TIMEOUT: 5000, // 10 seconds
|
|
API_TIMEOUT: 30000, // 15 seconds
|
|
} as const;
|
|
|
|
export function getQmHeaders(): Record<string, string> {
|
|
return {
|
|
'User-Agent': getRandomUserAgent(),
|
|
Accept: '*/*',
|
|
'Accept-Language': 'en',
|
|
'Sec-Fetch-Mode': 'cors',
|
|
Origin: 'https://www.quotemedia.com',
|
|
Referer: 'https://www.quotemedia.com/',
|
|
};
|
|
}
|