From 728d3ffed53ecce436f103e46f7252d427fd7601 Mon Sep 17 00:00:00 2001 From: Lord Friky <24846044+lordfriky@users.noreply.github.com> Date: Thu, 9 May 2024 01:55:31 -0600 Subject: [PATCH] Reflect the latests changes in CONTRIBUITING.md --- CONTRIBUTING.md | 86 +++++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 50 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 487873d..9d47a27 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,80 +1,66 @@ # Contributing + ## Adding a new translation + 1. Fork this repo in your GitHub account. 2. Clone your fork into your computer. 3. Make a copy of `en-US.js` (you can find it inside the `i18n` folder) and start translating all the strings to your language using your favorite text editor. 4. When you finish, save it with your locale as name (e.g. `fr-FR.js` if you are working on a french translation) inside that folder. 5. Open the `i18n.js` file. 6. Look for `else langObj = enUS;` and add your locale in this format right before it: -``` + +```javascript else if (lang === "your-locale") langObj = yourLocale; ``` + 7. Finally open `index.html` and look for this line: -``` + +```html ``` + 8. Add a reference to your file before the previous line in this format: -``` + +```html ``` + 9. Now you're done, upload your changes to your fork in GitHub and make a [pull request](https://github.com/AtlasNX/web-cfw-loader/compare). ## Updating/Adding a payload + +Payloads are now standard binaries, there's no need to convert them to byte arrays anymore, so adding them is now easier. + 1. Fork this repo in your GitHub account. 2. Clone your fork into your computer. -3. Create a `.js` file inside the `payloads` folder with the name of the payload (if you are adding one). -4. Open that file with your favorite text editor. -5. **(Optional)** Add these lines at the beggining of the file, or update them if you are updating the payload, just for cosmetic purposes: -``` -// Payload Name and Version -// Sourced from https://www.example.com/link/to/your/payload.bin -``` -6. Add the line `const your_payload_name = new Uint8Array([` to the file (if you are creating it). -7. Go to [web-cfw-loader](https://webcfw.sdsetup.com/), select *Upload payload*, open your updated/new payload and check *Get payload byte array (don't sploit)*. -8. Press *Deliver Payload!* and copy the byte array from the log (the entire text after `Logging payload bytes...`). -9. Paste the byte array right after `Uint8Array([`. -10. Delete `, ` at the end of the array and append `]);`. -11. Save the file. +3. Copy the payload you want to add to the `payloads` folder. +4. Inside the file `payloads/payloads.json` add a new object to the payloads array in the following format: -#### If you are updating a payload -12. Open `index.html` and look for the payload option. -13. Bump its version to the corresponding one. -14. Open every of the language files (the `.js` files from the `i18n` folder), look for the payload string and bump its version number too. -15. Finally, upload your changes to your fork in GitHub and make a [pull request](https://github.com/AtlasNX/web-cfw-loader/compare). +```json +{ + "name": "Your Payload Name", + "version": "the-payload-version", + "path": "payloads/payload_with-the-payload-version.bin" +} +``` -#### If you are adding a payload -12. Open `main.js` and look for the string `} else if (payloadType === "uploaded") {`. -13. Add the new payload right before it using this format: -``` -} else if (payloadType === "your_payload_name") { - payload = your_payload_name; -``` -14. Save the file and open `index.html`. -15. Look for the string `` and add the new an option for the new payload using this format: -``` - -``` -16. On the same file, go down to `` and add the path to the payload right before it using this format: -``` - -``` -17. Save it, open `i18n.js` and look for this string `document.getElementById("optionUpload").innerHTML = langObj.optionUpload;` -18. Again, append the payload option id to the previous line using this format: -``` -document.getElementById("optionFusee").innerHTML = langObj.optionFusee; -``` -19. Finally, open every of the language files (the `.js` files inside the `i18n` folder) and add the payload to them using this format (you already know where): -``` -"optionTheNewPayload" : "The New Payload Name And Its Version", -``` -20. Congrats, you did it! Now, upload your changes to your fork in GitHub and make a [pull request](https://github.com/AtlasNX/web-cfw-loader/compare). +5. To update the payload automatically you should add these things to the `extras/update-payloads.sh` script: + +- Detect which version of the payload do we have on the repo and which is the latest one. + - Use the `payloads.json` file for this and (if the payload you're adding is hosted on GitHub) the GitHub API just like the other payloads (make sure the version string format matchs whatever format is used on the source). +- Add the steps to download and copy the payload to the corresponding folder. +- Reflect the version change on the `payloads.json` file. + +I know the updater script is kinda ugly, so if you want to write a cleaner, better one (preferably made in Python) PR's are always welcome! 6. Finally, upload your changes to your fork in GitHub and make a [pull request](https://github.com/lordfriky/web-cfw-loader/compare). ## **Extra:** Test your changes before making a pull request + If you want to confirm that your changes work before suggesting them follow these steps: + 1. Make sure all your changes are successfully uploaded to your fork in GitHub. 2. Go to your repo settings. -3. Go down to GitHub Pages and select *master branch* in *Source*. -4. Click *Save* and wait a few seconds. +3. Go down to GitHub Pages and select _master branch_ in _Source_. +4. Click _Save_ and wait a few seconds. 5. Now, you should see your site at *https://YourGitHubUsername.github.io/web-cfw-loader/*. -6. If everything is alright, now is the time to make a [pull request](https://github.com/AtlasNX/web-cfw-loader/compare). +6. If everything is alright, now is the time to make a [pull request](https://github.com/lordfriky/web-cfw-loader/compare).