Skip to content

Commit af4fdbf

Browse files
feat: reomove unused code
1 parent aa6a10b commit af4fdbf

14 files changed

Lines changed: 34 additions & 528 deletions

‎.env.example‎

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,3 @@ db_url=mysql+mysqlconnector://xxx:xxx/xxx
33
origin=xxx
44
cdn=xxx
55
token=xxx
6-
ios_in_review_path=in_review.json
7-
ios_in_review_uids=[1,2]
8-
ios_in_review_fake_path=x.json
9-
enable_prometheus=true
10-
prometheus_host=localhost:9091
11-
instance_name=awsl
12-
repeat_seconds=10

‎docker/dockerfile‎

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
FROM python:3.9-slim
1+
FROM python:3.12-slim
2+
3+
COPY requirements.txt requirements.txt
4+
RUN python3 -m pip install -r requirements.txt
25

36
COPY . /app
47
WORKDIR /app
5-
RUN apt-get update \
6-
&& apt-get install -y git \
7-
# Clean up
8-
&& apt-get autoremove -y \
9-
&& apt-get clean -y \
10-
&& rm -rf /var/lib/apt/lists/*
11-
RUN python3 -m pip install -r /app/requirements.txt
12-
RUN rm -rf /root/.cache
8+
139
ENTRYPOINT ["python3", "-m", "uvicorn", "--host", "0.0.0.0", "main:app"]

‎main.py‎

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,15 @@
33

44
from fastapi import FastAPI
55
from fastapi.middleware.cors import CORSMiddleware
6-
from fastapi_prometheus_pusher import FastApiPusher
76

87
from router.awsl_producers import router as producer_router
9-
from router.awsl_pic import router as pic_router
108
from router.awsl_blob import router as blob_router
119
from router.health_check import router as health_check_router
12-
from router.moyuban import router as moyu_router
13-
from router.ios_faker import router as ios_faker_router
14-
from router.config import settings
1510

1611

1712
app = FastAPI()
1813

1914

20-
if settings.enable_prometheus:
21-
@app.on_event("startup")
22-
async def startup():
23-
FastApiPusher(
24-
excluded_handlers=["health_check", "docs"]
25-
).start(
26-
app, settings.prometheus_host,
27-
settings.instance_name,
28-
repeat_seconds=settings.repeat_seconds
29-
)
30-
31-
3215
class EndpointFilter(logging.Filter):
3316
def filter(self, record: logging.LogRecord) -> bool:
3417
return all(
@@ -50,11 +33,9 @@ def filter(self, record: logging.LogRecord) -> bool:
5033
)
5134

5235
app.include_router(producer_router, prefix="")
53-
app.include_router(pic_router, prefix="")
5436
app.include_router(blob_router, prefix="")
5537
app.include_router(health_check_router, prefix="")
56-
app.include_router(moyu_router, prefix="")
57-
app.include_router(ios_faker_router, prefix="")
38+
5839

5940
if __name__ == "__main__":
6041
import uvicorn

‎requirements.txt‎

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,7 @@
1-
amqp==5.0.9
2-
asgiref==3.4.1
3-
billiard==3.6.4.0
4-
certifi==2022.12.7
5-
charset-normalizer==2.0.10
6-
click==8.0.3
7-
click-didyoumean==0.3.0
8-
click-plugins==1.1.1
9-
click-repl==0.2.0
10-
fastapi==0.68.0
11-
-e git+https://github.com/dreamhunter2333/fastapi_prometheus_pusher.git@8454ad8bfebaa1b381ef4332c086de33955f8b1d#egg=fastapi_prometheus_pusher
12-
greenlet==1.1.2
13-
h11==0.12.0
14-
idna==3.3
15-
kombu==5.2.3
16-
mysql-connector-python==8.0.27
17-
prometheus-client==0.15.0
18-
prompt-toolkit==3.0.24
19-
protobuf==3.19.5
20-
pydantic==1.8.2
21-
python-dateutil==2.8.2
22-
python-dotenv==0.19.0
23-
pytz==2021.3
24-
requests==2.26.0
25-
six==1.16.0
26-
SQLAlchemy==1.4.27
27-
starlette==0.14.2
28-
typing_extensions==4.0.1
29-
urllib3==1.26.8
30-
uvicorn==0.15.0
31-
vine==5.0.0
32-
wcwidth==0.2.5
1+
fastapi==0.110.1
2+
mysql-connector-python==8.3.0
3+
pydantic==2.7.0
4+
pydantic-settings==2.2.1
5+
requests==2.31.0
6+
SQLAlchemy==2.0.29
7+
uvicorn==0.29.0

‎router/awsl_blob.py‎

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,8 @@ def producer_photos(uids: Optional[List[str]] = None, limit: Optional[int] = 5):
3131
status_code=404,
3232
content=Message(message="to large limit = {}".format(limit))
3333
)
34-
_logger.info("producer_photos get limi %s" % limit)
35-
session = DBSession()
36-
try:
34+
_logger.info("producer_photos get limit %s" % limit)
35+
with DBSession() as session:
3736
q = session.query(
3837
AwslProducer
3938
).filter(
@@ -51,8 +50,6 @@ def producer_photos(uids: Optional[List[str]] = None, limit: Optional[int] = 5):
5150
photos=awsl_list(uid=producer.uid, limit=limit)
5251
) for producer in producers
5352
]
54-
finally:
55-
session.close()
5653

5754

5855
@router.get("/v2/list", response_model=List[BlobItem], responses={404: {"model": Message}}, tags=["AwslV2"])
@@ -63,8 +60,7 @@ def awsl_list(uid: Optional[str] = "", limit: Optional[int] = 10, offset: Option
6360
content=Message(message="to large limit = {}".format(limit))
6461
)
6562
_logger.info("list get uid %s limit %s offest %s" % (uid, limit, offset))
66-
session = DBSession()
67-
try:
63+
with DBSession() as session:
6864
blobs = session.query(AwslBlob).join(Mblog, AwslBlob.awsl_id == Mblog.id).filter(
6965
Mblog.uid == uid
7066
).order_by(AwslBlob.awsl_id.desc()).limit(limit).offset(offset).all() if uid else session.query(AwslBlob).join(
@@ -81,40 +77,31 @@ def awsl_list(uid: Optional[str] = "", limit: Optional[int] = 10, offset: Option
8177
for blob_key, blob_pic in Blobs.parse_raw(blob.pic_info).blobs.items()
8278
}
8379
) for blob in blobs if blob.awsl_mblog]
84-
finally:
85-
session.close()
86-
return res
80+
return res
8781

8882

8983
@router.get("/v2/list_count", response_model=int, tags=["AwslV2"])
9084
def awsl_list_count(uid: Optional[str] = "") -> int:
91-
session = DBSession()
92-
try:
85+
with DBSession() as session:
9386
res = session.query(func.count(AwslBlob.id)).join(Mblog, AwslBlob.awsl_id == Mblog.id).filter(
9487
Mblog.uid == uid
9588
).one() if uid else session.query(func.count(AwslBlob.id)).one()
96-
finally:
97-
session.close()
98-
return int(res[0]) if res else 0
89+
return int(res[0]) if res else 0
9990

10091

10192
@router.get("/v2/random", response_model=str, tags=["AwslV2"])
10293
def awsl_random() -> str:
103-
session = DBSession()
104-
try:
94+
with DBSession() as session:
10595
blob = session.query(AwslBlob).order_by(
10696
func.rand()
10797
).limit(1).one()
10898
url_dict = Blobs.parse_raw(blob.pic_info).blobs
10999
return url_dict["original"].url
110-
finally:
111-
session.close()
112100

113101

114102
@router.get("/v2/random_json", response_model=BlobItem, tags=["AwslV2"])
115103
def awsl_random_json() -> str:
116-
session = DBSession()
117-
try:
104+
with DBSession() as session:
118105
blob = session.query(AwslBlob).order_by(
119106
func.rand()
120107
).limit(1).one()
@@ -130,5 +117,3 @@ def awsl_random_json() -> str:
130117
for blob_key, blob_pic in Blobs.parse_raw(blob.pic_info).blobs.items()
131118
}
132119
)
133-
finally:
134-
session.close()

‎router/awsl_pic.py‎

Lines changed: 0 additions & 68 deletions
This file was deleted.

‎router/awsl_producers.py‎

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818

1919
@router.get("/producers", response_model=List[ProducerRes], tags=["producers"])
2020
def awsl_producers():
21-
session = DBSession()
22-
try:
21+
with DBSession() as session:
2322
producers = session.query(
2423
AwslProducer
2524
).filter(
@@ -31,9 +30,7 @@ def awsl_producers():
3130
"uid": producer.uid,
3231
"name": producer.name
3332
} for producer in producers]
34-
finally:
35-
session.close()
36-
return res
33+
return res
3734

3835

3936
@router.post("/producers", response_model=bool, responses={404: {"model": Message}}, tags=["producers"])
@@ -55,8 +52,8 @@ def add_awsl_producers(producer: ProducerItem):
5552
status_code=status.HTTP_400_BAD_REQUEST,
5653
content={"message": "No weibo user uid = {}".format(producer.uid)}
5754
)
58-
session = DBSession()
59-
try:
55+
56+
with DBSession() as session:
6057
res = session.query(AwslProducer).filter(
6158
AwslProducer.uid == producer.uid).one_or_none()
6259
if res:
@@ -75,15 +72,12 @@ def add_awsl_producers(producer: ProducerItem):
7572
session.add(awsl_producer)
7673
_logger.info("awsl add awsl_producer done %s" % awsl_producer.name)
7774
session.commit()
78-
finally:
79-
session.close()
8075
return True
8176

8277

8378
@router.get("/in_verification_producers", response_model=List[ProducerRes], tags=["producers"])
8479
def awsl_in_verification_producers():
85-
session = DBSession()
86-
try:
80+
with DBSession() as session:
8781
producers = session.query(
8882
AwslProducer
8983
).filter(
@@ -95,9 +89,7 @@ def awsl_in_verification_producers():
9589
"uid": producer.uid,
9690
"name": producer.name
9791
} for producer in producers]
98-
finally:
99-
session.close()
100-
return res
92+
return res
10193

10294

10395
@router.post("/approve_producers", response_model=bool, responses={404: {"model": Message}}, tags=["producers"])
@@ -113,8 +105,7 @@ def add_approve_producers(uid: str, token: str):
113105
content={"message": "token is not correct"}
114106
)
115107

116-
session = DBSession()
117-
try:
108+
with DBSession() as session:
118109
awsl_producer = session.query(
119110
AwslProducer
120111
).filter(
@@ -134,6 +125,4 @@ def add_approve_producers(uid: str, token: str):
134125
awsl_producer.in_verification = False
135126
_logger.info("awsl approve awsl_producer done %s" % awsl_producer.name)
136127
session.commit()
137-
finally:
138-
session.close()
139-
return True
128+
return True

‎router/config.py‎

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
2-
from typing import List
2+
import logging
33

4-
from pydantic import BaseSettings
4+
from pydantic_settings import BaseSettings
55

66

77
WB_DATA_URL = "https://weibo.com/ajax/statuses/mymblog?uid={}&page="
@@ -16,19 +16,15 @@
1616
class Settings(BaseSettings):
1717
cookie_sub: str
1818
token: str
19-
ios_in_review_path: str
20-
ios_in_review_uids: List[str]
21-
ios_in_review_fake_path: str
2219
db_url: str
2320
origin: str
2421
cdn: str
25-
enable_prometheus: bool
26-
prometheus_host: str
27-
instance_name: str
28-
repeat_seconds: int
2922

3023
class Config:
3124
env_file = os.environ.get("ENV_FILE", ".env")
3225

3326

3427
settings = Settings()
28+
logging.basicConfig(level=logging.INFO)
29+
_logger = logging.getLogger(__name__)
30+
_logger.info(settings.model_dump_json(indent=2))

‎router/health_check.py‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
import logging
2-
31
from fastapi import APIRouter, status
42

53
router = APIRouter()
6-
_logger = logging.getLogger(__name__)
74

85

96
@router.get("/health_check", tags=["health check"])

0 commit comments

Comments
 (0)