mirror of
https://github.com/jkingsman/Remote-Terminal-for-MeshCore.git
synced 2026-05-18 07:16:17 +02:00
Add turbo mode
This commit is contained in:
+532
File diff suppressed because one or more lines are too long
-532
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>RemoteTerm for MeshCore</title>
|
||||
<script type="module" crossorigin src="/assets/index-Buy_tNL1.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-B4aoszDr.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-C3_XTTUI.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
Generated
+4
-4
@@ -17,7 +17,7 @@
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"lucide-react": "^0.562.0",
|
||||
"meshcore-hashtag-cracker": "^1.3.1",
|
||||
"meshcore-hashtag-cracker": "^1.4.0",
|
||||
"nosleep.js": "^0.12.0",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
@@ -2439,9 +2439,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/meshcore-hashtag-cracker": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/meshcore-hashtag-cracker/-/meshcore-hashtag-cracker-1.3.1.tgz",
|
||||
"integrity": "sha512-0isl0fdb+WA+baBT1uCOnsfpgcO4I8+7n4DWMyzgM/QjXrcMss/scKCUwik4PshKx+uzWxIpsvIRSmGmZooznA==",
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/meshcore-hashtag-cracker/-/meshcore-hashtag-cracker-1.4.0.tgz",
|
||||
"integrity": "sha512-CfDFueRIz6bHHdBT4yQSSrGS6JEKKn+yiw5tIHfW2tTP7LhNRo084OlURXhLk+30PVPGNNUBA2M4ZnxLZe55MQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@michaelhart/meshcore-decoder": "^0.2.7",
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"lucide-react": "^0.562.0",
|
||||
"meshcore-hashtag-cracker": "^1.3.1",
|
||||
"meshcore-hashtag-cracker": "^1.4.0",
|
||||
"nosleep.js": "^0.12.0",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
|
||||
@@ -33,6 +33,7 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan
|
||||
const [maxLength, setMaxLength] = useState(6);
|
||||
const [retryFailedAtNextLength, setRetryFailedAtNextLength] = useState(false);
|
||||
const [decryptHistorical, setDecryptHistorical] = useState(true);
|
||||
const [turboMode, setTurboMode] = useState(false);
|
||||
const [progress, setProgress] = useState<ProgressReport | null>(null);
|
||||
const [queue, setQueue] = useState<Map<number, QueueItem>>(new Map());
|
||||
const [crackedRooms, setCrackedRooms] = useState<CrackedRoom[]>([]);
|
||||
@@ -49,6 +50,7 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan
|
||||
const retryFailedRef = useRef(false);
|
||||
const maxLengthRef = useRef(6);
|
||||
const decryptHistoricalRef = useRef(true);
|
||||
const turboModeRef = useRef(false);
|
||||
const undecryptedIdsRef = useRef<Set<number>>(new Set());
|
||||
|
||||
// Initialize cracker and NoSleep
|
||||
@@ -136,6 +138,10 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan
|
||||
decryptHistoricalRef.current = decryptHistorical;
|
||||
}, [decryptHistorical]);
|
||||
|
||||
useEffect(() => {
|
||||
turboModeRef.current = turboMode;
|
||||
}, [turboMode]);
|
||||
|
||||
// Keep undecrypted IDs ref in sync - used to skip packets already decrypted by other means
|
||||
useEffect(() => {
|
||||
undecryptedIdsRef.current = new Set(undecryptedGroupText.map(p => p.id));
|
||||
@@ -221,6 +227,7 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan
|
||||
maxLength: targetLength,
|
||||
useTimestampFilter: true,
|
||||
useUtf8Filter: true,
|
||||
...(turboModeRef.current && { gpuDispatchMs: 10000 }),
|
||||
},
|
||||
(prog) => {
|
||||
setProgress(prog);
|
||||
@@ -394,6 +401,16 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan
|
||||
: '(messages stream in as decrypted)'}
|
||||
</span>
|
||||
)}
|
||||
|
||||
<label className="flex items-center gap-2 text-sm text-muted-foreground cursor-pointer">
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={turboMode}
|
||||
onChange={(e) => setTurboMode(e.target.checked)}
|
||||
className="rounded"
|
||||
/>
|
||||
Turbo mode (experimental)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
{/* Status */}
|
||||
|
||||
Reference in New Issue
Block a user