new bridge nick format
This commit is contained in:
parent
3a6c14961a
commit
5c82d5e50e
@ -144,20 +144,20 @@ const singularizer = deriveLLMMapping(PLURALS.map(([a, b]) => ([b, a])), SINGULA
|
||||
const renderItem = async x => x.quantity === 1 ? x.thing : `${x.quantity} ${await pluralizer(x.thing)}`
|
||||
|
||||
client.addListener("message", async (nick, channel, message, ev) => {
|
||||
const e = /^<([^>]+)> (.*)$/.exec(message)
|
||||
const e = /^(?:<([^>]+)>|\x03\d{1,2}([^\[]+)\[[a-z]\]:\x0f) (.*)$/.exec(message)
|
||||
if (e) {
|
||||
nick = e[1]
|
||||
message = e[2]
|
||||
nick = e[1] || e[2]
|
||||
message = e[3]
|
||||
}
|
||||
const allStatsRaw = SQL`SELECT * FROM stats`.all().map(x => [x.stat, x.value])
|
||||
const origStats = new Map(allStatsRaw)
|
||||
const allStats = new Map(allStatsRaw)
|
||||
allStats.set("messages", (allStats.get("messages") ?? 0) + 1)
|
||||
const res = /^([A-Za-z0-9_-]+)[:, ]*([A-Za-z0-9_-]+) *(.*)$/.exec(message)
|
||||
const uniqueUsersCounter = allStats.get("users") ? HyperLogLog.deserialize(allStats.get("users")) : new HyperLogLog({ hasherId: "jenkins32", precision: 5 })
|
||||
const uniqueUsersCounter = allStats.get("users") ? HyperLogLog.deserialize(allStats.get("users")) : new HyperLogLog({ hasherId: "jenkins32", precision: 5 })
|
||||
uniqueUsersCounter.add(nick)
|
||||
allStats.set("users", uniqueUsersCounter.serialize())
|
||||
const uniqueMessagesCounter = allStats.get("uniqueMessages") ? HyperLogLog.deserialize(allStats.get("uniqueMessages")) : new HyperLogLog({ hasherId: "jenkins32", precision: 5 })
|
||||
const uniqueMessagesCounter = allStats.get("uniqueMessages") ? HyperLogLog.deserialize(allStats.get("uniqueMessages")) : new HyperLogLog({ hasherId: "jenkins32", precision: 5 })
|
||||
uniqueMessagesCounter.add(message)
|
||||
allStats.set("uniqueMessages", uniqueMessagesCounter.serialize())
|
||||
if (res) {
|
||||
@ -169,9 +169,9 @@ client.addListener("message", async (nick, channel, message, ev) => {
|
||||
console.log(nick, cmd, channel)
|
||||
allStats.set("commands", (allStats.get("commands") ?? 0) + 1)
|
||||
if (cmd === "starch") {
|
||||
client.say(channel, `Starch exists (${Math.random() * 20 + 80}% confidence).`)
|
||||
client.say(channel, `Starch has been cancelled. We apologize to our valued customers for any inconvenience this may have caused.`)
|
||||
} else if (cmd === "stats") {
|
||||
client.say(channel, `${allStats.get("commands")} run, ${allStats.get("messages")} messages seen, about ${Math.floor(uniqueUsersCounter.count())} nicks seen, about ${Math.floor(uniqueMessagesCounter.count())} unique messages seen.`)
|
||||
client.say(channel, `${allStats.get("commands")} commands run, ${allStats.get("messages")} messages seen, about ${Math.floor(uniqueUsersCounter.count())} nicks seen, about ${Math.floor(uniqueMessagesCounter.count())} unique messages seen.`)
|
||||
} else if (cmd === "help") {
|
||||
client.say(channel, "Nobody can help you now.")
|
||||
} else if (cmd === "fortune") {
|
||||
@ -214,7 +214,9 @@ client.addListener("message", async (nick, channel, message, ev) => {
|
||||
}
|
||||
} else if (cmd.startsWith("inv")) {
|
||||
const inv = SQL`SELECT * FROM inventory ORDER BY obtained_at DESC LIMIT 10`.all()
|
||||
client.say(channel, inv.map(renderItem).join("\n"))
|
||||
for (const i of inv) {
|
||||
client.say(channel, await renderItem(i))
|
||||
}
|
||||
} else if (cmd === "deploy") {
|
||||
client.say(channel, `Deploying ${args}.`)
|
||||
}
|
||||
@ -228,7 +230,6 @@ client.addListener("message", async (nick, channel, message, ev) => {
|
||||
client.say(channel, "Haiku detected!")
|
||||
logEv("haiku", R.takeLast(3, mhist).join("\n"))
|
||||
}
|
||||
console.log(sylhist)
|
||||
|
||||
DB.transaction(() => {
|
||||
for (const [k, v] of allStats) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user