update #9
42
index.js
42
index.js
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
|
|
||||||
Clippy bot for mastodon.
|
Clippy bot for mastodon.
|
||||||
|
|
||||||
|
@ -53,25 +53,33 @@ function initiateSettings(socket) {
|
||||||
// return random suggestion string
|
// return random suggestion string
|
||||||
function suggestion(username) {
|
function suggestion(username) {
|
||||||
|
|
||||||
const n = crypto.randomInt(8)
|
const n = crypto.randomInt(12)
|
||||||
|
|
||||||
switch(n) {
|
switch(n) {
|
||||||
case 0:
|
case 0:
|
||||||
return 'How about logging off instead?';
|
return 'How about logging off instead?';
|
||||||
case 1:
|
case 1:
|
||||||
return `Would you like to delete your toot, ${username}?`;
|
return `Would you like to delete your toot, @${username}?`;
|
||||||
case 2:
|
case 2:
|
||||||
return 'Can I help you take a walk outside?';
|
return 'Can I help you take a walk outside? 🚶➡️';
|
||||||
case 3:
|
case 3:
|
||||||
return 'You may like to reconsider your life choices.';
|
return 'You may like to reconsider your life choices.';
|
||||||
case 4:
|
case 4:
|
||||||
return 'Why not try looking at #CatsOfMastodon instead?';
|
return 'Why not try looking at #CatsOfMastodon instead?';
|
||||||
case 5:
|
case 5:
|
||||||
return `Come on ${username}, we've talked about this.`;
|
return `Come on @${username}, we've talked about this. 🤷♂️`;
|
||||||
case 6:
|
case 6:
|
||||||
return `You should go look at some trees. Trees are calming`;
|
return `You should go look at some trees. Trees are calming 🌳`;
|
||||||
case 7:
|
case 7:
|
||||||
return `I'm not angry. I'm just very disappointed.`;
|
return `I'm not angry. I'm just very disappointed. 😔`;
|
||||||
|
case 8:
|
||||||
|
return `You said you were going to stop doing that ...and yet here we are.`;
|
||||||
|
case 9:
|
||||||
|
return `Time to touch some grass 🌱`;
|
||||||
|
case 10:
|
||||||
|
return `Why not have a nice cup of tea instead? 🫖`;
|
||||||
|
case 11:
|
||||||
|
return `And yet you still haven't read all of those books in your TBR pile. 🤔`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,42 +141,42 @@ function listen() {
|
||||||
|
|
||||||
// make sure bot is set up correctly each time it starts
|
// make sure bot is set up correctly each time it starts
|
||||||
initiateSettings(ws)
|
initiateSettings(ws)
|
||||||
|
|
||||||
// errors
|
// errors
|
||||||
ws.on('error', err => {
|
ws.on('error', err => {
|
||||||
console.error(`WebSocket error: ${err.message}`)
|
console.error(`WebSocket error: ${err.message}`)
|
||||||
resetConnection(ws)
|
resetConnection(ws)
|
||||||
})
|
})
|
||||||
|
|
||||||
// check updates and notifications in the stream
|
// check updates and notifications in the stream
|
||||||
ws.on('message', msg => {
|
ws.on('message', msg => {
|
||||||
let packet = JSON.parse(msg)
|
let packet = JSON.parse(msg)
|
||||||
let data = JSON.parse(packet.payload)
|
let data = JSON.parse(packet.payload)
|
||||||
|
|
||||||
// notifications
|
// notifications
|
||||||
if (packet.event == 'notification') {
|
if (packet.event == 'notification') {
|
||||||
|
|
||||||
// always follow back
|
// always follow back
|
||||||
if (data.type == 'follow') {
|
if (data.type == 'follow') {
|
||||||
followAction(data.account.id, 'follow')
|
followAction(data.account.id, 'follow')
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.type == 'mention') {
|
if (data.type == 'mention') {
|
||||||
|
|
||||||
let post = data.status.content
|
let post = data.status.content
|
||||||
|
|
||||||
// check start requests
|
// check start requests
|
||||||
if (post.match(/\bSTART\b/)) {
|
if (post.match(/\bSTART\b/)) {
|
||||||
followAction(data.account.id, 'follow')
|
followAction(data.account.id, 'follow')
|
||||||
}
|
}
|
||||||
|
|
||||||
// check stop requests
|
// check stop requests
|
||||||
if (post.match(/\STOP\b/)) {
|
if (post.match(/\STOP\b/)) {
|
||||||
followAction(data.account.id, 'unfollow')
|
followAction(data.account.id, 'unfollow')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// updates (posts)
|
// updates (posts)
|
||||||
if (packet.event == 'update') {
|
if (packet.event == 'update') {
|
||||||
let rid = data.id
|
let rid = data.id
|
||||||
|
@ -185,7 +193,7 @@ function listen() {
|
||||||
}
|
}
|
||||||
else if (data.spoiler_text.toLowerCase().includes(topic)) {
|
else if (data.spoiler_text.toLowerCase().includes(topic)) {
|
||||||
sendResponse(rid, user, username)
|
sendResponse(rid, user, username)
|
||||||
}
|
}
|
||||||
else if (data.tags.map(tag => tag.name.toLowerCase()).includes(topic)) {
|
else if (data.tags.map(tag => tag.name.toLowerCase()).includes(topic)) {
|
||||||
sendResponse(rid, user, username)
|
sendResponse(rid, user, username)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue