xuguoyang il y a 5 mois
Parent
commit
c250f92df2
1 fichiers modifiés avec 46 ajouts et 1 suppressions
  1. 46 1
      routers/api/temperaturePrecipitation/__init__.py

+ 46 - 1
routers/api/temperaturePrecipitation/__init__.py

@@ -12,7 +12,7 @@ from utils import *
 from utils.risk import *
 import json
 import traceback
-
+from datetime import datetime, timedelta
 router = APIRouter()
 
 
@@ -119,6 +119,51 @@ async def mine(request: Request,db: Session = Depends(get_db)):
             "data":
                 {"max_level":result}
         }
+    except Exception as e:
+        db.rollback()
+        traceback.print_exc()
+        raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
+
+
+
+
+
+def make_url(dt):
+    base_url = "https://soc.gd121.cn/cappi/{年}/{月}/CAPPI_440000_{年月日时}0000.png!wbdstyle"
+    # 格式化日期和时间
+    year = dt.strftime("%Y")
+    month = dt.strftime("%m")
+    day = dt.strftime("%d")
+    hour = dt.strftime("%H")
+    # 构造完整的URL
+    url = base_url.format(年=year, 月=month, 年月日时=f"{year}{month}{day}{hour}")
+    return url
+
+
+
+@router.get('/radar_chart')
+@router.post('/radar_chart')
+async def mine(request: Request,db: Session = Depends(get_db)):
+    try:
+        now = datetime.now()-timedelta(hours=1)
+        urls = []
+        for i in range(12):
+            dt = now - timedelta(hours=i)
+            if dt.hour == 0 and i > 0:
+                dt -= timedelta(days=1)
+            print(dt)
+            urls.append(
+                {
+                    "time":dt.strftime("%Y-%m-%d %H:00:00"),
+                    "url":make_url(dt)
+                }
+            )
+        return {
+            "code": 200,
+            "msg": "成功",
+            "data":
+                urls
+        }
     except Exception as e:
         db.rollback()
         traceback.print_exc()