1# Subcurrent RSS Reader
2
3A React application that displays random posts from the Subcurrent Astro RSS feed.
4
5## Structure
7- `backend/` - Hono API server
8 - `index.ts` - Main entry point with RSS fetching and serving
9- `frontend/` - React UI
10 - `index.html` - Main HTML template
11 - `index.tsx` - React app entry point
12 - `components/App.tsx` - Main app component
13
16- Fetches RSS feed from https://astoria-tech.github.io/subcurrent-astro/
17- Displays a random post from the feed
18- Simple, clean React UI with TailwindCSS styling
10 LINEAR_PRIORITY: 3, // 1=Urgent, 2=High, 3=Medium, 4=Low; default everything created by this bot to 3 - Medium Pri
11 MAX_TITLE_LENGTH: 100,
12 MAX_MESSAGES_TO_CHECK: 50, // Check last 50 messages, you can adjust this based on server activity and how far back you want for reacts to be checked
13} as const;
24 }
25
26 // Simplified findTargetReaction without debugging
27 findTargetReaction(message: any): { reaction: any; createdBy: string } | null {
28 if (!message.reactions) return null;
29
30 for (const reaction of message.reactions) {
31 const emojiName = reaction.emoji.name;
32
33 if (emojiName in CONFIG.TARGET_EMOJIS) {
34 const createdBy = CONFIG.TARGET_EMOJIS[emojiName as keyof typeof CONFIG.TARGET_EMOJIS];
35 return {
36 reaction,
37 createdBy,
38 };
51 formatMessageContent(message: any, discordUrl: string, createdBy: string): string {
52 const messageDate = new Date(message.timestamp);
53 const reactionCount = message.reactions?.reduce((sum: number, r: any) => sum + r.count, 0) || 0;
54
55 let content = `**🎫 Ticket Created By:** ${createdBy}\n\n`;
56 content += `**📨 Original Discord Message:** ${discordUrl}\n\n`;
57 content += `**📅 Posted:** ${messageDate.toLocaleString()}\n`;
58 content += `**👍 Total Reactions:** ${reactionCount}\n\n`;
59
60 if (message.content) {
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import { buildDiscordMessage, categorizeCommits, fetchAndPostCommits, fetchCommits } from "./process-commits.tsx";
3
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import { buildDiscordMessage, categorizeCommits, fetchAndPostCommits, fetchCommits } from "./process-commits.tsx";
3
1/** @jsxImportSource https://esm.sh/react@18.2.0?dev */
2
3export function ValTownLogo () {
1import { useState, useEffect } from "react";
2
3const USER_ENDPOINT = "/api/user";
1import { useEffect } from "react";
2
3export function useUsageStats(messages: any[], usages: any[]) {
1import { useEffect, useRef } from 'https://esm.sh/react@18.2.0?dev';
2
3
1import { useState, useEffect } from "react";
2
3const PROJECT_ENDPOINT = "/api/project";