diff --git a/.gitignore b/.gitignore
index 3f53968..f9c0eb2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,4 @@ _dt_*.py
# Testing files
test.vue
+100106_lt_test.html
diff --git a/bun.lock b/bun.lock
index c79afba..a9ef13e 100644
--- a/bun.lock
+++ b/bun.lock
@@ -17,6 +17,7 @@
"@vueuse/core": "^13.2.0",
"animate.css": "^4.1.1",
"argon2": "^0.43.0",
+ "axios": "^1.9.0",
"cheerio": "^1.0.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
diff --git a/components/app/windows/aboutNewsOrg.vue b/components/app/windows/aboutNewsOrg.vue
index 6366f83..7346706 100644
--- a/components/app/windows/aboutNewsOrg.vue
+++ b/components/app/windows/aboutNewsOrg.vue
@@ -16,11 +16,13 @@ const props = defineProps({
},
});
+const staticProps = props;
+
const {
data: fetchNewsOrgInfo,
pending,
error,
-} = useFetch(`/api/cached/getData/fetchNewsOrgInfo/${props.values}`, {
+} = useFetch(`/api/publishers/lt/${staticProps.values}`, {
method: "POST",
headers: {
"Content-Type": "application/json",
@@ -73,18 +75,25 @@ watch(
網站
Facebook
+
diff --git a/components/app/windows/privacypolicy.vue b/components/app/windows/privacypolicy.vue
new file mode 100644
index 0000000..9bd1c5e
--- /dev/null
+++ b/components/app/windows/privacypolicy.vue
@@ -0,0 +1,9 @@
+
+
+
+
{{ t("pages.privacypolicy.title") }}
+
{{ t("pages.privacypolicy.content") }}
+
+
diff --git a/components/app/windows/tos.vue b/components/app/windows/tos.vue
new file mode 100644
index 0000000..c05d3dd
--- /dev/null
+++ b/components/app/windows/tos.vue
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/i18n/locales/en.json b/i18n/locales/en.json
index c650e72..5a44d88 100644
--- a/i18n/locales/en.json
+++ b/i18n/locales/en.json
@@ -104,5 +104,15 @@
"checkweirdkeywords": "This tool check if the news title has weird 18+ content.",
"noadlinetoday": "Provides free, no ads Line today."
}
+ },
+ "pages": {
+ "privacypolicy": {
+ "title": "Privacy Policy",
+ "content": "Ummmm"
+ },
+ "tos": {
+ "title": "Terms of service",
+ "content": "N/A"
+ }
}
}
diff --git a/i18n/locales/zh-tw.json b/i18n/locales/zh-tw.json
index fb16b0c..d5f1e78 100644
--- a/i18n/locales/zh-tw.json
+++ b/i18n/locales/zh-tw.json
@@ -104,5 +104,15 @@
"checkweirdkeywords": "這個工具檢查新聞記者是不是使用偏色情的標體 (台灣的很愛用)",
"noadlinetoday": "提供無廣告的LINE Today 新聞"
}
+ },
+ "pages": {
+ "privacypolicy": {
+ "title": "Privacy Policy",
+ "content": "Ummmm"
+ },
+ "tos": {
+ "title": "Terms of service",
+ "content": "N/A"
+ }
}
}
diff --git a/package.json b/package.json
index 9084e2b..5999776 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,7 @@
"@vueuse/core": "^13.2.0",
"animate.css": "^4.1.1",
"argon2": "^0.43.0",
+ "axios": "^1.9.0",
"cheerio": "^1.0.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
diff --git a/pages/desktop.vue b/pages/desktop.vue
index 686f402..a588974 100644
--- a/pages/desktop.vue
+++ b/pages/desktop.vue
@@ -41,8 +41,6 @@ interface minAppWindowInterface {
// Import plugins
import { v4 as uuidv4 } from "uuid";
import { gsap } from "gsap";
-import { TextPlugin } from "gsap/TextPlugin";
-gsap.registerPlugin(TextPlugin);
// Import Windows
import UserWindow from "~/components/app/windows/user.vue";
@@ -56,6 +54,8 @@ 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 Icons
import {
@@ -75,9 +75,7 @@ const route = useRoute();
// values
const popMessage = ref(null);
const menuOpen = ref(false);
-const langMenuOpen = ref(false);
-const lang = ref(locale.value);
-const alertOpen = ref(false);
+2;
const currentNavBar = ref([]);
const bootingAnimation = ref(true);
const activeWindows = ref([]);
@@ -92,13 +90,10 @@ const openingAppViaAnApp = ref(false);
const passedValues = ref();
const globalWindowVal = ref(new Map());
const changeLangAnimation = ref(false);
-const openArticlesArray = ref([]);
-const openArticlesId = ref(0);
-const storeStaticArticleId = ref(0);
// Key Data
const menuItems = [
- { name: t("app.hotnews"), windowName: "hotnews" },
+ // { name: t("app.hotnews"), windowName: "hotnews" },
{ name: t("app.news"), windowName: "news" },
{ name: t("app.sources"), windowName: "sources" },
{ name: t("app.starred"), windowName: "starred" },
@@ -112,7 +107,7 @@ const menuItems = [
const associAppWindow = [
{
- name: "hotnews",
+ name: "googlenews",
id: "1",
title: t("app.hotnews"),
component: HotNewsWindow,
@@ -186,6 +181,18 @@ const associAppWindow = [
title: t("app.newsview"),
component: NewsViewWindow,
},
+ {
+ name: "privacypolicy",
+ id: "12",
+ title: t("app.privacypolicy"),
+ component: PrivacyPolicyWindow,
+ },
+ {
+ name: "tos",
+ id: "13",
+ title: t("app.tos"),
+ component: TOSWindow,
+ },
];
// Date
@@ -488,7 +495,8 @@ const openNewsSourcePage = async (slug: string, title: string) => {
v-model="progress"
class="w-3/5 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"
/>
-
+
+
{{ t("app.launchtext") }}
@@ -591,6 +599,8 @@ const openNewsSourcePage = async (slug: string, title: string) => {
@openArticles="openArticles"
@openNewsSourcePage="openNewsSourcePage"
:values="passedValues"
+ :windows="activeWindows"
+ @closeWindow="closeWindow"
/>
diff --git a/server/api/publishers/lt/[slug].ts b/server/api/publishers/lt/[slug].ts
index 1341b91..0d85246 100644
--- a/server/api/publishers/lt/[slug].ts
+++ b/server/api/publishers/lt/[slug].ts
@@ -1,3 +1,4 @@
+// TODO Add caching
import * as cheerio from "cheerio";
export default defineEventHandler(async (event) => {
@@ -24,8 +25,9 @@ export default defineEventHandler(async (event) => {
.text()
.replace(/.css-.*\}/, "");
const description = html("p.description").text();
+ const logoClue = html("div.editor").contents();
const logo =
- html("div.editor div figure img").attr("srcset") ||
+ logoClue.find("img").attr("srcset") ||
html("div.editor div figure img").attr("src") ||
"";
const bgImage = html("figure.keyVisual img").attr("srcset") || "";
@@ -49,10 +51,11 @@ export default defineEventHandler(async (event) => {
}
});
return {
- name: newsOrgName,
+ title: newsOrgName,
description: description,
logo: logo,
articles: otherArticles,
+ logoClue: String(logoClue),
};
} catch (e) {
console.log(e);