scribblelive

A node.js library for ScribbleLive

Usage no npm install needed!

<script type="module">
  import scribblelive from 'https://cdn.skypack.dev/scribblelive';
</script>

README

scribblelive-node

A node.js library for ScribbleLive

Install

npm install scribblelive

Objects

Post

{ 
    id: 1234,
    content: 'Hello world',
    creator: { id: 1234, name: 'Jonathan Keebler', avatar: '' },
    is: { comment: false, deleted: false, stuck: false, approved: true },
    source: '',
    type: 'TEXT',
    date: 
    { 
        created: "Wed Jan 21 2015 22:50:36 GMT-0500 (EST)",
        modified: "Wed Jan 21 2015 22:50:36 GMT-0500 (EST)" 
    }
}

Event

{
  count: { comments: 0, posts: 0, syndicated_comments: 0 },
  creator: { name: 'Jonathan Keebler' },
  date: {
    created: Thursday, January 22, 2015 00:57:57.000 GMT-0500,
    end: Thursday, January 22, 2015 03:57:57.000 GMT-0500,
    modified: Thursday, January 22, 2015 00:57:57.000 GMT-0500,
    start: Thursday, January 22, 2015 00:57:57.000 GMT-0500
  },
  description: 'DESCRIPTION',
  id: 1234,
  is: {
    commenting: false,
    deleted: false,
    discussion: false,
    hidden: false,
    live: true,
    moderated: false,
    syndicatable: false,
    syndicated: false
  },
  language: 'en',
  title: 'TITLE'
}

Article

{
  creator: {
    avatar: 'http://avatars.scribblelive.com/2014/3/6/0383af1d-1146-4fa5-af0f-840ec1905384.jpg',
    id: 1,
    name: 'Jonathan Keebler'
  },
  date: { created: Wednesday, January 07, 2015 14:11:59.000 GMT-0500 },
  id: 7890,
  is: { active: true, draft: true, published: false },
  title: 'TITLE',
  snippet: 'BODY TEXT'
}

Usage

Setup

var ScribbleLive = require("scribblelive");
var scribble = new ScribbleLive({
    token: "YOUR_TOKEN",
    credentials: {
        email: "you@example.com",
        password: "YOUR_PASSWORD"
    }
});

References

The following lines are equivalent

scribble.client(1234).event(4567).start();

var client = scribble.client(1234);
client.event(4567).start();

var event = scribble.client(1234).event(4567);
event.start();

Get an existing event

scribble.client(1234).event(5678).get(function(err, event)
{
    ...			
});

Create a new event

scribble.client(1234).create(
{
    title: "YOUR_TITLE"
}, function(err, event)
{
    ...			
});

Add a post

scribble.client(1234).event(5678).post(
{
    content: "Hello world"
}, function(err, post)
{
    ...
});

Get the posts in an event

var options = null; // all posts
options = {page: 10, size: 50}; // posts on page 10 where each page has 50 posts
options = {page: "last", size: 50}; // posts on the last page where each page has 50 posts

scribble.client(1234).event(5678).posts(options).get(function(err, posts)
{
    ...
});

Get a client's events

var options = null; // all events
options = {live: true}; // just the live events
options = {live: true, upcoming: true}; // just the live or upcoming events
options = {max: 10}; // return up to a maximum of 10 events
    
scribble.client(1234).events(options).get(function(err, events)
{
    ...
});

Start an event

scribble.client(1234).event(5678).start(function(err, event)
{
    ...
});

End an event

scribble.client(1234).event(5678).end(function(err, event)
{
    ...
});

Delete an event

scribble.client(1234).event(5678).delete(function(err, success)
{
    ...
});

Get a client's articles

scribble.client(1234).articles({max: 10}).get(function(err, articles)
{
    ...
});

Get an article

scribble.client(1234).article(7890).get(function(err, article)
{
    ...
});

Get a client's metrics

var start = 1411516800000; // supports milliseconds since epoch, date object, "today"
var end = new Date(1412121599000); // OPTIONAL returns metrics for all the days between start and end

scribble.client(1234).metrics().date(start, end).get(function(err, metrics)
{
    // metrics[0] = {engagementminutes: 100, pageviews: 10, uniques: 1};
    ...
});

scribble.client(1234).metrics("pageviews", "uniques").date(start).get(function(err, metrics)
{
    // metrics = {pageviews: 10, uniques: 1};
    ...
});

Get an event's metrics

Total metrics over all time:

scribble.client(1234).event(5678).metrics().get(function(err, metrics)
{
    // metrics = {engagementminutes: 100, pageviews: 10, uniques: 1};
    ...
});

Metrics over a date range:

scribble.client(1234).event(5678).metrics().date(start, end).get(function(err, metrics)
{
    // metrics[0] = {engagementminutes: 100, pageviews: 10, uniques: 1};
    ...
});

Pageviews and uniques on a particular date:

scribble.client(1234).event(5678).metrics("pageviews", "uniques").date(start).get(function(err, metrics)
{
    // metrics = {pageviews: 10, uniques: 1};
    ...
});