Giter Site home page Giter Site logo

chaturbate-browser's Introduction

Chaturbate Browser

build status coverage status dependencies dev dependencies npm version

A wrapper around a headless Chrome instance that intercepts WebSocket messages from Chaturbate.

Requirements

  • Chrome >= version 59

Installation

npm install @paulallen87/chaturbate-browser

Usage

const username = '<username>';
const cb = new ChaturbateBrowser();

cb.on('init', async (e) => {
  console.dir(e.settings);
  console.dir(e.chatSettings);
  console.dir(e.initializerSettings);
  console.log(e.csrftoken);
  console.log(e.hasWebsocket);

  console.log(await cb.fetch(`/api/panel/${e.settings.room}/`));
});

cb.on('message', (e) => {
  console.log(e.timestamp);
  console.log(e.method);
  console.dir(e.args);
});

await cb.start();

cb.profile(username);

setTimeout(() => cb.stop(), 10 * 1000);

Methods

start

Starts the browser instance.

await cb.start();

profile

Navigates the browser to a specific profile page.

cb.profile('my username');

stop

Stops the browser instance.

cb.stop();

fetch

Fetchs the content from a specific URL.

const result = await cb.fetch('/some/url');

wait

Perform an action (form submittion) and wait for page to load.

await cb.wait(async () => {
  await cb.evaluate('document.querySelector(\'form\').submit()')
});

goto

Navigate to a specific page.

await cb.goto('http://www.google.com');

cookies

Get a list of cookies.

const cookies = await cb.cookies();

session

Check if a login session exists.

const loggedIn = await cb.session();

login

Login and create a session.

await cb.login('username', 'password');

purchase

Request a token purchase with BitCoin.

const result = await cb.putchase(100);
console.log(`amount to send: ${result.amount}`)
console.log(`send to: ${result.address}`)

evaluate

Run a script.

const result = await cb.evaluate('document.querySelector(\/title\/).innerText');

Events

login

Called after a login.

cb.on('login', (username) => {
  console.log(`logged in as '${username}'`);
});

profile

Called after a page has loaded.

cb.on('profile', () => {
  console.log(`profile loaded for '${username}'`);
});

profile

Called after a purchase has been setup.

cb.on('purchase', (e) => {
  console.log(`send '${e.amount}' to '${e.address}'`);
});

init

Called after the websocket hook is initialized.

cb.on('init', (e) => {
  const status = e.hasWebsockets ? 'online' : 'offline';
  console.log(`welcome to ${e.settings.room}'s room`);
  console.log(`the broadcaster is ${status}`)
});
params
  • settings (Object)
  • chatSettings (Object)
  • initializerSettings (Object)
  • csrftoken (string)
  • hasWebsocket (boolean)

open

Called when the websocket is being opened.

cb.on('open', () => {
  console.log(`the socket is open`);
});

message

Called when the websocket receives a message.

cb.on('message', (e) => {
  console.log(`method: ${e.method}`);
  console.log(`callback: ${e.callback}`);
  e.args.forEach((arg) => {
    console.log(`arg: ${arg}`);
  });
});
params
  • timestamp (number)
  • method (string)
  • callback (?number)
  • args (Array)

error

Called when the websocket has an error.

cb.on('error', (e) => {
  console.error(`socket error: ${e}`);
});

close

Called when the websocket is closed.

cb.on('close', (e) => {
  console.error(`socket closed`);
});

Tests

npm test

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.