diff --git a/.github/workflows/holiday-generator/config.js b/.github/workflows/holiday-generator/config.js index 247a678ab..46ce7235a 100644 --- a/.github/workflows/holiday-generator/config.js +++ b/.github/workflows/holiday-generator/config.js @@ -7,74 +7,81 @@ export const ICS_PATH = join(cwd(), "../../../app/src/main/assets"); // country codes from https://github.com/commenthol/date-holidays?tab=readme-ov-file#supported-countries-states-regions export const COUNTRIES = [ - ["algeria.ics", "DZ"], - ["argentina.ics", "AR"], - ["australia.ics", "AU"], - ["austria.ics", "AT"], - ["belgium.ics", "BE"], - ["bolivia.ics", "BO"], - ["brazil.ics", "BR"], - ["bulgaria.ics", "BG"], - ["canada.ics", "CA"], - ["china.ics", "CN"], - ["colombia.ics", "CO"], - ["costarica.ics", "CR"], - ["croatia.ics", "HR"], - ["czech.ics", "CZ"], - ["denmark.ics", "DK"], - ["estonia.ics", "EE"], - ["finland.ics", "FI"], - ["france.ics", "FR"], - ["germany.ics", "DE"], - ["greece.ics", "GR"], - ["haiti.ics", "HT"], - ["hungary.ics", "HU"], - ["iceland.ics", "IS"], + { file: "algeria.ics", code: "DZ" }, + { file: "argentina.ics", code: "AR" }, + { file: "australiancapitalterritory.ics", code: "AU", state: "ACT" }, + { file: "austria.ics", code: "AT" }, + { file: "belgium.ics", code: "BE" }, + { file: "bolivia.ics", code: "BO" }, + { file: "brazil.ics", code: "BR" }, + { file: "bulgaria.ics", code: "BG" }, + { file: "canada.ics", code: "CA" }, + { file: "china.ics", code: "CN" }, + { file: "colombia.ics", code: "CO" }, + { file: "costarica.ics", code: "CR" }, + { file: "croatia.ics", code: "HR" }, + { file: "czech.ics", code: "CZ" }, + { file: "denmark.ics", code: "DK" }, + { file: "estonia.ics", code: "EE" }, + { file: "finland.ics", code: "FI" }, + { file: "france.ics", code: "FR" }, + { file: "germany.ics", code: "DE" }, + { file: "greece.ics", code: "GR" }, + { file: "haiti.ics", code: "HT" }, + { file: "hungary.ics", code: "HU" }, + { file: "iceland.ics", code: "IS" }, // TODO add India: https://github.com/commenthol/date-holidays/issues/137 - // ["india.ics", ""], - ["indonesia.ics", "ID"], - ["ireland.ics", "IE"], - ["israel.ics", "IL"], - ["italy.ics", "IT"], - ["japan.ics", "jp"], + // {file: "india.ics", code:"IN"}, + { file: "indonesia.ics", code: "ID" }, + { file: "ireland.ics", code: "IE" }, + { file: "israel.ics", code: "IL" }, + { file: "italy.ics", code: "IT" }, + { file: "japan.ics", code: "jp" }, // TODO add Kazakhstan: (no GH issue) - // ["kazakhstan.ics", ""], - ["latvia.ics", "LV"], - ["liechtenstein.ics", "LI"], - ["lithuania.ics", "LT"], - ["luxembourg.ics", "LU"], - ["macedonia.ics", "MK"], - ["malaysia.ics", "MY"], - ["mexico.ics", "MX"], - ["morocco.ics", "MA"], - ["netherlands.ics", "NL"], - ["nicaragua.ics", "NI"], - ["nigeria.ics", "NG"], - ["norway.ics", "NO"], + // {file: "kazakhstan.ics", code:"KZ"}, + { file: "latvia.ics", code: "LV" }, + { file: "liechtenstein.ics", code: "LI" }, + { file: "lithuania.ics", code: "LT" }, + { file: "luxembourg.ics", code: "LU" }, + { file: "macedonia.ics", code: "MK" }, + { file: "malaysia.ics", code: "MY" }, + { file: "mexico.ics", code: "MX" }, + { file: "morocco.ics", code: "MA" }, + { file: "netherlands.ics", code: "NL" }, + { file: "newsouthwales.ics", code: "AU", state: "NSW" }, + { file: "nicaragua.ics", code: "NI" }, + { file: "nigeria.ics", code: "NG" }, + { file: "northernterritory.ics", code: "AU", state: "NT" }, + { file: "norway.ics", code: "NO" }, // TODO add Pakistan: https://github.com/commenthol/date-holidays/pull/138 - // ["pakistan.ics", ""], - ["poland.ics", "PL"], - ["portugal.ics", "PT"], - ["romania.ics", "RO"], - ["russia.ics", "RU"], - ["serbia.ics", "RS"], - ["singapore.ics", "SG"], - ["slovakia.ics", "SK"], - ["slovenia.ics", "SI"], - ["southafrica.ics", "ZA"], - ["southkorea.ics", "KR"], - ["spain.ics", "ES"], + // {file: "pakistan.ics", code: "PK"}, + { file: "poland.ics", code: "PL" }, + { file: "portugal.ics", code: "PT" }, + { file: "queensland.ics", code: "AU", state: "QLD" }, + { file: "romania.ics", code: "RO" }, + { file: "russia.ics", code: "RU" }, + { file: "serbia.ics", code: "RS" }, + { file: "singapore.ics", code: "SG" }, + { file: "slovakia.ics", code: "SK" }, + { file: "slovenia.ics", code: "SI" }, + { file: "southafrica.ics", code: "ZA" }, + { file: "southaustralia.ics", code: "AU", state: "SA" }, + { file: "southkorea.ics", code: "KR" }, + { file: "spain.ics", code: "ES" }, // TODO add Sri Lanka: (no GH issue) - // ["srilanka.ics", ""], - ["sweden.ics", "SE"], - ["switzerland.ics", "CH"], - ["taiwan.ics", "TW"], - ["thailand.ics", "TH"], - ["turkey.ics", "TR"], - ["ukraine.ics", "UA"], - ["unitedkingdom.ics", "GB"], - ["unitedstates.ics", "US"], - ["uruguay.ics", "UY"], + // { file: "srilanka.ics", code: "LK" }, + { file: "sweden.ics", code: "SE" }, + { file: "switzerland.ics", code: "CH" }, + { file: "taiwan.ics", code: "TW" }, + { file: "tasmania.ics", code: "AU", state: "TAS" }, + { file: "thailand.ics", code: "TH" }, + { file: "turkey.ics", code: "TR" }, + { file: "ukraine.ics", code: "UA" }, + { file: "unitedkingdom.ics", code: "GB" }, + { file: "unitedstates.ics", code: "US" }, + { file: "uruguay.ics", code: "UY" }, + { file: "victoria.ics", code: "AU", state: "VIC" }, + { file: "westernaustralia.ics", code: "AU", state: "WA" }, ]; export const START_YEAR = new Date().getFullYear(); // start with current year diff --git a/.github/workflows/holiday-generator/main.js b/.github/workflows/holiday-generator/main.js index 1de710ea3..ac41234b5 100644 --- a/.github/workflows/holiday-generator/main.js +++ b/.github/workflows/holiday-generator/main.js @@ -24,10 +24,11 @@ function log(toLog) { /** * Get events for country given by code * @param {string} countryCode + * @param {string} [stateCode] * @returns */ -function getEvents(countryCode) { - const generator = new Holidays(countryCode); +function getEvents(countryCode, stateCode) { + const generator = new Holidays(countryCode, stateCode); generator.setTimezone("UTC"); const events = []; for (let i = START_YEAR; i <= END_YEAR; i++) { @@ -113,10 +114,11 @@ async function generateIcal(events, countryCode) { * Function generating ical files */ async function doWork() { - for (const [file, code] of COUNTRIES) { - log(`Generating events for ${code}, ${file}`); - const events = getEvents(code); - const ical = await generateIcal(events, code); + for (const {file, code, state} of COUNTRIES) { + const stateCode = state ?? "" + log(`Generating events for ${code} ${stateCode}, ${file}`); + const events = getEvents(code, stateCode); + const ical = await generateIcal(events, code + stateCode); const filePath = join(ICS_PATH, file); await writeFile(filePath, ical, { encoding: "utf-8" }); log(`File saved to ${filePath}`); diff --git a/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt index 087cd657a..6ee984628 100644 --- a/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/calendar/activities/MainActivity.kt @@ -1269,7 +1269,14 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { LinkedHashMap().apply { put("Algeria", "algeria.ics") put("Argentina", "argentina.ics") - put("Australia", "australia.ics") + put("Australia - Australian Capital Territory", "australiancapitalterritory.ics") + put("Australia - New South Wales", "newsouthwales.ics") + put("Australia - Northern Territory", "northernterritory.ics") + put("Australia - Queensland", "queensland.ics") + put("Australia - South Australia", "southaustralia.ics") + put("Australia - Tasmania", "tasmania.ics") + put("Australia - Victoria", "victoria.ics") + put("Australia - Western Australia", "westernaustralia.ics") put("Belgiƫ", "belgium.ics") put("Bolivia", "bolivia.ics") put("Brasil", "brazil.ics")