Renamed imports
parent
c31c54aa94
commit
d38cb29de6
|
@ -18,9 +18,9 @@ export interface ILink extends IPostElement {
|
|||
|
||||
//#region Public methods
|
||||
/**
|
||||
* Given the main post of the page (#1) it extracts the information contained.
|
||||
* Given a post of a thread page it extracts the information contained in the body.
|
||||
*/
|
||||
export function parseCheerioMainPost($: cheerio.Root, post: cheerio.Cheerio): IPostElement[] {
|
||||
export function parseF95ThreadPost($: cheerio.Root, post: cheerio.Cheerio): IPostElement[] {
|
||||
// The data is divided between "tag" and "text" elements.
|
||||
// Simple data is composed of a "tag" element followed
|
||||
// by a "text" element, while more complex data (contained
|
||||
|
|
|
@ -7,11 +7,11 @@ import luxon from "luxon";
|
|||
// Modules from file
|
||||
import shared from "../shared.js";
|
||||
import { fetchHTML } from "../network-helper.js";
|
||||
import { getJSONLD, TJsonLD } from "../json-ld.js";
|
||||
import { getJSONLD, TJsonLD } from "./json-ld.js";
|
||||
import { selectors as f95Selector } from "../constants/css-selector.js";
|
||||
import HandiWork from "../classes/handiwork/handiwork.js";
|
||||
import { TRating, IBasic, TAuthor, TExternalPlatform, TEngine, TStatus, TCategory } from "../interfaces.js";
|
||||
import { ILink, IPostElement, parseCheerioMainPost } from "./post-parse.js";
|
||||
import { ILink, IPostElement, parseF95ThreadPost } from "./post-parse.js";
|
||||
|
||||
//#region Public methods
|
||||
/**
|
||||
|
@ -19,7 +19,7 @@ import { ILink, IPostElement, parseCheerioMainPost } from "./post-parse.js";
|
|||
* If you don't want to specify the object type, use `HandiWork`.
|
||||
* @todo It does not currently support assets.
|
||||
*/
|
||||
export async function getPostInformation<T extends IBasic>(url: string): Promise<T | null> {
|
||||
export async function getHandiworkInformation<T extends IBasic>(url: string): Promise<T> {
|
||||
shared.logger.info(`Obtaining post info from ${url}`);
|
||||
|
||||
// Fetch HTML and prepare Cheerio
|
||||
|
@ -31,7 +31,7 @@ export async function getPostInformation<T extends IBasic>(url: string): Promise
|
|||
const mainPost = $(f95Selector.GS_POSTS).first();
|
||||
|
||||
// Extract data
|
||||
const postData = parseCheerioMainPost($, mainPost);
|
||||
const postData = parseF95ThreadPost($, mainPost);
|
||||
const TJsonLD = getJSONLD(body);
|
||||
|
||||
// Fill in the HandiWork element with the information obtained
|
||||
|
@ -170,7 +170,6 @@ function isMod(prefix: string): boolean {
|
|||
}
|
||||
//#endregion Prefix Utility
|
||||
|
||||
|
||||
/**
|
||||
* Compiles a HandiWork object with the data extracted
|
||||
* from the JSON+LD tags related to the object itself.
|
||||
|
|
|
@ -5,7 +5,7 @@ import { IBasic } from "./interfaces.js";
|
|||
import HandiworkSearchQuery from "./classes/query/handiwork-search-query.js";
|
||||
import LatestSearchQuery from "./classes/query/latest-search-query.js";
|
||||
import ThreadSearchQuery from "./classes/query/thread-search-query.js";
|
||||
import { getPostInformation } from "./scrape-data/scrape-thread.js";
|
||||
import { getHandiworkInformation } from "./scrape-data/scrape-thread.js";
|
||||
import executeQuery from "./fetch-data/fetch-query.js";
|
||||
|
||||
export async function search<T extends IBasic>(query: LatestSearchQuery, limit: number): Promise<T[]>
|
||||
|
@ -26,7 +26,7 @@ export default async function search<T extends IBasic>(query: any, limit: number
|
|||
|
||||
// Fetch the data
|
||||
const results = urls.map((url, idx) => {
|
||||
return getPostInformation<T>(url);
|
||||
return getHandiworkInformation<T>(url);
|
||||
});
|
||||
|
||||
return Promise.all(results);
|
||||
|
|
Loading…
Reference in New Issue