4.5.1 • Published 1 year ago

furaffinity-api v4.5.1

Weekly downloads
95
License
ISC
Repository
github
Last release
1 year ago

Important: This project can only be used with Furaffinity's Modern style.

Installation

npm install furaffinity-api

APIs

Form version 4.1.0, you can call any API with their lower case name. (e.g., const {login, search} form "furaffinity-api";)

Login(a: string, b: string)

Login to furaffinity use cookies

import { Login } from "furaffinity-api";
// or
const { Login } = require("furaffinity-api");

// to allow all results to be accessible, add your cookies
Login("cookie_a", "cookie_b");

Search(query: string, options: SearchOptions)

Searching for content:

import { Search, Type } from 'furaffinity-api';

Search('search query', { /** SearchOptions */ type?, rating?, page? }).then(res => {
  // res is an array of Result(s)
  res[0].getSubmission().then(submission => {
    // submission is a Submission
  });
});

Browse(options?: BrowseOptions)

Get results from Browse page:

import { Browse } from "furaffinity-api";

Browse({
  /** BrowseOptions */
}).then((res) => {
  // res is an array of Result(s)
  res[0].getSubmission().then((submission) => {
    // submission is a Submission
  });
});

Submission(id: string)

Looking up a specific submission:

import { Submission } from "furaffinity-api";

Submission("1234567890").then((res) => {
  // res is a Submission
});

User()

Get information of current logged in user:

import { User } from "furaffinity-api";

User().then((user) => {
  // console.log(user);
});

Author(id: string)

Get information of an author:

import { Author, WatchingList } from "furaffinity-api";

Author("user_id").then((res) => {
  // res is an Author
  // Author has id, name, url and avatar(maybe undefined)
  WatchingList(res.id).then((list) => {
    // list is an Author array
  });
});

Gallery(id: string)

Get results from someone's gallery:

import { Gallery } from "furaffinity-api";

Gallery("author_id").then((res) => {
  // res is an array of Result(s)
  res[0].getSubmission().then((submission) => {
    // submission is a Submission
  });
});

Scraps(id: string)

Get results from someone's scraps:

import { Scraps } from "furaffinity-api";

Scraps("author_id").then((res) => {
  // res is an array of Result(s)
  res[0].getSubmission().then((submission) => {
    // submission is a Submission
  });
});

Submissions()

Get results from submissions timeline:

import { Submissions } from "furaffinity-api";

Submissions().then((res) => {
  // res is an array of Result(s)
  res[0].getSubmission().then((submission) => {
    // submission is a Submission
  });
});

WatchingList(id: string)

Get all watching authors of an author(can't get avatar):

import { WatchingList } from "furaffinity-api";

WatchingList("author_id").then((list) => {
  // list is an Author array
});

MyWatchingList()

Login first Get all watching authors of current login user(can get avatar):

import { MyWatchingList } from "furaffinity-api";

MyWatchingList().then((list) => {
  // list is an Author array
});

removeFromInbox()

Login first Remove submissions from submission inbox, only delete when it exists in inbox.:

import { removeFromInbox } from "furaffinity-api";

removeFromInbox(['viewId', 'viewId']);

watchAuthor()

Login first Watch author if haven't watched, no effact when watch yourself:

import { watchAuthor } from "furaffinity-api";

watchAuthor('userId');

unwatchAuthor()

Login first Unwatch author if already watched, no effact when unwatch yourself:

import { unwatchAuthor } from "furaffinity-api";

unwatchAuthor('userId');

toggleWatch()

Login first Request the watch link, link can be found from IAuthor, toggle watching state:

import { toggleWatch } from "furaffinity-api";

toggleWatch('https://www.furaffinity.net/watch/userid/?key=033d7e8f2860f80850557df7ed99120ac9f926e3');

Test

Please improve the test configuration /tests/jest.config.ts before testing.

export const options: ITestConfig = {
  loginOptions: {
    cookieA: "your cookie a", // your cookies
    cookieB: "your cookie b"
  },
  watchOptions: {
    userId: "your userid",
    shouldContainUserId: "userid you are watching"
  },
  authorOptions: {
    userId: "your favorite author's userid"
  }
};

Then run:

npm run test

Special Thanks

License

ISC

4.5.0

1 year ago

4.4.3

1 year ago

4.5.1

1 year ago

4.4.2

2 years ago

4.3.2

2 years ago

4.4.0

2 years ago

4.3.3

2 years ago

4.3.1

2 years ago

4.3.0

2 years ago

4.2.0

2 years ago

4.1.0

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

3.5.1

3 years ago

3.5.0

4 years ago

3.4.9

4 years ago

3.4.8

4 years ago

3.4.7

4 years ago

3.4.6

4 years ago

3.4.5

4 years ago

3.4.4

4 years ago

3.4.3

4 years ago

3.4.2

4 years ago

3.4.1

4 years ago

3.4.0

4 years ago

3.3.0

4 years ago

3.2.0

4 years ago

3.1.0

5 years ago