test.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. var path = require('path');
  2. const dayjs = require('dayjs');
  3. const { getSubdirectories, getFilesInDirectory } = require('./folder_reader.js');
  4. async function getLastNewModel(degree) {
  5. let gfsList = null;
  6. let hourList = null;
  7. gfsList = await getSubdirectories(path.join(__dirname, `../../model/grib2/${degree}`));
  8. if (gfsList?.length) {
  9. let dates = [];
  10. for (let i = 0; i < gfsList.length; i++) {
  11. const filePath = gfsList[i].split("\\");
  12. dates.push({
  13. fileName: filePath[filePath.length - 1],
  14. path: gfsList[i],
  15. date: Number(filePath[filePath.length - 1].split(".")[1])
  16. });
  17. }
  18. dates.sort((a, b) => {
  19. return b.date - a.date;
  20. });
  21. hourList = await getSubdirectories(path.join(__dirname, `../../model/grib2/${degree}/${dates[0].fileName}`));
  22. if (hourList?.length) {
  23. let hours = [];
  24. for (let i = 0; i < hourList.length; i++) {
  25. const filePath = hourList[i].split("\\");
  26. hours.push({
  27. fileName: filePath[filePath.length - 1],
  28. path: hourList[i],
  29. date: Number(filePath[filePath.length - 1])
  30. });
  31. }
  32. hours.sort((a, b) => {
  33. return b.date - a.date;
  34. });
  35. const fileList = await getFilesInDirectory(hours[0].path);
  36. // return global.downloadManager.manager.getStatus();
  37. return {
  38. utcData: convertUtcDateForChinaDate(hours[0].path.split("gfs.")[1].split("\\")[0], hours[0].date - 8),
  39. chinaData: convertUtcDateForChinaDate(hours[0].path.split("gfs.")[1].split("\\")[0], hours[0].date),
  40. ...hours[0],
  41. list: fileList?.length ? fileList : []
  42. };
  43. }
  44. return [];
  45. }
  46. return [];
  47. }
  48. // utc 时间转中国时间
  49. function convertUtcDateForChinaDate(day, hour) {
  50. return dayjs(`${day} ${hour}:00`).add(8, 'hour').format("YYYY-MM-DD HH:mm:ss");
  51. }
  52. exports.test = async (req, res) => {
  53. const r = await getLastNewModel("gfs_1p00");
  54. res.rescc("成功", 200, r);
  55. }