Skip to content

Commit a53d249

Browse files
committed
Update Program.cs
1 parent 421c0f8 commit a53d249

1 file changed

Lines changed: 25 additions & 26 deletions

File tree

MedalBOT/Program.cs

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -155,39 +155,38 @@ static async Task Main()
155155

156156
ctx.ServiceResponseBuffer[lastRequest.Key].Add(noticeContent);
157157
ctx.Logger?.Log($"[CHANSERV] Buffering response: {noticeContent}");
158-
}
159-
}
160-
continue;
161-
}
162-
163-
// Check if we've received "end of response" from ChanServ (blank line or end marker)
164-
if (ctx.PendingServiceRequests.Count > 0 && !line.Contains("NOTICE") && !line.Contains("ChanServ"))
165-
{
166-
// Send accumulated responses
167-
var lastRequest = ctx.PendingServiceRequests.LastOrDefault();
168-
if (lastRequest.Key != null && ctx.ServiceResponseBuffer.ContainsKey(lastRequest.Key))
169-
{
170-
var responses = ctx.ServiceResponseBuffer[lastRequest.Key];
171-
if (responses.Count > 0 && ctx.GetServiceRequest(lastRequest.Key, out string requesterNick, out bool isDiscord))
172-
{
173-
string fullResponse = string.Join("\n", responses);
174-
ctx.Logger?.Log($"[CHANSERV RELAY] Sending {responses.Count} lines to {(isDiscord ? "Discord" : "IRC")}");
175158

176-
if (isDiscord)
177-
{
178-
await ctx.Discord?.SendMessage($"**{requesterNick}** banlist:\n```\n{fullResponse}\n```");
179-
}
180-
else
159+
// Check for end markers: "None" or "Found X matches."
160+
bool isEndMarker = noticeContent.Equals("None", StringComparison.OrdinalIgnoreCase) ||
161+
noticeContent.StartsWith("Found ", StringComparison.OrdinalIgnoreCase);
162+
163+
if (isEndMarker)
181164
{
182-
foreach (var resp in responses)
165+
// End of ChanServ response - send accumulated responses
166+
var responses = ctx.ServiceResponseBuffer[lastRequest.Key];
167+
if (responses.Count > 0 && ctx.GetServiceRequest(lastRequest.Key, out string requesterNick, out bool isDiscord))
183168
{
184-
writer.WriteLine($"PRIVMSG {ctx.Channel} :{resp}");
169+
string fullResponse = string.Join("\n", responses);
170+
ctx.Logger?.Log($"[CHANSERV RELAY] Sending {responses.Count} lines to {(isDiscord ? "Discord" : "IRC")}");
171+
172+
if (isDiscord)
173+
{
174+
await ctx.Discord?.SendMessage($"**{requesterNick}** banlist:\n```\n{fullResponse}\n```");
175+
}
176+
else
177+
{
178+
foreach (var resp in responses)
179+
{
180+
writer.WriteLine($"PRIVMSG {ctx.Channel} :{resp}");
181+
}
182+
}
183+
184+
ctx.ServiceResponseBuffer.Remove(lastRequest.Key);
185185
}
186186
}
187-
188-
ctx.ServiceResponseBuffer.Remove(lastRequest.Key);
189187
}
190188
}
189+
continue;
191190
}
192191

193192
if (line.Contains(" QUIT "))

0 commit comments

Comments
 (0)