Skip to content

Commit 4298733

Browse files
committed
refactor(protocol): move magic values to module constants/class attributes
1 parent 9aab105 commit 4298733

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

asyncirc/protocol.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
Callable,
1515
Coroutine,
1616
Dict,
17+
Final,
1718
List,
1819
Optional,
1920
Sequence,
@@ -46,6 +47,9 @@ class SASLMechanism(IntEnum):
4647
EXTERNAL = auto()
4748

4849

50+
_CAP_LIST_MIN_PARAMS: Final = 3 # CAP <subcmd> :a b c
51+
52+
4953
async def _internal_ping(conn: "IrcProtocol", message: "Message") -> None:
5054
conn.send(f"PONG {message.parameters}")
5155

@@ -130,7 +134,7 @@ async def _internal_cap_handler(
130134
raise ValueError(msg)
131135

132136
caplist: List[Cap] = []
133-
if len(message.parameters) > 2:
137+
if len(message.parameters) > (_CAP_LIST_MIN_PARAMS - 1):
134138
caplist = CapList.parse(message.parameters[-1])
135139

136140
if message.parameters[1] == "LS":
@@ -248,6 +252,8 @@ def __init__(
248252
sasl_mech: Optional[SASLMechanism] = None,
249253
logger: Optional["Logger"] = None,
250254
loop: Optional["AbstractEventLoop"] = None,
255+
*,
256+
max_lag: float = 60,
251257
) -> None:
252258
"""Create protocol for IRC connection.
253259
@@ -275,6 +281,7 @@ def __init__(
275281
self.sasl_mech = SASLMechanism(sasl_mech or SASLMechanism.NONE)
276282
self.logger = logger
277283
self.loop = loop or asyncio.get_event_loop()
284+
self.max_lag = max_lag
278285

279286
if self.sasl_mech == SASLMechanism.PLAIN and self.sasl_auth is None:
280287
msg = "You must specify sasl_auth when using SASL PLAIN"
@@ -333,7 +340,7 @@ async def pinger(self) -> None:
333340
msg = "Server not set in ping handler"
334341
raise ValueError(msg)
335342

336-
if self.server.lag > 60:
343+
if self.server.lag > self.max_lag:
337344
self.loop.create_task(self.connect())
338345
else:
339346
self.send(f"PING :LAG{time.time()}")

0 commit comments

Comments
 (0)