make all imports nicer

This commit is contained in:
2025-07-24 14:22:28 +01:00
parent d07b9cf290
commit 1321af66cd
62 changed files with 242 additions and 227 deletions

View File

@@ -1,7 +1,7 @@
import { RefreshingAuthProvider, exchangeCode, type AccessToken } from "@twurple/auth"; import { RefreshingAuthProvider, exchangeCode, type AccessToken } from "@twurple/auth";
import { createAuthRecord, deleteAuthRecord, getAuthRecord, updateAuthRecord } from "./db/dbAuth"; import { createAuthRecord, deleteAuthRecord, getAuthRecord, updateAuthRecord } from "db/dbAuth";
import logger from "./lib/logger"; import logger from "lib/logger";
import kleur from "kleur"; import kleur from "kleur";
async function initAuth(userId: string, clientId: string, clientSecret: string, requestedIntents: string[], streamer: boolean): Promise<AccessToken> { async function initAuth(userId: string, clientId: string, clientSecret: string, requestedIntents: string[], streamer: boolean): Promise<AccessToken> {

View File

@@ -1,10 +1,10 @@
import { Cheer, handleNoTarget } from "."; import { Cheer, handleNoTarget } from "cheers";
import { sendMessage } from "../commands"; import { sendMessage } from "commands";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import { User } from "../user"; import User from "user";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
import { createTimeoutRecord } from "../db/dbTimeouts"; import { createTimeoutRecord } from "db/dbTimeouts";
import { parseCheerArgs } from "../lib/parseCommandArgs"; import { parseCheerArgs } from "lib/parseCommandArgs";
const ITEMNAME = 'silverbullet'; const ITEMNAME = 'silverbullet';

View File

@@ -1,10 +1,10 @@
import { redis } from "bun"; import { redis } from "bun";
import { sendMessage } from "../commands"; import { sendMessage } from "commands";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
import { User } from "../user"; import User from "user";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import { createTimeoutRecord } from "../db/dbTimeouts"; import { createTimeoutRecord } from "db/dbTimeouts";
import { Cheer, handleNoTarget } from "."; import { Cheer, handleNoTarget } from "cheers";
const ITEMNAME = 'grenade'; const ITEMNAME = 'grenade';

View File

@@ -1,4 +1,4 @@
import { User } from '../user'; import User from 'user';
import { EventSubChannelChatMessageEvent } from "@twurple/eventsub-base"; import { EventSubChannelChatMessageEvent } from "@twurple/eventsub-base";
export class Cheer { export class Cheer {
@@ -28,10 +28,10 @@ for (const file of files) {
export default cheers; export default cheers;
export { namedcheers }; export { namedcheers };
import { sendMessage } from '../commands'; import { sendMessage } from 'commands';
import logger from '../lib/logger'; import logger from 'lib/logger';
import { getUserRecord } from '../db/dbUser'; import { getUserRecord } from 'db/dbUser';
import { changeItemCount } from '../items'; import { changeItemCount } from 'items';
export async function handleNoTarget(msg: EventSubChannelChatMessageEvent, user: User, itemname: string, silent = true) { export async function handleNoTarget(msg: EventSubChannelChatMessageEvent, user: User, itemname: string, silent = true) {
if (await user.itemLock()) { if (await user.itemLock()) {

View File

@@ -1,10 +1,10 @@
import { Cheer, handleNoTarget } from "."; import { Cheer, handleNoTarget } from "cheers";
import { sendMessage } from "../commands"; import { sendMessage } from "commands";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import { User } from "../user"; import User from "user";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
import { createTimeoutRecord } from "../db/dbTimeouts"; import { createTimeoutRecord } from "db/dbTimeouts";
import { parseCheerArgs } from "../lib/parseCommandArgs"; import { parseCheerArgs } from "lib/parseCommandArgs";
const ITEMNAME = 'blaster'; const ITEMNAME = 'blaster';

View File

@@ -1,10 +1,10 @@
import { Cheer, handleNoTarget } from "."; import { Cheer, handleNoTarget } from "cheers";
import { sendMessage } from "../commands"; import { sendMessage } from "commands";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import { User } from "../user"; import User from "user";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
import { createTimeoutRecord } from "../db/dbTimeouts"; import { createTimeoutRecord } from "db/dbTimeouts";
import { getTNTTargets } from "../items/tnt"; import { getTNTTargets } from "items/tnt";
import { redis } from "bun"; import { redis } from "bun";
const ITEMNAME = 'tnt'; const ITEMNAME = 'tnt';

View File

@@ -1,7 +1,7 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { addAdmin } from "../lib/admins"; import { addAdmin } from "lib/admins";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
export default new Command('addadmin', ['addadmin'], 'streamer', async msg => { export default new Command('addadmin', ['addadmin'], 'streamer', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,7 +1,7 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { addInvuln } from "../lib/invuln"; import { addInvuln } from "lib/invuln";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
export default new Command('addinvuln', ['addinvuln'], 'streamer', async msg => { export default new Command('addinvuln', ['addinvuln'], 'streamer', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,8 +1,8 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import { changeBalance } from "../lib/changeBalance"; import { changeBalance } from "lib/changeBalance";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
export default new Command('admindonate', ['admindonate'], 'admin', async msg => { export default new Command('admindonate', ['admindonate'], 'admin', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,8 +1,8 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import items, { changeItemCount } from "../items"; import items, { changeItemCount } from "items";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
export default new Command('admingive', ['admingive'], 'admin', async msg => { export default new Command('admingive', ['admingive'], 'admin', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,5 +1,5 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { User } from "../user"; import User from "user";
import { redis } from "bun"; import { redis } from "bun";
export default new Command('backshot', ['backshot'], 'chatter', async (msg, user) => { export default new Command('backshot', ['backshot'], 'chatter', async (msg, user) => {

View File

@@ -1,7 +1,7 @@
import { redis } from "bun"; import { redis } from "bun";
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { namedcheers } from "../cheers"; import { namedcheers } from "cheers";
export default new Command('disablecheer', ['disablecheer'], 'admin', async msg => { export default new Command('disablecheer', ['disablecheer'], 'admin', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,6 +1,6 @@
import { redis } from "bun"; import { redis } from "bun";
import commands, { Command, sendMessage } from "."; import commands, { Command, sendMessage } from "commands";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
export default new Command('disablecommand', ['disablecommand'], 'admin', async msg => { export default new Command('disablecommand', ['disablecommand'], 'admin', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,10 +1,10 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import type { userRecord } from "../db/connection"; import type { userRecord } from "db/connection";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { changeBalance } from "../lib/changeBalance"; import { changeBalance } from "lib/changeBalance";
import { User } from "../user"; import User from "user";
import logger from "../lib/logger"; import logger from "lib/logger";
export default new Command('donate', ['donate'], 'chatter', async (msg, user) => { export default new Command('donate', ['donate'], 'chatter', async (msg, user) => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,7 +1,7 @@
import { redis } from "bun"; import { redis } from "bun";
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { namedcheers } from "../cheers"; import { namedcheers } from "cheers";
export default new Command('enablecheer', ['enablecheer'], 'admin', async msg => { export default new Command('enablecheer', ['enablecheer'], 'admin', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,6 +1,6 @@
import { redis } from "bun"; import { redis } from "bun";
import commands, { Command, sendMessage } from "."; import commands, { Command, sendMessage } from "commands";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
export default new Command('enablecommand', ['enablecommand'], 'admin', async msg => { export default new Command('enablecommand', ['enablecommand'], 'admin', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,6 +1,6 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { getAdmins } from "../lib/admins"; import { getAdmins } from "lib/admins";
import { User } from "../user"; import User from "user";
export default new Command('getadmins', ['getadmins'], 'chatter', async msg => { export default new Command('getadmins', ['getadmins'], 'chatter', async msg => {
const admins = await getAdmins() const admins = await getAdmins()

View File

@@ -1,7 +1,7 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
export default new Command('getbalance', ['getbalance', 'balance', 'qbucks', 'qweribucks', 'wallet', 'getwallet'], 'chatter', async (msg, user) => { export default new Command('getbalance', ['getbalance', 'balance', 'qbucks', 'qweribucks', 'wallet', 'getwallet'], 'chatter', async (msg, user) => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,7 +1,7 @@
import { redis } from "bun"; import { redis } from "bun";
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { namedcheers } from "../cheers"; import { namedcheers } from "cheers";
export default new Command('getcheers', ['getcheers', 'getcheer'], 'chatter', async msg => { export default new Command('getcheers', ['getcheers', 'getcheer'], 'chatter', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,6 +1,6 @@
import { redis } from "bun"; import { redis } from "bun";
import { basecommands, Command, sendMessage } from "."; import { basecommands, Command, sendMessage } from "commands";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
export default new Command('getcommands', ['getcommands', 'getc'], 'chatter', async msg => { export default new Command('getcommands', ['getcommands', 'getc'], 'chatter', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,8 +1,8 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
import items from "../items"; import items from "items";
export default new Command('inventory', ['inv', 'inventory'], 'chatter', async (msg, user) => { export default new Command('inventory', ['inv', 'inventory'], 'chatter', async (msg, user) => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,6 +1,6 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { getInvulns } from "../lib/invuln"; import { getInvulns } from "lib/invuln";
import { User } from "../user"; import User from "user";
export default new Command('getinvulns', ['getinvulns'], 'chatter', async msg => { export default new Command('getinvulns', ['getinvulns'], 'chatter', async msg => {
const invulns = await getInvulns() const invulns = await getInvulns()

View File

@@ -1,8 +1,8 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { streamerApi, streamerId } from ".."; import { streamerApi, streamerId } from "main";
import { buildTimeString } from "../lib/dateManager"; import { buildTimeString } from "lib/dateManager";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
export default new Command('gettimeout', ['gett', 'gettimeout'], 'chatter', async msg => { export default new Command('gettimeout', ['gett', 'gettimeout'], 'chatter', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,10 +1,10 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import type { userRecord } from "../db/connection"; import type { userRecord } from "db/connection";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import items, { changeItemCount } from "../items"; import items, { changeItemCount } from "items";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
import logger from "../lib/logger"; import logger from "lib/logger";
export default new Command('give', ['give'], 'chatter', async (msg, user) => { export default new Command('give', ['give'], 'chatter', async (msg, user) => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,5 +1,5 @@
import { EventSubChannelChatMessageEvent } from "@twurple/eventsub-base"; import { EventSubChannelChatMessageEvent } from "@twurple/eventsub-base";
import { User } from "../user"; import User from "user";
export type userType = 'chatter' | 'admin' | 'streamer'; export type userType = 'chatter' | 'admin' | 'streamer';
@@ -34,7 +34,7 @@ for (const file of files) {
}; };
}; };
import items from "../items"; import items from "items";
for (const [name, item] of Array.from(items)) { for (const [name, item] of Array.from(items)) {
commands.set(name, item); // As Item is basically just Command but with more parameters, this should work fine commands.set(name, item); // As Item is basically just Command but with more parameters, this should work fine
}; };
@@ -42,7 +42,7 @@ for (const [name, item] of Array.from(items)) {
export default commands; export default commands;
export { basecommands }; export { basecommands };
import { singleUserMode, chatterApi, chatterId, streamerId } from ".."; import { singleUserMode, chatterApi, chatterId, streamerId } from "main";
/** Helper function to send a message to the stream */ /** Helper function to send a message to the stream */
export const sendMessage = async (message: string, replyParentMessageId?: string) => { export const sendMessage = async (message: string, replyParentMessageId?: string) => {

View File

@@ -1,6 +1,6 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import items from "../items"; import items from "items";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
export default new Command('iteminfo', ['iteminfo', 'itemhelp', 'info'], 'chatter', async msg => { export default new Command('iteminfo', ['iteminfo', 'itemhelp', 'info'], 'chatter', async msg => {
const messagequery = parseCommandArgs(msg.messageText).join(' '); const messagequery = parseCommandArgs(msg.messageText).join(' ');

View File

@@ -1,6 +1,6 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
export default new Command('itemlock', ['itemlock'], 'admin', async msg => { export default new Command('itemlock', ['itemlock'], 'admin', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,8 +1,8 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { streamerUsers } from ".."; import { streamerUsers } from "main";
import { removeAdmin } from "../lib/admins"; import { removeAdmin } from "lib/admins";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
export default new Command('removeadmin', ['removeadmin'], 'streamer', async msg => { export default new Command('removeadmin', ['removeadmin'], 'streamer', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,8 +1,8 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { streamerUsers } from ".."; import { streamerUsers } from "main";
import { removeInvuln } from "../lib/invuln"; import { removeInvuln } from "lib/invuln";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
export default new Command('removeinvuln', ['removeinvuln'], 'streamer', async msg => { export default new Command('removeinvuln', ['removeinvuln'], 'streamer', async msg => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,6 +1,6 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { redis } from "bun"; import { redis } from "bun";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
const barrelCount = 6; const barrelCount = 6;

View File

@@ -1,5 +1,5 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
export default new Command('seiso', ['seiso'], 'chatter', async (msg, user) => { export default new Command('seiso', ['seiso'], 'chatter', async (msg, user) => {
const rand = Math.floor(Math.random() * 101); const rand = Math.floor(Math.random() * 101);

View File

@@ -1,6 +1,6 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { handleCheer } from "../events/message"; import { handleCheer } from "events/message";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
export default new Command('testcheer', ['testcheer'], 'streamer', async (msg, user) => { export default new Command('testcheer', ['testcheer'], 'streamer', async (msg, user) => {
const args = parseCommandArgs(msg.messageText); const args = parseCommandArgs(msg.messageText);

View File

@@ -1,10 +1,10 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { User } from "../user"; import User from "user";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
import { changeBalance } from "../lib/changeBalance"; import { changeBalance } from "lib/changeBalance";
import { createTimeoutRecord } from "../db/dbTimeouts"; import { createTimeoutRecord } from "db/dbTimeouts";
export default new Command('timeout', ['timeout'], 'chatter', async (msg, user) => { export default new Command('timeout', ['timeout'], 'chatter', async (msg, user) => {
const userObj = await getUserRecord(user); const userObj = await getUserRecord(user);

View File

@@ -1,6 +1,6 @@
import { redis } from "bun"; import { redis } from "bun";
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import items from "../items"; import items from "items";
export default new Command('use', ['use'], 'chatter', async (msg, user) => { export default new Command('use', ['use'], 'chatter', async (msg, user) => {
const messagequery = msg.messageText.trim().split(' ').slice(1); const messagequery = msg.messageText.trim().split(' ').slice(1);

View File

@@ -1,5 +1,5 @@
import { redis } from "bun"; import { redis } from "bun";
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
export default new Command('vulnchatters', ['vulnchatters', 'vulnc'], 'chatter', async msg => { export default new Command('vulnchatters', ['vulnchatters', 'vulnc'], 'chatter', async msg => {
const data = await redis.keys('user:*:vulnerable'); const data = await redis.keys('user:*:vulnerable');

View File

@@ -1,5 +1,5 @@
import { Command, sendMessage } from "."; import { Command, sendMessage } from "commands";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
// Remake of the !yabai command in ttv/kiara_tv // Remake of the !yabai command in ttv/kiara_tv
export default new Command('yabai', ['yabai', 'goon'], 'chatter', async (msg, user) => { export default new Command('yabai', ['yabai', 'goon'], 'chatter', async (msg, user) => {

View File

@@ -1,7 +1,7 @@
import type { AccessToken } from "@twurple/auth"; import type { AccessToken } from "@twurple/auth";
import PocketBase, { RecordService } from "pocketbase"; import PocketBase, { RecordService } from "pocketbase";
import type { inventory } from "../items"; import type { inventory } from "items";
import logger from "../lib/logger"; import logger from "lib/logger";
const pocketbaseurl = process.env.POCKETBASE_URL ?? "localhost:8090"; const pocketbaseurl = process.env.POCKETBASE_URL ?? "localhost:8090";
if (pocketbaseurl === "") { logger.enverr("POCKETBASE_URL"); process.exit(1); }; if (pocketbaseurl === "") { logger.enverr("POCKETBASE_URL"); process.exit(1); };

View File

@@ -1,5 +1,5 @@
import type { AccessToken } from "@twurple/auth"; import type { AccessToken } from "@twurple/auth";
import pocketbase, { type authRecord } from "./connection"; import pocketbase, { type authRecord } from "db/connection";
const pb = pocketbase.collection('auth'); const pb = pocketbase.collection('auth');
export async function createAuthRecord(token: AccessToken, userId: string) { export async function createAuthRecord(token: AccessToken, userId: string) {

View File

@@ -1,6 +1,6 @@
import pocketbase from "./connection"; import pocketbase from "db/connection";
import { User } from "../user"; import User from "user";
import logger from "../lib/logger"; import logger from "lib/logger";
const pb = pocketbase.collection('timeouts'); const pb = pocketbase.collection('timeouts');
export async function createTimeoutRecord(user: User, target: User, item: string): Promise<void> { export async function createTimeoutRecord(user: User, target: User, item: string): Promise<void> {

View File

@@ -1,6 +1,6 @@
import pocketbase from "./connection"; import pocketbase from "db/connection";
import { User } from "../user"; import User from "user";
import logger from "../lib/logger"; import logger from "lib/logger";
const pb = pocketbase.collection('usedItems'); const pb = pocketbase.collection('usedItems');
export async function createUsedItemRecord(user: User, item: string): Promise<void> { export async function createUsedItemRecord(user: User, item: string): Promise<void> {

View File

@@ -1,7 +1,7 @@
import pocketbase, { type userRecord } from "./connection"; import pocketbase, { type userRecord } from "db/connection";
import { emptyInventory, itemarray } from "../items"; import { emptyInventory, itemarray } from "items";
import type { User } from "../user"; import type User from "user";
import logger from "../lib/logger"; import logger from "lib/logger";
const pb = pocketbase.collection('users'); const pb = pocketbase.collection('users');

View File

@@ -1,5 +1,5 @@
import { eventSub, streamerId } from ".."; import { eventSub, streamerId } from "main";
import { deleteBannedUserMessagesFromChatWidget } from "../web/chatWidget/message"; import { deleteBannedUserMessagesFromChatWidget } from "web/chatWidget/message";
eventSub.onChannelBan(streamerId, async msg => { eventSub.onChannelBan(streamerId, async msg => {
deleteBannedUserMessagesFromChatWidget(msg); deleteBannedUserMessagesFromChatWidget(msg);

View File

@@ -1,5 +1,5 @@
import { eventSub, streamerId } from ".."; import { eventSub, streamerId } from "main";
import { deleteMessageFromChatWidget } from "../web/chatWidget/message"; import { deleteMessageFromChatWidget } from "web/chatWidget/message";
eventSub.onChannelChatMessageDelete(streamerId, streamerId, async msg => { eventSub.onChannelChatMessageDelete(streamerId, streamerId, async msg => {
deleteMessageFromChatWidget(msg); deleteMessageFromChatWidget(msg);

View File

@@ -1,6 +1,6 @@
import kleur from "kleur"; import kleur from "kleur";
import { eventSub, streamerApi, streamerId } from ".."; import { eventSub, streamerApi, streamerId } from "main";
import logger from "../lib/logger"; import logger from "lib/logger";
eventSub.onRevoke(event => { eventSub.onRevoke(event => {
logger.ok(`Successfully revoked EventSub subscription: ${kleur.underline(event.id)}`); logger.ok(`Successfully revoked EventSub subscription: ${kleur.underline(event.id)}`);
@@ -33,7 +33,7 @@ for (const file of files) {
eventSub.start(); eventSub.start();
import { getAuthRecord } from "../db/dbAuth"; import { getAuthRecord } from "db/dbAuth";
import { StaticAuthProvider } from "@twurple/auth"; import { StaticAuthProvider } from "@twurple/auth";
import { ApiClient, HelixEventSubSubscription } from "@twurple/api"; import { ApiClient, HelixEventSubSubscription } from "@twurple/api";

View File

@@ -1,13 +1,13 @@
import { EventSubChannelChatMessageEvent } from "@twurple/eventsub-base" import { EventSubChannelChatMessageEvent } from "@twurple/eventsub-base"
import { streamerId, eventSub, commandPrefix, streamerUsers } from ".."; import { streamerId, eventSub, commandPrefix, streamerUsers } from "main";
import { User } from "../user"; import User from "user";
import commands, { sendMessage } from "../commands"; import commands, { sendMessage } from "commands";
import { redis } from "bun"; import { redis } from "bun";
import { isAdmin } from "../lib/admins"; import { isAdmin } from "lib/admins";
import cheers from "../cheers"; import cheers from "cheers";
import logger from "../lib/logger"; import logger from "lib/logger";
import { addMessageToChatWidget } from "../web/chatWidget/message"; import { addMessageToChatWidget } from "web/chatWidget/message";
import { isInvuln, setTemporaryInvuln } from "../lib/invuln"; import { isInvuln, setTemporaryInvuln } from "lib/invuln";
logger.info(`Loaded the following commands: ${commands.keys().toArray().join(', ')}`); logger.info(`Loaded the following commands: ${commands.keys().toArray().join(', ')}`);

View File

@@ -1,9 +1,9 @@
import { createAuthProvider } from "./auth"; import { createAuthProvider } from "./auth";
import { ApiClient } from "@twurple/api"; import { ApiClient } from "@twurple/api";
import { EventSubWsListener } from "@twurple/eventsub-ws"; import { EventSubWsListener } from "@twurple/eventsub-ws";
import { addAdmin } from "./lib/admins"; import { addAdmin } from "lib/admins";
import logger from "./lib/logger"; import logger from "lib/logger";
import { addInvuln } from "./lib/invuln"; import { addInvuln } from "lib/invuln";
const CHATTERINTENTS = ["user:read:chat", "user:write:chat", "user:bot"]; const CHATTERINTENTS = ["user:read:chat", "user:write:chat", "user:bot"];
const STREAMERINTENTS = ["user:read:chat", "moderation:read", "channel:manage:moderators", "moderator:manage:banned_users", "bits:read", "channel:moderate"]; const STREAMERINTENTS = ["user:read:chat", "moderation:read", "channel:manage:moderators", "moderator:manage:banned_users", "bits:read", "channel:moderate"];

View File

@@ -1,11 +1,11 @@
import { changeItemCount, Item } from "."; import { changeItemCount, Item } from "items";
import { sendMessage } from "../commands"; import { sendMessage } from "commands";
import { createTimeoutRecord } from "../db/dbTimeouts"; import { createTimeoutRecord } from "db/dbTimeouts";
import { createUsedItemRecord } from "../db/dbUsedItems"; import { createUsedItemRecord } from "db/dbUsedItems";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
import { User } from "../user"; import User from "user";
const ITEMNAME = 'blaster'; const ITEMNAME = 'blaster';

View File

@@ -1,11 +1,11 @@
import { redis } from "bun"; import { redis } from "bun";
import { sendMessage } from "../commands"; import { sendMessage } from "commands";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
import { changeItemCount, Item } from "."; import { changeItemCount, Item } from "items";
import { User } from "../user"; import User from "user";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import { createTimeoutRecord } from "../db/dbTimeouts"; import { createTimeoutRecord } from "db/dbTimeouts";
import { createUsedItemRecord } from "../db/dbUsedItems"; import { createUsedItemRecord } from "db/dbUsedItems";
const ITEMNAME = 'grenade'; const ITEMNAME = 'grenade';

View File

@@ -1,6 +1,6 @@
import { EventSubChannelChatMessageEvent } from "@twurple/eventsub-base"; import { EventSubChannelChatMessageEvent } from "@twurple/eventsub-base";
import { User } from "../user"; import User from "user";
import { type userType } from "../commands"; import { type userType } from "commands";
export class Item { export class Item {
public readonly name: string; public readonly name: string;
@@ -31,8 +31,8 @@ export class Item {
}; };
import { readdir } from 'node:fs/promises'; import { readdir } from 'node:fs/promises';
import type { userRecord } from "../db/connection"; import type { userRecord } from "db/connection";
import { updateUserRecord } from "../db/dbUser"; import { updateUserRecord } from "db/dbUser";
const items = new Map<string, Item>; const items = new Map<string, Item>;
const emptyInventory: inventory = {}; const emptyInventory: inventory = {};
const itemarray: string[] = []; const itemarray: string[] = [];

View File

@@ -1,11 +1,11 @@
import { changeItemCount, Item } from "."; import { changeItemCount, Item } from "items";
import { sendMessage } from "../commands"; import { sendMessage } from "commands";
import { createTimeoutRecord } from "../db/dbTimeouts"; import { createTimeoutRecord } from "db/dbTimeouts";
import { createUsedItemRecord } from "../db/dbUsedItems"; import { createUsedItemRecord } from "db/dbUsedItems";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import parseCommandArgs from "../lib/parseCommandArgs"; import parseCommandArgs from "lib/parseCommandArgs";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
import { User } from "../user"; import User from "user";
const ITEMNAME = 'silverbullet'; const ITEMNAME = 'silverbullet';

View File

@@ -1,11 +1,11 @@
import { redis } from "bun"; import { redis } from "bun";
import { sendMessage } from "../commands"; import { sendMessage } from "commands";
import { timeout } from "../lib/timeout"; import { timeout } from "lib/timeout";
import { changeItemCount, Item } from "."; import { changeItemCount, Item } from "items";
import { User } from "../user"; import User from "user";
import { getUserRecord } from "../db/dbUser"; import { getUserRecord } from "db/dbUser";
import { createTimeoutRecord } from "../db/dbTimeouts"; import { createTimeoutRecord } from "db/dbTimeouts";
import { createUsedItemRecord } from "../db/dbUsedItems"; import { createUsedItemRecord } from "db/dbUsedItems";
const ITEMNAME = 'tnt'; const ITEMNAME = 'tnt';

View File

@@ -1,6 +1,6 @@
import { updateUserRecord } from "../db/dbUser"; import { updateUserRecord } from "db/dbUser";
import { type userRecord } from "../db/connection"; import { type userRecord } from "db/connection";
import { User } from "../user"; import User from "user";
export async function changeBalance(user: User, userRecord: userRecord, amount: number): Promise<false | userRecord> { export async function changeBalance(user: User, userRecord: userRecord, amount: number): Promise<false | userRecord> {
userRecord.balance = userRecord.balance += amount; userRecord.balance = userRecord.balance += amount;

View File

@@ -1,4 +1,4 @@
import { commandPrefix } from ".."; import { commandPrefix } from "main";
/** Helper function to extract arguments from commands */ /** Helper function to extract arguments from commands */
export default function parseCommandArgs(input: string) { export default function parseCommandArgs(input: string) {

View File

@@ -1,7 +1,7 @@
import { streamerApi, streamerId } from ".."; import { streamerApi, streamerId } from "main";
import logger from "./logger"; import logger from "lib/logger";
import { User } from "../user"; import User from "user";
import { isInvuln } from "./invuln"; import { isInvuln } from "lib/invuln";
type SuccessfulTimeout = { status: true; }; type SuccessfulTimeout = { status: true; };
type UnSuccessfulTimeout = { status: false; reason: 'banned' | 'unknown' | 'illegal'; }; type UnSuccessfulTimeout = { status: false; reason: 'banned' | 'unknown' | 'illegal'; };

View File

@@ -1,7 +1,7 @@
import { redis } from "bun"; import { redis } from "bun";
import { chatterApi } from "."; import { chatterApi } from "main";
import { HelixUser } from "@twurple/api" import { HelixUser } from "@twurple/api"
import logger from "./lib/logger"; import logger from "lib/logger";
const EXPIRETIME = 60 * 60 // 60 minutes const EXPIRETIME = 60 * 60 // 60 minutes
@@ -15,7 +15,7 @@ const EXPIRETIME = 60 * 60 // 60 minutes
// userlookup expiration gets set when user chats or is targeted by another user // userlookup expiration gets set when user chats or is targeted by another user
// vulnchatters only gets set when user chats // vulnchatters only gets set when user chats
export class User { export default class User {
public username!: string; public username!: string;
public id!: string; public id!: string;
public displayName!: string; public displayName!: string;

View File

@@ -1,5 +1,5 @@
import { EventSubChannelChatMessageEvent, EventSubChannelChatMessageDeleteEvent, EventSubChannelBanEvent } from "@twurple/eventsub-base"; import { EventSubChannelChatMessageEvent, EventSubChannelChatMessageDeleteEvent, EventSubChannelBanEvent } from "@twurple/eventsub-base";
import { sendTwitchChatEvent } from "./widgetServerFunctions"; import { sendTwitchChatEvent } from "web/chatWidget/widgetServerFunctions";
export async function addMessageToChatWidget(msg: EventSubChannelChatMessageEvent) { export async function addMessageToChatWidget(msg: EventSubChannelChatMessageEvent) {
await sendTwitchChatEvent({ await sendTwitchChatEvent({

View File

@@ -1,4 +1,4 @@
import { streamerId, chatterApi } from "../.."; import { streamerId, chatterApi } from "main";
import { redis } from "bun"; import { redis } from "bun";
type badgeObject = { type badgeObject = {
@@ -80,8 +80,8 @@ function parseRawBadges(returnobj: badgeObject, data: HelixChatBadgeSet[]) {
}; };
}; };
import server from ".."; import server from "web";
import type { twitchEventData } from "./websockettypes"; import type { twitchEventData } from "web/chatWidget/websockettypes";
export async function sendTwitchChatEvent(event: twitchEventData) { export async function sendTwitchChatEvent(event: twitchEventData) {
server.publish('twitchchat', JSON.stringify(event)); server.publish('twitchchat', JSON.stringify(event));

View File

@@ -43,7 +43,7 @@ async function prefetchImages(urls: string[], maxRetries = 3, retryDelay = 500)
await Promise.all(urls.map(url => loadImage(url))); await Promise.all(urls.map(url => loadImage(url)));
}; };
import { type createMessageEvent } from '../../websockettypes'; import { type createMessageEvent } from 'web/chatWidget/websockettypes';
export function parseMessage(data: createMessageEvent): HTMLDivElement { export function parseMessage(data: createMessageEvent): HTMLDivElement {
const parentDiv = document.createElement('div'); const parentDiv = document.createElement('div');

View File

@@ -1,7 +1,7 @@
import './style.css'; import './style.css';
import '@fontsource/jersey-15'; import '@fontsource/jersey-15';
import { type twitchEventData } from "../../websockettypes"; import { type twitchEventData } from "web/chatWidget/websockettypes";
import { parseMessage } from './createMessage'; import { parseMessage } from './createMessage';
const socket = new WebSocket(`ws://${location.host}`); const socket = new WebSocket(`ws://${location.host}`);

View File

@@ -1,7 +1,7 @@
import logger from "../lib/logger"; import logger from "lib/logger";
import { getBadges, getExternalEmotes } from "./chatWidget/widgetServerFunctions"; import { getBadges, getExternalEmotes } from "web/chatWidget/widgetServerFunctions";
import chatWidget from "./chatWidget/www/index.html"; import chatWidget from "web/chatWidget/www/index.html";
import { sendTwitchChatEvent } from "./chatWidget/widgetServerFunctions"; import { sendTwitchChatEvent } from "web/chatWidget/widgetServerFunctions";
const port = Number(process.env.WEB_PORT); const port = Number(process.env.WEB_PORT);
if (isNaN(port)) { logger.enverr("WEB_PORT"); process.exit(1); }; if (isNaN(port)) { logger.enverr("WEB_PORT"); process.exit(1); };

View File

@@ -1,6 +1,8 @@
{ {
"extends": "./tsconfig.json", "extends": "./tsconfig.json",
"compilerOptions": { "compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"lib": ["DOM", "ES2020"], "lib": ["DOM", "ES2020"],
"types": [] "types": []
}, },

View File

@@ -1,5 +1,18 @@
{ {
"files": [], "files": [],
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"lib/*": ["./lib/*"],
"main": ["./index.ts"],
"user": ["./user.ts"],
"commands": ["./commands/index.ts"],
"items": ["./items/index.ts"],
"cheers": ["./cheers/index.ts"],
"events": ["./events/index.ts"],
"web/*": ["./web/*"]
}
},
"references": [ "references": [
{ "path": "./tsconfig.bot.json" }, { "path": "./tsconfig.bot.json" },
{ "path": "./tsconfig.chatwidget.json" } { "path": "./tsconfig.chatwidget.json" }