- R0914 (too many locals): Extract helper functions in generate_jpeg.py, engine.py, lichess_api.py, main.py - R0902 (too many instance attributes): Use dataclasses in keyboard_coop - W0621 (redefined outer name): Rename parameters/variables to avoid shadowing - W0201 (attribute outside init): Initialize all attrs in __init__ - R1705 (no-else-return): Remove unnecessary else after return - C1805 (implicit booleaness): Use implicit boolean checks - R1732 (consider-using-with): Use context manager for subprocess.Popen - E0401 (import-error): Add pylint disable for optional deps (selenium, mitmproxy) - Clean up pyproject.toml: update comments, remove redundant settings Pylint score: 10.00/10 |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| mock_server.py | ||
| README.md | ||
| requirements.txt | ||
| run.sh | ||
Simulate Connection Failure
(it takes ≈ 1hr to get it working)
Install: https://mitmproxy.org/ (install it the way they recommend for your OS, for Ubuntu specifically apt version is 4 main versions behind newest version)
Run it using mitmproxy
Run your webbrowser using 127.0.0.1:8080 as proxy
on chromium-based browser it should be enough to do:
google-chrome --proxy-server=127.0.0.1:8080
Run mitmweb
open 127.0.0.1:8081
Click File in upper left corner and then Install Certificates
You should get a list of Windows/Linux/macOS/Firefox with certificates and how to install them
Install certificates using those instructions
important! Go to your browser certificate settings and ensure that:
- mitmproxy certificate is imported
- it is set to trusted
Now all of your network communication should go through mitmproxy, you can verify it by going to 127.0.0.1:8081 and seeing constant flow of requests
What can we do with it?
- Install mitmproxy python library using pip
pip install mitmproxy
- Copy and paste this “hello world”:
from mitmproxy import http
def request(flow: http.HTTPFlow) -> None:
# Only intercept traffic to example.com
if "example.com" in flow.request.host:
flow.response = http.Response.make(
502, # Bad Gateway status code
b"Simulated connection failure",
{"Content-Type": "text/plain"}
)
- Run it:
mitmdump -s mitm_world.py - Go to example.com
- You should see “simulated connection failure” in plain text