This commit is contained in:
meera 2026-07-18 18:33:30 +03:00
parent c859f99b1e
commit d0b882f362
2 changed files with 19 additions and 4 deletions

1
.gitignore vendored
View File

@ -32,6 +32,7 @@ go.work.sum
config.json
accounts.txt
ircserver
irc.db
# Editor/IDE
# .idea/
# .vscode/

22
main.go
View File

@ -486,10 +486,24 @@ func (c *Client) serveHistory(subcmd, target string, count int, params []string)
switch subcmd {
case "LATEST":
if count > len(ch.history) {
count = len(ch.history)
if count <= len(ch.history) {
msgs = ch.history[len(ch.history)-count:]
} else {
extra := count - len(ch.history)
rows, err := db.Query(`SELECT msgid, timestamp, prefix, command, msg
FROM messages
WHERE channel=?
ORDER BY timestamp DESC LIMIT ?`,
target, extra)
if err != nil {
c.fwrite(":server 718 %s %s :No history available\r\n", c.nick, target)
return
}
defer rows.Close()
dbMsgs := scanRows(rows, target)
msgs = append(dbMsgs, ch.history...)
}
msgs = ch.history[len(ch.history)-count:]
case "BEFORE":
if len(params) < 4 {
@ -799,7 +813,7 @@ func (c *Client) checkRegistration() {
c.registered = true
c.fwrite(":server 001 %s :Welcome to Gocirc, %s!\r\n", c.nick, c.nick)
c.fwrite(":server 002 %s :Your host is server\r\n", c.nick)
c.fwrite(":server 003 %s :This server was created just now\r\n", c.nick)
c.fwrite(":server 003 %s :This server has %d users right now\r\n", c.nick, len(clients))
c.fwrite(":server 004 %s server irc 0.1\r\n", c.nick)
fmt.Fprintf(c.conn, ":server 375 %s :- Message of the Day -\r\n", c.nick)
if motdString != nil {