A simple program that automatically solves your assignments in Seneca (and also gets you a bunch of free XP 🔥). Note that this is still early in development and may have bugs.
It should work on most assignments but probably will not complete every single one. This is due to the fact that not all question types are supported at the moment, although this is currently being worked on. In addition, it will not work on the AI-marked "Exam Questions" at the end of assignments. There is very little that can be done about that since that's marked on Seneca's servers.
- Automatically solves assignments
- Works on most question types
- Nice and intuitive terminal interface
- Auto mode: solves all assignments
- Semi-automatic mode: Select a specific assignment to solve
- Manual mode: solve a specific sub-section of an assignment
Note
If you are using Windows, you may get a warning from Windows Defender SmartScreen when running the executable. This is because the executable is not signed. You can safely ignore this warning by clicking "More info" and then "Run anyway".
Download the executable from the links below. Alternatively, download from the releases page, making sure to download the latest release.
System | File |
---|---|
64-bit x86 Windows | seneca-solver_windows-x86_64.exe |
64-bit x86 macOS | seneca-solver_macos-x86_64 |
M-series ARM macOS | seneca-solver_macos-aarch64 |
64-bit x86 Linux | seneca-solver_linux-x86_64 |
If on a UNIX-based system (i.e. Linux or macOS), add the execute permission to the executable using chmod +x <name-of-executable>
. If your OS/system architecture is unsupported, use Method 2.
You can now move on to usage.
You must have the following installed:
- Cargo (any relatively new version will do)
-
Run
git clone https://github.com/ArcaEge/seneca-solver.git
to clone the repository to somewhere convenient. -
Open the repository directory in a terminal and run
cargo build --release
. This will compile the program and place the executable intarget/release/seneca-solver
.
- You need to generate a
seneca-solver-keys.json
file that contains your API key and refresh token. Here's how to do that:- Go to the Seneca dashboard page in your browser and open the inspect menu.
- Navigate to the Console tab.
- Paste in the contents of the key_extractor.js file into the console and press enter to run it. This will then generate and download the
seneca-solver-keys.json
file. All you then need to do is copy this file to the same folder as theseneca-solver
executable.
Note
Most browsers will show a warning like this if you haven't pasted anything into a browser console before:
To bypass this, simply type in allow pasting
and press enter as it says in the message.
Warning
Do not share this generated file with anyone, otherwise they can access everything in your Seneca account.
-
Run the executable. If you ran it from your file manager, it should've spawned a terminal window.
-
Your assignments will be printed to the terminal. Use the arrow keys to navigate between them. Press
Enter
to start solving an assignment. -
The script should now start solving the assignment, which may take 5 or more minutes depending on its length. It will likely not manage to solve all sections of the assignment - I believe this is due to Seneca's servers but I am looking for workarounds. Try running it a few more times (the order is shuffled every time in the code) or use the
Custom (URL)
mode and manually paste in the URLs of the sections. Also note that your access key will expire every hour, meaning you will need to repeat the process to obtain the key every hour. Using refresh tokens instead of access keys is on the To Do list.
reqwest::Error { kind: Status(403) ... }
You have been rate-limited by Seneca, wait for a few minutes and try again.
docker run -v /path/to/seneca-solver-keys.json:/seneca-solver-keys.json ghcr.io/arcaege/seneca-solver:main
This program is not affiliated with Seneca Learning in any way - it's a third-party tool that impersonates the Seneca frontend. Using this tool might be against Seneca's Terms of Service. Use it at your own risk - I'm not responsible if you get in trouble for using this tool.
In legal terms: The author of this program is not responsible for any consequences that may arise from using this tool.