Added JSDOC
parent
90100709ba
commit
f3b723624d
|
@ -21,7 +21,6 @@ const userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) " +
|
||||||
"AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15";
|
"AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15";
|
||||||
axiosCookieJarSupport(axios);
|
axiosCookieJarSupport(axios);
|
||||||
const cookieJar = new tough.CookieJar();
|
const cookieJar = new tough.CookieJar();
|
||||||
|
|
||||||
const commonConfig = {
|
const commonConfig = {
|
||||||
headers: {
|
headers: {
|
||||||
"User-Agent": userAgent,
|
"User-Agent": userAgent,
|
||||||
|
|
|
@ -66,7 +66,7 @@ module.exports.getGameInfo = async function (url) {
|
||||||
* Parse the game prefixes obtaining the engine used,
|
* Parse the game prefixes obtaining the engine used,
|
||||||
* the advancement status and if the game is actually a game or a mod.
|
* the advancement status and if the game is actually a game or a mod.
|
||||||
* @param {cheerio.Cheerio} body Page `body` selector
|
* @param {cheerio.Cheerio} body Page `body` selector
|
||||||
* @returns {Object} Dictionary of values
|
* @returns {Object.<string, object>} Dictionary of values with keys `engine`, `status`, `mod`
|
||||||
*/
|
*/
|
||||||
function parseGamePrefixes(body) {
|
function parseGamePrefixes(body) {
|
||||||
shared.logger.trace("Parsing prefixes...");
|
shared.logger.trace("Parsing prefixes...");
|
||||||
|
@ -106,7 +106,7 @@ function parseGamePrefixes(body) {
|
||||||
* @private
|
* @private
|
||||||
* Extracts all the possible informations from the title.
|
* Extracts all the possible informations from the title.
|
||||||
* @param {cheerio.Cheerio} body Page `body` selector
|
* @param {cheerio.Cheerio} body Page `body` selector
|
||||||
* @returns {Object} Dictionary of values
|
* @returns {Object.<string, string>} Dictionary of values with keys `name`, `author`, `version`
|
||||||
*/
|
*/
|
||||||
function extractInfoFromTitle(body) {
|
function extractInfoFromTitle(body) {
|
||||||
shared.logger.trace("Extracting information from title...");
|
shared.logger.trace("Extracting information from title...");
|
||||||
|
@ -202,8 +202,10 @@ function extractChangelog(mainPost) {
|
||||||
* @private
|
* @private
|
||||||
* Process the main post text to get all the useful
|
* Process the main post text to get all the useful
|
||||||
* information in the format *DESCRIPTOR : VALUE*.
|
* information in the format *DESCRIPTOR : VALUE*.
|
||||||
|
* Gets "standard" values such as: `Language`, `SupportedOS`, `Censored`, and `LastUpdate`.
|
||||||
|
* All non-canonical values are instead grouped together as a dictionary with the key `Various`.
|
||||||
* @param {String} text Structured text of the post
|
* @param {String} text Structured text of the post
|
||||||
* @returns {Object} Dictionary of information
|
* @returns {Object.<string, object>} Dictionary of information
|
||||||
*/
|
*/
|
||||||
function parseMainPostText(text) {
|
function parseMainPostText(text) {
|
||||||
shared.logger.trace("Parsing main post raw text...");
|
shared.logger.trace("Parsing main post raw text...");
|
||||||
|
@ -274,7 +276,7 @@ function parseMainPostText(text) {
|
||||||
* @private
|
* @private
|
||||||
* Extracts and processes the JSON-LD values found at the bottom of the page.
|
* Extracts and processes the JSON-LD values found at the bottom of the page.
|
||||||
* @param {cheerio.Cheerio} body Page `body` selector
|
* @param {cheerio.Cheerio} body Page `body` selector
|
||||||
* @returns {Object} JSON-LD or `null` if no valid JSON is found
|
* @returns {Object.<string, string>} JSON-LD or `null` if no valid JSON is found
|
||||||
*/
|
*/
|
||||||
function extractStructuredData(body) {
|
function extractStructuredData(body) {
|
||||||
shared.logger.trace("Extracting JSON-LD data...");
|
shared.logger.trace("Extracting JSON-LD data...");
|
||||||
|
|
|
@ -9,6 +9,11 @@ const f95Selector = require("./constants/css-selector.js");
|
||||||
const f95url = require("./constants/url.js");
|
const f95url = require("./constants/url.js");
|
||||||
const UserData = require("./classes/user-data.js");
|
const UserData = require("./classes/user-data.js");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @protected
|
||||||
|
* Gets user data, such as username, url of watched threads, and profile picture url.
|
||||||
|
* @return {UserData} User data
|
||||||
|
*/
|
||||||
module.exports.getUserData = async function() {
|
module.exports.getUserData = async function() {
|
||||||
// Fetch data
|
// Fetch data
|
||||||
const data = await fetchUsernameAndAvatar();
|
const data = await fetchUsernameAndAvatar();
|
||||||
|
@ -24,6 +29,13 @@ module.exports.getUserData = async function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
//#region Private methods
|
//#region Private methods
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* It connects to the page and extracts the name
|
||||||
|
* of the currently logged in user and the URL
|
||||||
|
* of their profile picture.
|
||||||
|
* @return {Object.<string, string>}
|
||||||
|
*/
|
||||||
async function fetchUsernameAndAvatar() {
|
async function fetchUsernameAndAvatar() {
|
||||||
// Fetch page
|
// Fetch page
|
||||||
const html = await networkHelper.fetchHTML(f95url.F95_BASE_URL);
|
const html = await networkHelper.fetchHTML(f95url.F95_BASE_URL);
|
||||||
|
@ -44,6 +56,11 @@ async function fetchUsernameAndAvatar() {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* Gets the list of URLs of threads watched by the user.
|
||||||
|
* @returns {String[]} List of URLs
|
||||||
|
*/
|
||||||
async function fetchWatchedThreadURLs() {
|
async function fetchWatchedThreadURLs() {
|
||||||
// Local variables
|
// Local variables
|
||||||
let currentURL = f95url.F95_WATCHED_THREADS;
|
let currentURL = f95url.F95_WATCHED_THREADS;
|
||||||
|
@ -69,6 +86,12 @@ async function fetchWatchedThreadURLs() {
|
||||||
return wathcedThreadURLs;
|
return wathcedThreadURLs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* Gets the URLs of the watched threads on the page.
|
||||||
|
* @param {cheerio.Cheerio} body Page `body` selector
|
||||||
|
* @returns {String[]}
|
||||||
|
*/
|
||||||
function fetchPageURLs(body) {
|
function fetchPageURLs(body) {
|
||||||
const elements = body.find(f95Selector.WT_URLS);
|
const elements = body.find(f95Selector.WT_URLS);
|
||||||
|
|
||||||
|
@ -82,8 +105,11 @@ function fetchPageURLs(body) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* @private
|
||||||
* @param {cheerio.Cheerio} body
|
* Gets the URL of the next page containing the watched threads
|
||||||
|
* or `null` if that page does not exist.
|
||||||
|
* @param {cheerio.Cheerio} body Page `body` selector
|
||||||
|
* @returns {String}
|
||||||
*/
|
*/
|
||||||
function fetchNextPageURL(body) {
|
function fetchNextPageURL(body) {
|
||||||
const element = body.find(f95Selector.WT_NEXT_PAGE).first();
|
const element = body.find(f95Selector.WT_NEXT_PAGE).first();
|
||||||
|
|
Loading…
Reference in New Issue