Skip to content

Commit

Permalink
Update to partially match FujoWebDev#36's series list
Browse files Browse the repository at this point in the history
  • Loading branch information
hkamran80 committed Nov 1, 2023
1 parent 486b1df commit d7d6c20
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 15 deletions.
11 changes: 11 additions & 0 deletions src/series/getters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,17 @@ export const getSeriesDescription = (
return description ? description.trim() : null;
};

export const getSeriesNotes = ($seriesPage: SeriesPage): string | null => {
const notes = $seriesPage("dl.series dd:nth-of-type(5)");
console.log(notes.prevAll().first().text());
if (notes.prevAll().first().text().trim() === "Notes:") {
console.log("Yep");
return notes.html().trim();
} else {
return null;
}
};

export const getSeriesPublishDate = ($seriesPage: SeriesPage): string => {
return $seriesPage("dl.series > dd:nth-of-type(2)").text().trim();
};
Expand Down
21 changes: 13 additions & 8 deletions src/series/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,15 @@ import {
getSeriesBookmarkCount,
getSeriesCompletionStatus,
getSeriesDescription,
getSeriesNotes,
getSeriesPublishDate,
getSeriesTitle,
getSeriesUpdateDate,
getSeriesWordCount,
getSeriesWorkCount,
getSeriesWorks,
} from "./getters";
import { getWorkUrl } from "src/urls";

export const getSeries = async ({
seriesId,
Expand All @@ -20,19 +22,22 @@ export const getSeries = async ({
}): Promise<Series> => {
const seriesPage = await loadSeriesPage(seriesId);

const seriesWorks = getSeriesWorks(seriesPage);

return {
id: seriesId,
title: getSeriesTitle(seriesPage),
name: getSeriesTitle(seriesPage),
begunAt: getSeriesPublishDate(seriesPage),
updatedAt: getSeriesUpdateDate(seriesPage),
authors: getSeriesAuthors(seriesPage),
creators: getSeriesAuthors(seriesPage),
description: getSeriesDescription(seriesPage),
notes: getSeriesNotes(seriesPage),
words: getSeriesWordCount(seriesPage),
stats: {
works: getSeriesWorkCount(seriesPage),
bookmarks: getSeriesBookmarkCount(seriesPage),
},
completed: getSeriesCompletionStatus(seriesPage),
works: getSeriesWorks(seriesPage),
bookmarks: getSeriesBookmarkCount(seriesPage),
complete: getSeriesCompletionStatus(seriesPage),
workCount: getSeriesWorkCount(seriesPage),
works: seriesWorks,
workTitles: seriesWorks.map((work) => work.title),
workUrls: seriesWorks.map((work) => getWorkUrl({ workId: work.id })),
};
};
15 changes: 8 additions & 7 deletions types/entities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,19 +49,20 @@ export interface SeriesWorkSummary

export interface Series {
id: string;
title: string;
name: string;
begunAt: string;
updatedAt: string;
authors: WorkSummary["authors"];
creators: WorkSummary["authors"];
description: string | null;
notes: string | null;
words: number;
stats: {
works: number;
bookmarks: number;
};
completed: boolean;
bookmarks: number;
complete: boolean;

workCount: number;
works: SeriesWorkSummary[];
workTitles: string[]
workUrls: string[]
}

export enum WorkRatings {
Expand Down

0 comments on commit d7d6c20

Please sign in to comment.