Skip to main content

remake scratch's remix tree feature #BringBackRemixTrees

Project description

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)

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

remixtree-0.1.19.tar.gz (6.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

remixtree-0.1.19-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file remixtree-0.1.19.tar.gz.

File metadata

  • Download URL: remixtree-0.1.19.tar.gz
  • Upload date:
  • Size: 6.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for remixtree-0.1.19.tar.gz
Algorithm Hash digest
SHA256 6d7e9136895304247d758aadfe3735939af46e60255455ef7a2b91b7a629a440
MD5 d3a01ef5971689eef18c7468d7540aa9
BLAKE2b-256 f33a5b4369e2a463bfc95f8fe606723053b63dd3325f404c84054f32ee86e1dd

See more details on using hashes here.

File details

Details for the file remixtree-0.1.19-py3-none-any.whl.

File metadata

  • Download URL: remixtree-0.1.19-py3-none-any.whl
  • Upload date:
  • Size: 14.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for remixtree-0.1.19-py3-none-any.whl
Algorithm Hash digest
SHA256 d14ff7c720c796f3457d06a9cc31cab17d7964f7f74dfcacff5241c895452360
MD5 d195b253f98addb46c37e714b3c60e55
BLAKE2b-256 a9c65edf57f65349e9df20c078859c9d420ba20d84976d941c89e45de4c8cf7b

See more details on using hashes here.

Supported by

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