+ Started work on rule34.xxx module

This commit is contained in:
Daniel Legt 2021-10-21 01:23:48 +03:00
parent 7f81364ecb
commit 11224096f9
6 changed files with 80 additions and 14 deletions

View File

@ -1,4 +1,9 @@
{
"author": {
"email": "contact@justkato.me",
"name": "Kato Twofold",
"url": "https://justkato.me/"
},
"dependencies": {
"@types/commander": "^2.12.2",
"axios": "^0.23.0",
@ -9,5 +14,8 @@
"devDependencies": {
"@types/node": "^16.11.1",
"@types/yargs": "^17.0.4"
},
"scripts": {
"test": "tsc && node dist/test.js"
}
}

View File

@ -1,9 +0,0 @@
interface Tag {
}
interface Post {
}

View File

@ -1,20 +1,31 @@
import {Post, Tag} from "../type/generic";
/**
* The base class of the scrappers, any of the website scrappers must extend this class
*/
class Scrapper {
export class Scrapper {
constructor(domain: string) {
// Set the domain
this.domain = domain;
};
/**
* An array of all of the logs
*/
public logs: Array<any> = [];
/**
* The fully qualified domain of the website to scrap, for example "rule34.life"
*/
public domain: string = ``;
/**
* Get the details of a specific post
* @param url The URL to the post, this must be the actual page which contains the image, tags, etc...
*/
public async getPostDetails( url: string ): Promise<any> {
return {};
public async getPostDetails( url: string ): Promise<Post | null> {
return null;
}
/**
@ -22,7 +33,7 @@ class Scrapper {
* @param url
* @returns
*/
public async getPostsFrompage( url: string ): Promise<any> {
public async getPostsFromPage( url: string ): Promise<Array<Post>> {
return [];
}

17
src/module/rule34xxx.ts Normal file
View File

@ -0,0 +1,17 @@
import {Post, Tag} from "../type/generic";
import {Scrapper} from "../class/Scrapper";
class Rule34xxx extends Scrapper {
/**
* Get the details of a specific post
* @param url The URL to the post, this must be the actual page which contains the image, tags, etc...
*/
public async getPostDetails( url: string ): Promise<Post | null> {
return null;
}
}

View File

@ -1 +1,2 @@
// This is the test file for the library, different tests are ran in here.
// This is the test file for the library, different tests are ran in here.
console.log(`Working I guess`);

38
src/type/generic.ts Normal file
View File

@ -0,0 +1,38 @@
export interface Tag {
/**
* The slug of the tag, this usually looks something like: hand_holding
*/
slug: string,
/**
* An optional type of the tag
*/
type?: string
}
export interface Post {
/**
* URL to the original post link
*/
url?: string,
/**
* A link to the full resolution image or video
*/
contentURL: string,
/**
* The optional link for the source of the image
*/
source?: string,
/**
* A list of all of the tags the post has
*/
tags: Array<Tag>,
/**
* The date of the post's creation
*/
ts?: string,
}