cleanyourtv-app
Clean Your TV를 위한 커뮤니티 제작 모바일 앱
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Ứng dụng Windows có giao diện tiếng Việt để điều phối Discord Quests thưởng Orbs. Kết nối với Discord Desktop trên máy bằng phiên đã đăng nhập; không yêu cầu nhập token hay mật khẩu.
Mở bản phát hành mới nhất và chọn một trong hai file. Không cần cài Python hoặc Node.
Orbot-<phiên bản>-windows-x64.zip (khuyên dùng): giải nén rồi mở Orbot.exe trong thư mục vừa giải nén. Dạng thư mục khởi động nhanh hơn và ít bị phần mềm diệt virus báo nhầm hơn.Orbot-<phiên bản>.exe: một file duy nhất, mở trực tiếp.Từ bản 0.2.1, file được build trên GitHub Actions từ mã nguồn công khai, kèm SHA256SUMS.txt và chứng nhận nguồn gốc (attestation) của GitHub.
Đây là SmartScreen, không phải phát hiện virus. SmartScreen cảnh báo mọi file chưa ký số và còn ít lượt tải; mỗi bản phát hành mới phải tích lũy uy tín lại từ đầu. Kiểm tra file trước, rồi chọn Thông tin thêm → Vẫn chạy:
Get-FileHash .\Orbot-0.2.1-windows-x64.zip -Algorithm SHA256
gh attestation verify .\Orbot-0.2.1-windows-x64.zip -R hiimkuroshi/Orbot
Mã băm phải trùng với dòng tương ứng trong SHA256SUMS.txt. Lệnh gh attestation verify (cần GitHub CLI) xác nhận file được build bởi workflow của repo này. Không chạy file tải từ nơi khác.
Đóng Orbot cũ, mở Orbot.exe từ bản ZIP, hoặc bấm đúp Start-Orbot.cmd trong thư mục dự án. File EXE đã đóng gói Python và thư viện; máy chạy không cần cài Python hoặc Node. Nếu Discord đã bật cổng kết nối từ lần trước, chỉ cần kết nối, không cần mở lại Discord.
Discord.exe khi hộp thoại xuất hiện.Nếu Discord đã chạy trước khi bấm Mở Discord, phiên hiện tại có thể không nhận cổng mới. Orbot không tự đóng Discord; hãy thoát ở khay hệ thống rồi mở lại từ Orbot. Giữ cửa sổ Orbot mở trong lúc chạy.
--demo được gắn nhãn và không chạy Quest thật.WATCH_VIDEO, WATCH_VIDEO_ON_MOBILE, PLAY_ON_DESKTOP, PLAY_ON_DESKTOP_V2, với cấu hình Quest cũ và taskConfigV2.Python chỉ kết nối tới CDP trên 127.0.0.1, với cửa sổ thuộc tên miền Discord được xác định. Mã JavaScript chạy trong Discord dùng API client sẵn có của phiên. Không có backend, telemetry, tự đọc token, hoặc lưu thông tin đăng nhập.
Một số bản Discord không còn cho đọc bộ nhớ module sau khi khởi động. Bộ kết nối có thể thu thập tham chiếu module trong bộ nhớ của chính Discord khi tải lại, rồi tìm các store theo phương thức. Orbot chỉ nhận tên/ID tài khoản, thông tin Quest, trạng thái và nhật ký qua kết nối cục bộ. Khi đóng Orbot bình thường, bộ xử lý và preload được gỡ; nếu mất liên lạc, watchdog dừng hàng đợi sau khoảng 15 giây khi bộ hẹn giờ của Discord hoạt động.
Trong lúc xử lý game, Discord có thể hiển thị trạng thái chơi game tương ứng. Orbot không thay đổi cài đặt hiển thị hoạt động của tài khoản.
Để điều khiển Discord, Orbot mở Discord với cổng gỡ lỗi (Chrome DevTools Protocol) trên 127.0.0.1. Cổng này không có mật khẩu: trong lúc nó mở, bất kỳ chương trình nào trên máy, kể cả của tài khoản Windows khác, đều có thể điều khiển Discord đang đăng nhập (đọc token, gửi tin nhắn). Trang web thì bị Discord/Chromium chặn. Cổng chỉ đóng khi Discord thoát hẳn; đóng Orbot không đóng cổng.
Orbot giảm rủi ro bằng cách:
9222 mà các công cụ dò quét thường thử.Discord.exe (hoặc bản Canary/PTB) trước khi kết nối; từ chối nếu là chương trình khác hoặc không xác minh được.Chỉ dùng Orbot trên máy bạn tin tưởng, và thoát Discord sau khi dùng xong. Kiểm tra chương trình giữ cổng chỉ dựa trên tên file, không chống được phần mềm độc hại đã chạy trên máy. Báo lỗ hổng theo SECURITY.md.
Đã kiểm thử engine bằng dữ liệu Discord giả lập, kết nối HTTP/WebSocket cục bộ, giao diện Tk và khởi động EXE. Bản 0.1.2 đã xác minh API JSON khớp với phiên đăng nhập và đọc được danh sách Quest thật trên Discord Desktop 1.0.9263. Bản 0.1.3 thêm kiểm thử hàng đợi nhiều Quest, game → video, nhận thưởng, tiếp tục sau lỗi và dừng/chạy lại. Bản 0.2.1 (cổng ngẫu nhiên, kiểm tra chương trình giữ cổng, cảnh báo) được kiểm thử tự động trên Windows trong CI, chưa thử với Discord thật. Chưa kiểm chứng hoàn thành/nhận thưởng bằng bản mới trên tài khoản thật. API nội bộ, store và điều kiện xét Quest có thể thay đổi; khi không tương thích, Orbot hiển thị lỗi hoặc hết thời gian chờ.
Nếu Discord được cài ở vị trí khác, dùng hộp thoại chọn file EXE.
Discord cấm sử dụng hệ thống tự động hoặc bot để tích lũy Orbs; tài khoản có thể bị hạn chế hoặc đình chỉ. Xem điều khoản Discord Orbs. Orbot không phải công cụ được Discord phê duyệt.
Python 3.12 trở lên, Windows 10/11. Node chỉ dùng để chạy kiểm thử engine.
python -m venv .venv
python -m pip --python .venv/Scripts/python.exe install --require-hashes --only-binary :all: -r requirements-lock.txt
.venv/Scripts/python.exe -m orbot
.venv/Scripts/python.exe -m orbot --demo
requirements-lock.txt ghim phiên bản và mã băm của mọi thư viện cho Windows x64 + Python 3.14; cách tạo lại ghi ở đầu file. Nếu bước tạo venv báo lỗi ensurepip, có thể tạo bằng python -m venv --without-pip .venv rồi dùng lệnh python -m pip --python ... bên trên. Pip của Python hệ thống cài vào môi trường riêng, không cần cài pip trong venv.
node --test tests/engine.test.cjs
.venv/Scripts/python.exe -m unittest discover -s tests -p "test_*.py" -v
.venv/Scripts/python.exe scripts/gui_smoke.py
.venv/Scripts/python.exe -m ruff check orbot tests scripts run_orbot.py
.venv/Scripts/python.exe -m mypy orbot
.venv/Scripts/python.exe -m bandit -r orbot -ll
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/verify.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/build.ps1
Kiểm thử socket cần được phép kết nối 127.0.0.1. Mỗi lần push, GitHub Actions chạy toàn bộ kiểm tra và build trên Windows. Quy trình phát hành, ký số và xử lý cảnh báo SmartScreen: docs/PUBLISHING.md. Chế độ --demo dùng dữ liệu minh họa riêng và vô hiệu hóa mọi thao tác chạy Quest thật.
Orbot/
├── .github/workflows/ # CI: kiểm tra, build, chứng nhận và phát hành khi có tag
├── Start-Orbot.cmd # Mở bản chạy hiện tại
├── SECURITY.md # Rủi ro bảo mật và cách báo lỗ hổng
├── orbot/ # Mã nguồn và tài nguyên ứng dụng
├── scripts/ # Build, kiểm tra, tạo icon, chụp giao diện
├── tests/ # Kiểm thử engine và kết nối
├── docs/ # Tài liệu, ảnh giao diện, concept và lịch sử
├── licenses/ # Giấy phép thư viện đi kèm
├── dist/ # Bản ZIP, EXE, SHA256SUMS.txt và hướng dẫn của lần build gần nhất
└── .venv/ # Môi trường phát triển cục bộ
Mục lục tài liệu · Kiểm chứng · Thiết kế
Cache và file đóng gói tạm được gom vào build/, chỉ xuất hiện khi chạy các công cụ phát triển. Script build lấy phiên bản từ orbot/__init__.py, gắn thông tin phiên bản vào EXE, không nén bằng UPX, đặt file .spec trong build/spec/ và xuất ZIP dạng thư mục, EXE một file cùng SHA256SUMS.txt vào dist/.
orbot/app.py: giao diện tiếng Việt.orbot/workspace.py: bố cục Focus Flow, điều hướng và cập nhật trình bày.orbot/ui.py: hàng đợi hỗ trợ bàn phím, banner và tiến độ.orbot/controller.py: hàng đợi và worker nền.orbot/cdp.py: kết nối và xác minh cửa sổ Discord.orbot/engine.js: chuẩn hóa Quest, tiến độ, hàng đợi và khôi phục.orbot/capture.js: thu thập module trong lúc tải lại khi cần.orbot/launcher.py: tìm và mở bản Discord sẵn có.orbot/ports.py: chọn cổng ngẫu nhiên và xác định chương trình đang giữ cổng trên Windows.orbot/settings.py: nhớ cổng đã dùng trong %LOCALAPPDATA%\Orbot\settings.json (chỉ lưu số cổng).Bộ xử lý được viết riêng sau khi tham khảo cấu trúc Quest công khai trong Orion và OrbSniper. Thư viện chạy gồm websocket-client và Pillow để hiển thị ảnh và công tắc. Tcl/Tk và Python được đóng gói cùng EXE. Tất cả thư viện giữ giấy phép riêng.
Orbot được phân phối theo giấy phép MIT.