A-3-i
Compared to A-2 and before: Put everything in a try/except loop Added Toggle WiFi Changed menu selection keys Simplified menu items
This commit is contained in:
18
LICENSE
Normal file
18
LICENSE
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2026 Operation_Sierra-Romeo
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
||||||
|
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
||||||
|
following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial
|
||||||
|
portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
||||||
|
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
||||||
|
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||||
|
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
55
README.md
Normal file
55
README.md
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# TiFiCut
|
||||||
|
|
||||||
|
<b>Ti</b><small>medWi</small><b>FiCut</b>
|
||||||
|
|
||||||
|
A program that cuts wifi for a specified duration of time. P7MJ original.
|
||||||
|
|
||||||
|
<h3>Usage</h3>
|
||||||
|
|
||||||
|
Upon startup, the terminal will display:
|
||||||
|
|
||||||
|
```
|
||||||
|
================================================================================
|
||||||
|
TiFiCut WDS (WiFi Disconnection System) A-1
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
Choose a duration to cut wifi:
|
||||||
|
[1] Optimal 10 seconds (note 1)
|
||||||
|
[2] Specify seconds
|
||||||
|
[3] Specify minutes
|
||||||
|
[4] Specify hours (note 2)
|
||||||
|
[5] Specify days (note 2)
|
||||||
|
[6] Fake laggy mode
|
||||||
|
|
||||||
|
[x] Help (w/notes)
|
||||||
|
[y] Toggle diagnostics
|
||||||
|
[c] Exit
|
||||||
|
Duration >
|
||||||
|
```
|
||||||
|
|
||||||
|
It is highly not recommended to use hours or days to cut wifi. One reason for this is the sheer amount of time you are disconnected. The other is that if your restart your computer or terminate the program, the cut will stop.
|
||||||
|
|
||||||
|
<h3>Config</h3>
|
||||||
|
At the top of the program (if you open it in a text editor), the following lines will be present:
|
||||||
|
|
||||||
|
```
|
||||||
|
# wifi = "Verizon_ABCDEF"
|
||||||
|
wifi = "NHRHS_WiFi"
|
||||||
|
```
|
||||||
|
|
||||||
|
If you are at school, comment the other WiFi and leave NHRHS_WiFi open. If you are at home, do the opposite and replace the Verizon wifi with your own wifi name.
|
||||||
|
|
||||||
|
<h3>Fake Laggy Mode</h3>
|
||||||
|
|
||||||
|
Fake laggy mode is a new mode introduced in A-2. It simulates random lag so that people monitoring you will not be suspicious, while keeping the monitoring end stuttered enough so that they cannot get a consistent picture.
|
||||||
|
|
||||||
|
Currently, it loops between 3-12 seconds of WiFi uptime and 3-12 seconds of WiFi downtime.
|
||||||
|
|
||||||
|
<h3>Known Issues</h3>
|
||||||
|
|
||||||
|
The delay in seconds at which your sector on Senso's grid view begins to display your offline status is unknown. Based on a test in 2/7/2026, the user has ~10-15 seconds to reconnect the WiFi, and during this time Senso's grid view display will enter a convincing loop (Neat bug!).
|
||||||
|
|
||||||
|
If this time is exceeded, your sector on Senso's grid view will turn black. This is dangerous as your grid will stick out prominently against the others, and even if you immediately connect your WiFi, it will take ~30-45 seconds for the grid to return to normal.
|
||||||
|
|
||||||
|
Therefore, I cannot determine or promise that using this will not trigger a black grid. This is undergoing trials and will soon be solved.
|
||||||
|
|
||||||
|
P.S. I will add an ability to toggle WiFis, or even save a set of WiFis later.
|
||||||
123
tificut-a-3-i.py
Normal file
123
tificut-a-3-i.py
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
import subprocess
|
||||||
|
import time
|
||||||
|
import sys
|
||||||
|
import random
|
||||||
|
|
||||||
|
flags = subprocess.CREATE_NO_WINDOW
|
||||||
|
# wifi = "Verizon_3B6SGV"
|
||||||
|
wifi = "NHRHS_WiFi"
|
||||||
|
|
||||||
|
def cut_wifi(seconds):
|
||||||
|
print("Cutting WiFi for " + str(seconds) + " seconds...", end = " ")
|
||||||
|
start_time = time.time()
|
||||||
|
end_time = start_time + seconds
|
||||||
|
while time.time() < end_time:
|
||||||
|
subprocess.run(
|
||||||
|
"netsh wlan disconnect interface=\"Wi-Fi\"",
|
||||||
|
check=True,
|
||||||
|
creationflags=flags
|
||||||
|
)
|
||||||
|
print("Cut duration ended.")
|
||||||
|
print("Reconnecting WiFi...", end = " ")
|
||||||
|
subprocess.run(
|
||||||
|
f"netsh wlan connect ssid=\"{wifi}\" name=\"{wifi}\"",
|
||||||
|
check=True,
|
||||||
|
creationflags=flags
|
||||||
|
)
|
||||||
|
print("Success.")
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
print("=" * 80)
|
||||||
|
print("TiFiCut WDS (WiFi Disconnection System) A-3-i")
|
||||||
|
print("-" * 80)
|
||||||
|
print("Choose a duration to cut wifi:")
|
||||||
|
print("[1] Optimal 10 Seconds (note 1)")
|
||||||
|
print("[2] N Seconds")
|
||||||
|
print("[3] N Minutes")
|
||||||
|
print("[4] N Hours (note 2)")
|
||||||
|
print("[5] N Days (note 2)")
|
||||||
|
print("[6] Fake Lag")
|
||||||
|
print("[7] Toggle WiFi")
|
||||||
|
print("")
|
||||||
|
print("[h] Help (w/Notes)")
|
||||||
|
print("[d] Toggle Diagnostics")
|
||||||
|
print("[x] Exit")
|
||||||
|
second_choice = input("Duration > ")
|
||||||
|
if second_choice.isdigit():
|
||||||
|
if second_choice == "1":
|
||||||
|
cut_wifi(10)
|
||||||
|
elif second_choice == "2":
|
||||||
|
specify_seconds = int(input("Specify seconds > "))
|
||||||
|
cut_wifi(specify_seconds)
|
||||||
|
elif second_choice == "3":
|
||||||
|
specify_minutes = int(input("Specify minutes > "))
|
||||||
|
cut_wifi(specify_minutes * 60)
|
||||||
|
elif second_choice == "4":
|
||||||
|
specify_hours = int(input("Specify hours > "))
|
||||||
|
cut_wifi(specify_hours * 3600)
|
||||||
|
elif second_choice == "5":
|
||||||
|
specify_days = int(input("Specify days > "))
|
||||||
|
cut_wifi(specify_days * 86400)
|
||||||
|
elif second_choice == "6":
|
||||||
|
print("Press Ctrl+C to stop.")
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
time.sleep(random.randint(3, 12))
|
||||||
|
cut_wifi(random.randint(3, 12))
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
print("User stopped. Reconnecting...")
|
||||||
|
try:
|
||||||
|
subprocess.run(
|
||||||
|
f"netsh wlan connect ssid=\"{wifi}\" name=\"{wifi}\"",
|
||||||
|
check=True,
|
||||||
|
creationflags=flags
|
||||||
|
)
|
||||||
|
print("Success.")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error: {e}")
|
||||||
|
pass
|
||||||
|
elif second_choice == "7":
|
||||||
|
print("Press Ctrl+C to stop.")
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
subprocess.run(
|
||||||
|
"netsh wlan disconnect interface=\"Wi-Fi\"",
|
||||||
|
check=True,
|
||||||
|
creationflags=flags
|
||||||
|
)
|
||||||
|
except:
|
||||||
|
print("User has stopped. Reconnecting...")
|
||||||
|
try:
|
||||||
|
subprocess.run(
|
||||||
|
f"netsh wlan connect ssid=\"{wifi}\" name=\"{wifi}\"",
|
||||||
|
check=True,
|
||||||
|
creationflags=flags
|
||||||
|
)
|
||||||
|
print("Success.")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error: {e}")
|
||||||
|
else:
|
||||||
|
print("Error: option passed isdigit() criteria but did not get selected")
|
||||||
|
elif second_choice.isalpha():
|
||||||
|
if second_choice.lower() == "h":
|
||||||
|
print(" - Note 1: This is the most effective way to take a short break without displaying offline on the Senso screen.")
|
||||||
|
print(" - Note 2: WAIT this is so long HOW DID YOU WHAT WHEN WHERE WHY WHA- HUH- UH WHAT HUH AAH")
|
||||||
|
elif second_choice.lower() == "d":
|
||||||
|
print("Attempting to cut WiFi for 1 second...")
|
||||||
|
try:
|
||||||
|
cut_wifi(1)
|
||||||
|
print("Success!")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error: {e}")
|
||||||
|
elif second_choice.lower() == "x":
|
||||||
|
sys.exit(0)
|
||||||
|
else:
|
||||||
|
print("Error: option passed isalpha() criteria but did not get selected")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error: {e}")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user