""" STEGOSAURUS WRECKS - ASCII Art & Visual Assets ๐Ÿฆ• The most epic steg tool of all time ๐Ÿฆ• """ # Color codes for Rich COLORS = { "primary": "#00ff00", # Matrix green "secondary": "#00ffff", # Cyan "accent": "#ff00ff", # Magenta "warning": "#ffff00", # Yellow "error": "#ff0000", # Red "muted": "#666666", # Gray "white": "#ffffff", "dark": "#0a0a0a", } # Main stegosaurus - large STEGOSAURUS_LARGE = r""" [green] . . / `. .' \ .---. < > < > .---. | \ \ - ~ ~ - / / | ~-..-~ ~-..-~ \~~~\.' `./~~~/ \__/ \__/ / .- . \ _._ _.- .-~ ~-. / } \/~~~/ _.-'q }~ / } { ; \__/ {'__, / ( / { / `. ,googl `\ \ | | } / \ ---__-..-' `\ \ | `.___/-" -._ { / \ / / `\ `.___| /\ | \ \ { ._..---' / / `-.___/ | `-._ | \ `-.___ _/ / | `----| `. ``---'' / | | `----. __..--' \ | .-' \'\'\' \ | / `. | ' `'---'`'-' [/green] """ STEGOSAURUS_MEDIUM = r"""[green] __ .' '. : : [cyan]S T E G O S A U R U S[/cyan] | _ _ | [magenta]W R E C K S[/magenta] .--| o o |--. / '. .' \ [dim]>> LSB Steganography Suite <<[/dim] / / `~~` \ \ / / \ \ / .' /\ `. \ / _.' .' `. `._ \ :.' / \ `.: .' ; ; `. / _ | __ | _ \ | (o) | / \ | (o) | | | | | | | \ /| | | |\ / '._ _' | \__/ | '._ _' `` | | `` |___ ___| | `` | / || \ ' | | ' / \ ' ' [/green]""" STEGOSAURUS_SMALL = r"""[green] __ / '-. / .-. | [cyan]STEGOSAURUS[/cyan] /.' \| [magenta]WRECKS[/magenta] // |\ \ || | \ | [dim]v2.0[/dim] /|| | \ | / ||__/ \/ \ --' |\_\ '._____.' \/ [/green]""" STEGOSAURUS_MINI = r"[green]๐Ÿฆ•[/green]" STEGOSAURUS_ASCII_SIMPLE = r""" [green] .-. [cyan]โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—[/cyan] / \ [cyan]โ•‘[/cyan] [bold white]S T E G O S A U R U S[/bold white] [cyan]โ•‘[/cyan] __./_ _\ [cyan]โ•‘[/cyan] [magenta]W R E C K S[/magenta] [cyan]โ•‘[/cyan] / , ' \ [cyan]โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ[/cyan] | | o o | [cyan]โ•‘[/cyan] [dim]>> Ultimate Steg Suite <<[/dim] [cyan]โ•‘[/cyan] \ \ โ–ฝ / [cyan]โ•‘[/cyan] [dim]>> Encode โ€ข Decode โ€ข Inject[/dim] [cyan]โ•‘[/cyan] '.`'---'`.' [cyan]โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•[/cyan] `-----`[/green] """ # Banner for CLI BANNER = r""" [green]โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ•šโ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ• โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ• โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ•โ•โ• โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘ โ•šโ•โ•โ•โ•โ•โ•โ• โ•šโ•โ• โ•šโ•โ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ• โ•šโ•โ• โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ• โ•šโ•โ• โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ•โ•[/green] [cyan] โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ• โ–ˆโ–ˆโ•‘ โ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ• โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ• โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•— โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘ โ•šโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘ โ•šโ•โ•โ•โ•šโ•โ•โ• โ•šโ•โ• โ•šโ•โ•โ•šโ•โ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ•โ•šโ•โ• โ•šโ•โ•โ•šโ•โ•โ•โ•โ•โ•โ•[/cyan] """ BANNER_SMALL = r""" [green]โ•”โ•โ•—โ•”โ•ฆโ•—โ•”โ•โ•—โ•”โ•โ•—โ•”โ•โ•—โ•”โ•โ•—โ•”โ•โ•—โ•ฆ โ•ฆโ•ฆโ•โ•—โ•ฆ โ•ฆโ•”โ•โ•—[/green] [cyan]โ•ฆ โ•ฆโ•ฆโ•โ•—โ•”โ•โ•—โ•”โ•โ•—โ•ฆโ•”โ•โ•”โ•โ•—[/cyan] [green]โ•šโ•โ•— โ•‘ โ•‘โ•ฃ โ•‘ โ•ฆโ•‘ โ•‘โ•šโ•โ•—โ• โ•โ•ฃโ•‘ โ•‘โ• โ•ฆโ•โ•‘ โ•‘โ•šโ•โ•—[/green] [cyan]โ•‘โ•‘โ•‘โ• โ•ฆโ•โ•‘โ•ฃ โ•‘ โ• โ•ฉโ•—โ•šโ•โ•—[/cyan] [green]โ•šโ•โ• โ•ฉ โ•šโ•โ•โ•šโ•โ•โ•šโ•โ•โ•šโ•โ•โ•ฉ โ•ฉโ•šโ•โ•โ•ฉโ•šโ•โ•šโ•โ•โ•šโ•โ•[/green] [cyan]โ•šโ•ฉโ•โ•ฉโ•šโ•โ•šโ•โ•โ•šโ•โ•โ•ฉ โ•ฉโ•šโ•โ•[/cyan] """ BANNER_MINI = "[green]โ—ค[bold]STEGOSAURUS[/bold][/green] [cyan][bold]WRECKS[/bold][/cyan]" # Loading animation frames LOADING_FRAMES = [ "[green]๐Ÿฆ• [/green]", "[green] ๐Ÿฆ• [/green]", "[green] ๐Ÿฆ• [/green]", "[green] ๐Ÿฆ• [/green]", "[green] ๐Ÿฆ• [/green]", "[green] ๐Ÿฆ• [/green]", "[green] ๐Ÿฆ• [/green]", "[green] ๐Ÿฆ•[/green]", "[green] ๐Ÿฆ• [/green]", "[green] ๐Ÿฆ• [/green]", "[green] ๐Ÿฆ• [/green]", "[green] ๐Ÿฆ• [/green]", "[green] ๐Ÿฆ• [/green]", "[green] ๐Ÿฆ• [/green]", ] # Encode animation ENCODE_FRAMES = [ "[green]โ–“[/green]โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘", "[green]โ–“โ–“[/green]โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘", "[green]โ–“โ–“โ–“[/green]โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘", "[green]โ–“โ–“โ–“โ–“[/green]โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘", "[green]โ–“โ–“โ–“โ–“โ–“[/green]โ–‘โ–‘โ–‘โ–‘โ–‘", "[green]โ–“โ–“โ–“โ–“โ–“โ–“[/green]โ–‘โ–‘โ–‘โ–‘", "[green]โ–“โ–“โ–“โ–“โ–“โ–“โ–“[/green]โ–‘โ–‘โ–‘", "[green]โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“[/green]โ–‘โ–‘", "[green]โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“[/green]โ–‘", "[green]โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“[/green]", ] # Matrix rain characters MATRIX_CHARS = "๏พŠ๏พ๏พ‹๏ฝฐ๏ฝณ๏ฝผ๏พ…๏พ“๏พ†๏ฝป๏พœ๏พ‚๏ฝต๏พ˜๏ฝฑ๏พŽ๏พƒ๏พ๏ฝน๏พ’๏ฝด๏ฝถ๏ฝท๏พ‘๏พ•๏พ—๏ฝพ๏พˆ๏ฝฝ๏พ€๏พ‡๏พ01234567890" # Box drawing characters for panels BOX = { "tl": "โ•”", "tr": "โ•—", "bl": "โ•š", "br": "โ•", "h": "โ•", "v": "โ•‘", "tl_r": "โ•ญ", "tr_r": "โ•ฎ", "bl_r": "โ•ฐ", "br_r": "โ•ฏ", "h_s": "โ”€", "v_s": "โ”‚", } # Status indicators STATUS = { "success": "[green]โœ“[/green]", "error": "[red]โœ—[/red]", "warning": "[yellow]โš [/yellow]", "info": "[cyan]โ„น[/cyan]", "loading": "[magenta]โ—[/magenta]", "encode": "[green]โฌ†[/green]", "decode": "[cyan]โฌ‡[/cyan]", "lock": "[yellow]๐Ÿ”’[/yellow]", "unlock": "[green]๐Ÿ”“[/green]", "key": "[yellow]๐Ÿ”‘[/yellow]", "file": "[blue]๐Ÿ“„[/blue]", "image": "[magenta]๐Ÿ–ผ[/magenta]", "dino": "[green]๐Ÿฆ•[/green]", } # Progress bar styles PROGRESS_STYLE = { "complete": "[green]โ–ˆ[/green]", "incomplete": "[dim]โ–‘[/dim]", "head": "[cyan]โ–“[/cyan]", } # Glitch text for effects def glitch_text(text: str, intensity: int = 1) -> str: """Add glitch effects to text""" glitch_chars = "!@#$%^&*()_+-=[]{}|;':\",./<>?`~" import random result = [] for char in text: if random.random() < 0.1 * intensity: result.append(f"[red]{random.choice(glitch_chars)}[/red]") else: result.append(char) return ''.join(result) # Cyber-styled section headers def section_header(title: str, width: int = 60) -> str: """Create a cyber-styled section header""" padding = (width - len(title) - 4) // 2 return f"[cyan]{'โ”€' * padding}[/cyan][green]ใ€Š {title} ใ€‹[/green][cyan]{'โ”€' * padding}[/cyan]" def box_text(text: str, style: str = "green", width: int = 60) -> str: """Wrap text in a styled box""" lines = text.split('\n') max_len = max(len(line) for line in lines) padded_width = max(max_len + 4, width) result = [f"[{style}]โ•”{'โ•' * (padded_width - 2)}โ•—[/{style}]"] for line in lines: padding = padded_width - len(line) - 4 result.append(f"[{style}]โ•‘[/{style}] {line}{' ' * padding} [{style}]โ•‘[/{style}]") result.append(f"[{style}]โ•š{'โ•' * (padded_width - 2)}โ•[/{style}]") return '\n'.join(result) # Channel visualization CHANNEL_DISPLAY = { "R": "[red]โ–ˆRโ–ˆ[/red]", "G": "[green]โ–ˆGโ–ˆ[/green]", "B": "[blue]โ–ˆBโ–ˆ[/blue]", "A": "[white]โ–ˆAโ–ˆ[/white]", } def channel_bar(channels: str) -> str: """Create a visual channel indicator""" return " ".join(CHANNEL_DISPLAY.get(c, f"[dim]โ–ˆ{c}โ–ˆ[/dim]") for c in channels) # Taglines / quotes TAGLINES = [ "Sฬทฬ›ฬคฬผฬฅฬนอšอˆฬ“ฬฝฬ‚Eฬดฬณฬ˜อ•อฬฏฬฎอ–ฬ–อšอ‹ฬ‹อ ศจฬถอ•ฬชอˆฬ‹อ…แธŒฬดฬฎอ™ฬฏฬ…ฬฟฬˆฬอฬ ฬทฬณฬ—ฬŸอ•ออ‚อ’ฬ‰ฬ‘ฬ•Tฬถฬกอ–อ•ฬฌฬบฬชฬผฬ‚ฬ‹ฬŽฬพฬ“อ อ…แธชฬทฬผอˆฬฬฏฬ‰อ†ฬ“ฬ”ฬ’ฬฟฬ€ฬˆฬEฬทฬฬฐอ”ฬบอ›ฬ‹อŒฬ‚ฬš ฬดฬกฬกฬณฬญฬนอฬ‰ฬˆฬ‘Fฬตฬซฬœอ†ฬฬ„อ†อ‘ฬฬอ†อ Uฬถฬชฬ–ฬ–ฬปฬซอ™ฬ“ฬ†ฬ“อœTฬตฬ›อ”ฬญอˆฬ™ฬ™ฬ ฬœฬคฬ ฬ“ฬฬฬˆฬ•ฬ•ศ”ฬตฬœอŽฬ˜ฬžฬฏอฬฆฬซอ–ฬ†ล–ฬถออ“ฬคฬชอฬฆอ”อ™ฬฟศจฬตอˆฬนฬฌอ“ฬฬฎฬŸฬŽฬ“อ’ฬ€ฬˆฬ ๐Ÿ”ฎ", ".-.-.-.-<={LOVE PLINY}=>-.-.-.-.", ">> Hide in plain sight <<", ">> The pixels have secrets <<", ">> What you see is not what you get <<", ">> 65 million years of evolution <<", ">> Least Significant. Most Powerful. <<", ] FOOTER = "[dim].-.-.-.-<={LOVE PLINY}=>-.-.-.-.[/dim]"