hackingtool/tools/others/mix_tools.py
Hardik Zinzuvadiya 2ad5587517 Phase 4+5: Core architecture + shared console across all tool files
Phase 4 (core.py — largely done in Phase 1, completed here):
- HackingTool: add ARCHIVED, ARCHIVED_REASON, SUPPORTED_OS, REQUIRES_* fields
- HackingTool: remove INSTALLATION_DIR (unused)
- HackingToolsCollection: add _active_tools(), _archived_tools(), _incompatible_tools()
- HackingToolsCollection: add _show_archived_tools() (option 98 sub-menu)
- HackingToolsCollection.show_options(): filter by OS and ARCHIVED flag
- OS-incompatible tools show count but are hidden from menu
- Archived tools accessible via option 98 with reason displayed

Phase 5 (all 22 remaining tool files):
- Remove local console = Console() and _theme = Theme() from all 22 files
- Remove P_COLOR and PURPLE_STYLE local constants
- Add `from core import HackingTool, HackingToolsCollection, console` everywhere
- Remove show_options() overrides from all collection classes (500+ lines deleted)
- Remove pretty_print() overrides from all collection classes
- Remove _get_attr() / _get_attr_fallback() helpers from all collection classes
- Replace super(ClassName, self).__init__() → super().__init__() in all files
- Remove # coding=utf-8 headers from all files
- Fix remaining PURPLE_STYLE usages → "bold magenta" literal

All 28 tool modules import cleanly. Zero local console instances remain.
2026-03-15 13:55:04 +05:30

51 lines
1.5 KiB
Python

from core import HackingTool, HackingToolsCollection, console
from rich.panel import Panel
from rich.prompt import Prompt
from rich import box
class TerminalMultiplexer(HackingTool):
TITLE = "Terminal Multiplexer"
DESCRIPTION = (
"Terminal Multiplexer (tilix) is a tiling terminal emulator that "
"allows opening several terminal sessions inside one window."
)
# Bug 19 fix: tilix is a Debian/Ubuntu package only — mark Linux-only
INSTALL_COMMANDS = ["sudo apt-get install -y tilix"]
SUPPORTED_OS = ["linux"]
def __init__(self):
# Py3-4 fix: super(TerminalMultiplexer, self) → super()
super().__init__(runnable=False)
class Crivo(HackingTool):
TITLE = "Crivo"
DESCRIPTION = (
"A tool for extracting and filtering URLs, IPs, domains, and subdomains\n"
"from web pages or text, with built-in web scraping capabilities.\n"
"See: python3 crivo_cli.py -h"
)
INSTALL_COMMANDS = [
"git clone https://github.com/GMDSantana/crivo.git",
# Bug 18 verify: this is correct — cd and pip in same string works
"cd crivo && pip install --user -r requirements.txt",
]
PROJECT_URL = "https://github.com/GMDSantana/crivo"
def __init__(self):
# Py3-4 fix: super(Crivo, self) → super()
super().__init__(runnable=False)
class MixTools(HackingToolsCollection):
TITLE = "Mix tools"
TOOLS = [
TerminalMultiplexer(),
Crivo()
]
if __name__ == "__main__":
tools = MixTools()
tools.show_options()