Fix Jam Operasional Kantor Desa
Fix Agar Token Seafile ga expired cuma 1 hari
This commit is contained in:
@@ -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));
|
||||
});
|
||||
}
|
||||
@@ -138,5 +138,61 @@
|
||||
"deskripsi": "<p>Cerita edukatif yang mengenalkan sains kepada anak dengan bahasa sederhana</p>",
|
||||
"kategoriId": "cmkqb11mc000104jibqh7bdzu",
|
||||
"imageName": "G0iELZb2DhQDCCP5OdzJR-desktop.webp"
|
||||
},
|
||||
{
|
||||
"id": "cml7fq776000104jscnj58sgm",
|
||||
"judul": "Pedagogy of the Oppressed",
|
||||
"deskripsi": "<p>Klasik pemikiran pendidikan kritis; menggali hubungan guru-murid dan peran pendidikan dalam pembebasan sosial</p>",
|
||||
"kategoriId": "cmkqb11mc000104jibq97bdzu",
|
||||
"imageName": "pendidikan-1.webp"
|
||||
},
|
||||
{
|
||||
"id": "cml7fqurm000204js5p60hkym",
|
||||
"judul": "The Courage to Teach",
|
||||
"deskripsi": "<p>Tentang refleksi diri seorang pendidik; cocok untuk pengajar yang ingin lebih dari sekedar “metode mengajar”</p>",
|
||||
"kategoriId": "cmkqb11mc000104jibq97bdzu",
|
||||
"imageName": "pendidikan-2.webp"
|
||||
},
|
||||
{
|
||||
"id": "cml7fqurm000204js5p60hkzn",
|
||||
"judul": "A Brief History of Time",
|
||||
"deskripsi": "<p>Penjelasan kosmologi yang terkenal dunia; sains kompleks dibahas dengan bahasa yang bisa dinikmati pembaca umum</p>",
|
||||
"kategoriId": "cmkqb11mc000104jibqa7bdzu",
|
||||
"imageName": "ilmiah-1.webp"
|
||||
},
|
||||
{
|
||||
"id": "cml7fqurm000204js5p60hkao",
|
||||
"judul": "The Selfish Gene",
|
||||
"deskripsi": "<p>Membawa perspektif baru tentang evolusi melalui “gen” sebagai unit seleksi</p>",
|
||||
"kategoriId": "cmkqb11mc000104jibqa7bdzu",
|
||||
"imageName": "ilmiah-2.webp"
|
||||
},
|
||||
{
|
||||
"id": "cml7fx09c000304jshams3xbg",
|
||||
"judul": "A Little Life",
|
||||
"deskripsi": "<p>Novel yang menggambarkan hidup seorang remaja yang mengalami kehidupan yang sangat sulit</p>",
|
||||
"kategoriId": "cmkqb11mc000104jibqb7bdzu",
|
||||
"imageName": "drama-1.webp"
|
||||
},
|
||||
{
|
||||
"id": "cml7fx09c000304jshams3xch",
|
||||
"judul": "Death of a Salesman",
|
||||
"deskripsi": "<p>Drama teater klasik Amerika tentang harapan, keluarga, dan realitas hidup.</p>",
|
||||
"kategoriId": "cmkqb11mc000104jibqb7bdzu",
|
||||
"imageName": "drama-2.webp"
|
||||
},
|
||||
{
|
||||
"id": "cml7fx09c000304jshams3xdi",
|
||||
"judul": "How Not to Die",
|
||||
"deskripsi": "<p>Panduan berbasis penelitian tentang pola makan untuk mencegah dan menangani penyakit.</p>",
|
||||
"kategoriId": "cmkqb11mc000104jibqg7bdzu",
|
||||
"imageName": "kesehatan-1.webp"
|
||||
},
|
||||
{
|
||||
"id": "cml7fx09c000304jshams3xej",
|
||||
"judul": "The Body Keeps the Score",
|
||||
"deskripsi": "<p>Fokus pada trauma, otak & tubuh; penting untuk memahami kesehatan mental secara mendalam.</p>",
|
||||
"kategoriId": "cmkqb11mc000104jibqg7bdzu",
|
||||
"imageName": "kesehatan-2.webp"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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<DirItem[]> {
|
||||
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<DirItem[]> {
|
||||
}
|
||||
|
||||
async function getDownloadUrl(filePath: string): Promise<string> {
|
||||
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 },
|
||||
|
||||
@@ -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));
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user