refactor: dedupe ui provider lowercase helpers

This commit is contained in:
Peter Steinberger
2026-04-07 20:52:26 +01:00
parent bfff74fb11
commit a4bb2698dd
13 changed files with 87 additions and 52 deletions

View File

@@ -1,5 +1,6 @@
import net from "node:net";
import tls from "node:tls";
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime";
import {
parseIrcLine,
parseIrcPrefix,
@@ -93,6 +94,10 @@ function buildFallbackNick(nick: string): string {
return `${base}${suffix}`;
}
function normalizeIrcNick(value: string): string {
return normalizeLowercaseStringOrEmpty(value);
}
export function buildIrcNickServCommands(options?: IrcNickServOptions): string[] {
if (!options || options.enabled === false) {
return [];
@@ -187,7 +192,7 @@ export async function connectIrcClient(options: IrcClientOptions): Promise<IrcCl
if (!fallbackNickAttempted) {
fallbackNickAttempted = true;
const fallbackNick = buildFallbackNick(desiredNick);
if (fallbackNick.toLowerCase() !== currentNick.toLowerCase()) {
if (normalizeIrcNick(fallbackNick) !== normalizeIrcNick(currentNick)) {
try {
sendRaw(`NICK ${fallbackNick}`);
currentNick = fallbackNick;
@@ -288,7 +293,7 @@ export async function connectIrcClient(options: IrcClientOptions): Promise<IrcCl
if (line.command === "NICK") {
const prefix = parseIrcPrefix(line.prefix);
if (prefix.nick && prefix.nick.toLowerCase() === currentNick.toLowerCase()) {
if (prefix.nick && normalizeIrcNick(prefix.nick) === normalizeIrcNick(currentNick)) {
const next =
line.trailing != null
? line.trailing

View File

@@ -1,4 +1,7 @@
import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
import {
normalizeLowercaseStringOrEmpty,
normalizeOptionalString,
} from "openclaw/plugin-sdk/text-runtime";
import type { ResolvedIrcAccount } from "./accounts.js";
import { normalizeIrcAllowlist, resolveIrcAllowlistMatch } from "./normalize.js";
import {
@@ -209,7 +212,7 @@ export async function handleIrcInbound(params: {
if (!dmAllowed) {
if (dmPolicy === "pairing") {
await pairing.issueChallenge({
senderId: senderDisplay.toLowerCase(),
senderId: normalizeLowercaseStringOrEmpty(senderDisplay),
senderIdLine: `Your IRC id: ${senderDisplay}`,
meta: { name: message.senderNick || undefined },
sendPairingReply: async (text) => {

View File

@@ -1,4 +1,5 @@
import { resolveLoggerBackedRuntime } from "openclaw/plugin-sdk/extension-shared";
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime";
import { resolveIrcAccount } from "./accounts.js";
import { connectIrcClient, type IrcClient } from "./client.js";
import { buildIrcConnectOptions } from "./connect-options.js";
@@ -79,7 +80,10 @@ export async function monitorIrcProvider(opts: IrcMonitorOptions): Promise<{ sto
if (!client) {
return;
}
if (event.senderNick.toLowerCase() === client.nick.toLowerCase()) {
if (
normalizeLowercaseStringOrEmpty(event.senderNick) ===
normalizeLowercaseStringOrEmpty(client.nick)
) {
return;
}

View File

@@ -1,3 +1,4 @@
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime";
import { normalizeIrcAllowlist, resolveIrcAllowlistMatch } from "./normalize.js";
import type { IrcAccountConfig, IrcChannelConfig } from "./types.js";
import type { IrcInboundMessage } from "./types.js";
@@ -36,8 +37,10 @@ export function resolveIrcGroupMatch(params: {
};
}
const targetLower = params.target.toLowerCase();
const directKey = Object.keys(groups).find((key) => key.toLowerCase() === targetLower);
const targetLower = normalizeLowercaseStringOrEmpty(params.target);
const directKey = Object.keys(groups).find(
(key) => normalizeLowercaseStringOrEmpty(key) === targetLower,
);
if (directKey) {
const matched = groups[directKey];
if (matched) {