Heathercat123

chipmunkmc wrote:

Also if you know how to make my scratch-paint properly link with my scratch-gui (and perhaps other scratch-editor package forks), and have all of that link w/ scratch-www, without causing weird NPM issues, please let me know!
Sorry I'm basically asking for free work here, I'm just sort of stuck on that…

I'll see what I can do after I'm done decompiling the 2.0 online editor (even if we decide to implement 3.0 compatibility on the server and not the frontend or something, we still have to change the colors to match the rest of the website and fix hard-coded urls in the embed player, and binary patching is kinda hacky)

Heathercat123

Also, I noticed that the WWW is currently broken. That's my fault, I moved the urls that correspond to hosts on the real Scratch website to a new /hosts path:

In bin/set-env.sh, this:
export API_HOST=/api
export ASSET_HOST=/assets
export BACKPACK_HOST=/backpack
export PROJECT_HOST=/projectshost
export STATIC_HOST=/uploads

becomes the following:
export API_HOST=/hosts/api
export ASSET_HOST=/hosts/assets
export BACKPACK_HOST=/hosts/backpack
export CLOUDDATA_HOST=/hosts/clouddata
export PROJECT_HOST=/hosts/projects
export STATIC_HOST=/hosts/uploads


Also, when Codeberg gets back up, I'll add support for the 2.0 media libraries, which require their assets to be in APIClone's assets directory. As such, to make it work, you should copy every asset from the Scratch 2.0 Offline Editor's /media directory to /files/assets.

Heathercat123

chipmunkmc wrote:

Also if you know how to make my scratch-paint properly link with my scratch-gui (and perhaps other scratch-editor package forks), and have all of that link w/ scratch-www, without causing weird NPM issues, please let me know!


I managed to link scratch-paint and scratch-editor's scratch-gui using npm install –save ../../../scratch-paint, but when I open the paint editor, it just crashes

chipmunkmc

Well you see, I've been neglecting to re-compile scratch-www until I get the forks working properly. I mean I could just revert it to vanilla scratch-gui but that's not ideal…

Heathercat123

CHIPMUNK I'M A VERIFIED TEACHED AS OF MARCH 2ND (it only took them 5 days ToT)

chipmunkmc

Heathercat123 wrote:

CHIPMUNK I'M A VERIFIED TEACHED AS OF MARCH 2ND (it only took them 5 days ToT)

Yoooo that's epic!!! Also I just realized attachments can only be viewed while logged in :S…

chipmunkmc

I would like to note that the age shown on my profile's admin panel is inaccurate. Perhaps you can do something like `datetime.datetime.now().date() - datetime.date(1970, 1, 1)`, where the second operand is the birth date?

chipmunkmc

One last thing: I just adjusted the nginx config a bit, will update scratch-gui-tw and scratchschools later.

chipmunkmc

Ok for real this time this is the last thing… Is it just me or do anons get the admin panel HTML?

Heathercat123

chipmunkmc wrote:

Ok for real this time this is the last thing… Is it just me or do anons get the admin panel HTML?

I think it's just you, except for the admin panel iframe used for the WWW project and studio pages, I kinda forgot to make these admin-only.

chipmunkmc

Heathercat123 wrote:

I think it's just you, except for the admin panel iframe used for the WWW project and studio pages, I kinda forgot to make these admin-only.

My bad, I went to https://tw.scr.chipmunk.land/hosts/ after having logged in from another subdomain, forgetting that sessions are shared between them…

chipmunkmc

I'm sorry, I think I was wrong about the age thing. I forgot Scratch doesn't use full dates, and it turns out I had the wrong month set on mine anyway… Now I can't update my profile from the admin panel since I have to set a Featured project label though.

Heathercat123

chipmunkmc wrote:

I'm sorry, I think I was wrong about the age thing. I forgot Scratch doesn't use full dates, and it turns out I had the wrong month set on mine anyway…

Ah… it's okay

chipmunkmc wrote:

Now I can't update my profile from the admin panel since I have to set a Featured project label though.

Oops, my bad! Lemme fix that rq.

chipmunkmc

Is it intentional that /ngapi/ is not under /hosts/? I mean it's not part of the current Scratch API nor a subdomain (unsure if this will change), but at the same time it's not part of scratchr2 either.
Also, how should I patch it to fix project pages? Sorry, I'm too lazy to figure it out.

Heathercat123

chipmunkmc wrote:

Is it intentional that /ngapi/ is not under /hosts/? I mean it's not part of the current Scratch API nor a subdomain (unsure if this will change), but at the same time it's not part of scratchr2 either.

It's intentional.

chipmunkmc wrote:

Also, how should I patch it to fix project pages? Sorry, I'm too lazy to figure it out.

I kinda forgot sooo here's mine:

max_teacher

Thanks! Also I cannot comment from this new account due to this error:
2026-03-07 22:58:55,303 ERROR    Internal Server Error: /site-api/comments/user/chipmunkmc/add/
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
    raise exc_info[1]
  File "/usr/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
    raise exc_info[1]
  File "/usr/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
    response = await wrapped_callback(
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
    ret = await asyncio.shield(exec_coro)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/asgiref/current_thread_executor.py", line 40, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/apiclone/base_comments/views.py", line 391, in R2PostCommentView
    status, error = BaseComment.is_comment_okay(request.user, reqjson['content'], same_rate_limit)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/apiclone/base_comments/models.py", line 113, in is_comment_okay
    last_comment = last_comment[len(last_comment) - 1]
                   ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/django/db/models/query.py", line 431, in __getitem__
    raise ValueError("Negative indexing is not supported.")
ValueError: Negative indexing is not supported.

Also I see this in messages:
PLACEHOLDER: max_teacher did a userjoin. 9:59 p.m.

Heathercat123

max_teacher wrote:

Thanks! Also I cannot comment from this new account due to this error: -snip-

Whoops, I accidentally made it check if the QuerySet.exists() function exists instead of calling it, sorry! This should be fixed in the latest commit.

max_teacher wrote:

PLACEHOLDER: max_teacher did a userjoin. 9:59 p.m.

The code for checking if the user is on r2 was really weak on the notifications page, this should be fixed too. (According to scratchr2_translations, Scratch 2.0 had no join notification, which kinda makes sense since the 2.0 registration modal already had a Welcome slide).

max_teacher

The r2. subdomain became not r2-only due to the context processor changing and me not adapting it, anyway I merged the latest commit(s)!

chipmunkmc

Unsure if it's my fault, but clicking the comment form without being logged in no longer shows me a modal

Heathercat123

chipmunkmc wrote:

Unsure if it's my fault, but clicking the comment form without being logged in no longer shows me a modal


My bad, I accidentally broke it while refactoring the template's code ._. It should be fixed now.