mirror of
https://github.com/hpware/news-analyze.git
synced 2025-06-23 13:04:23 +00:00
Merge pull request #13 from hpware/beta
Some checks are pending
Build and Push Latest Image / build-and-push (push) Waiting to run
Some checks are pending
Build and Push Latest Image / build-and-push (push) Waiting to run
Fix kinks & Broken Stars.
This commit is contained in:
commit
8b73983278
8 changed files with 62 additions and 37 deletions
|
@ -8,8 +8,16 @@ const openApp = (link: string) => {
|
|||
</script>
|
||||
<template>
|
||||
<BlurPageBeforeLogin>
|
||||
<div v-if="!favData.items">
|
||||
<div
|
||||
class="absolute inset-0 flex flex-col justify-center align-center text-center"
|
||||
>
|
||||
<h2>{{t("fav.haventaddedyet")}}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="justify-center text-center align-center flex flex-row flex-wrap"
|
||||
v-else
|
||||
>
|
||||
<div v-for="items in favData.items">
|
||||
<div
|
||||
|
|
|
@ -31,6 +31,7 @@ const isGenerating = ref(false);
|
|||
const summaryText = ref("");
|
||||
const { locale } = useI18n();
|
||||
const likeart = ref([]);
|
||||
const staredStatus = ref(false);
|
||||
// Translating logic
|
||||
const translateText = ref(false);
|
||||
const translatedBefore = ref(false);
|
||||
|
@ -105,6 +106,21 @@ const aiSummary = async () => {
|
|||
isGenerating.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
const starArticle = async () => {
|
||||
const buildUrl = `/user/${slug}/fav`;
|
||||
const req = await fetch(buildUrl);
|
||||
const res = await req.json();
|
||||
if (res.status === "success") {
|
||||
staredStatus.value = res.starred;
|
||||
}
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
const req = await fetch(`/user/${slug}/star`);
|
||||
const res = await req.json();
|
||||
staredStatus.value = res;
|
||||
});
|
||||
</script>
|
||||
<template>
|
||||
<div
|
||||
|
@ -173,17 +189,25 @@ const aiSummary = async () => {
|
|||
<div v-else>{{ summaryText }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex flex-col bg-gray-500">
|
||||
<!--<div class="flex flex-col bg-gray-500">
|
||||
<!--Similar articles-->
|
||||
<div class="flex flex-row" v-for="item in likeart">
|
||||
<!--<div class="flex flex-row" v-for="item in likeart">
|
||||
<img /><!--Image-->
|
||||
<div class="flex flex-col">
|
||||
<!--<div class="flex flex-col">
|
||||
<h2>title</h2>
|
||||
<span>description</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button><StarIcon /></button>
|
||||
</div>-->
|
||||
<button
|
||||
@click="starArticle"
|
||||
:class="[
|
||||
'duration-300 transition-all',
|
||||
{ 'fill-blue-500 text-blue-500': staredStatus },
|
||||
]"
|
||||
>
|
||||
<StarIcon />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -11,8 +11,8 @@ const props = defineProps<{
|
|||
}>();
|
||||
|
||||
const openNewWindow = (itemId: string) => {
|
||||
emit("windowopener", "aboutNewsOrg");
|
||||
emit("loadValue", itemId);
|
||||
emit("windowopener", "aboutNewsOrg");
|
||||
};
|
||||
|
||||
const {
|
||||
|
@ -78,9 +78,9 @@ onMounted(async () => {
|
|||
{{ errorMsg }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex flex-row flexw-wrap justify-center gap-2">
|
||||
<div class="flex flex-row flex-wrap justify-center gap-2">
|
||||
<div
|
||||
class="flex flex-col group bg-gray-900/30 rounded-xl p-3 transition-all duration-500 shadow-lg hover:translate-y-[-2px] ransition-all duration-700"
|
||||
class="flex flex-col group bg-gray-900/30 rounded-xl p-3 transition-all shadow-lg hover:translate-y-[-2px] ransition-all duration-500 max-w-1/2"
|
||||
v-for="item in source?.data"
|
||||
:key="item.id"
|
||||
>
|
||||
|
|
|
@ -7,16 +7,6 @@ const error = ref(false);
|
|||
const errorMsg = ref("");
|
||||
const emit = defineEmits(["windowopener", "error", "loadValue"]);
|
||||
|
||||
/**
|
||||
* return {
|
||||
userAccount: fetchViaSQL[0].username,
|
||||
firstName: fetchViaSQL[0].firstName,
|
||||
requested_action: "CONTINUE",
|
||||
current_spot: "KEEP_LOGIN",
|
||||
email: fetchViaSQL[0].email,
|
||||
avatarURL: fetchViaSQL[0].avatarurl,
|
||||
};
|
||||
*/
|
||||
try {
|
||||
// 喔 我沒有加 await :( 難怪有問題
|
||||
const { data, error: sendError } = await useFetch(
|
||||
|
@ -25,11 +15,8 @@ try {
|
|||
if (sendError.value) {
|
||||
error.value = true;
|
||||
}
|
||||
if (data.requested_action === "LOGOUT_USER") {
|
||||
logoutUser();
|
||||
}
|
||||
if (data.requested_action === "CONTINUE") {
|
||||
if (data.userAccount && data.userAccount.length !== 0) {
|
||||
if (data.value.requested_action === "CONTINUE") {
|
||||
if (data.value.userAccount && data.value.userAccount.length !== 0) {
|
||||
allowed.value = true;
|
||||
} else {
|
||||
allowed.value = false;
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
import currentVersion from "~/versionTag";
|
||||
export default async function newestVersion() {
|
||||
export default async function newestVersion() {
|
||||
const current = currentVersion();
|
||||
const req = await fetch("/api/version");
|
||||
if (!req.ok) {
|
||||
console.error("Version check failed:", req.statusText);
|
||||
return true; // fail-closed → pretend we are up-to-date
|
||||
return true; // fail-closed → pretend we are up-to-date
|
||||
}
|
||||
|
||||
const { version: latest } = await req.json();
|
||||
return current === latest; // `true` ➜ up-to-date
|
||||
}
|
||||
return current === latest; // `true` ➜ up-to-date
|
||||
}
|
||||
|
|
|
@ -148,5 +148,8 @@
|
|||
"nosimilararticles": "There aren't any similar articles.",
|
||||
"articleopenpart1": "This will open a open a new window about this new org",
|
||||
"articleopenpart2": ""
|
||||
},
|
||||
"fav": {
|
||||
"haventaddedyet": "You haven't added any favorites yet."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
"license": "授權",
|
||||
"search": "搜尋",
|
||||
"chatbot": "聊天機器人",
|
||||
"starred": "收藏",
|
||||
"starred": "我的最愛",
|
||||
"terminal": "終端機",
|
||||
"aboutNewsOrg": "關於這個新聞來源",
|
||||
"newsview": "新聞",
|
||||
|
@ -146,5 +146,8 @@
|
|||
"nosimilararticles": "找不到類似文章",
|
||||
"articleopenpart1": "會打開關於媒體",
|
||||
"articleopenpart2": "的視窗"
|
||||
},
|
||||
"fav": {
|
||||
"haventaddedyet": "你尚未把新聞加入我的最愛"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
import getUserTokenMinusSQLInjection from "~/server/components/getUserToken";
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const loginCookie = await getUserTokenMinusSQLInjection(event);
|
||||
const userToken = await getUserTokenMinusSQLInjection(event);
|
||||
if (userToken.error.length !== 0) {
|
||||
return {
|
||||
error: userToken.error,
|
||||
};
|
||||
}
|
||||
try {
|
||||
if (false) {
|
||||
deleteCookie(event, "token");
|
||||
return {
|
||||
success: true,
|
||||
error: null,
|
||||
};
|
||||
}
|
||||
return "testing";
|
||||
deleteCookie(event, "token");
|
||||
return {
|
||||
success: true,
|
||||
error: null,
|
||||
};
|
||||
} catch (e) {
|
||||
return {
|
||||
success: false,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue