Skip to content

Alastrantia/scratch-remixtree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

125 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scratch-remixtree 🫚

PyPI version License Alastrantia All tests

Tools to rebuild Scratch's remix tree feature!
🌐 Try the web version instantly: https://remixtree.alass.dev
#BringBackRemixTrees

Like it? Star the repo to help others find it and make me feel good 🥺

Demos :DD

CLI demo Web demo

CLI Version: Project 948573479
remixtree 948573479 --output tree.txt --verbose

Web Version: Try it instantly at remixtree.alass.dev!

What is this?

Scratch removed the remix tree feature without any warning... So, here we go again, as a webapp and a CLI!

This tool fetches a project's remixes and builds a tree showing how all the remixes connect, using the official scratch API.

Features

  • Web version built with FastAPI, CLI built with rich
  • Async, can create large trees decently fast
  • Export to JSON or CSV, not just plain text (finally!)
  • Batch mode: throw a bunch of project IDs at it and it builds em all
  • --stats shows loves/views/faves on every project (web shows em too now)
  • Optional verbose mode to go crazy (CLI-only)
  • Save the full remix tree to a file if ya want to
  • Supports max depth if you wanna show empathy for the Scratch Servers (CLI-only)
  • Works on Linux, macOS, and Windows (Python 3.9+) (hopefully, if not, tell me)

Installation for the CLI

Recommended: using pipx (isolated, should-work):

pip install --user pipx
pipx install remixtree

Alternatively:

pip install remixtree

Basic Usage

(This is only for the CLI, the WebApp is pretty self-explanatory)

Example:

remixtree 1223809053 --depth 3 --output tree_output.txt

A few more:

remixtree 1223809053 --stats                 # show loves/views/faves inline
remixtree 1223809053 -o tree.json            # format guessed from the extension
remixtree 1223809053 -o tree.csv             # ...same deal, spreadsheet time
remixtree 111 222 333 -o tree.txt            # batch! saves tree_111.txt, tree_222.txt, ...

More options:

-h, --help: 
    get a list of flags like this one
-d, --depth:
    specify how deep the tree should go, default is unlimited
-t, --timeout:
    request timeout in seconds, default is 300
-v, --verbose:
    just try it, you'll see for yourself
-o, --output:
    probably the most important flag, specify where the tree should be saved
-f, --format:
    txt / json / csv. skip it and i'll guess from the -o file extension (else txt)
-s, --stats:
    show loves/views/faves next to each project
-c, --color:
    enable color coding by depth (disabled by default), will use rich color formatting

Example Output

└── root(1196834984)
    ├── » planet b «(1198230426)
    │   └── » planet b « remix(1212924547)
    ├── Apex Construction (BB7 Entry)(1198230627)
    ├── pinnacle constructions(1198232264)
    ├── R1(1198238918)
    │   └── R1 remix(1223273999)
    ├── ⬠ equilux branding (1198261493)
    ├── BB7 -  Keystone Works(1198288240)
    ├── AEDIFI(1198372015)
    ├── Mace - BB7 R1(1198407780)
    ... 

Feature Tracker

  • ASCII tree visualization
  • Async fetching
  • Depth limiting
  • Verbose mode
  • File output
  • Color coding
  • Interactive tree navigation (yes, but not the original tree yet)
  • Export to JSON/CSV
  • Web interface
  • Batch processing
  • Search/filter on the web (big trees get unwieldy fast)

About

a remake of the remixtree feature ST removed a bit ago

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages