|
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);
|
|
}
|
|
}
|
|
|