Skip to main content

ScratchLink is a simple Python Library to get the data of Scratch using the Scratch API. This library is simple to use. This library need no login!

Project description

ScratchLink v1.0.1

Introduction

ScratchLink is a simple Python Library to get the data of Scratch using the Scratch API. This library is simple to use. This library need no login!

Installation

To use this library you must need to install the Python Programming Language. If you have already installed Python then type the following in the Terminal (Command Prompt):

pip install scratchlink

Import

To import scratchlink, use the following code:

import scratchlink  # Import Library

scratch = scratchlink.ScratchLink()  # Create an object of the ScratchLink class

Getting The Data

Front Page Data

To get the front page data of Scratch Website, run the following Program:

import scratchlink

scratch = scratchlink.ScratchLink()
front_page = scratch.link_frontpage()  # Connect the front page

front_page.health()  # Get the health of the website
front_page.news()  # Get the news of the website
front_page.front_page_projects()  # Get the front page projects of the website
front_page.explore_projects(mode="trending", query="*")  # Explore the projects
front_page.explore_studios(mode="trending", query="*")  # Explore the studios
front_page.search_projects(mode="trending", search="*")  # Search the projects
front_page.search_studios(mode="trending", search="*")  # Search the studios

User Data

To get the user data, run the following Program:

import scratchlink

scratch = scratchlink.ScratchLink()
user = scratch.link_user(username="Sid72020123")  # Connect a Scratch User

user.id()  # Returns the ID of the user
user.thumbnail_url()  # Returns the thumbnail URL of a user
user.messages_count()  # Returns the messages count of the user
user.work()  # Returns the 'What I am working on' of a Scratch profile
user.bio()  # Returns the 'About me' of a Scratch profile
user.status()  # Returns the status(Scratcher or New Scratcher) of a Scratch profile
user.joined_date()  # Returns the joined date of a Scratch profile
user.country()  # Returns the country of a Scratch profile
user.featured_data()  # Returns the featured project data of the Scratch profile
user.projects()  # Returns the list of shared projects of a user
user.followers_count()  # Returns the follower count of a user
user.following_count()  # Returns the following count of a user
user.total_views_count()  # Returns the total views count of all the shared projects of a user
user.total_loves_count()  # Returns the total loves count of all the shared projects of a user
user.total_favourites_count()  # Returns the total favourites count of all the shared projects of a user
user.following()  # Returns the list of the user following
user.followers()  # Returns the list of the user followers
user.favourites()  # Returns the list of the user favourites
user.user_follower_history()  # Return the follower history of the user
user.all_data()  # Returns all the data of the user
user.comments(limit=5, page=1)  # Get comments of the profile of the user
user.pretty_print_user_data()  # Pretty print the user data
##########################################################################
# IMPORTANT NOTE: To always get the updated data use the update_data() function
##########################################################################
user.update_data()  # Update the data

Studio Data

To get the studio data, run the following Program:

import scratchlink

scratch = scratchlink.ScratchLink()
studio = scratch.link_studio(studio_id=1)  # Connect a Scratch Studio

studio.id()  # Returns the studio ID
studio.title()  # Returns the studio title
studio.host_id()  # Returns the studio owner/host ID
studio.description()  # Returns the studio description
studio.visibility()  # Returns the studio visibility
studio.is_public()  # Returns whether a studio is public
studio.is_open_to_all()  # Returns whether a studio is open to all
studio.are_comments_allowed()  # Returns whether a studio has comments allowed
studio.history()  # Returns the history of the studio
studio.stats()  # Returns the stats of the studio
studio.thumbnail_url()  # Returns the thumbnail URL of the studio
studio.projects(all=False, limit=40, offset=0)  # Get the projects of the studio
studio.comments(all=False, limit=40, offset=0)  # Get the comments of the studio
studio.curators(all=False, limit=40, offset=0)  # Get the curators of the studio
studio.managers(all=False, limit=40, offset=0)  # Get the managers of the studio
studio.activity(all=False, limit=40, offset=0)  # Get the activity of the studio
studio.pretty_print_studio_data()  # Pretty print the Studio Data
##########################################################################
# IMPORTANT NOTE: To always get the updated data use the update_data() function
##########################################################################
studio.update_data()  # Update the data

Project Data

To get the project data, run the following Program:

import scratchlink

scratch = scratchlink.ScratchLink()
project = scratch.link_project(project_id=1)  # Connect a Scratch Project

project.author()  # Returns the author of the project
project.title()  # Returns the title of the project
project.notes()  # Returns the notes(Notes or Credits) of the project
project.instruction()  # Returns the instructions of the project
project.are_comments_allowed()  # Returns whether the comments are allowed in a project
project.stats()  # Returns the stats of a project
project.history()  # Returns the history of a project
project.remix_data()  # Returns the remix data of a project
project.visibility()  # Returns whether the project is visible
project.is_public()  # Returns whether the project is public
project.is_published()  # Returns whether the project is published
project.thumbnail_url()  # Returns the thumbnail url of a project
project.assets_info()  # Returns the Assets info of a project
project.scripts()  # Returns the scripts of a project
project.comments(all=False, limit=40, offset=0, comment_id=None)  # Returns the list of comments of a project
project.remixes(all=False, limit=20, offset=0)  # Returns the list of remixes of a project
project.pretty_print_project_data()  # Pretty print the project data
##########################################################################
# IMPORTANT NOTE: To always get the updated data use the update_data() function
##########################################################################
project.update_data()  # Update the data

Cloud Data

To get the cloud data of a project, run the following Program:

import scratchlink

scratch = scratchlink.ScratchLink()
project = scratch.link_project(project_id=1)  # Connect a Scratch Project

cloud = project.link_cloud()  # Connect the Cloud Variables of a project
cloud.get_variable_data(limit=100, offset=0)  # Get the variable data
cloud.get_cloud_variable_value(variable_name="Name",
                               limit=100)  # Get the variable value. This will return a list containing many values. The first item in the list is the current value
cloud.pretty_print_cloud_data()  # Pretty print the cloud data

Forum Topic Data

To get the forum topic data, run the following Program:

import scratchlink

scratch = scratchlink.ScratchLink()
forum = scratch.link_forum(topic_id=1)  # Connect a Scratch Forum Topic

forum.id()  # Returns the id of the forum
forum.title()  # Returns the title of the forum
forum.category()  # Returns the category of the forum
forum.is_closed()  # Returns whether the forum is closed or not
forum.is_deleted()  # Returns whether the forum is deleted or not
forum.time()  # Returns the activity of the forum
forum.post_count()  # Returns the total post count of the forum
forum.posts(page=1)  # Get the post in Forum Topic of a specified page. Images and some other stuff will not appear!
forum.pretty_print_topic_data()  # Pretty print the topic data
##########################################################################
# IMPORTANT NOTE: To always get the updated data use the update_data() function
##########################################################################
forum.update_data()  # Update the data

Bug Reporting

All Bugs to be reported on my Scratch Profile or Github

Data Providers

Data is taken from the Scratch API by the Scratch Team and Scratch DB by @DatOneLefty on Scratch

Credits

This Library is made by @Sid72020123 on Scratch

Change Log

  • 11/12/2021(v0.5) - First Started Making This Library.
  • 12/12/2021(v1.0) - Updated and First Release!
  • 27/01/2022(v1.0.1) - Updated Comments API

Thank You!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scratchlink-1.0.1.tar.gz (11.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page