scratch-site-api
v1.2.1
Published
A modern site api for scratch.mit.edu
Downloads
10
Readme
scratch-site-api
scratch-site-api is a full library for working with the Scratch website with Node.JS
Classes
- User, a user class containing all methods for user accounts
- CloudSession, a class for interacting with cloud data
Methods
User (all methods unless otherwise stated are async)
login
, take a username and password to loginsignOut
, sign out and invalidate the current sessiongetSession
, get information about a sessionchangeCountry
, change account country (Can be any valid country, first letter must be capitalized)changePassword
, change account password, takes the old account password and the new passwordchangeEmail
, change account email, takes the account password and new emailmessages.getMessages
, get account messages, takes an offset and limitmessages.getCount
, get account message countprofile.toggleComments
, toggle commenting on user profileprofile.setStatus
, takes a string to set user's WIWO toprofile.setBio
, takes a string to set user's bio toprofile.setProfilePicture
, takes a buffer and mime type to set user's profile picture tocomments.commentOnUser
, takes a string and username to comment on, also takes a comment id and commentee id for replyingcomments.commentOnProject
, takes a string and project id to comment on, also takes a comment id and commentee id for replyingcloud.createSession
, takes a project id to create a cloud session on
CloudSession
Methods
get
, get a cloud variable, takes a name (with ☁ icon) and returns the valueset
, set a cloud variable, takes a name (with ☁ icon) and value
Events
set
, fired when a cloud variable is set, returns (with ☁ icon) name and valuehandshake
, fired when a handshake with the cloud server is performedpacket
, fired when a packet is recieved, returns the parsed packetoutgoing
, fired when there is an outgoing packet, returns the outgoing packet
Examples
Login as a user and get session info
const Scratch = require("scratch-site-api")
const user = new Scratch.User()
async function main() {
await user.login("username", "password")
console.log(await user.getSession().json)
}
Create a cloud session and log all variables
const Scratch = require("scratch-site-api")
const user = new Scratch.User()
async function main() {
await user.login("username", "password")
const cloud = user.cloud.createSession(12345678)
cloud.on("set", (var, val) => {
console.log(var, val)
})
}
Running the tests
Create a credentials.json file in the tests
folder with a user
and pass
field