diff --git a/components/app/windows/chatbot.vue b/components/app/windows/chatbot.vue deleted file mode 100644 index 37c0edc..0000000 --- a/components/app/windows/chatbot.vue +++ /dev/null @@ -1,224 +0,0 @@ - - diff --git a/components/app/windows/news.vue b/components/app/windows/news.vue index 265f222..24044c7 100644 --- a/components/app/windows/news.vue +++ b/components/app/windows/news.vue @@ -53,7 +53,7 @@ const contentArray = ref([]); const errorr = ref(false); const switchTabs = ref(false); const tabs = ref([]); -const primary = ref("domestic"); // Hard code default value as top is just pure garbage. +const primary = ref("top"); // This will be later overwritten, so values set here will be useless. const canNotLoadTabUI = ref(false); const isDataCached = ref(false); const pullTabsData = async () => { diff --git a/components/app/windows/newsView.vue b/components/app/windows/newsView.vue index 9469910..c1af880 100644 --- a/components/app/windows/newsView.vue +++ b/components/app/windows/newsView.vue @@ -117,7 +117,7 @@ const starArticle = async () => { }; onMounted(async () => { - const req = await fetch(`/user/${slug}/star`); + const req = await fetch(`/api/user/${slug}/star`); const res = await req.json(); staredStatus.value = res; }); @@ -137,7 +137,7 @@ onMounted(async () => {
@@ -164,10 +164,7 @@ onMounted(async () => { class="justify-center align-center text-center flex flex-col md:flex-row flex-wrap" >
-
- -
-
+

{{ displayTranslatedText @@ -189,6 +186,9 @@ onMounted(async () => { }}

+
+ +
{{ displayTranslatedText ? translateItem[item]?.translateText : item }}
@@ -212,16 +212,6 @@ onMounted(async () => {
{{ summaryText }}
- - -

-
- - -
-
{{ t("app.settings") }} v0.0.3 || Version: {{ getVersionTag() }}
diff --git a/components/app/windows/tos.vue b/components/app/windows/tos.vue deleted file mode 100644 index d5b8323..0000000 --- a/components/app/windows/tos.vue +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/components/app/windows/user.vue b/components/app/windows/user.vue deleted file mode 100644 index bac6dd6..0000000 --- a/components/app/windows/user.vue +++ /dev/null @@ -1,78 +0,0 @@ - - diff --git a/i18n/locales/en.json b/i18n/locales/en.json index a007ac0..dd61c67 100644 --- a/i18n/locales/en.json +++ b/i18n/locales/en.json @@ -45,11 +45,11 @@ "apis": "APIs" }, "description": { - "find": "You can easily find the same topic from different news sources.", - "interface": "Use a desktop like interface, the one that you already got used to.", - "documentation": "We provide a documentation for you to learn how to use the app.", - "opensource": "This platform is open source! minus the database part, but I'm going to try!", - "apis": "We use api's that are made via reverse engineering." + "find": "You can find the same topic from different news sources.", + "interface": "This platform uses a desktop like interface, the one that you already got used to.", + "documentation": "We provide a video for you to learn how to use the basics of the application.", + "opensource": "This platform is open source!", + "apis": "We use api's that are made via reverse engineering, here https://github.com/hpware/reverse_engineering" } } }, @@ -116,16 +116,6 @@ "noadlinetoday": "Provides free, no ads Line today." } }, - "pages": { - "privacypolicy": { - "title": "Privacy Policy", - "content": "Ummmm" - }, - "tos": { - "title": "Terms of service", - "content": "N/A" - } - }, "about": { "why": "Why make this website?", "bulletpoints": { diff --git a/i18n/locales/zh-tw.json b/i18n/locales/zh-tw.json index 963ab15..3f98296 100644 --- a/i18n/locales/zh-tw.json +++ b/i18n/locales/zh-tw.json @@ -48,7 +48,7 @@ "find": "你可以輕鬆地從不同的新聞來源找到相同的主題。", "interface": "這個網站使用類似 Xfce / MacOS / DSM 的介面,讓你可以簡單使用這個網站。", "documentation": "我做了一組教學,讓你可以學會如何使用這個網站 UI。", - "opensource": "這個平台的所有程式碼都放在Github上,沒有開源的資料庫,我會想辦法把它用其他方式開源!", + "opensource": "這個平台的所有程式碼都放在Github上!", "apis": "我們使用LINE Today 的資訊來做出一個 API。" } } diff --git a/pages/desktop.vue b/pages/desktop.vue index 4b37e58..a7b82a9 100644 --- a/pages/desktop.vue +++ b/pages/desktop.vue @@ -51,18 +51,14 @@ import translate from "translate"; import checkAppVersion from "~/components/checkAppVersion"; // Import Windows -import UserWindow from "~/components/app/windows/user.vue"; import SourcesWindow from "~/components/app/windows/sources.vue"; import AboutWindow from "~/components/app/windows/about.vue"; -import ChatbotWindow from "~/components/app/windows/chatbot.vue"; import AboutNewsOrgWindow from "~/components/app/windows/aboutNewsOrg.vue"; import TTYWindow from "~/components/app/windows/tty.vue"; import FavStaredWindow from "~/components/app/windows/fav.vue"; import NewsWindow from "~/components/app/windows/news.vue"; import NewsViewWindow from "~/components/app/windows/newsView.vue"; import SettingsWindow from "~/components/app/windows/settings.vue"; -import PrivacyPolicyWindow from "~/components/app/windows/privacypolicy.vue"; -import TOSWindow from "~/components/app/windows/tos.vue"; import onBoardingWindow from "~/components/app/windows/onBoarding.vue"; // Import Icons @@ -83,7 +79,6 @@ const route = useRoute(); // values const popMessage = ref(null); const menuOpen = ref(false); -2; const currentNavBar = ref([]); const bootingAnimation = ref(true); const activeWindows = ref([]); @@ -107,7 +102,6 @@ const menuItems = [ { name: t("app.news"), windowName: "news" }, { name: t("app.sources"), windowName: "sources" }, { name: t("app.starred"), windowName: "starred" }, - { name: t("app.chatbot"), windowName: "chatbot" }, { name: t("app.about"), windowName: "about" }, { name: t("app.terminal"), windowName: "tty" }, { name: t("app.settings"), windowName: "settings" }, @@ -115,13 +109,6 @@ const menuItems = [ ]; const associAppWindow = [ - { - name: "login", - id: "2", - title: t("app.login"), - component: UserWindow, - translatable: false, - }, { name: "sources", id: "3", @@ -161,15 +148,6 @@ const associAppWindow = [ component: FavStaredWindow, translatable: true, }, - { - name: "chatbot", - id: "8", - title: t("app.chatbot"), - component: ChatbotWindow, - width: "400px", - height: "600px", - translatable: false, - }, { name: "aboutNewsOrg", id: "9", @@ -192,20 +170,6 @@ const associAppWindow = [ component: NewsViewWindow, translatable: true, }, - { - name: "privacypolicy", - id: "12", - title: t("app.privacypolicy"), - component: PrivacyPolicyWindow, - translatable: false, - }, - { - name: "tos", - id: "13", - title: t("app.tos"), - component: TOSWindow, - translatable: false, - }, { name: "onboard", id: "14", @@ -749,7 +713,10 @@ setInterval(async () => { > {{ t("popup.stay") }} - @@ -820,7 +787,8 @@ setInterval(async () => { -
+ + diff --git a/server/api/ai/chat/[slug].ts b/server/api/ai/chat/[slug].ts deleted file mode 100644 index 619cbcb..0000000 --- a/server/api/ai/chat/[slug].ts +++ /dev/null @@ -1,95 +0,0 @@ -import { Groq } from "groq-sdk"; -import sql from "~/server/components/postgres"; - -const groq = new Groq(); - -export default defineEventHandler(async (event) => { - const host = getRequestHost(event); - const protocol = getRequestProtocol(event); - const hears = getRequestHeaders(event); - const slug = getRouterParam(event, "slug"); - const body = await readBody(event); - if (!slug) { - throw createError({ - statusCode: 400, - message: "A UUID is required for this action.", - }); - } - - const getChatHistory = await sql` - select * from chat_history - where uuid = ${slug} - order by created_at asc - `; - - const buildURL = protocol + "://" + host + "/api/news/get/lt/" + "LX30VwG"; - const data = await fetch(buildURL); - const fetchNewsArticle = await data.json(); - - // Set headers for Server-Sent Events - setHeader(event, "Content-Type", "text/plain; charset=utf-8"); - setHeader(event, "Cache-Control", "no-cache"); - setHeader(event, "Connection", "keep-alive"); - setHeader(event, "Access-Control-Allow-Origin", "*"); - - const chatCompletion = await groq.chat.completions.create({ - messages: [ - { - role: "system", - content: `You are a news chat, the following content will be used to chat with the user title: ${fetchNewsArticle.title} article: ${fetchNewsArticle.paragraph} origin: ${fetchNewsArticle.origin} author: ${fetchNewsArticle.author}`, - }, - ...getChatHistory.map((chat) => ({ - role: chat.role, - content: chat.content, - })), - { - role: "user", - content: body.message, - }, - ], - model: "gemma2-9b-it", - temperature: 0.71, - max_completion_tokens: 1024, - top_p: 1, - stream: true, - stop: null, - }); - - /* - await sql` - INSERT INTO chat_history (uuid, role, content) - VALUES (${slug}, 'user', ${body.message}) - `; */ - - let assistantResponse = ""; - - // Create a readable stream - const stream = new ReadableStream({ - async start(controller) { - try { - for await (const chunk of chatCompletion) { - const content = chunk.choices[0]?.delta?.content || ""; - if (content) { - assistantResponse += content; - // Send chunk to client - controller.enqueue(new TextEncoder().encode(content)); - } - } - - /* - if (assistantResponse) { - await sql` - INSERT INTO chat_history (uuid, role, content) - VALUES (${slug}, 'assistant', ${assistantResponse}) - `; - } */ - - controller.close(); - } catch (error) { - controller.error(error); - } - }, - }); - - return sendStream(event, stream); -}); diff --git a/server/api/ai/chat/actions/findUserChatId.ts b/server/api/ai/chat/actions/findUserChatId.ts deleted file mode 100644 index 5f514cb..0000000 --- a/server/api/ai/chat/actions/findUserChatId.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default defineEventHandler(async (event) => { - return { - hello: "hello", - }; -}); diff --git a/server/api/download/news-article-archive.json.ts b/server/api/download/archive.ts similarity index 100% rename from server/api/download/news-article-archive.json.ts rename to server/api/download/archive.ts diff --git a/server_fixes.md b/server_fixes.md deleted file mode 100644 index e6965ce..0000000 --- a/server_fixes.md +++ /dev/null @@ -1,64 +0,0 @@ -# Server Fixed -(This file is NOT related to neighbourhood, but it is some stuff I learned during the down time of the server) - -## Timeline -Aprox. 10 PM UTC+8 - I found out that the server is running an outdated version of the app and tried using `docker compose pull`, but saw 192.168.1.1:53 is not a Server, and tried to fix it, and broke off the connection to the internet. - -11:40-ish PM UTC+8 Server is back online. - -## So what is the issue? -Well, My issue is one of my config files included a "on", which is why the PPPoE conenction does not work anymore. - -Image: -![](/.github/OTHER/ig_story_58m.png) - -And also I wrote a super stupid cron fix, which is below. - -## My stupid cron fix: -Cron Job: -``` -0 * * * * "bun run /hardpushrevolvconf.ts" > /dev/null -``` - -Here is the script I used to force the change of my resolv.conf file: -```typescript -import { file, $ } from "bun"; - -function sendDataToSlack(text: string) { - fetch("{slack_web_hook_to_one_of_my_channels_in_hackclub}", { - method: "POST", - headers: { - "Content-Type": "application-json" - }, - body: JSON.stringify({ text: text }) - }) - return; -} - -const resolvConfPath = "/etc/resolv.conf"; -const resolvConf = file(resolvConfPath); -const resolvConfText = await resolvConf.text(); - -if (resolvConfText.includes("192.168.1.1")) { - // Auto git config - await $`git add .` - await $`git commit -a -m "Auto Commit by the server ${Date().now}, before doing stuff into resolvConf"` - try { - await resolvConf.write("nameserver 8.8.8.8\n"); - sendDataToSlack(`${resolvConfPath} updated successfully.`); - } catch (error) { - sendDataToSlack(`Failed to write to ${resolvConfPath}:`, error); - sendDataToSlack( - "This likely happened because you didn't run the script with root privileges (e.g., 'sudo bun run script.ts')." - ); - } - await $`git add .` - await $`git commit -a -m "Auto Commit by the server ${Date().now}, after doing stuff into resolvConf"` - await $`git push` -} else { - sendDataToSlack( - "Did not find '192.168.1.1'. No changes have been made." - ); -} - -```