- HTML 73.9%
- JavaScript 11.6%
- Python 9.3%
- CSS 5.2%
APIClone
Work in progress recreation of the main Scratch API, projects API, assets API, uploads API and ScratchR2.
Requirements
APIClone requires the following to be installed:
- Python. Only versions 3.12 and 3.13 were tested, but any version from 3.8 to the latest should work in theory.
The rest can be installed using
pip install -r requirements.txt.
Usage with Scratch-WWW
-
Clone APIClone and Scratch-WWW:
git clone https://codeberg.org/heathercat123/apiclone.git git clone --depth=1 --single-branch --branch develop https://github.com/scratchfoundation/scratch-www.git cd apiclone -
Create superuser (admin/ST account):
python manage.py createsuperuser -
Optional: Collect static files: ```python manage.py collectstatic`` This will create the
static_proddirectory for production environments. -
Start APIClone:
python manage.py runserver 8000 -
Switch to another terminal window.
-
Install Scratch-WWW's dependencies and translations:
cd scratch-www npm install npm run translate -
Start Scratch-WWW:
API_HOST=http://localhost:8000/hosts/api \ ASSET_HOST=http://localhost:8000/hosts/assets \ BACKPACK_HOST=http://localhost:8000/hosts/backpack \ CLOUDDATA_HOST=http:/localhost:8000/hosts/clouddata \ PROJECT_HOST=http://localhost:8000/hosts/projects \ STATIC_HOST=http://localhost:8000/hosts/uploads \ FALLBACK=http://localhost:8000 \ npm start
You can now open http://localhost:8333 in a web browser and enjoy Scratch-WWW with APIClone. Note that many elements of the website are hard-coded whereas they should be modifiable by the user, such as the home page's "What's Happening" box. Quite a few pages and API endpoints are also missing. Both of these are either currently being worked on or this project may randomly have gotten abandoned. I love life.
Standalone usage
-
Clone APIClone:
git clone https://codeberg.org/heathercat123/apiclone.git cd apiclone -
Create superuser (admin/ST account):
python manage.py createsuperuser -
Optional: Collect static files: ```python manage.py collectstatic`` This will create the
static_proddirectory for production environments. -
Create a file in the
apiclonesubdirectory calledlocal_settings.py:from .settings import * SCRATCHR2_ONLY = True -
Start APIClone:
python manage.py runserver 8000
You can now open http://localhost:8333 in a web browser and enjoy the good old Scratch 2.0 website. Note that many elements of the website are hard-coded whereas they should be modifiable by the user. Quite a few pages and functionality are also missing. Both of these are either currently being worked on or this project may randomly have gotten abandoned. I love life.