Skip to content

Commit bccb53f

Browse files
committed
update README
- update deps - add more mirrors in pyproject.toml
1 parent 8e3fbb3 commit bccb53f

4 files changed

Lines changed: 600 additions & 497 deletions

File tree

README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,15 @@
2626

2727
## API
2828

29-
公共服务: `imgapi.siiway.top`
29+
中国大陆区域:
30+
31+
- `imgapi.siiway.top`
32+
- `i.wss.moe`
33+
34+
海外区域:
35+
36+
- `imgapi-origin.siiway.top`
37+
- `io.wss.moe`
3038

3139
> 建议自行部署,只需有 Python3 环境 (建议 uv) 即可
3240
@@ -135,4 +143,4 @@ uv run fastapi run --host 0.0.0.0 --port 9333
135143

136144
*部分 API 来源:https://blog.jixiaob.cn/?post=93*
137145

138-
(c) 2025 SiiWay Team. Under MIT License.
146+
(c) 2026 SiiWay Team. Under MIT License.

pyproject.toml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,22 @@ description = "A simple random background image API based on FastAPI and redirec
1313
name = "imgapi"
1414
requires-python = ">3.13"
1515
version = "1.0.0"
16+
17+
# better for both EU & CN users...?
18+
# feel free to disable if meet any problem about it
19+
# other mirrors available below
20+
[[tool.uv.index]]
21+
name = "siiway-mirror"
22+
url = "https://pypi-mirror.siiway.top/pypi/simple/"
23+
default = true
24+
25+
# WARN: not available for EU users
26+
# [[tool.uv.index]]
27+
# name = "tuna-mirror"
28+
# url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
29+
# default = true
30+
31+
# [[tool.uv.index]]
32+
# name = "ustc-mirror"
33+
# url = "https://mirrors.ustc.edu.cn/pypi/web/simple/"
34+
# default = true

requirements.txt

Lines changed: 82 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ annotated-types==0.7.0 \
88
--hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \
99
--hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89
1010
# via pydantic
11-
anyio==4.12.0 \
12-
--hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \
13-
--hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb
11+
anyio==4.12.1 \
12+
--hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \
13+
--hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c
1414
# via
1515
# httpx
1616
# starlette
1717
# watchfiles
18-
certifi==2025.11.12 \
19-
--hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \
20-
--hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316
18+
certifi==2026.1.4 \
19+
--hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \
20+
--hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120
2121
# via
2222
# httpcore
2323
# httpx
@@ -46,17 +46,17 @@ email-validator==2.3.0 \
4646
# via
4747
# fastapi
4848
# pydantic
49-
fastapi==0.123.10 \
50-
--hash=sha256:0503b7b7bc71bc98f7c90c9117d21fdf6147c0d74703011b87936becc86985c1 \
51-
--hash=sha256:624d384d7cda7c096449c889fc776a0571948ba14c3c929fa8e9a78cd0b0a6a8
49+
fastapi==0.128.0 \
50+
--hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \
51+
--hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d
5252
# via imgapi
53-
fastapi-cli==0.0.16 \
54-
--hash=sha256:addcb6d130b5b9c91adbbf3f2947fe115991495fdb442fe3e51b5fc6327df9f4 \
55-
--hash=sha256:e8a2a1ecf7a4e062e3b2eec63ae34387d1e142d4849181d936b23c4bdfe29073
53+
fastapi-cli==0.0.20 \
54+
--hash=sha256:d17c2634f7b96b6b560bc16b0035ed047d523c912011395f49f00a421692bc3a \
55+
--hash=sha256:e58b6a0038c0b1532b7a0af690656093dee666201b6b19d3c87175b358e9f783
5656
# via fastapi
57-
fastapi-cloud-cli==0.6.0 \
58-
--hash=sha256:2c333fff2e4b93b9efbec7896ce3ffa3e77ce4cf3d8cb14e35b4f823dfddac02 \
59-
--hash=sha256:b654890b5302c90d2f347b123a35186096328838a526316c470b6005cabd4983
57+
fastapi-cloud-cli==0.9.0 \
58+
--hash=sha256:07930591122ee4aefd113ea5355fca33141af31195da9038be526bacd5accbfe \
59+
--hash=sha256:21bf02163cebb5664f59613269eb18f74cc9ea2323d972f049c7fafa7abed0d1
6060
# via fastapi-cli
6161
fastar==0.8.0 \
6262
--hash=sha256:05eb7b96940f9526b485f1d0b02393839f0f61cac4b1f60024984f8b326d2640 \
@@ -217,6 +217,8 @@ pydantic==2.12.5 \
217217
# fastapi
218218
# fastapi-cloud-cli
219219
# imgapi
220+
# pydantic-extra-types
221+
# pydantic-settings
220222
pydantic-core==2.41.5 \
221223
--hash=sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90 \
222224
--hash=sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740 \
@@ -262,17 +264,27 @@ pydantic-core==2.41.5 \
262264
--hash=sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb \
263265
--hash=sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0
264266
# via pydantic
267+
pydantic-extra-types==2.11.0 \
268+
--hash=sha256:4e9991959d045b75feb775683437a97991d02c138e00b59176571db9ce634f0e \
269+
--hash=sha256:84b864d250a0fc62535b7ec591e36f2c5b4d1325fa0017eb8cda9aeb63b374a6
270+
# via fastapi
271+
pydantic-settings==2.12.0 \
272+
--hash=sha256:005538ef951e3c2a68e1c08b292b5f2e71490def8589d4221b95dab00dafcfd0 \
273+
--hash=sha256:fddb9fd99a5b18da837b29710391e945b1e30c135477f484084ee513adb93809
274+
# via fastapi
265275
pygments==2.19.2 \
266276
--hash=sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887 \
267277
--hash=sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b
268278
# via rich
269279
python-dotenv==1.2.1 \
270280
--hash=sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6 \
271281
--hash=sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61
272-
# via uvicorn
273-
python-multipart==0.0.20 \
274-
--hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \
275-
--hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13
282+
# via
283+
# pydantic-settings
284+
# uvicorn
285+
python-multipart==0.0.21 \
286+
--hash=sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92 \
287+
--hash=sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090
276288
# via fastapi
277289
pyyaml==6.0.3 \
278290
--hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \
@@ -313,9 +325,9 @@ rich==14.2.0 \
313325
# via
314326
# rich-toolkit
315327
# typer
316-
rich-toolkit==0.17.0 \
317-
--hash=sha256:06fb47a5c5259d6b480287cd38aff5f551b6e1a307f90ed592453dd360e4e71e \
318-
--hash=sha256:17ca7a32e613001aa0945ddea27a246f6de01dfc4c12403254c057a8ee542977
328+
rich-toolkit==0.17.1 \
329+
--hash=sha256:5af54df8d1dd9c8530e462e1bdcaed625c9b49f5a55b035aa0ba1c17bdb87c9a \
330+
--hash=sha256:96d24bb921ecd225ffce7c526a9149e74006410c05e6d405bd74ffd54d5631ed
319331
# via
320332
# fastapi-cli
321333
# fastapi-cloud-cli
@@ -367,9 +379,9 @@ rignore==0.7.6 \
367379
--hash=sha256:f782dbd3a65a5ac85adfff69e5c6b101285ef3f845c3a3cae56a54bebf9fe116 \
368380
--hash=sha256:ffa86694fec604c613696cb91e43892aa22e1fec5f9870e48f111c603e5ec4e9
369381
# via fastapi-cloud-cli
370-
sentry-sdk==2.47.0 \
371-
--hash=sha256:8218891d5e41b4ea8d61d2aed62ed10c80e39d9f2959d6f939efbf056857e050 \
372-
--hash=sha256:d72f8c61025b7d1d9e52510d03a6247b280094a327dd900d987717a4fce93412
382+
sentry-sdk==2.49.0 \
383+
--hash=sha256:6ea78499133874445a20fe9c826c9e960070abeb7ae0cdf930314ab16bb97aa0 \
384+
--hash=sha256:c1878599cde410d481c04ef50ee3aedd4f600e4d0d253f4763041e468b332c30
373385
# via fastapi-cloud-cli
374386
shellingham==1.5.4 \
375387
--hash=sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686 \
@@ -379,9 +391,9 @@ starlette==0.50.0 \
379391
--hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \
380392
--hash=sha256:a2a17b22203254bcbc2e1f926d2d55f3f9497f769416b3190768befe598fa3ca
381393
# via fastapi
382-
typer==0.20.0 \
383-
--hash=sha256:1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37 \
384-
--hash=sha256:5b463df6793ec1dca6213a3cf4c0f03bc6e322ac5e16e13ddd622a889489784a
394+
typer==0.21.1 \
395+
--hash=sha256:7985e89081c636b88d172c2ee0cfe33c253160994d47bdfdc302defd7d1f1d01 \
396+
--hash=sha256:ea835607cd752343b6b2b7ce676893e5a0324082268b48f27aa058bdb7d2145d
385397
# via
386398
# fastapi-cli
387399
# fastapi-cloud-cli
@@ -392,31 +404,34 @@ typing-extensions==4.15.0 \
392404
# fastapi
393405
# pydantic
394406
# pydantic-core
407+
# pydantic-extra-types
395408
# rich-toolkit
396409
# typer
397410
# typing-inspection
398411
typing-inspection==0.4.2 \
399412
--hash=sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7 \
400413
--hash=sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464
401-
# via pydantic
414+
# via
415+
# pydantic
416+
# pydantic-settings
402417
ua-parser==1.0.1 \
403418
--hash=sha256:b059f2cb0935addea7e551251cbbf42e9a8872f86134163bc1a4f79e0945ffea \
404419
--hash=sha256:f9d92bf19d4329019cef91707aecc23c6d65143ad7e29a233f0580fb0d15547d
405420
# via user-agents
406-
ua-parser-builtins==0.18.0.post1 \
407-
--hash=sha256:eb4f93504040c3a990a6b0742a2afd540d87d7f9f05fd66e94c101db1564674d
421+
ua-parser-builtins==202601 \
422+
--hash=sha256:f5dc93b0f53724dcd5c3eb79edb0aea281cb304a2c02a9436cbeb8cfb8bc4ad1
408423
# via ua-parser
409-
urllib3==2.6.0 \
410-
--hash=sha256:c90f7a39f716c572c4e3e58509581ebd83f9b59cced005b7db7ad2d22b0db99f \
411-
--hash=sha256:cb9bcef5a4b345d5da5d145dc3e30834f58e8018828cbc724d30b4cb7d4d49f1
424+
urllib3==2.6.3 \
425+
--hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \
426+
--hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4
412427
# via sentry-sdk
413428
user-agents==2.2.0 \
414429
--hash=sha256:a98c4dc72ecbc64812c4534108806fb0a0b3a11ec3fd1eafe807cee5b0a942e7 \
415430
--hash=sha256:d36d25178db65308d1458c5fa4ab39c9b2619377010130329f3955e7626ead26
416431
# via imgapi
417-
uvicorn==0.38.0 \
418-
--hash=sha256:48c0afd214ceb59340075b4a052ea1ee91c16fbc2a9b1469cca0e54566977b02 \
419-
--hash=sha256:fd97093bdd120a2609fc0d3afe931d4d4ad688b6e75f0f929fde1bc36fe0e91d
432+
uvicorn==0.40.0 \
433+
--hash=sha256:839676675e87e73694518b5574fd0f24c9d97b46bea16df7b8c05ea1a51071ea \
434+
--hash=sha256:c6c8f55bc8bf13eb6fa9ff87ad62308bbbc33d0b67f84293151efe87e0d5f2ee
420435
# via
421436
# fastapi
422437
# fastapi-cli
@@ -492,20 +507,36 @@ watchfiles==1.1.1 \
492507
--hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \
493508
--hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf
494509
# via uvicorn
495-
websockets==15.0.1 \
496-
--hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \
497-
--hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \
498-
--hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \
499-
--hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \
500-
--hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \
501-
--hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \
502-
--hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \
503-
--hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \
504-
--hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \
505-
--hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \
506-
--hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \
507-
--hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \
508-
--hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f
510+
websockets==16.0 \
511+
--hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \
512+
--hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \
513+
--hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \
514+
--hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \
515+
--hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \
516+
--hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \
517+
--hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \
518+
--hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \
519+
--hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \
520+
--hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \
521+
--hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \
522+
--hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \
523+
--hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \
524+
--hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \
525+
--hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \
526+
--hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \
527+
--hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \
528+
--hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \
529+
--hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \
530+
--hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \
531+
--hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \
532+
--hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \
533+
--hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \
534+
--hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \
535+
--hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \
536+
--hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \
537+
--hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \
538+
--hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \
539+
--hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4
509540
# via uvicorn
510541
win32-setctime==1.2.0 ; sys_platform == 'win32' \
511542
--hash=sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390 \

0 commit comments

Comments
 (0)