/ScratchCloud

A powerful Scratch cloud data API library for Node.js

Primary LanguageJavaScriptMIT LicenseMIT

ScratchCloud

ScratchCloud is a new, powerful, Scratch cloud data API for Node.js written by AmazingMech2418!

Features

  • Scratch login session handling
  • Cloud data manipulation
  • Cloud data reading
  • Async/await options (using promises)
  • Ability to wait until a target variable is a certain value (async only)

Examples

Callbacks

// Require module
const {Session, Cloud} = require('scratchcloud');

// Create user session
const session = new Session(process.env.USERNAME, process.env.PASSWORD, function(user) {
  // Create cloud session
  const cloud = new Cloud(user, 458027255, function(error, c) {
    // On error, throw error
    if(error)throw error;
    // Log that the cloud session has started
    console.log("cloud started ")
    // Repeat every second
    setInterval(()=>{
      // Set cloud variable to random number 1 to 10
      c.set('cloud', ''+Math.round(Math.random()*10));
    }, 1000);

    // On change of cloud variable (not including by your Node program), display change
    c.on('set', function(name, value) {
      console.log(name, value);
    });
  })
});

Async

// Require module
const {Session, Cloud} = require('scratchcloud');

// Async function to enable async/await
(async () => {
  // Create user session
  const user = await Session.createAsync(process.env.USERNAME, process.env.PASSWORD);
  // Create cloud session
  const cloud = await Cloud.createAsync(user, 458027255);
  // Repeat every second
  let interval = setInterval(()=>{
    // Set cloud variable to random number 1 to 10
    cloud.set('cloud', ''+Math.round(Math.random()*10));
  }, 1000);
  // On cloud variable change, log the change
  cloud.on('set', (name, value) => {
    console.log(name, value);
  })

  // Wait until cloud variable is 10
  await cloud.waitUntil('cloud', 10);
  // Clear interval for setting cloud variable
  clearInterval(interval);
})();

Other Information

You can use the cloud.get(variableName) to get the value of a cloud variable by name.

Use cloud.vars to get all the names and values of all the cloud variables in a project. All returned variables have the cloud symbol in front of them.

Also, note that you can use the cloud symbol in your variable names, but you do not have to.