diff --git a/src/works/index.ts b/src/works/index.ts index 06f35d6..9eddaca 100644 --- a/src/works/index.ts +++ b/src/works/index.ts @@ -14,6 +14,7 @@ import { getChapterName, getChapterSummary, getWorkAdditionalTags, + getWorkAdult, getWorkAuthors, getWorkBookmarkCount, getWorkCategory, @@ -66,8 +67,7 @@ export const getWork = async ({ language: getWorkLanguage(workPage), rating: getWorkRating(workPage), category: getWorkCategory(workPage), - // TODO: figure out how to get this - adult: false, + adult: getWorkAdult(workPage), fandoms: getWorkFandoms(workPage), tags: { warnings: getWorkWarnings(workPage), diff --git a/src/works/work-getters.ts b/src/works/work-getters.ts index a56ce5d..1f9588e 100644 --- a/src/works/work-getters.ts +++ b/src/works/work-getters.ts @@ -191,6 +191,11 @@ export const getWorkLocked = ($workPage: WorkPage) => { return !!$workPage("#signin > .heading").text(); }; +export const getWorkAdult = ($workPage: WorkPage): boolean => { + const adultCategories: WorkRatings[] = [WorkRatings.EXPLICIT, WorkRatings.MATURE, WorkRatings.NOT_RATED]; + return adultCategories.includes(getWorkRating($workPage)); +} + // Chapter-specific (must be multi-chapter fic) export const getChapterIndex = ( $workPage: WorkPage diff --git a/tests/work-chapter.test.ts b/tests/work-chapter.test.ts index 81d2dcf..c3cfcd7 100644 --- a/tests/work-chapter.test.ts +++ b/tests/work-chapter.test.ts @@ -22,7 +22,7 @@ describe("Fetches chapter of work", () => { language: "English", rating: "Not Rated", category: null, - adult: false, + adult: true, fandoms: ["Batman - All Media Types"], tags: { warnings: ["Creator Chose Not To Use Archive Warnings"],