await (await fetch("https://jsyr3xmt7nchpjukzohfslxfre.appsync-api.eu-west-1.amazonaws.com/graphql", {
headers: { "x-api-key": "da2-o5lb23etxbe3viqhbquknwoazq" }, // intentionally public
body: JSON.stringify({
operationName: "GetNewArticles",
variables: {
language: "en",
orderBy: "PublishedDate",
orderDirection: "Descending",
checkHiddenOnMainSite: true,
types: [13], // heritage
limit: 999,
offset: 0,
},
query: `query GetNewArticles($language: String = "en", $relatedEventIds: [Int], $relatedCompetitionIds: [String], $types: [Int], $orderBy: OrderByNewArticleEnum = PublishedDate, $orderDirection: OrderDirectionEnum = Descending, $limit: Int, $offset: Int, $relatedEventNameUrlSlug: [String], $relatedDisciplineUrlSlug: [String], $relatedDisciplineCodes: [String], $relatedAthleteUrlSlug: [String], $relatedAthleteIds: [String], $relatedCompetitionUrlSlug: [String], $relatedMinisiteIds: [String], $relatedLocationIds: [String], $relatedCountryCodes: [String], $relatedRegionCodes: [String], $tags: [String], $filterArticleSlug: String, $checkHiddenOnMainSite: Boolean = true, $publishedYear: String) {
getNewArticles(language: $language, relatedEventIds: $relatedEventIds, relatedCompetitionIds: $relatedCompetitionIds, relatedEventNameUrlSlug: $relatedEventNameUrlSlug, relatedDisciplineUrlSlug: $relatedDisciplineUrlSlug, relatedDisciplineCodes: $relatedDisciplineCodes, relatedAthleteUrlSlug: $relatedAthleteUrlSlug, relatedAthleteIds: $relatedAthleteIds, relatedCompetitionUrlSlug: $relatedCompetitionUrlSlug, relatedMinisiteIds: $relatedMinisiteIds, relatedLocationIds: $relatedLocationIds, relatedCountryCodes: $relatedCountryCodes, relatedRegionCodes: $relatedRegionCodes, tags: $tags, types: $types, orderBy: $orderBy, orderDirection: $orderDirection, limit: $limit, offset: $offset, filterArticleSlug: $filterArticleSlug, checkHiddenOnMainSite: $checkHiddenOnMainSite, publishedYear: $publishedYear) {
...ArticleUrlFields
id
title
body
gatedContent
standFirst
standfirst
liveFrom
contentId
urlSlug
backgroundColour
seoDescription
imageEdited
campaignId
relatedUrls
slug
articleType
featureImageId
featureImageEdited
hideOnTheMainSite
sEOTitle: seoTitle
seoTitle
metaDescription: seoDescription
eventId
blogUpdated
liveBlog
language
contentModules {
moduleType
backgroundColor
__typename
}
relatedMedia {
id
fileName
__typename
}
relatedCompetitions {
...ArticleRelatedCompetitions
__typename
}
event {
...ArticleEventUrlFields
__typename
}
relatedEventIds
relatedEvents {
id
name
...ArticleEventUrlFields
__typename
}
relatedCompetitors {
id
iaafId
firstName
lastName
friendlyName
fullName
friendlyNameLetter
friendlyNameFirst3Letter
sexCode
sexName
countryCode
countryName
birthDate
birthPlace
birthPlaceCountryName
sexNameUrlSlug
countryUrlSlug
birthPlaceCountryUrlSlug
birthCountryCode
primaryMediaId
primaryMedia {
fileName
__typename
}
urlSlug
representativeId
biography
twitterLink
instagramLink
facebookLink
transfersOfAllegiance
aaId
countryFullName
familyName
givenName
birthDateStr
facebookUsername
twitterUsername
instagramUsername
__typename
}
relatedCountryCodes
relatedRegionCodes
__typename
}
}
fragment ArticleUrlFields on NewArticle {
articleType
urlSlug
relatedMinisiteIds
relatedMinisitePages {
slug
__typename
}
tags
__typename
}
fragment ArticleEventUrlFields on WAWEvent {
id
eventId_WA
nameUrlSlug
subCategoryNameUrlSlug
categoryCode
endDate
name
countryName
venue
areaName
areaCode
countryCode
indoorOutdoor
categoryCode
categoryName
page {
slug
__typename
}
__typename
}
fragment ArticleRelatedCompetitions on Competition {
id
name
urlSlug
category
__typename
}`
}),
method: "POST",
})).json();
temp1.toReversed().map(a => `* ${a.title.replace('Track & Field', 'Track_&_Field').replace('Hare & Hounds', 'Hare_&_Hounds').replace('Boys and Girls', 'Boys_and_Girls').split(/ (&|\/|and) /).filter(w => !['&', '/', 'and'].includes(w)).map(t => `[[${t}]]`).join(', ')}: ${a.body.split('\n').find(l => l.toLowerCase().includes('plaque categor'))?.split('-').at(-1).split('–').at(-1).replace('</span>', '').replace('</p>', '')}`).join('\n')