mirror of
https://github.com/clarencechaan/ufc-cal.git
synced 2026-10-19 00:38:30 -07:00
Add documentation and comments
This commit is contained in:
1 parent
065ea870da
commit
0b89eadd55
2 files changed
+63
No files matched your search
@@ -2,11 +2,19 @@ import { getAllDetailedEvents } from "./scrape.js";
|
||||
import { writeFileSync } from "fs";
|
||||
import { createEvents } from "ics";
|
||||
|
||||
/**
|
||||
* Extracts the details of recent and near-future UFC events, then creates an
|
||||
* ICS file named "UFC.ics" in the current directory containing these events
|
||||
*
|
||||
* @returns {Promise<void>} - A Promise that resolves when the ICS file is created
|
||||
*/
|
||||
async function createICS() {
|
||||
try {
|
||||
let events = await getAllDetailedEvents();
|
||||
if (!events.length) throw new Error("No events retrieved");
|
||||
|
||||
// Get current date and time to communicate to the user how up-to-date
|
||||
// the event details are
|
||||
let currentDateTime = new Date();
|
||||
let dateTimestr = currentDateTime.toLocaleString("en-US", {
|
||||
month: "short",
|
||||
@@ -17,6 +25,7 @@ async function createICS() {
|
||||
timeZoneName: "short",
|
||||
});
|
||||
|
||||
// Convert event details in the format in accordance with the ICS generator
|
||||
events = events.map((event) => {
|
||||
let date = new Date(parseInt(event.date) * 1000);
|
||||
let start = [
|
||||
@@ -29,6 +38,9 @@ async function createICS() {
|
||||
let duration = { hours: 3 };
|
||||
let title = event.name;
|
||||
let description = "";
|
||||
|
||||
// Distinguish between main card and prelims if this information has been
|
||||
// announced by the UFC, otherwise list all fights without categorizing
|
||||
if (event.fightCard.length)
|
||||
description += event.fightCard.join("\n") + "\n";
|
||||
if (event.mainCard.length)
|
||||
@@ -37,8 +49,10 @@ async function createICS() {
|
||||
if (event.prelims.length)
|
||||
description +=
|
||||
"\nPrelims\n----------\n" + event.prelims.join("\n") + "\n";
|
||||
|
||||
description += "\n" + event.url;
|
||||
description += "\n\nAccurate as of " + dateTimestr;
|
||||
|
||||
let location = event.location;
|
||||
let uid = event.url;
|
||||
let calName = "UFC";
|
||||
@@ -55,6 +69,8 @@ async function createICS() {
|
||||
|
||||
console.log("\nDetailed events:");
|
||||
console.log(events);
|
||||
|
||||
// Create UFC.ics
|
||||
writeFileSync(`UFC.ics`, createEvents(events).value);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
Reference in new issue
Block a user