- HTML 74.3%
- JavaScript 11.2%
- Python 9.2%
- CSS 5.3%
| _docs | ||
| accounts | ||
| apiclone | ||
| base_comments | ||
| djangobb_forum | ||
| educators | ||
| files | ||
| galleries | ||
| help | ||
| hosts | ||
| internalapi | ||
| lib | ||
| news | ||
| ngapi | ||
| notifications | ||
| pagination | ||
| projects | ||
| scratch_admin | ||
| siteapi | ||
| static | ||
| templates | ||
| userprofiles | ||
| .gitignore | ||
| forumindex.py | ||
| jinxer.py | ||
| LICENSE | ||
| manage.py | ||
| README.md | ||
| requirements.sh | ||
| requirements.txt | ||
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.