Skip to content

Commit 2f9505b

Browse files
feat: optimize processes during api doc build workflow (#286)
* workflow(build-api): optimize processes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix: using bash syntax * fix: 'onebot11': No such file or directory * style: update .pre-commit-config.yaml * workflow(build-api): revert tags * workflow: fix some warns * style: format code --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 7fda1e0 commit 2f9505b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+714
-829
lines changed

.github/workflows/build-api.yml

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
name: api build
22

33
on:
4+
pull_request:
45
push:
5-
# tags:
6-
# - "v*"
6+
tags:
7+
- "v*"
78
workflow_dispatch:
89

910
jobs:
@@ -33,13 +34,10 @@ jobs:
3334
# cd docs
3435
# make api build
3536
rm -rf docs/source/pages/api
36-
cp -r packages/iamai-adapter-apscheduler/iamai/adapter/apscheduler iamai/adapter/apscheduler
37-
cp -r packages/iamai-adapter-bililive/iamai/adapter/bililive iamai/adapter/bililive
38-
cp -r packages/iamai-adapter-console/iamai/adapter/console iamai/adapter/console
39-
cp -r packages/iamai-adapter-gensokyo/iamai/adapter/gensokyo iamai/adapter/gensokyo
40-
cp -r packages/iamai-adapter-kook/iamai/adapter/kook iamai/adapter/kook
41-
cp -r packages/iamai-adapter-cqhttp/iamai/adapter/cqhttp iamai/adapter/cqhttp
42-
cp -r packages/iamai-adapter-red/iamai/adapter/red iamai/adapter/red
37+
for adapter in apscheduler bililive console cqhttp dingtalk gensokyo kook red
38+
do
39+
cp -r "packages/iamai-adapter-$adapter/iamai/adapter/$adapter" "iamai/adapter/$adapter"
40+
done
4341
pdm run sphinx-apidoc -o docs/source/pages/api iamai packages -f -e --tocfile index
4442
shell: bash
4543
env:

.github/workflows/release.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
- main
77
- master
88
tags:
9-
- '*'
9+
- 'v*'
1010
pull_request:
1111
workflow_dispatch:
1212

.pre-commit-config.yaml

+5-5
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ repos:
1111

1212
- repo: https://github.com/astral-sh/ruff-pre-commit
1313
# Ruff version.
14-
rev: v0.5.7
14+
rev: v0.3.5
1515
hooks:
16-
# Run the linter.
1716
- id: ruff
18-
args: [ --fix ]
19-
# Run the formatter.
20-
- id: ruff-format
17+
args: [--fix, --exit-non-zero-on-fix]
18+
- id: ruff-format
19+
- id: ruff-check
20+
args: [--unsafe-fixes, --add-noqa]

build_credit.py

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import json
44
import pathlib
55

6-
import httpx
76
from python_graphql_client import GraphqlClient
87

98
root = pathlib.Path(__file__).parent.resolve()

docs/source/conf.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
# For the full list of built-in configuration values, see the documentation:
44
# https://www.sphinx-doc.org/en/master/usage/configuration.html
55

6-
import iamai
7-
import os, sys
6+
import os
7+
import sys
88

99
if sys.version_info >= (3, 11):
1010
import tomllib
@@ -102,9 +102,8 @@
102102
#
103103
# Note: this file shouldn't rely on extra dependencies.
104104

105-
import importlib
106-
import sys
107-
import os.path
105+
import sys # noqa: E402
106+
import os.path # noqa: E402
108107

109108
# User's Sphinx configurations
110109
language_user = globals().get("language", None)

examples/plugins/_eval_kook.py

-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
from iamai.adapter.kook.message import (
55
KookMessage,
66
KookMessageSegment,
7-
escape_kmarkdown,
8-
unescape_kmarkdown,
97
)
108

119
documents = [

examples/plugins/_hello_kook.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from iamai import Plugin
2-
from iamai.log import logger
3-
from iamai.adapter.kook.message import KookMessage, KookMessageSegment
2+
from iamai.adapter.kook.message import KookMessageSegment
43

54

65
class HalloKook(Plugin):

examples/plugins/_send_message_bililive.py

-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
import time
2-
31
from iamai import Plugin
4-
from iamai.log import logger
52
from iamai.adapter.apscheduler import scheduler_decorator
63

74

iamai/adapter/apscheduler/apscheduler/event.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from iamai.plugin import Plugin
1010

1111
if TYPE_CHECKING:
12-
from . import APSchedulerAdapter
12+
pass
1313

1414

1515
__all__ = ["APSchedulerEvent"]

iamai/adapter/apscheduler/event.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from iamai.plugin import Plugin
1010

1111
if TYPE_CHECKING:
12-
from . import APSchedulerAdapter
12+
pass
1313

1414

1515
__all__ = ["APSchedulerEvent"]

iamai/adapter/bililive/__init__.py

+23-23
Original file line numberDiff line numberDiff line change
@@ -11,36 +11,36 @@
1111
"""
1212

1313
import os
14-
import re
14+
import re # noqa: F401
1515
import sys
1616
import json
1717
import time
1818
import zlib
1919
import struct
2020
import asyncio
21-
from math import log
21+
from math import log # noqa: F401
2222
from functools import partial
2323
from abc import abstractmethod
2424
from collections import namedtuple
25-
from os.path import join, split, abspath, dirname
26-
from typing import TYPE_CHECKING, Any, Dict, NamedTuple
25+
from os.path import join, split, abspath, dirname # noqa: F401
26+
from typing import TYPE_CHECKING, Any, Dict, NamedTuple # noqa: F401
2727

2828
import qrcode
2929
import aiohttp
3030
from genericpath import exists
3131
from aiohttp.client import ClientSession
3232

33-
from iamai.utils import DataclassEncoder
33+
from iamai.utils import DataclassEncoder # noqa: F401
3434
from iamai.adapter.utils import WebSocketAdapter
3535
from iamai.log import logger, error_or_exception
3636

37-
from .event import *
38-
from .message import *
37+
from .event import * # noqa: F403
38+
from .message import * # noqa: F403
3939
from .config import Config
4040
from .event import get_event_class
4141

4242
if TYPE_CHECKING:
43-
from .message import T_BililiveMSG
43+
from .message import T_BililiveMSG # noqa: F401
4444

4545
__all__ = ["BililiveAdapter"]
4646

@@ -80,7 +80,7 @@
8080
user_cookies = aiohttp.cookiejar.CookieJar()
8181

8282

83-
class BililiveAdapter(WebSocketAdapter[BililiveEvent, Config]):
83+
class BililiveAdapter(WebSocketAdapter[BililiveEvent, Config]): # noqa: F405
8484
"""bililive 协议适配器。"""
8585

8686
name: str = "bililive"
@@ -115,7 +115,7 @@ async def startup(self):
115115
self.cookies = json.load(f)
116116
user_cookies.update_cookies(self.cookies)
117117
if self.config.login: # type: ignore
118-
logger.debug(f"Login enabled!")
118+
logger.debug("Login enabled!")
119119
try:
120120
# 尝试登陆
121121
async with ClientSession(cookie_jar=user_cookies) as self.session:
@@ -125,9 +125,9 @@ async def startup(self):
125125
self._uid = get_cookies("DedeUserID")
126126
self.jct = get_cookies("bili_jct")
127127

128-
if self._uid == None or self.jct == None:
128+
if self._uid == None or self.jct == None: # noqa: E711
129129
logger.error(
130-
f"Unable to get cookies, please check your cookies."
130+
"Unable to get cookies, please check your cookies."
131131
)
132132
return
133133
if not exists(_path):
@@ -143,7 +143,7 @@ async def startup(self):
143143
logger.error(e)
144144
return
145145
else:
146-
logger.debug(f"Login disabled!")
146+
logger.debug("Login disabled!")
147147
await super().startup()
148148

149149
async def websocket_connect(self):
@@ -183,7 +183,7 @@ async def handle_websocket_msg(self, msg: aiohttp.WSMessage):
183183
header = HeaderTuple(*HEADER_STRUCT.unpack_from(data, offset))
184184
except struct.error:
185185
break
186-
if header.operation == Operation.HEARTBEAT_REPLY:
186+
if header.operation == Operation.HEARTBEAT_REPLY: # noqa: F405
187187
popularity = int.from_bytes(
188188
data[
189189
offset + HEADER_STRUCT.size : offset
@@ -193,7 +193,7 @@ async def handle_websocket_msg(self, msg: aiohttp.WSMessage):
193193
"big",
194194
)
195195
await self._on_receive_popularity(popularity)
196-
elif header.operation == Operation.SEND_MSG_REPLY:
196+
elif header.operation == Operation.SEND_MSG_REPLY: # noqa: F405
197197
body = data[
198198
offset + HEADER_STRUCT.size : offset + header.pack_len
199199
]
@@ -219,9 +219,9 @@ async def handle_websocket_msg(self, msg: aiohttp.WSMessage):
219219
logger.debug(f"body: {body}")
220220
raise
221221

222-
elif header.operation == Operation.AUTH_REPLY:
222+
elif header.operation == Operation.AUTH_REPLY: # noqa: F405
223223
await self.websocket.send_bytes(
224-
self._make_packet({}, Operation.HEARTBEAT)
224+
self._make_packet({}, Operation.HEARTBEAT) # noqa: F405
225225
)
226226

227227
else:
@@ -270,7 +270,7 @@ async def _send_auth(self):
270270
"clientver": "1.14.3",
271271
"type": 2,
272272
}
273-
await self.websocket.send_bytes(self._make_packet(auth_params, Operation.AUTH))
273+
await self.websocket.send_bytes(self._make_packet(auth_params, Operation.AUTH)) # noqa: F405
274274

275275
@staticmethod
276276
def _make_packet(data, operation):
@@ -291,7 +291,7 @@ async def _start_heartbeat(self) -> None:
291291
if self.websocket.closed:
292292
break
293293
await self.websocket.send_bytes(bytes.fromhex(hb))
294-
logger.debug(f"HeartBeat sent!")
294+
logger.debug("HeartBeat sent!")
295295
await asyncio.sleep(29)
296296
except Exception as e:
297297
logger.error(e)
@@ -327,7 +327,7 @@ async def send(
327327
danmaku: str,
328328
fontsize: int = 25,
329329
color: int = 0xFFFFFF,
330-
pos: DanmakuPosition = DanmakuPosition.NORMAL,
330+
pos: DanmakuPosition = DanmakuPosition.NORMAL, # noqa: F405
331331
) -> bool:
332332
# don't know what the hell is bubble
333333
return await self.send_danmu(
@@ -361,13 +361,13 @@ def rawData_to_jsonData(data: bytes):
361361
try:
362362
jd = json.loads(data[16:].decode("utf-8", errors="ignore"))
363363
return jd
364-
except Exception as e:
364+
except Exception:
365365
pass
366366

367367

368368
async def login(session: ClientSession) -> bool:
369-
if get_cookies("bili_jct") != None:
370-
logger.info(f"Aleady login!")
369+
if get_cookies("bili_jct") != None: # noqa: E711
370+
logger.info("Aleady login!")
371371
return True
372372
try:
373373
res = await _get(session, QRCODE_REQUEST_URL)

iamai/adapter/bililive/api/blivedm.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# code from xfgryujk
1414
from abc import abstractmethod
1515
from collections import namedtuple
16-
from typing import * # ??这是什么粗暴的import方式
16+
from typing import * # ??这是什么粗暴的import方式 # noqa: F403
1717

1818
import aiohttp
1919

0 commit comments

Comments
 (0)