0.0.92 • Published 4 months ago

multichat-ts v0.0.92

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

multichat-ts

Receive type-safe realtime events for chat-related messages on multiple platforms (Twitch, Kick)

Usage

pnpm install multichat-ts # or (npm, bun, deno, etc) install
import { TwitchIRC, KickPusher } from 'multichat-ts';

const twitch_chat = new TwitchIRC();
const kick_chat = new KickPusher();

twitch_chat.connect({
	channelName: 'piratesoftware',
});

kick_chat.connect({
	channelName: 'xqc',
});

// set custom badge assets or external emotes (ffz, bttv, 7tv, etc)
twitch_chat.assets.external_emotes = {
	OMEGALUL: 'https://cdn.frankerfacez.com/emoticon/128054/1',
};

twitch_chat.on('message', (message) => {
	console.log('new twitch message', message.raw_text, message);
});

kick_chat.on('message', (message) => {
	console.log('new twitch message', message.raw_text, message);
});

Example usage with Svelte 5

<script lang="ts">
	import { TwitchIRC, type Message } from 'multichat-ts';

	let messages: Message[] = $state([]);

	const twitch_chat = new TwitchIRC();
	$effect(() => {
		twitch_chat.connect({
			channelName: 'piratesoftware'
		});

		return () => twitch_chat.disconnect();
	});

	twitch_chat.on('message', (message) => {
		messages.push(message);
	});

	twitch_chat.on('clear_messages', (data) => {
		if (data.user !== undefined) {
			messages.filter((message) => message.user.id !== data.user!.id);
		} else {
			messages.filter((message) => message.channel.room_id !== data.channel.room_id);
		}
	});

	twitch_chat.on('delete_message', (message_data) => {
		messages.filter((message) => message.id !== message_data.id);
	});
</script>

<ul>
	{#each messages as message}
		<li>{message.user.display_name}: {message.raw_text}</li>
	{/each}
</ul>

MIT

0.0.84

6 months ago

0.0.85

6 months ago

0.0.86

6 months ago

0.0.87

6 months ago

0.0.89

5 months ago

0.0.90

5 months ago

0.0.91

5 months ago

0.0.92

4 months ago

0.0.83

6 months ago

0.0.82

10 months ago

0.0.81

10 months ago

0.0.8

10 months ago

0.0.7

10 months ago

0.0.6

10 months ago

0.0.5

10 months ago

0.0.4

10 months ago

0.0.3

10 months ago

0.0.2

10 months ago

0.0.1

10 months ago