Compare commits
2 Commits
4b8077f7e7
...
8960a23448
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8960a23448 | ||
|
|
ef30c41758 |
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "schat2-clive",
|
"name": "schat2-clive",
|
||||||
"version": "1.24.5",
|
"version": "1.24.6",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "schat2-clive",
|
"name": "schat2-clive",
|
||||||
"version": "1.24.5",
|
"version": "1.24.6",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"better-sqlite3": "^8.3.0",
|
"better-sqlite3": "^8.3.0",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "schat2-clive",
|
"name": "schat2-clive",
|
||||||
"version": "1.24.5",
|
"version": "1.24.6",
|
||||||
"description": "Game host for SChat 2-powered chat sites",
|
"description": "Game host for SChat 2-powered chat sites",
|
||||||
"main": "src/app.js",
|
"main": "src/app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -123,10 +123,10 @@ function setRule(rule, context) {
|
|||||||
context.sendMessage(`Chat rule must be at least 3 characters long, ${context.user.prefixedUsername}`, context.room.id, { label: false });
|
context.sendMessage(`Chat rule must be at least 3 characters long, ${context.user.prefixedUsername}`, context.room.id, { label: false });
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getTokens(context) {
|
async function getTokens(username) {
|
||||||
const { used_tokens: usedTokens } = await knex('chat_tokens')
|
const { used_tokens: usedTokens } = await knex('chat_tokens')
|
||||||
.sum('tokens as used_tokens')
|
.sum('tokens as used_tokens')
|
||||||
.where('user_id', context.user.id)
|
.where('user_id', username)
|
||||||
.where('created', '>', knex.raw(`datetime('now', '-${config.chat.userTokenPeriod} hour')`)) // 1 day ago
|
.where('created', '>', knex.raw(`datetime('now', '-${config.chat.userTokenPeriod} hour')`)) // 1 day ago
|
||||||
.first();
|
.first();
|
||||||
|
|
||||||
@@ -154,9 +154,11 @@ async function onCommand(args, context) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (['tokens', 'credit'].includes(context.subcommand)) {
|
if (['tokens', 'credit'].includes(context.subcommand || context.command)) {
|
||||||
const tokens = await getTokens(context);
|
const username = args[0] ? args[0].replace(new RegExp(`^${config.usernamePrefix}`), '') : context.user.username;
|
||||||
context.sendMessage(`You have ${config.chat.userTokenLimit - tokens} chat tokens remaining. They will be returned gradually over ${config.chat.userTokenPeriod} hours.`, context.room.id, { label: false });
|
const tokens = await getTokens(username);
|
||||||
|
|
||||||
|
context.sendMessage(`${args[0] ? `${style.bold(username)} has` : 'You have'} ${style.bold(config.chat.userTokenLimit - tokens)} chat tokens remaining. They will be returned gradually over ${config.chat.userTokenPeriod} hours.`, context.room.id, { label: false });
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -164,7 +166,7 @@ async function onCommand(args, context) {
|
|||||||
const prompt = args.join(' ');
|
const prompt = args.join(' ');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const usedTokens = await getTokens(context);
|
const usedTokens = await getTokens(context.user.username);
|
||||||
|
|
||||||
if (usedTokens >= config.chat.userTokenLimit) {
|
if (usedTokens >= config.chat.userTokenLimit) {
|
||||||
context.logger.info(`${context.user.username} was rate limited at ${usedTokens}: ${prompt}`);
|
context.logger.info(`${context.user.username} was rate limited at ${usedTokens}: ${prompt}`);
|
||||||
@@ -200,7 +202,7 @@ async function onCommand(args, context) {
|
|||||||
context.sendMessage(`${context.user.prefixedUsername}: ${curatedContent}`, context.room.id, { label: false });
|
context.sendMessage(`${context.user.prefixedUsername}: ${curatedContent}`, context.room.id, { label: false });
|
||||||
|
|
||||||
await knex('chat_tokens').insert({
|
await knex('chat_tokens').insert({
|
||||||
user_id: context.user.id,
|
user_id: context.user.username,
|
||||||
tokens: res.body.usage.total_tokens,
|
tokens: res.body.usage.total_tokens,
|
||||||
created: knex.raw("datetime('now')"),
|
created: knex.raw("datetime('now')"),
|
||||||
});
|
});
|
||||||
@@ -224,4 +226,5 @@ module.exports = {
|
|||||||
onCommand,
|
onCommand,
|
||||||
onMessage,
|
onMessage,
|
||||||
onStart,
|
onStart,
|
||||||
|
commands: ['tokens'],
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user