Skip to content

Commit 1189cac

Browse files
committed
Merge branch 'main' of https://github.com/dataease/SQLBot
2 parents e81a4a0 + 504ce9a commit 1189cac

File tree

5 files changed

+31
-7
lines changed

5 files changed

+31
-7
lines changed

backend/apps/datasource/api/datasource.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,9 @@ def inner():
273273
for sheet_name in sheet_names:
274274
tableName = f"{sheet_name}_{hashlib.sha256(uuid.uuid4().bytes).hexdigest()[:10]}"
275275
sheets.append({"tableName": tableName, "tableComment": ""})
276-
df = pd.read_excel(save_path, sheet_name=sheet_name, engine='calamine')
276+
df_temp = pd.read_excel(path, nrows=5)
277+
non_empty_cols = df_temp.columns[df_temp.notna().any()].tolist()
278+
df = pd.read_excel(save_path, sheet_name=sheet_name, engine='calamine', usecols=non_empty_cols)
277279
insert_pg(df, tableName, engine)
278280

279281
# os.remove(save_path)

backend/apps/datasource/crud/field.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from common.core.deps import SessionDep
2-
from ..models.datasource import CoreDatasource, CreateDatasource, CoreTable, CoreField, ColumnSchema
3-
from sqlalchemy import and_
2+
from ..models.datasource import CoreField
43

54

65
def delete_field_by_ds_id(session: SessionDep, id: int):
@@ -9,8 +8,7 @@ def delete_field_by_ds_id(session: SessionDep, id: int):
98

109

1110
def get_fields_by_table_id(session: SessionDep, id: int):
12-
return session.query(CoreField).filter(CoreField.table_id == id).order_by(
13-
CoreField.field_name.asc()).all()
11+
return session.query(CoreField).filter(CoreField.table_id == id).all()
1412

1513

1614
def update_field(session: SessionDep, item: CoreField):

backend/apps/system/api/assistant.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from common.utils.time import get_timestamp
1313
from starlette.middleware.cors import CORSMiddleware
1414
from common.core.config import settings
15+
from common.utils.utils import get_origin_from_referer
1516
router = APIRouter(tags=["system/assistant"], prefix="/system/assistant")
1617

1718
@router.get("/info/{id}")
@@ -23,7 +24,7 @@ async def info(request: Request, response: Response, session: SessionDep, trans:
2324
raise RuntimeError(f"assistant application not exist")
2425
db_model = AssistantModel.model_validate(db_model)
2526
response.headers["Access-Control-Allow-Origin"] = db_model.domain
26-
origin = request.headers.get("origin") or request.headers.get("referer")
27+
origin = request.headers.get("origin") or get_origin_from_referer(request)
2728
origin = origin.rstrip('/')
2829
if origin != db_model.domain:
2930
raise RuntimeError(trans('i18n_embedded.invalid_origin', origin = origin or ''))

backend/common/utils/utils.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
from datetime import datetime, timedelta, timezone
77
from logging.handlers import RotatingFileHandler
88
from pathlib import Path
9+
from urllib.parse import urlparse
10+
11+
from fastapi import Request
912
from common.core.config import settings
1013
from typing import Optional
1114

@@ -240,4 +243,24 @@ def prepare_model_arg(origin_arg: str):
240243
return json.loads(origin_arg)
241244
except:
242245
return origin_arg
246+
247+
def get_origin_from_referer(request: Request):
248+
referer = request.headers.get("referer")
249+
if not referer:
250+
return None
251+
252+
try:
253+
parsed = urlparse(referer)
254+
if not parsed.scheme or not parsed.hostname:
255+
return None
256+
port = parsed.port
257+
if port:
258+
if (parsed.scheme == "http" and port != 80) or \
259+
(parsed.scheme == "https" and port != 443):
260+
return f"{parsed.scheme}://{parsed.hostname}:{port}"
261+
262+
return f"{parsed.scheme}://{parsed.hostname}"
263+
except Exception as e:
264+
SQLBotLogUtil.error(f"解析 Referer 出错: {e}")
265+
return referer
243266

backend/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "sqlbot"
3-
version = "0.1.0"
3+
version = "1.0.0"
44
description = ""
55
requires-python = ">=3.10,<3.13"
66
dependencies = [

0 commit comments

Comments
 (0)