From bbd52fb6f551b802765f60878059882471d63a85 Mon Sep 17 00:00:00 2001 From: nico Date: Wed, 4 Feb 2026 11:47:56 +0800 Subject: [PATCH] Fix Jam Operasional Kantor Desa Fix Agar Token Seafile ga expired cuma 1 hari --- bun.lockb | Bin 427025 -> 427426 bytes package.json | 1 + .../pendidikan/seed_data_perpustakaan.ts | 9 ++ .../perpustakaan-digital.json | 56 +++++++++ prisma/lib/get_images.ts | 17 ++- prisma/seed_assets.ts | 18 +-- .../[kategoriBuku]/content.tsx | 12 +- .../_com/main-page/landing-page/index.tsx | 2 +- src/lib/seafile-auth-service.ts | 109 ++++++++++++++++++ 9 files changed, 207 insertions(+), 17 deletions(-) create mode 100644 src/lib/seafile-auth-service.ts diff --git a/bun.lockb b/bun.lockb index 68d46c85bf283a2e9e48c587044216c81b1b8ca5..a862a5a44b08d47b51847589438c0206e45bcdd7 100755 GIT binary patch delta 79013 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 KD}$W{9RDBD5jE!k delta 77824 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 diff --git a/package.json b/package.json index 2cfb90fb..065dc1c1 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "add": "^2.0.6", "adm-zip": "^0.5.16", "animate.css": "^4.1.1", + "async-mutex": "^0.5.0", "bcryptjs": "^3.0.2", "bun": "^1.2.2", "chart.js": "^4.4.8", diff --git a/prisma/_seeder_list/pendidikan/seed_data_perpustakaan.ts b/prisma/_seeder_list/pendidikan/seed_data_perpustakaan.ts index 33774f75..5ee80718 100644 --- a/prisma/_seeder_list/pendidikan/seed_data_perpustakaan.ts +++ b/prisma/_seeder_list/pendidikan/seed_data_perpustakaan.ts @@ -60,3 +60,12 @@ export async function seedDataPerpustakaan() { } console.log("✅ Data perpustakaan seeded successfully"); } +if (import.meta.main) { + seedDataPerpustakaan() + .then(() => { + console.log("seed data perpustakaan success"); + }) + .catch((err) => { + console.log("gagal seed data perpustakaan", JSON.stringify(err)); + }); +} \ No newline at end of file diff --git a/prisma/data/pendidikan/perpustakaan-digital/perpustakaan-digital.json b/prisma/data/pendidikan/perpustakaan-digital/perpustakaan-digital.json index b49b5298..abfe70cd 100644 --- a/prisma/data/pendidikan/perpustakaan-digital/perpustakaan-digital.json +++ b/prisma/data/pendidikan/perpustakaan-digital/perpustakaan-digital.json @@ -138,5 +138,61 @@ "deskripsi": "

Cerita edukatif yang mengenalkan sains kepada anak dengan bahasa sederhana

", "kategoriId": "cmkqb11mc000104jibqh7bdzu", "imageName": "G0iELZb2DhQDCCP5OdzJR-desktop.webp" + }, + { + "id": "cml7fq776000104jscnj58sgm", + "judul": "Pedagogy of the Oppressed", + "deskripsi": "

Klasik pemikiran pendidikan kritis; menggali hubungan guru-murid dan peran pendidikan dalam pembebasan sosial

", + "kategoriId": "cmkqb11mc000104jibq97bdzu", + "imageName": "pendidikan-1.webp" + }, + { + "id": "cml7fqurm000204js5p60hkym", + "judul": "The Courage to Teach", + "deskripsi": "

Tentang refleksi diri seorang pendidik; cocok untuk pengajar yang ingin lebih dari sekedar “metode mengajar”

", + "kategoriId": "cmkqb11mc000104jibq97bdzu", + "imageName": "pendidikan-2.webp" + }, + { + "id": "cml7fqurm000204js5p60hkzn", + "judul": "A Brief History of Time", + "deskripsi": "

Penjelasan kosmologi yang terkenal dunia; sains kompleks dibahas dengan bahasa yang bisa dinikmati pembaca umum

", + "kategoriId": "cmkqb11mc000104jibqa7bdzu", + "imageName": "ilmiah-1.webp" + }, + { + "id": "cml7fqurm000204js5p60hkao", + "judul": "The Selfish Gene", + "deskripsi": "

Membawa perspektif baru tentang evolusi melalui “gen” sebagai unit seleksi

", + "kategoriId": "cmkqb11mc000104jibqa7bdzu", + "imageName": "ilmiah-2.webp" + }, + { + "id": "cml7fx09c000304jshams3xbg", + "judul": "A Little Life", + "deskripsi": "

Novel yang menggambarkan hidup seorang remaja yang mengalami kehidupan yang sangat sulit

", + "kategoriId": "cmkqb11mc000104jibqb7bdzu", + "imageName": "drama-1.webp" + }, + { + "id": "cml7fx09c000304jshams3xch", + "judul": "Death of a Salesman", + "deskripsi": "

Drama teater klasik Amerika tentang harapan, keluarga, dan realitas hidup.

", + "kategoriId": "cmkqb11mc000104jibqb7bdzu", + "imageName": "drama-2.webp" + }, + { + "id": "cml7fx09c000304jshams3xdi", + "judul": "How Not to Die", + "deskripsi": "

Panduan berbasis penelitian tentang pola makan untuk mencegah dan menangani penyakit.

", + "kategoriId": "cmkqb11mc000104jibqg7bdzu", + "imageName": "kesehatan-1.webp" + }, + { + "id": "cml7fx09c000304jshams3xej", + "judul": "The Body Keeps the Score", + "deskripsi": "

Fokus pada trauma, otak & tubuh; penting untuk memahami kesehatan mental secara mendalam.

", + "kategoriId": "cmkqb11mc000104jibqg7bdzu", + "imageName": "kesehatan-2.webp" } ] diff --git a/prisma/lib/get_images.ts b/prisma/lib/get_images.ts index fc7812b9..dc5421ae 100644 --- a/prisma/lib/get_images.ts +++ b/prisma/lib/get_images.ts @@ -1,3 +1,5 @@ +import { getValidAuthToken } from "../../src/lib/seafile-auth-service"; + type DirItem = { type: "file" | "dir"; name: string; @@ -5,7 +7,6 @@ type DirItem = { size?: number; }; -const TOKEN = process.env.SEAFILE_TOKEN!; const REPO_ID = process.env.SEAFILE_REPO_ID!; // ⛔ PENTING: RELATIVE PATH (tanpa slash depan) @@ -13,11 +14,12 @@ const DIR_TARGET = "asset-web"; const BASE_URL = process.env.SEAFILE_URL; -const headers = { - Authorization: `Token ${TOKEN}`, -}; - async function getDirItems(): Promise { + const token = await getValidAuthToken(); + const headers = { + Authorization: `Token ${token}`, + }; + const res = await fetch(`${BASE_URL}/repos/${REPO_ID}/dir/?p=${DIR_TARGET}`, { headers, }); @@ -30,6 +32,11 @@ async function getDirItems(): Promise { } async function getDownloadUrl(filePath: string): Promise { + const token = await getValidAuthToken(); + const headers = { + Authorization: `Token ${token}`, + }; + const res = await fetch( `${BASE_URL}/repos/${REPO_ID}/file/?p=${encodeURIComponent(filePath)}&reuse=1`, { headers }, diff --git a/prisma/seed_assets.ts b/prisma/seed_assets.ts index 3b51b2d0..52e71e27 100644 --- a/prisma/seed_assets.ts +++ b/prisma/seed_assets.ts @@ -38,12 +38,12 @@ export default async function seedAssets() { console.log("🎉 Image seeding completed"); } -// if (import.meta.main) { -// seedAssets() -// .then(() => { -// console.log("seed assets success"); -// }) -// .catch((err) => { -// console.log("gagal seed assets", JSON.stringify(err)); -// }); -// } +if (import.meta.main) { + seedAssets() + .then(() => { + console.log("seed assets success"); + }) + .catch((err) => { + console.log("gagal seed assets", JSON.stringify(err)); + }); +} diff --git a/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/[kategoriBuku]/content.tsx b/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/[kategoriBuku]/content.tsx index 5cc017f7..eced7c77 100644 --- a/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/[kategoriBuku]/content.tsx +++ b/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/[kategoriBuku]/content.tsx @@ -19,19 +19,27 @@ function Content({ kategoriBuku }: { kategoriBuku: string }) { const searchQuery = searchParams.get('search') || ''; const router = useTransitionRouter() + // Convert kebab-case back to original category name format + // This reverses the transformation done in layoutTabs: item.name.toLowerCase().replace(/\s+/g, '-') + const convertKebabCaseToOriginal = (kebabStr: string): string => { + // Replace hyphens with spaces + return kebabStr.replace(/-/g, ' '); + }; + const decodedKategoriBuku = decodeURIComponent(kategoriBuku); + const originalKategoriName = convertKebabCaseToOriginal(decodedKategoriBuku); const loadData = useCallback(async (searchQuery: string = '', page: number = 1) => { try { setIsLoading(true); - const currentKategoriFilter = decodedKategoriBuku.toLowerCase() === 'semua' ? '' : decodedKategoriBuku; + const currentKategoriFilter = decodedKategoriBuku.toLowerCase() === 'semua' ? '' : originalKategoriName; await state.dataPerpustakaan.findMany.load(page, 3, searchQuery, currentKategoriFilter); setCurrentPage(page); setTotalPages(state.dataPerpustakaan.findMany.totalPages); } finally { setIsLoading(false); } - }, [state.dataPerpustakaan.findMany, decodedKategoriBuku]); + }, [state.dataPerpustakaan.findMany, originalKategoriName, decodedKategoriBuku]); useShallowEffect(() => { loadData(searchQuery); diff --git a/src/app/darmasaba/_com/main-page/landing-page/index.tsx b/src/app/darmasaba/_com/main-page/landing-page/index.tsx index 63655d68..7b205b5d 100644 --- a/src/app/darmasaba/_com/main-page/landing-page/index.tsx +++ b/src/app/darmasaba/_com/main-page/landing-page/index.tsx @@ -123,7 +123,7 @@ const getWorkStatus = (day: string, currentTime: string): { status: string; mess let workHoursMessage = ""; if (["Senin", "Selasa", "Rabu", "Kamis"].includes(day)) { - workHoursMessage = "07:30 - 15:10"; + workHoursMessage = "07:30 - 15:30"; } else if (day === "Jumat") { workHoursMessage = "07:30 - 12:00"; } diff --git a/src/lib/seafile-auth-service.ts b/src/lib/seafile-auth-service.ts new file mode 100644 index 00000000..0c9eeecd --- /dev/null +++ b/src/lib/seafile-auth-service.ts @@ -0,0 +1,109 @@ +import { Mutex } from 'async-mutex'; + +// Store the token and its expiration time +let authToken: string | null = null; +let tokenExpirationTime: number | null = null; + +// Mutex to prevent multiple simultaneous token refresh attempts +const mutex = new Mutex(); + +// Function to authenticate with Seafile and get a new token +async function authenticateWithSeafile(): Promise<{token: string, expirationTime: number}> { + // First, check if we have a static token as fallback + const staticToken = process.env.SEAFILE_TOKEN; + if (staticToken) { + console.log("Using static SEAFILE_TOKEN from environment variables"); + // For static tokens, we'll set a conservative expiration (e.g., 6 days) to force periodic refresh attempts + const conservativeExpiration = Date.now() + (6 * 24 * 60 * 60 * 1000); // 6 days from now + return { + token: staticToken, + expirationTime: conservativeExpiration + }; + } + + // Otherwise, use username/password to get a new token + const username = process.env.SEAFILE_USERNAME; + const password = process.env.SEAFILE_PASSWORD; + const baseUrl = process.env.SEAFILE_URL; + + if (!username || !password || !baseUrl) { + throw new Error('Missing required Seafile environment variables (either SEAFILE_TOKEN or SEAFILE_USERNAME/SEAFILE_PASSWORD/SEAFILE_URL)'); + } + + const response = await fetch(`${baseUrl}/api2/auth-token/`, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + body: new URLSearchParams({ + username, + password, + // Note: Seafile tokens typically last 7 days by default, but we'll refresh earlier + }).toString(), + }); + + if (!response.ok) { + throw new Error(`Authentication failed: ${response.status} ${response.statusText}`); + } + + const data = await response.json(); + + // Calculate expiration time (set to refresh 1 hour before actual expiration) + // Seafile tokens typically last 7 days (604800 seconds), so we refresh after 6 days and 23 hours (601200 seconds) + const refreshTokenThreshold = 601200; // 6 days and 23 hours in seconds + const expirationTime = Date.now() + (refreshTokenThreshold * 1000); + + return { + token: data.token, + expirationTime + }; +} + +// Function to get a valid authentication token +export async function getValidAuthToken(): Promise { + // Check if we have a valid token that hasn't expired + if (authToken && tokenExpirationTime && Date.now() < tokenExpirationTime) { + return authToken; + } + + // Acquire lock to prevent multiple simultaneous refresh attempts + return mutex.runExclusive(async () => { + // Double-check after acquiring the lock + if (authToken && tokenExpirationTime && Date.now() < tokenExpirationTime) { + return authToken; + } + + // Get a new token + const { token, expirationTime } = await authenticateWithSeafile(); + + // Update the stored token and expiration time + authToken = token; + tokenExpirationTime = expirationTime; + + console.log('New Seafile token acquired and cached'); + + return token; + }); +} + +// Function to force refresh the token (useful for manual refresh or testing) +export async function refreshAuthToken(): Promise { + return mutex.runExclusive(async () => { + const { token, expirationTime } = await authenticateWithSeafile(); + + // Update the stored token and expiration time + authToken = token; + tokenExpirationTime = expirationTime; + + console.log('Seafile token refreshed'); + + return token; + }); +} + +// Function to check if the token is still valid +export function isTokenValid(): boolean { + return authToken !== null && + tokenExpirationTime !== null && + Date.now() < tokenExpirationTime; +} \ No newline at end of file -- 2.49.1