extension.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import * as vscode from 'vscode';
  2. import axios from "axios";
  3. export function activate() {
  4. // 创建国际黄金状态
  5. const oneItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, 9998);
  6. const twoItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, 9997);
  7. axios.get('https://87.futsseapi.eastmoney.com/sse/101_GC00Y_qt?token=1101ffec61617c99be287c1bec3085ff&field=name,sc,dm,p,zsjd,zdf,zde,utime,o,zjsj,qrspj,h,l,mrj,mcj,vol,cclbh,zt,dt,np,wp,ccl,rz,cje,mcl,mrl,jjsj,j,lb,zf', {
  8. headers: { Accept: 'text/text/event-stream' }, responseType: 'stream'
  9. }).then(res => {
  10. const eventStream = res.data;
  11. let O = 0
  12. eventStream.on('data', (chunk: Uint8Array) => {
  13. oneItem.color = 'rgba( 255,255,255,0.4)';
  14. twoItem.color = 'rgba( 255,255,255,0.4)';
  15. // 国际金
  16. const str = chunk.toString().split('\n')
  17. if (!str[0]) return
  18. const jsonStr = str[0].replace(/^data:/, '');
  19. if (!jsonStr) return
  20. const data = JSON.parse(jsonStr);
  21. if (!data) return
  22. const { zdf, zde, p, o } = data.qt
  23. if (!zdf || !zde || !p) return
  24. if (o) O = o
  25. // 当前:p 营收: zde 营收率: zdf 昨收:o
  26. const oneTxt = `国际黄金: ${p}/${O} (${zde} ${zdf}%)`;
  27. oneItem.color = zdf > 0 ? 'red' : 'green';
  28. oneItem.text = oneTxt;
  29. // 国内金
  30. axios.get('https://push2.eastmoney.com/api/qt/stock/get?fields=f58,f734,f107,f57,f43,f59,f169,f170,f152,f177,f111,f46,f60,f44,f45,f86,f47,f19,f532,f161,f171,f48,f39,f49,f50&secid=118.AU9999').then(red => {
  31. const { data: { data: { f43, f169, f170, f60 } } } = red; // 国内
  32. // 当前:f43 营收: f169 营收率: f170 昨收:f60
  33. const twoTxt = `国内AU999: ${Math.floor(f43) / 100}/${Math.floor(f60) / 100} (${Math.floor(f169) / 100} ${Math.floor(f170) / 100}%)`;
  34. twoItem.color = f169 > 0 ? 'red' : 'green';
  35. twoItem.text = twoTxt;
  36. })
  37. })
  38. })
  39. oneItem.show();
  40. twoItem.show();
  41. }
  42. export function deactivate() { }