0.0.92 • Published 3 months ago

multichat-ts v0.0.92

Weekly downloads
-
License
MIT
Repository
github
Last release
3 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

4 months ago

0.0.90

4 months ago

0.0.91

4 months ago

0.0.92

3 months ago

0.0.83

6 months ago

0.0.82

9 months ago

0.0.81

9 months ago

0.0.8

9 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