Skip to content

Commit 8db9007

Browse files
committed
🎨 修改注释, 添加todo
1 parent bf31559 commit 8db9007

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

‎config.py‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,7 @@
3232
UGOIRA_IMAGE_MODE = "GIF"
3333

3434
# 发送的动图的文件大小限制, 单位: MB, 超过限制将不发送动图而改为发送静态封面图
35-
UGOIRA_IMAGE_SIZE_LIMIT = 30
35+
UGOIRA_IMAGE_SIZE_LIMIT = 30
36+
37+
# 动图最大帧数限制
38+
UGORIA_MAX_FRAMES = 600

‎pixiv.py‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from hoshino.typing import CQEvent
1111
from pixivpy3 import AppPixivAPI
1212
from .config import PROXY_URL, MAX_DISPLAY_WORKS, IMAGE_QUALITY, CHECK_INTERVAL_HOURS, ENABLE_FOLLOWING_SUBSCRIPTION, \
13-
ENABLE_PIXEL_NOISE, UGOIRA_IMAGE_MODE, UGOIRA_IMAGE_SIZE_LIMIT
13+
ENABLE_PIXEL_NOISE, UGOIRA_IMAGE_MODE, UGOIRA_IMAGE_SIZE_LIMIT, UGORIA_MAX_FRAMES
1414
import aiohttp
1515
import zipfile
1616
import io
@@ -434,7 +434,7 @@ async def get_illust_follow(self, start_time: datetime, interval_hours: float) -
434434

435435
@staticmethod
436436
async def download_image_as_base64(url: str) -> str:
437-
"""下载图片并转换为base64编码(可选进行轻微像素修改)"""
437+
"""下载图片并转换为base64编码, 根据ENABLE_PIXEL_NOISE配置项决定是否进行像素修改"""
438438
try:
439439
headers = {
440440
'Referer': 'https://www.pixiv.net/',
@@ -476,7 +476,7 @@ async def download_image_as_base64(url: str) -> str:
476476
@staticmethod
477477
def get_image_urls(illust: dict) -> List[str]:
478478
"""
479-
获取作品的所有图片URL,
479+
获取作品的所有图片URL
480480
"""
481481
urls: List[str] = []
482482
page_count = illust.get('page_count', 1)
@@ -510,11 +510,10 @@ def get_image_url(image_urls: dict) -> str:
510510
urls.append(url)
511511
return urls
512512

513-
# 新方法:下载Ugoira并合成GIF base64
514513
# 下载Ugoira并合成GIF base64
515514
@staticmethod
516515
async def _download_ugoira_zip(zip_url: str) -> bytes:
517-
"""辅助方法:下载Ugoira的ZIP文件"""
516+
"""下载Ugoira的ZIP文件"""
518517
headers = {
519518
'Referer': 'https://www.pixiv.net/',
520519
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
@@ -533,15 +532,14 @@ async def _download_ugoira_zip(zip_url: str) -> bytes:
533532
@staticmethod
534533
def _process_ugoira_zip_to_gif(zip_data: bytes, frames_info: list) -> bytes:
535534
"""辅助方法:解压ZIP并合成GIF"""
536-
MAX_FRAMES = 600
537535

538536
try:
539537
with io.BytesIO(zip_data) as zip_buffer:
540538
with zipfile.ZipFile(zip_buffer) as zip_file:
541539
# 获取并排序帧文件
542540
frame_files = sorted(
543541
[f for f in zip_file.namelist() if f.endswith(('.jpg', '.png'))]
544-
)[:MAX_FRAMES]
542+
)[:UGORIA_MAX_FRAMES]
545543

546544
if not frame_files:
547545
return b""
@@ -571,6 +569,7 @@ def _process_ugoira_zip_to_gif(zip_data: bytes, frames_info: list) -> bytes:
571569

572570
# 合成GIF
573571
gif_buffer = io.BytesIO()
572+
# webp在手机端可能显示为静态图片, 默认情况下请选择GIF格式, 但是GIF的体积通常较大
574573
if UGOIRA_IMAGE_MODE.upper() == 'WEBP':
575574
images[0].save(
576575
gif_buffer,
@@ -602,7 +601,7 @@ def _process_ugoira_zip_to_gif(zip_data: bytes, frames_info: list) -> bytes:
602601
return b""
603602

604603
async def download_ugoira_as_gif_base64(self, illust) -> str:
605-
"""主方法:下载Ugoira ZIP,合成GIF,转为base64"""
604+
"""下载Ugoira ZIP,合成GIF,转为base64"""
606605
illust_id = illust.get('id')
607606
if not illust_id:
608607
return ""
@@ -779,7 +778,8 @@ async def list_subscriptions(bot, ev: CQEvent):
779778
if not subscriptions:
780779
await bot.send(ev, "当前群没有订阅任何画师")
781780
return
782-
# todo
781+
782+
# todo 这里会大量调用api, 需要优化
783783
# 构建列表:为每个 user_id 获取名字
784784
sub_list = []
785785
for user_id in subscriptions:

0 commit comments

Comments
 (0)