From ad88f134aef5e02bcedbc2cee1ffedef57dc7efb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82a=C5=BCej=20Domaga=C5=82a?= Date: Sat, 21 Oct 2023 22:23:19 +0200 Subject: [PATCH 1/5] feat: twtich badges --- api/server.ts | 4 ++-- chat/src/types.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/server.ts b/api/server.ts index a61f7b1..ddd48d7 100644 --- a/api/server.ts +++ b/api/server.ts @@ -14,7 +14,7 @@ export interface IMessage { content: string; emojis: string[]; author: string; - badge: string; + badges: string[]; authorColor: string; } @@ -42,7 +42,7 @@ server.post( content: "Chat reload", author: "System", emojis: [], - badge: "", + badges: [], authorColor: "text-indigo-500", }); } diff --git a/chat/src/types.ts b/chat/src/types.ts index 48fcf3e..963c769 100644 --- a/chat/src/types.ts +++ b/chat/src/types.ts @@ -4,6 +4,6 @@ export interface IMessage { content: string; emojis: string[]; author: string; - badge: string; + badge: string[]; authorColor: string; } From 3631b11970931830731dbf2107879334c70deb31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82a=C5=BCej=20Domaga=C5=82a?= Date: Sun, 22 Oct 2023 13:17:51 +0200 Subject: [PATCH 2/5] feat in progress: auto saving links from twtich --- api/server.ts | 46 ++++++++++++++++++++++++++++++++++++++++++++++ chat/src/types.ts | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/api/server.ts b/api/server.ts index ddd48d7..65fa26d 100644 --- a/api/server.ts +++ b/api/server.ts @@ -80,6 +80,52 @@ server.post( } ); +server.post( + "/api/save-messages/links", + async (request: FastifyRequest, reply: FastifyReply) => { + const message = request.body as IMessage; + + const EXCLUDED_AUTHORS = [ + "StreamElements", + "Streamlabs", + "Nightbot", + "Streamlabs", + "Programmer_Network", + ]; + + if (EXCLUDED_AUTHORS.includes(message.author)) { + return; + } + try { + fs.readFile("links.json", "utf8", (err, data) => { + if (err) { + console.log(err); + } else { + // Parse the file content to an array + const messages = JSON.parse(data || "[]"); + + messages.push(message); + + fs.writeFile( + "links.json", + JSON.stringify(messages), + "utf8", + (err) => { + if (err) { + console.log(err); + } + } + ); + } + }); + } catch (err) { + console.log(err); + } + + reply.send(savedMessages); + } +); + const start = async () => { try { await server.listen({ diff --git a/chat/src/types.ts b/chat/src/types.ts index 963c769..7ef5a5a 100644 --- a/chat/src/types.ts +++ b/chat/src/types.ts @@ -4,6 +4,6 @@ export interface IMessage { content: string; emojis: string[]; author: string; - badge: string[]; + badges: string[]; authorColor: string; } From 3c0957aecec800fb6fc5ea70d4a98a988267fd11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82a=C5=BCej=20Domaga=C5=82a?= Date: Sun, 22 Oct 2023 13:44:27 +0200 Subject: [PATCH 3/5] Revert "feat in progress: auto saving links from twtich" This reverts commit 5dadf808c51b4db8012ac90de2c1603645b7139c. --- api/server.ts | 102 ++++++++++++++------------------------------------ 1 file changed, 28 insertions(+), 74 deletions(-) diff --git a/api/server.ts b/api/server.ts index 65fa26d..b421d03 100644 --- a/api/server.ts +++ b/api/server.ts @@ -1,7 +1,7 @@ import fastify, { - FastifyInstance, - FastifyReply, - FastifyRequest, + FastifyInstance, + FastifyReply, + FastifyRequest, } from "fastify"; import cors from "@fastify/cors"; import fs from "fs"; @@ -24,7 +24,7 @@ const savedMessages: IMessage[] = []; const userColors: { [key: string]: string } = {}; server.register(cors, { - origin: true, + origin: true, }); server.post( @@ -61,82 +61,36 @@ server.post( ); server.get("/api/messages", async (_: FastifyRequest, reply: FastifyReply) => { - reply.send(messages); + reply.send(messages); }); server.post( - "/api/save-message", - async (request: FastifyRequest, reply: FastifyReply) => { - const message = request.body as IMessage; - savedMessages.push(message); - - fs.writeFile("messages.json", JSON.stringify(savedMessages), (err) => { - if (err) { - console.log(err); - } - }); - - reply.send(savedMessages); - } -); - -server.post( - "/api/save-messages/links", - async (request: FastifyRequest, reply: FastifyReply) => { - const message = request.body as IMessage; - - const EXCLUDED_AUTHORS = [ - "StreamElements", - "Streamlabs", - "Nightbot", - "Streamlabs", - "Programmer_Network", - ]; - - if (EXCLUDED_AUTHORS.includes(message.author)) { - return; - } - try { - fs.readFile("links.json", "utf8", (err, data) => { - if (err) { - console.log(err); - } else { - // Parse the file content to an array - const messages = JSON.parse(data || "[]"); - - messages.push(message); - - fs.writeFile( - "links.json", - JSON.stringify(messages), - "utf8", - (err) => { - if (err) { - console.log(err); - } - } - ); - } - }); - } catch (err) { - console.log(err); - } - - reply.send(savedMessages); - } + "/api/save-message", + async (request: FastifyRequest, reply: FastifyReply) => { + const message = request.body as IMessage; + savedMessages.push(message); + + fs.writeFile("messages.json", JSON.stringify(savedMessages), (err) => { + if (err) { + console.log(err); + } + }); + + reply.send(savedMessages); + } ); const start = async () => { - try { - await server.listen({ - port: 3000, - host: "::", - }); - server.log.info(`Server listening on http://localhost:3000/`); - } catch (err) { - server.log.error(err); - process.exit(1); - } + try { + await server.listen({ + port: 3000, + host: "::", + }); + server.log.info(`Server listening on http://localhost:3000/`); + } catch (err) { + server.log.error(err); + process.exit(1); + } }; start(); From cde36d5afe555d3db83534a4fd8d3a781c0b6cd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82a=C5=BCej=20Domaga=C5=82a?= Date: Mon, 23 Oct 2023 10:46:45 +0200 Subject: [PATCH 4/5] fix: badges --- chat/src/Components/Message/Message.tsx | 12 +++++++++++- src/content/Chat.ts | 2 +- src/content/types.ts | 4 ++-- src/content/utils/DOMUtils/index.ts | 15 ++++++++++++--- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/chat/src/Components/Message/Message.tsx b/chat/src/Components/Message/Message.tsx index 27ed340..30b46bb 100644 --- a/chat/src/Components/Message/Message.tsx +++ b/chat/src/Components/Message/Message.tsx @@ -11,7 +11,7 @@ export const Message: FC<{ onAction: (action: string, message: unknown) => void; focusedMessage: IMessage | null; }> = ({ message, focusedMessage, onMessageClick, onAction, filter }) => { - const { content, author } = message; + const { content, author, badges } = message; const [hoveredId, setHoveredId] = useState(""); const handleSaveMessage = (message: IMessage) => { @@ -59,6 +59,16 @@ export const Message: FC<{ } )} > +
+ {badges?.map((badge, index) => ( + {badge} + ))} +
{author} {isHovered && (
diff --git a/src/content/Chat.ts b/src/content/Chat.ts index 62eadee..cc56589 100644 --- a/src/content/Chat.ts +++ b/src/content/Chat.ts @@ -53,7 +53,7 @@ export default class ChatLoader { content, emojis: this.domUtils.getMessageEmojis(chatNode), author: this.domUtils.getMessageAuthor(chatNode), - badge: this.domUtils.getMessageBadges(chatNode), + badges: this.domUtils.getMessageBadges(chatNode), }); }); }); diff --git a/src/content/types.ts b/src/content/types.ts index 4d4fa1c..503ab65 100644 --- a/src/content/types.ts +++ b/src/content/types.ts @@ -4,7 +4,7 @@ export interface IDOMUtils { getMessageText(node: Element): string; getMessageEmojis(node: Element): string[]; getMessageAuthor(node: Element): string; - getMessageBadges(node: Element): string; + getMessageBadges(node: Element): string[]; } export interface IDateTimeUtils { @@ -40,5 +40,5 @@ export interface IMessage { content: string; emojis: string[]; author: string; - badge: string; + badges: string[]; } diff --git a/src/content/utils/DOMUtils/index.ts b/src/content/utils/DOMUtils/index.ts index 56d196e..7eef8dc 100644 --- a/src/content/utils/DOMUtils/index.ts +++ b/src/content/utils/DOMUtils/index.ts @@ -91,11 +91,20 @@ export default class DOMUtils { getMessageBadges(node: Element) { if (!this.selectors.messageAuthorBadge) { - return ""; + return []; } + // return ( + // node.querySelector(this.selectors.messageAuthorBadge) as HTMLImageElement + // )?.src; + return ( - node.querySelector(this.selectors.messageAuthorBadge) as HTMLImageElement - )?.src; + Array.from( + node.querySelectorAll( + this.selectors.messageAuthorBadge + ) as NodeListOf + ).map((img) => img.src) + + ) } } From ac90407856c605a909775361a043110617476c99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82a=C5=BCej=20Domaga=C5=82a?= Date: Mon, 23 Oct 2023 10:48:40 +0200 Subject: [PATCH 5/5] removed commented code --- src/content/utils/DOMUtils/index.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/content/utils/DOMUtils/index.ts b/src/content/utils/DOMUtils/index.ts index 7eef8dc..e906612 100644 --- a/src/content/utils/DOMUtils/index.ts +++ b/src/content/utils/DOMUtils/index.ts @@ -94,10 +94,6 @@ export default class DOMUtils { return []; } - // return ( - // node.querySelector(this.selectors.messageAuthorBadge) as HTMLImageElement - // )?.src; - return ( Array.from( node.querySelectorAll(