preLoadFile.js 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. let owoLoadList = []
  2. function loadCSS (url) {
  3. if (owoLoadList.includes(url)) {
  4. return
  5. }
  6. owoLoadList.push(url)
  7. var link = document.createElement("link");
  8. link.rel = "stylesheet";
  9. link.type = "text/css";
  10. link.href = url;
  11. document.getElementsByTagName("head")[0].appendChild(link);
  12. }
  13. if (document.querySelector('.puge-box')) document.querySelector('.puge-box').outerHTML = ''
  14. // 保存CSV
  15. function fake_click(obj) {
  16. var ev = document.createEvent("MouseEvents");
  17. ev.initMouseEvent(
  18. "click", true, false, window, 0, 0, 0, 0, 0
  19. , false, false, false, false, 0, null
  20. );
  21. obj.dispatchEvent(ev);
  22. }
  23. function download(name, data) {
  24. var urlObject = window.URL || window.webkitURL || window;
  25. var downloadData = new Blob([data]);
  26. var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
  27. save_link.href = urlObject.createObjectURL(downloadData);
  28. save_link.download = name;
  29. fake_click(save_link);
  30. }
  31. function saveCSV (name, data) {
  32. let saveData = ''
  33. data.forEach(element => {
  34. if (element) {
  35. saveData += element.join(',')
  36. saveData += '\r\n'
  37. }
  38. });
  39. var urlObject = window.URL || window.webkitURL || window;
  40. var downloadData = new Blob(['\ufeff' + saveData], { type: 'text/csv,charset=UTF-8'});
  41. const fileData = {
  42. filename: new Date().valueOf() + '.csv',
  43. content: saveData
  44. };
  45. // 调用保存方法
  46. window.electronAPI.saveFile(fileData)
  47. .then(result => {
  48. if (result.success) {
  49. console.log('文件保存成功:', result.path);
  50. } else {
  51. console.error('文件保存失败:', result.error);
  52. }
  53. });
  54. // var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
  55. // save_link.href = urlObject.createObjectURL(downloadData);
  56. // save_link.download = name;
  57. // fake_click(save_link);
  58. }
  59. function getDataList(plateIds) {
  60. let outPutList = [
  61. ["板块代码","股票代码","股票名称"]
  62. ]
  63. fetch("https://a-dflapi.topxlc.com/dfl/stock/second_line_detail_for_plate", {
  64. "headers": {
  65. "accept": "application/json, text/plain, */*",
  66. "accept-language": "zh-CN",
  67. "appcode": "eastern-loong",
  68. "apptype": ":web:",
  69. "content-type": "application/json",
  70. "priority": "u=1, i",
  71. "sec-fetch-dest": "empty",
  72. "sec-fetch-mode": "cors",
  73. "sec-fetch-site": "same-site",
  74. "token": "79739bc8c9923f350ae0990e65969650"
  75. },
  76. "referrer": "https://dfl.topxlc.com/",
  77. "referrerPolicy": "strict-origin-when-cross-origin",
  78. "body": JSON.stringify({"plateIds":plateIds}),
  79. "method": "POST",
  80. "mode": "cors",
  81. "credentials": "omit"
  82. }).then((response) => response.json())
  83. .then((result) => {
  84. let textInfo = ``
  85. for (const key in result.result) {
  86. if (Object.prototype.hasOwnProperty.call(result.result, key)) {
  87. const element = result.result[key];
  88. element.forEach(element2 => {
  89. textInfo += element2.codeName
  90. outPutList.push([window.nameList[key], element2.code.split('.')[0], element2.codeName])
  91. });
  92. }
  93. }
  94. // console.log(outPutList)
  95. saveCSV('data.csv', outPutList)
  96. })
  97. .catch((error) => console.error(error));
  98. }
  99. window.nameList = {}
  100. function getData() {
  101. fetch("https://a-dflapi.topxlc.com/dfl/web/get_plate_list", {
  102. "headers": {
  103. "accept": "application/json, text/plain, */*",
  104. "accept-language": "zh-CN",
  105. "appcode": "eastern-loong",
  106. "apptype": ":web:",
  107. "content-type": "application/json",
  108. "priority": "u=1, i",
  109. "sec-fetch-dest": "empty",
  110. "sec-fetch-mode": "cors",
  111. "sec-fetch-site": "same-site",
  112. "token": "79739bc8c9923f350ae0990e65969650"
  113. },
  114. "referrer": "https://dfl.topxlc.com/",
  115. "referrerPolicy": "strict-origin-when-cross-origin",
  116. "body": JSON.stringify({"isListing": true,"type": 1}),
  117. "method": "POST",
  118. "mode": "cors",
  119. "credentials": "omit"
  120. }).then((response) => response.json())
  121. .then((result) => {
  122. result.result.forEach(element => {
  123. window.nameList[element.id] = element.name
  124. });
  125. getDataList(result.result.map((item)=>{return item.id}))
  126. })
  127. .catch((error) => console.error(error));
  128. }
  129. setTimeout(() => {
  130. var box = document.getElementsByClassName('puge-box')
  131. if (!box[0]) {
  132. var insertElement = document.createElement("div");
  133. insertElement.style.display = 'none'
  134. insertElement.classList.add('puge-box')
  135. insertElement.style.zIndex = '9665'
  136. insertElement.style.width = '100%'
  137. insertElement.style.height = '100%'
  138. insertElement.style.position = 'fixed'
  139. insertElement.style.left = '0'
  140. insertElement.style.top = '0'
  141. insertElement.style.backgroundColor = 'white'
  142. document.body.appendChild(insertElement);
  143. if (window.pugeCreated) {
  144. window.pugeCreated(insertElement)
  145. window.pugeCreated = null
  146. }
  147. }
  148. }, 1000)
  149. var box = document.getElementsByClassName('puge-menu')
  150. if (!box[0]) {
  151. var insertElement = document.createElement("div");
  152. insertElement.classList.add('puge-menu')
  153. insertElement.innerHTML = `
  154. <div class="puge" style="position: fixed;
  155. width: 40px;
  156. height: 40px;
  157. right: 10px;
  158. bottom: 120px;
  159. z-index: 9666;
  160. color: white;" onclick="owostart()"><svg t="1619252746615" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="19612" width="40" height="40"><path d="M622.7968 89.7024l60.1088 124.1088c15.9744 36.0448 52.0192 60.1088 92.16 66.048l134.144 20.0704c100.1472 14.0288 138.1376 136.192 68.096 208.2816l-98.0992 94.1056c-28.0576 28.0576-42.0864 68.096-36.0448 106.0864l22.016 134.144c15.9744 100.1472-86.1184 174.1824-176.2304 128.2048l-120.1152-62.0544c-36.0448-18.0224-76.0832-18.0224-112.128 0L334.4384 972.8c-90.112 46.08-192.2048-28.0576-176.2304-128.2048l22.016-134.144c7.9872-40.0384-6.0416-80.0768-36.0448-106.0864L46.08 508.2112c-72.0896-72.0896-32.0512-192.2048 68.096-208.2816l134.144-20.0704c40.0384-6.0416 74.1376-30.0032 92.16-66.048l60.1088-124.1088c50.0736-90.112 176.2304-90.112 222.208 0" fill="#FED44A" p-id="19613"></path><path d="M404.5824 89.7024l-60.1088 124.1088c-15.9744 36.0448-52.0192 60.1088-92.16 66.048l-134.144 20.0704c-62.0544 10.0352-102.0928 60.1088-104.1408 112.128 18.0224-98.0992 220.2624-22.016 312.4224-14.0288 94.1056 10.0352 120.1152-74.1376 120.1152-74.1376s20.0704-100.1472 44.032-226.304c18.0224-102.0928 86.1184-58.0608 110.1824-40.0384C544.768-0.4096 444.6208 11.6736 404.5824 89.7024" fill="#FFDE73" p-id="19614"></path><path d="M574.7712 784.5888c-74.1376-50.0736-140.1856 0-140.1856 0S362.496 848.6912 278.4256 928.768c-86.1184 80.0768-118.1696-33.9968-118.1696-33.9968 18.0224 72.0896 102.0928 116.1216 174.1824 76.0832l122.1632-62.0544c36.0448-18.0224 76.0832-18.0224 112.128 0L690.8928 972.8c56.1152 30.0032 118.1696 11.9808 152.1664-32.0512 2.048-7.9872 3.9936-14.0288 7.9872-20.0704-67.9936 66.1504-200.192-86.016-276.2752-136.0896" fill="#FEC54A" p-id="19615"></path><path d="M466.6368 103.7312c15.9744 3.9936 26.0096 18.0224 22.016 36.0448l-28.0576 126.1568c-3.9936 15.9744-18.0224 26.0096-36.0448 22.016-15.9744-3.9936-26.0096-18.0224-22.016-36.0448l28.0576-128.2048c3.9936-15.9744 20.0704-23.9616 36.0448-19.968" fill="#FFF2CA" p-id="19616"></path><path d="M375.3984 530.8416c-29.2864 0-53.0432-18.7392-53.0432-41.984 0-23.1424 23.7568-41.984 53.0432-41.984s53.0432 18.7392 53.0432 41.984c0 23.1424-23.7568 41.984-53.0432 41.984z m260.9152 0c-29.2864 0-53.0432-18.7392-53.0432-41.984 0-23.1424 23.7568-41.984 53.0432-41.984s53.0432 18.7392 53.0432 41.984c0 23.1424-23.7568 41.984-53.0432 41.984z m-190.464 74.6496c-2.56-3.6864-3.3792-8.192-2.56-12.4928 0.9216-4.3008 3.584-8.0896 7.2704-10.4448 7.8848-5.12 18.432-3.072 23.8592 4.608 12.288 17.7152 26.2144 25.8048 43.1104 25.8048s30.8224-8.0896 43.1104-25.8048c5.4272-7.68 15.9744-9.728 23.8592-4.608 3.7888 2.3552 6.4512 6.144 7.2704 10.4448 0.9216 4.3008 0 8.9088-2.56 12.4928-18.3296 26.5216-42.7008 40.6528-71.7824 40.6528-28.8768-0.1024-53.248-14.1312-71.5776-40.6528z m0 0" fill="#92410E" p-id="19617"></path></svg></div>
  161. `
  162. document.body.appendChild(insertElement);
  163. }
  164. // function owostart () {
  165. // getData()
  166. // }
  167. setInterval(() => {
  168. getData()
  169. }, 10000);