updated formatting to take account terminal width

This commit is contained in:
Justin Bollinger
2026-02-03 17:10:00 -05:00
parent 3d37b08fe0
commit d68bf287e4
2 changed files with 42 additions and 6 deletions
+35 -5
View File
@@ -370,7 +370,13 @@ def weakpass_wordlist_menu(rank=-1):
name = str(wl.get('name', ''))[:30]
entry = f"{idx+1:3d}. {name:<30} {effectiveness:<8} {rank:<2}"
entries.append(entry)
print_multicolumn_list("Available Wordlists", entries, min_col_width=36, max_col_width=70)
max_entry_len = max((len(e) for e in entries), default=36)
print_multicolumn_list(
"Available Wordlists",
entries,
min_col_width=max_entry_len,
max_col_width=max_entry_len,
)
def parse_indices(selection, max_index):
indices = set()
for part in selection.split(','):
@@ -891,7 +897,13 @@ def download_hashmob_wordlist_list():
else:
entry = f"{idx+1}. {name}"
entries.append(entry)
print_multicolumn_list("Available Hashmob Wordlists", entries, min_col_width=30, max_col_width=80)
max_entry_len = max((len(e) for e in entries), default=30)
print_multicolumn_list(
"Available Hashmob Wordlists",
entries,
min_col_width=max_entry_len,
max_col_width=max_entry_len,
)
return wordlists
except Exception as e:
print(f"Error fetching Hashmob wordlists: {e}")
@@ -984,7 +996,13 @@ def download_hashmob_rule_list():
entries = []
for idx, rule in enumerate(rules):
entries.append(f"{idx+1}. {rule.get('name', rule.get('file_name', ''))}")
print_multicolumn_list("Available Hashmob Rules", entries, min_col_width=30, max_col_width=80)
max_entry_len = max((len(e) for e in entries), default=30)
print_multicolumn_list(
"Available Hashmob Rules",
entries,
min_col_width=max_entry_len,
max_col_width=max_entry_len,
)
return rules
except Exception as e:
print(f"Error fetching Hashmob rules: {e}")
@@ -1047,7 +1065,13 @@ def list_official_wordlists():
try:
data = resp.json()
entries = [f"{idx+1}. {entry}" for idx, entry in enumerate(data)]
print_multicolumn_list("Official Hashmob Wordlists (JSON)", entries, min_col_width=30, max_col_width=80)
max_entry_len = max((len(e) for e in entries), default=30)
print_multicolumn_list(
"Official Hashmob Wordlists (JSON)",
entries,
min_col_width=max_entry_len,
max_col_width=max_entry_len,
)
return data
except Exception:
print("Official Hashmob Wordlists (raw text):")
@@ -1074,7 +1098,13 @@ def list_and_download_official_wordlists():
name = entry.get('name', entry.get('file_name', str(entry)))
file_name = entry.get('file_name', name)
entries.append(f"{idx+1}. {name} ({file_name})")
print_multicolumn_list("Official Hashmob Wordlists", entries, min_col_width=30, max_col_width=80)
max_entry_len = max((len(e) for e in entries), default=30)
print_multicolumn_list(
"Official Hashmob Wordlists",
entries,
min_col_width=max_entry_len,
max_col_width=max_entry_len,
)
print("a. Download ALL files")
def _safe_input(prompt):
try:
+7 -1
View File
@@ -99,7 +99,13 @@ def quick_crack(ctx: Any) -> None:
rule_entries.extend([f"{i}. {file}" for i, file in enumerate(rule_files, start=1)])
rule_entries.append("98. YOLO...run all of the rules")
rule_entries.append("99. Back to Main Menu")
print_multicolumn_list("Available Rules", rule_entries, min_col_width=26, max_col_width=60)
max_rule_len = max((len(e) for e in rule_entries), default=26)
print_multicolumn_list(
"Available Rules",
rule_entries,
min_col_width=max_rule_len,
max_col_width=max_rule_len,
)
example_line = ""
if len(rule_files) >= 2: