KUEID14H / data.js
Adityadn's picture
Upload 8 files
b094f43 verified
const GITHUB_TOKEN = atob(
"Z2l0aHViX3BhdF8xMUFYNEtVTlkwMGFoclFZdjNBRzdLX1MwOW1aOFVDM2VRaTlMNW1mWDk2akdDSWFUaXRuaHJhbEkwSmR4TmRPc2k3Q1RPRUJKTXg4M3NQeExv"
);
const GITHUB_OWNER = "Adityadn64";
const GITHUB_REPO = "KARTU-UCAPAN-EID-1446H";
const URLS_DATAS_FILE_PATH = "d/urlsdatas.json";
async function getURLSDATAs() {
const res = await fetch(
`https://api.github.com/repos/${GITHUB_OWNER}/${GITHUB_REPO}/contents/${URLS_DATAS_FILE_PATH}`,
{
headers: {
Accept: "application/vnd.github+json",
Authorization: `Bearer ${GITHUB_TOKEN}`,
},
}
);
const fileData = await res.json();
let currentURLSDATAs = {};
try {
currentURLSDATAs = JSON.parse(
decodeURIComponent(escape(window.atob(fileData.content)))
);
} catch (e) {
console.error("Error parsing current urlsdatas; using empty object", e);
}
return [currentURLSDATAs, fileData];
}
async function getURLSDATA(urlsdata) {
return (await getURLSDATAs())[0][urlsdata];
}
async function setURLSDATAData(urlsdata, data) {
let [urlsdatasDB, fileData] = await getURLSDATAs();
const bata = urlsdatasDB[urlsdata];
const rbdY =
bata &&
bata.from &&
bata.target &&
bata.option &&
bata.message &&
bata.from === data.from &&
bata.target === data.target &&
bata.option === data.option &&
bata.message === (data.message || "");
const rbdN =
bata &&
bata.from &&
bata.target &&
bata.option &&
bata.message &&
bata.message.trim() !== "" &&
(bata.from !== data.from ||
bata.target !== data.target ||
bata.option !== data.option ||
bata.message === (data.message || ""));
if (bata && rbdN) return [false, urlsdatasDB];
if (!rbdY) {
urlsdatasDB[urlsdata] = data;
await updateURLSDATADataToGitHub(urlsdatasDB, fileData);
}
return [true, urlsdatasDB];
}
async function updateURLSDATADataToGitHub(urlsdataData, fileData) {
try {
if (!fileData) fileData = (await getURLSDATAs())[1];
const sha = fileData.sha;
const newContent = btoa(
unescape(encodeURIComponent(JSON.stringify(urlsdataData, null, 4)))
);
const updateRes = await fetch(
`https://api.github.com/repos/${GITHUB_OWNER}/${GITHUB_REPO}/contents/${URLS_DATAS_FILE_PATH}`,
{
method: "PUT",
headers: {
Accept: "application/vnd.github+json",
Authorization: `Bearer ${GITHUB_TOKEN}`,
},
body: JSON.stringify({
message: "Update urlsdata data",
content: newContent,
sha: sha,
}),
}
);
const result = await updateRes.json();
console.log("Update urlsdata data result:", result, urlsdataData);
} catch (err) {
console.error("Error updating urlsdata data to GitHub:", err);
}
}