Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
9863d50
feat(cloud_server): implement SSL secure websocket from semver2 into …
Boss-1s Aug 26, 2026
7e8fddd
fix(cloud_server): expose `init_ssl_cloud_sever` to top-level
Boss-1s Aug 26, 2026
bab2905
chore(eventhandlers._base): move mixin class to _base
Boss-1s Aug 26, 2026
5cd379d
fatal(eventhandlers._base): missing imports
Boss-1s Aug 26, 2026
2950297
export cloud server types
Boss-1s Sep 2, 2026
a1423ce
fix(sa.eventhandlers): clean up
Boss-1s Sep 2, 2026
8d5aa20
fix(sa.eventhandlers._base): ensure blocked_ips is always some list
Boss-1s Sep 2, 2026
70ffb36
feat: expose BaseCloudServer
Boss-1s Sep 2, 2026
92cc748
fatal: BaseCloudServer should not have ssl-related stuff
Boss-1s Sep 2, 2026
1924636
docstrings
Boss-1s Sep 2, 2026
2a5dfc9
resolve https://github.com/TimMcCool/scratchattach/pull/723#discussio…
Boss-1s Sep 2, 2026
5b0ff22
resolve
Boss-1s Sep 2, 2026
b80c260
revert
Boss-1s Sep 2, 2026
f81bce7
apply changes
TheCommCraft Sep 3, 2026
1d0bf6e
Merge branch 'TimMcCool:main' into semver3-secure-ws
Boss-1s Sep 3, 2026
e905eb8
.
Boss-1s Sep 3, 2026
16b58b7
replace all references to scratchattach/2.0.0
Boss-1s Sep 3, 2026
6243190
fatal: stale assignment to nonexistent arg websocketclass
Boss-1s Sep 3, 2026
c476784
Merge branch 'main' into semver3-secure-ws
Boss-1s Sep 3, 2026
65a4ddd
rename `skip_forward` and annotate type
TheCommCraft Sep 3, 2026
b77df00
use `serveonce` instead of `serveforever`
TheCommCraft Sep 3, 2026
3b96888
prevent 100% CPU usage
Boss-1s Sep 4, 2026
1b34b7c
revert 3b96888
Boss-1s Sep 4, 2026
b4047e5
Merge branch 'TimMcCool:main' into semver3-secure-ws
Boss-1s Sep 5, 2026
14d1074
server can be TwCloudServer or TwSSLCloudServer
Boss-1s Sep 5, 2026
0f921da
remove invalid cloudactivitydict values + temp fill-in for cloud key
Boss-1s Sep 5, 2026
c8a76c9
feat: link_cloud
Boss-1s Sep 7, 2026
cb00837
add cloud server adapter
TheCommCraft Sep 7, 2026
615cb99
fix circular import
TheCommCraft Sep 7, 2026
cc66264
fix second circular import
TheCommCraft Sep 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,13 @@ identifier.sqlite
obfuscated.sb3
.pytest_cache
.ruff_cache

.coverage
certfile.pem
coverage.xml
keyfile.pem
.test/test.py
.test/teststststs.py
.test/ws_client_test.py
tests/test_tw_cloud_debug_compliance.py
.vscode
50 changes: 43 additions & 7 deletions scratchattach/__init__.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,33 @@
from .cloud.cloud import CustomCloud, ScratchCloud, TwCloud, get_cloud, get_scratch_cloud, get_tw_cloud
from .cloud.cloud import (
CustomCloud,
ScratchCloud,
TwCloud,
get_cloud,
get_scratch_cloud,
get_tw_cloud,
)
from .cloud._base import BaseCloud, AnyCloud

from .eventhandlers.cloud_server import init_cloud_server
from .eventhandlers._base import BaseEventHandler
from .eventhandlers.cloud_server import (
init_cloud_server,
init_ssl_cloud_server,
TwCloudSocket,
TwCloudServer,
TwSSLCloudServer,
)
from .eventhandlers._base import BaseEventHandler, BaseCloudServer
from .eventhandlers.filterbot import Filterbot, HardFilter, SoftFilter, SpamFilter
from .eventhandlers.cloud_storage import Database
from .eventhandlers.combine import MultiEventHandler

from .other.other_apis import *

# from .other.project_json_capabilities import ProjectBody, get_empty_project_pb, get_pb_from_dict, read_sb3_file, download_asset
# from .other.project_json_capabilities import (
# ProjectBody,
# get_empty_project_pb,
# get_pb_from_dict,
# read_sb3_file,
# download_asset,
# )
from .utils.encoder import Encoding
from .utils.enums import Languages, TTSVoices
from .utils.exceptions import (
Expand All @@ -27,11 +45,29 @@
from .site.cloud_activity import CloudActivity
from .site.forum import ForumPost, ForumTopic, get_topic, get_topic_list, youtube_link_to_scratch
from .site.project import Project, get_project, search_projects, explore_projects
from .site.session import Session, login, login_by_id, login_by_session_string, login_by_io, login_by_file, login_from_browser
from .site.session import (
Session,
login,
login_by_id,
login_by_session_string,
login_by_io,
login_by_file,
login_from_browser,
)
from .site.studio import Studio, get_studio, search_studios, explore_studios
from .site.classroom import Classroom, get_classroom
from .site.user import User, get_user, Rank
from .site._base import BaseSiteComponent
from .site.browser_cookies import Browser, ANY, FIREFOX, CHROME, CHROMIUM, VIVALDI, EDGE, EDGE_DEV, SAFARI
from .site.browser_cookies import (
Browser,
ANY,
FIREFOX,
CHROME,
CHROMIUM,
VIVALDI,
EDGE,
EDGE_DEV,
SAFARI,
)

from . import editor
Loading