cleanyourtv-app
Clean Your TV를 위한 커뮤니티 제작 모바일 앱
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Features extension script for eRepublik.com.
Players who support this project will have their avatars decorated with an animated border:
| 1M+ in currency | 3M+ in currency | 5M+ in currency |
|---|---|---|
| Choose your custom border |
If you donate 5M+ in total you can write me a message specifying which border you choose.
Basic feature inherited from Zordacz's old version.
The script is built with Vite and
vite-plugin-monkey.
The userscript header is generated from vite.config.ts and the version from package.json.
Run npm ci to install dependencies.
npm start to start the development server on port 8124.[DEV] eRepublik Stuff++ Unlocked.
You only need to do this once.The DEV script loads the code straight from the development server, so changes show up after refreshing the eRepublik page.
Run npm run build. The userscript is written to dist/index.user.js
and copied to src/index.user.js, which is the URL existing installations update from.
npm run typecheck - TypeScriptnpm run lint - ESLintnpm test - Vitest unit testsnpm run format:check - Prettier (npm run format to fix)All of them run in CI on every pull request.
The commit that reformatted the codebase with Prettier is listed in .git-blame-ignore-revs.
To skip it in git blame, run git config blame.ignoreRevsFile .git-blame-ignore-revs.
Run the "Release Version" workflow on GitHub. It bumps the minor version,
adds the commits since the last Bump X.Y commit to CHANGELOG.md,
builds the userscript and opens a pull request with the result.
Each feature in src/features is created with createFeature() and listed in src/index.tsx.
Features run on page load and again whenever the URL changes (changes of the hash alone don't count).
Before running a feature again, the runner cleans up everything its previous run registered
on the FeatureContext passed to execute:
mount(element, anchor, options) renders React next to or inside an element,signal removes listeners added with addEventListener(type, listener, { signal }),onCleanup(callback) undoes anything else, e.g. a class added to body.State that must outlive a rerun, like a running auto traveller, lives outside the components.
A feature that players can turn off gets a toggle in SETTINGS in src/settings/stuff-settings.ts,
which the settings panel lists. Toggles are kept in localStorage.stuff, where true means off,
like the legacy script stored them. A feature that acts without a click, like eating food,
is marked isAutomatic: it stays off until a player turns it on.
To react to the game's own requests, use onXhrLoad(urlPattern, listener, { signal }).
MapeRepublik replaces the global Map with its own object, which breaks React and other libraries.
vite.config.ts takes the original Map from a hidden iframe and makes all bundled code use it:
the production bundle is wrapped in a function with a Map parameter,
and in development every module gets a module-scoped Map constant.