Advertisement
trevor_in_holland

scriptabletest

Nov 16th, 2021
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const widget = new ListWidget()
  2. let stockout = await stocks2()
  3. Script.setWidget(widget)
  4. widget.presentSmall()
  5. Script.complete()
  6.  
  7.  
  8. async function stocks2(column) {
  9.   let stocksInfo2 = await getStockData()
  10.  
  11.   let stocksStack2 = widget.addStack()
  12.   stocksStack2.layoutVertically()
  13.  
  14.   stocksStack2.cornerRadius = 12
  15.  
  16.   stocksStack2.size = new Size(150,120)
  17.   stocksStack2.url = "http://www.news.com.au"
  18.  
  19.   let drawContext = new DrawContext();
  20.  
  21.   drawContext.size = new Size(150, 120)
  22.   drawContext.opaque = false
  23.   drawContext.setFont(Font.boldSystemFont(12))
  24.      
  25.   for(j=0; j<stocksInfo2.length; j++) {
  26.     let currentStock2 = stocksInfo2[j];
  27.     drawContext.setTextColor(Color.red())
  28.     var addspace, addspace2 = 0
  29.     drawContext.drawText(currentStock2.symbol.substring(0,3), new Point(10, 4 + j*13)) 
  30.     drawContext.drawText(currentStock2.price, new Point(65 - (currentStock2.price.length-4)*7, 4 + j*13))
  31.     drawContext.drawText(currentStock2.changevalue, new Point(110 + addspace2, 4 + j*13))  
  32.   }
  33.    
  34.   stocksStack2.backgroundImage = drawContext.getImage()
  35.   //stocksStack2.backgroundImage.size = new Size(150, 120)
  36.  }  
  37.  
  38.  
  39. async function getStockData() {
  40.   let stocks = null;
  41.   stocks = [ "TRS.AX", "BHP.AX"]
  42.   let stocksdata = [];
  43.  
  44.   for(i=0; i< stocks.length; i++)
  45.   {
  46.     let stkdata = await queryStockData(stocks[i].trim());
  47.     let price = stkdata.quoteSummary.result[0].price;
  48.     let priceKeys = Object.keys(price);
  49.  
  50.     let data = {};
  51.     data.symbol = price.symbol;
  52.     data.changepercent = (price.regularMarketChangePercent.raw * 100).toFixed(2);
  53.     data.changevalue = price.regularMarketChange.raw.toFixed(2);
  54.     data.price = price.regularMarketPrice.raw.toFixed(2);
  55.     data.high = price.regularMarketDayHigh.raw.toFixed(2);
  56.     data.low = price.regularMarketDayLow.raw.toFixed(2);
  57.     data.prevclose = price.regularMarketPreviousClose.raw.toFixed(2);
  58.     data.name = price.shortName;
  59.     stocksdata.push(data);
  60.    
  61.   }
  62.  
  63.   return(stocksdata)
  64.  
  65. }
  66.  
  67. async function queryStockData(symbol) {
  68.   let url = "https://query1.finance.yahoo.com/v10/finance/quoteSummary/" + symbol + "?modules=price"
  69.   let req = new Request(url)
  70.   return await req.loadJSON()
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement