File size: 2,743 Bytes
b094f43 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
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);
}
}
|