116 lines
3.7 KiB
JavaScript
116 lines
3.7 KiB
JavaScript
const path = require('path');
|
|
let meetingDocs = require('../bos-tourism-meetings.json');
|
|
let meetings = [];
|
|
let meetingsFiles = [];
|
|
const yaml = require('js-yaml');
|
|
const cheerio = require('cheerio');
|
|
|
|
function convertTimeStr(hh_mm_ampm) {
|
|
if (!hh_mm_ampm) return "";
|
|
let space_parts = hh_mm_ampm.split(" ");
|
|
let time_parts = space_parts[0].split(":");
|
|
time_parts = time_parts.map((time_part) => {
|
|
return parseInt(time_part);
|
|
})
|
|
if (space_parts[1] == "PM") time_parts[0] += 12;
|
|
return (time_parts[0]<10?"0":"") + time_parts[0] + "_" + (time_parts[1]<10?"0":"") + time_parts[1];
|
|
}
|
|
|
|
function getAgencyLongName(agency) {
|
|
switch (agency) {
|
|
case "Russell_BOS": return "Russell County Board of Supervisors";
|
|
case "Russell_Tourism": return "Russell County Tourism Advisory Committee";
|
|
}
|
|
}
|
|
|
|
function getKeyName(doc) {
|
|
if (doc.Agency == "BOS") doc.Agency = "Russell_BOS";
|
|
else if (doc.Agency == "Tourism") doc.Agency = "Russell_Tourism";
|
|
return doc["MeetingDate"] + "_" + convertTimeStr(doc["MeetingTime"])+ "-" + doc["Agency"] + "-" + doc["MeetingName"].replaceAll(" ", "_");
|
|
}
|
|
|
|
function getMeetingFilePath(keyName) {
|
|
return path.join("..", "astro", "src", "content", "meetings", keyName + ".md");
|
|
}
|
|
|
|
// create meetings dictionary
|
|
meetingDocs.forEach(doc => {
|
|
let keyName = getKeyName(doc);
|
|
let fileName = getMeetingFilePath(keyName);
|
|
if (meetingsFiles.indexOf(keyName) == -1) {
|
|
meetingsFiles.push({
|
|
fileName,
|
|
mdContent: {
|
|
frontMatter: {
|
|
title: getAgencyLongName(doc.Agency) + " - " + doc.MeetingName + " - " + doc.MeetingDate + " @ " + doc.MeetingTime + "",
|
|
meetingDate: doc.MeetingDate,
|
|
attachments: [],
|
|
},
|
|
content: "",
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
// go back through and add all of the documents to the meetings in the files
|
|
meetingsFiles = meetingsFiles.map(file => {
|
|
meetingDocs.forEach(doc => {
|
|
let keyName = getKeyName(doc);
|
|
let fileName = getMeetingFilePath(keyName);
|
|
if (fileName == file.fileName) {
|
|
file.mdContent.frontMatter.attachments.push({
|
|
title: doc.DocumentCategory,
|
|
relativePath: doc.Host + doc.AgendaPath + doc.AgendaFile.replace('\'', ''),
|
|
});
|
|
}
|
|
});
|
|
return file;
|
|
});
|
|
|
|
|
|
const trimSlashes = (str) => str.replace(/^\/|\/$/g, '');
|
|
|
|
function getFileExt(file) {
|
|
let ext = path.extname(file.replaceAll('\'', ''));
|
|
if (!ext) {
|
|
if (file.endsWith("RC Tourism Committee Meeting Minutes - July 18 2017 Regular")) {
|
|
return ".pdf";
|
|
}
|
|
if (file.endsWith('_05222023-162') || file.endsWith('_03062023-33') || file.endsWith('_03062023-157')) {
|
|
return ".docx";
|
|
}
|
|
}
|
|
return ext;
|
|
}
|
|
|
|
console.log("@echo off");
|
|
meetingDocs.forEach(doc => {
|
|
let keyName = getKeyName(doc);
|
|
let fileName = getMeetingFilePath(keyName);
|
|
console.log(
|
|
"copy " +
|
|
" \"" +
|
|
path.join(
|
|
"..",
|
|
"..",
|
|
"Web_Site_Archives",
|
|
"Russell_County_Web_Site-latest",
|
|
"russellcountyva.us",
|
|
doc.Host,
|
|
trimSlashes(doc.AgendaPath).replaceAll("/", path.sep),
|
|
doc.AgendaFile.replaceAll('\'', ''),
|
|
) +
|
|
"\" \"" +
|
|
getKeyName(doc) + "-" + doc.DocumentCategory.replaceAll(" ", "_") +
|
|
getFileExt(doc.AgendaFile) +
|
|
"\" " +
|
|
" >> copy-files.log"
|
|
);
|
|
});
|
|
|
|
// meetingsFiles.forEach(file => {
|
|
// //console.log("cp " file.fileName);
|
|
// // console.log("---\n"+yaml.dump(file.mdContent.frontMatter)+"\n---");
|
|
// });
|
|
|