Re-enable seeking alpha headline feed. Code cleanup.

This commit is contained in:
2024-03-18 10:51:06 -04:00
parent 14d587c1e7
commit 1ce259118e
24 changed files with 1734 additions and 174 deletions

View File

@@ -12,7 +12,7 @@ namespace MarketData.Helper
public class HeadlinesMarketDataHelper
{
private static int MaxThreads = 10; // (int)ThreadHelperEnum.MaxThreads;
private static int WAIT_BETWEEN_REQUESTS_MS = 500; // wait 500 ms between requests
private static int WAIT_BETWEEN_REQUESTS_MS = 1000; // wait 1000 ms between requests
private List<String> symbols;
private int currentIndex = 0;
@@ -39,6 +39,7 @@ namespace MarketData.Helper
{
ThreadHelper threadHelper = new ThreadHelper(queueSymbols[index],resetEvents[index]);
ThreadPool.QueueUserWorkItem(ThreadPoolCallbackLoadHeadline, threadHelper);
try{Thread.Sleep(WAIT_BETWEEN_REQUESTS_MS);}catch{;}
}
MDTrace.WriteLine(LogLevel.DEBUG,"Load Headline, waiting for queued items to complete.");
WaitHandle.WaitAll(resetEvents);
@@ -113,8 +114,8 @@ namespace MarketData.Helper
Headlines headlinesCollection=new Headlines();
Headlines headlines=null;
// SEEKING ALPHA
//headlines=MarketDataHelper.GetCompanyHeadlines(symbol);
//if(null!=headlines)headlinesCollection.AddRange(headlines);
headlines=MarketDataHelper.GetCompanyHeadlinesSeekingAlpha(symbol);
if(null!=headlines)headlinesCollection.AddRange(headlines);
// NASDAQ
headlines=MarketDataHelper.GetCompanyHeadlinesNASDAQ(symbol);
if(null!=headlines)headlinesCollection.AddRange(headlines);
@@ -123,6 +124,10 @@ namespace MarketData.Helper
if(null!=headlines)headlinesCollection.AddRange(headlines);
return headlinesCollection;
}
// ***********************************************************************************************************************************************
// ***********************************************************************************************************************************************
// ***********************************************************************************************************************************************
public static void LoadHeadlineEx(String symbol)
{
DateTime marketDate=PremarketDA.GetLatestMarketDate();
@@ -130,23 +135,24 @@ namespace MarketData.Helper
Headlines headlines=null;
// SEEKING ALPHA
//MDTrace.WriteLine(LogLevel.DEBUG,String.Format("LoadHeadlinesSymbol {0}",symbol));
//headlines=MarketDataHelper.GetCompanyHeadlines(symbol);
//if(headlines.IsNullOrEmpty())
//{
// MDTrace.WriteLine(LogLevel.DEBUG,String.Format("No headlines for {0} from Seeking Alpha",symbol));
//}
//else
//{
// MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Got {0} headlines for {1} from Seeking Alpha",headlines.Count,symbol));
// headlines=new Headlines(headlines.Where(x=>x.Date<marketDate).ToList());
// HeadlinesDA.InsertHeadlines(headlines);
// foreach(Headline headline in headlines)
// {
// MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Seeking Alpha {0}, {1} -> {2}",headline.Symbol,headline.Date.ToShortDateString(),headline.Entry));
// }
//}
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetCompanyHeadlinesSeekingAlpha {0}",symbol));
headlines=MarketDataHelper.GetCompanyHeadlinesSeekingAlpha(symbol);
if(headlines.IsNullOrEmpty())
{
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("No headlines for {0} from Seeking Alpha",symbol));
}
else
{
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Got {0} headlines for {1} from Seeking Alpha",headlines.Count,symbol));
headlines=new Headlines(headlines.Where(x=>x.Date<marketDate).ToList());
HeadlinesDA.InsertHeadlines(headlines);
foreach(Headline headline in headlines)
{
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Seeking Alpha {0}, {1} -> {2}",headline.Symbol,headline.Date.ToShortDateString(),headline.Entry));
}
}
// NASDAQ
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetCompanyHeadlinesNASDAQ {0}",symbol));
headlines=MarketDataHelper.GetCompanyHeadlinesNASDAQ(symbol);
if(headlines.IsNullOrEmpty())
{
@@ -163,6 +169,7 @@ namespace MarketData.Helper
}
}
// MARKETWATCH
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetCompanyHeadlinesMarketWatch {0}",symbol));
headlines=MarketDataHelper.GetCompanyHeadlinesMarketWatch(symbol);
if(headlines.IsNullOrEmpty())
{

View File

@@ -1658,13 +1658,7 @@ namespace MarketData.Helper
// ***************************************************************************************************************************************************************************
//***************************************************************** H E A D L I N E S - S E E K I N G A L P H A ***********************************************************
// ***************************************************************************************************************************************************************************
/*
public static Headlines GetCompanyHeadlines(String symbol)
{
Headlines headlines=GetCompanyHeadlinesEx(symbol);
return headlines;
}
public static Headlines GetCompanyHeadlinesEx(String symbol)
public static Headlines GetCompanyHeadlinesSeekingAlpha(String symbol)
{
HttpNetResponse httpNetResponse=null;
Headlines headlines=new Headlines();
@@ -1680,8 +1674,8 @@ namespace MarketData.Helper
sb.Append("https://seekingalpha.com/api/v3/symbols/").Append(symbol).Append("/news?filter[until]=0&id=").Append(symbol).Append("&include=author,primaryTickers,secondaryTickers,sentiments&page[number]=1&page[size]=11");
strRequest = sb.ToString();
MDTrace.WriteLine(LogLevel.DEBUG, strRequest);
WebProxy webProxy=HttpNetRequest.GetProxy("GetCompanyHeadlines");
httpNetResponse=HttpNetRequest.GetRequestNoEncodingV3B(strRequest,cookieCollection,webProxy);
WebProxy webProxy=HttpNetRequest.GetProxy("GetCompanyHeadlinesSeekingAlpha");
httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5B(strRequest,30000,webProxy,true,cookieCollection);
if(!httpNetResponse.Success)
{
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Request:{0} failed with status {1}",httpNetResponse.Request,httpNetResponse.StatusCode));
@@ -1714,17 +1708,12 @@ namespace MarketData.Helper
if(null!=httpNetResponse)httpNetResponse.Dispose();
}
}
*/
// ***************************************************************************************************************************************************************************
//***************************************************************** H E A D L I N E S - M A R K E T W A T C H *************************************************************
// ***************************************************************************************************************************************************************************
public static Headlines GetCompanyHeadlinesMarketWatch(String symbol)
{
return null;
}
// turning this off until MarketWatch quote resets 03/14/2023. we'll try it again in some hours.
public static Headlines GetCompanyHeadlinesMarketWatch_Org(String symbol)
{
HttpNetResponse httpNetResponse=null;
Headlines headlines=new Headlines();
@@ -1738,12 +1727,12 @@ namespace MarketData.Helper
MemoryStream memoryStream=null;
CookieCollection cookieCollection=new CookieCollection();
httpNetResponse= HttpNetRequest.GetRequestNoEncodingV4("https://www.marketwatch.com",cookieCollection);
Thread.Sleep(250);
Thread.Sleep(500);
sb.Append("https://www.marketwatch.com/investing/stock/").Append(symbol).Append("?mod=search_symbol");
strRequest = sb.ToString();
MDTrace.WriteLine(LogLevel.DEBUG, strRequest);
WebProxy webProxy=HttpNetRequest.GetProxy("GetCompanyHeadlinesMarketWatch");
httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5(strRequest,DEFAULT_TIMEOUT_MS,webProxy);
httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5B(strRequest,DEFAULT_TIMEOUT_MS,webProxy,true,cookieCollection);
if(!httpNetResponse.Success)
{
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Request:{0} failed with status {1}",httpNetResponse.Request,httpNetResponse.StatusCode));