mirror of
https://github.com/bellingcat/octosuite.git
synced 2026-06-11 21:08:35 +03:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c296f09e0e | ||
|
|
04ea880276 | ||
|
|
eef44716d5 |
@@ -49,15 +49,13 @@
|
|||||||
- [x] ...And more
|
- [x] ...And more
|
||||||
|
|
||||||
## Note
|
## Note
|
||||||
> octosuite automatically logs network and minor user activity of each session. The logs are saved by date and time in the .logs folder
|
> Octosuite automatically logs network and user activity of each session, the logs are saved by date and time in the .logs folder
|
||||||
>> If you believe octosuite can be better, feel free to open a pull request with your improvements✌🏾🙂
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||

|

|
||||||
|
|
||||||
## Donations
|
## Donations
|
||||||
Love octosuite and would like to donate? You can buy me a coffee using the button below.
|
Buy a coffee to the creator of *Octosuite*
|
||||||
|
|
||||||
<a href="https://www.buymeacoffee.com/189381184" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>
|
<a href="https://www.buymeacoffee.com/189381184" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>
|
||||||
|
|
||||||
Your support is much appreciated!☕👌🏾😊
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import getpass
|
import getpass
|
||||||
from octosuite.colors import red, white, green, reset
|
from octosuite.colors import red, white, green, reset
|
||||||
|
|
||||||
'''
|
"""
|
||||||
banner.py
|
banner.py
|
||||||
This file holds the program's banner logo and version tag
|
This file holds the program's banner logo and version tag
|
||||||
'''
|
"""
|
||||||
version_tag = "2.2.2"
|
version_tag = "2.2.3"
|
||||||
name_logo = f"""{white}
|
name_logo = f"""{white}
|
||||||
_______ __ _______ __ __
|
_______ __ _______ __ __
|
||||||
| |.----.| |_.-----.| __|.--.--.|__| |_.-----.
|
| |.----.| |_.-----.| __|.--.--.|__| |_.-----.
|
||||||
|
|||||||
@@ -5,39 +5,39 @@ from datetime import datetime
|
|||||||
# This file gets called first at start up before any other file gets called
|
# This file gets called first at start up before any other file gets called
|
||||||
# colors.py is the reason why users get to choose whether to enable/disable colors
|
# colors.py is the reason why users get to choose whether to enable/disable colors
|
||||||
system_info = [("Processor",platform.processor),
|
system_info = [("Processor",platform.processor),
|
||||||
("Node", platform.node),
|
("Node", platform.node),
|
||||||
("Release", platform.release),
|
("Release", platform.release),
|
||||||
("Architecture", platform.architecture),
|
("Architecture", platform.architecture),
|
||||||
("Version", platform.version)]
|
("Version", platform.version)]
|
||||||
banner = f"""
|
banner = f"""
|
||||||
OCTOSUITE © 2022 Richard Mwewa
|
OCTOSUITE © 2022 Richard Mwewa
|
||||||
{datetime.now().strftime('%A %d %B %Y, %H:%M:%S%p')}
|
{datetime.now().strftime('%A %d %B %Y, %H:%M:%S%p')}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
print(banner)
|
print(banner)
|
||||||
print(f"\t{platform.system()}")
|
print(f"\t{platform.system()}")
|
||||||
for key, value in system_info:
|
for key, value in system_info:
|
||||||
print(f"\t├─ {key}: {value()}")
|
print(f"\t├─ {key}: {value()}")
|
||||||
print("\n")
|
print("\n")
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
color_chooser = input(f"[ ? ] Welcome, would you like to enable colors for this session? (Y/n) ").lower()
|
color_chooser = input(f"[ ? ] Welcome, would you like to enable colors for this session? (Y/n) ").lower()
|
||||||
if color_chooser == "y":
|
if color_chooser == "y":
|
||||||
header_title = "bold white"
|
header_title = "bold white"
|
||||||
red = "[red]"
|
red = "[red]"
|
||||||
white = "[white]"
|
white = "[white]"
|
||||||
green = "[green]"
|
green = "[green]"
|
||||||
red_bold = "[white bold]"
|
red_bold = "[white bold]"
|
||||||
white_bold = "[white bold]"
|
white_bold = "[white bold]"
|
||||||
green_bold = "[green bold]"
|
green_bold = "[green bold]"
|
||||||
reset = "[/]"
|
reset = "[/]"
|
||||||
break
|
break
|
||||||
elif color_chooser == "n":
|
elif color_chooser == "n":
|
||||||
header_title = red = white = green = red_bold = white_bold = green_bold = reset = ""
|
header_title = red = white = green = red_bold = white_bold = green_bold = reset = ""
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
print(f"\n[ ! ] Your response '{color_chooser}' is invalid (expected y or n)")
|
print(f"\n[ ! ] Your response '{color_chooser}' is invalid (expected y or n)")
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
exit(f"[ ! ] Process interrupted with [Ctrl+C].")
|
exit(f"[ ! ] Process interrupted with [Ctrl+C].")
|
||||||
|
|||||||
@@ -5,10 +5,11 @@ from octosuite.sign_vars import SignVar
|
|||||||
from octosuite.log_roller import logRoller
|
from octosuite.log_roller import logRoller
|
||||||
from octosuite.colors import red, white, green, reset
|
from octosuite.colors import red, white, green, reset
|
||||||
|
|
||||||
'''
|
"""
|
||||||
csvLogger
|
csvLogger
|
||||||
This class holds the methods for creating .csv files of each functionality in main
|
This class holds the methods for creating .csv files of each functionality in main
|
||||||
'''
|
"""
|
||||||
|
|
||||||
class csvLogger:
|
class csvLogger:
|
||||||
# .csv for organization' profile
|
# .csv for organization' profile
|
||||||
def logOrgProfile(response):
|
def logOrgProfile(response):
|
||||||
|
|||||||
@@ -1,93 +1,106 @@
|
|||||||
from rich.table import Table
|
from rich.table import Table
|
||||||
from rich import print as xprint
|
from rich import print as xprint
|
||||||
from octosuite.colors import white, green, white_bold, green_bold, header_title, reset
|
from octosuite.colors import white, green, white_bold, green_bold, header_title, reset
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Help
|
Help
|
||||||
This class holds the help text for available commands.
|
This class holds the help text for available commands.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
class Help:
|
class Help:
|
||||||
usageText = 'Use syntax {} to get started with %s{}%s.' % (green_bold, reset)
|
usageText = 'Use syntax {} to get started with %s{}%s.' % (green_bold, reset)
|
||||||
usageText1 = '%sUse {} to view all available subcommands.%s' % (white, reset)
|
usageText1 = '%sUse {} to view all available subcommands.%s' % (white, reset)
|
||||||
usageText2 = "%sThe {} command works with subcommands. %s" % (white, reset)
|
usageText2 = "%sThe {} command works with subcommands. %s" % (white, reset)
|
||||||
|
|
||||||
def Org():
|
def Org():
|
||||||
xprint(Help.usageText2.format(f"{green_bold}org{reset}") + Help.usageText1.format(f"{green_bold}help:org{reset}"))
|
xprint(
|
||||||
|
Help.usageText2.format(f"{green_bold}org{reset}") + Help.usageText1.format(f"{green_bold}help:org{reset}"))
|
||||||
|
|
||||||
|
|
||||||
def Repo():
|
def Repo():
|
||||||
xprint(Help.usageText2.format(f"{green_bold}repo{reset}") + Help.usageText1.format(f"{green_bold}help:repo{reset}"))
|
xprint(Help.usageText2.format(f"{green_bold}repo{reset}") + Help.usageText1.format(
|
||||||
|
f"{green_bold}help:repo{reset}"))
|
||||||
|
|
||||||
|
|
||||||
def User():
|
def User():
|
||||||
xprint(Help.usageText2.format(f"{green_bold}user{reset}") + Help.usageText1.format(f"{green_bold}help:user{reset}"))
|
xprint(Help.usageText2.format(f"{green_bold}user{reset}") + Help.usageText1.format(
|
||||||
|
f"{green_bold}help:user{reset}"))
|
||||||
|
|
||||||
|
|
||||||
def Search():
|
def Search():
|
||||||
xprint(Help.usageText2.format(f"{green_bold}search{reset}") + Help.usageText1.format(f"{green_bold}help:search{reset}"))
|
xprint(Help.usageText2.format(f"{green_bold}search{reset}") + Help.usageText1.format(
|
||||||
|
f"{green_bold}help:search{reset}"))
|
||||||
|
|
||||||
|
|
||||||
def Source():
|
def Source():
|
||||||
xprint(Help.usageText2.format(f"{green_bold}source{reset}") + Help.usageText1.format(f"{green_bold}help:source{reset}"))
|
xprint(Help.usageText2.format(f"{green_bold}source{reset}") + Help.usageText1.format(
|
||||||
|
f"{green_bold}help:source{reset}"))
|
||||||
|
|
||||||
|
|
||||||
def Logs():
|
def Logs():
|
||||||
xprint(Help.usageText2.format(f"{green_bold}logs{reset}") + Help.usageText1.format(f"{green_bold}help:logs{reset}"))
|
xprint(Help.usageText2.format(f"{green_bold}logs{reset}") + Help.usageText1.format(
|
||||||
|
f"{green_bold}help:logs{reset}"))
|
||||||
|
|
||||||
|
|
||||||
def Version():
|
def Version():
|
||||||
xprint(Help.usageText2.format(f"{green_bold}version{reset}") + Help.usageText1.format(f"{green_bold}help:version{reset}"))
|
xprint(Help.usageText2.format(f"{green_bold}version{reset}") + Help.usageText1.format(
|
||||||
|
f"{green_bold}help:version{reset}"))
|
||||||
|
|
||||||
|
|
||||||
def Csv():
|
def Csv():
|
||||||
xprint(Help.usageText2.format(f"{green_bold}csv{reset}") + Help.usageText1.format(f"{green_bold}help:csv{reset}"))
|
xprint(
|
||||||
|
Help.usageText2.format(f"{green_bold}csv{reset}") + Help.usageText1.format(f"{green_bold}help:csv{reset}"))
|
||||||
|
|
||||||
|
|
||||||
def versionCommand():
|
def versionCommand():
|
||||||
version_cmd_table =Table(show_header=True, header_style=header_title)
|
version_cmd_table = Table(show_header=True, header_style=header_title)
|
||||||
version_cmd_table.add_column("Command", style="dim", width=12)
|
version_cmd_table.add_column("Command", style="dim", width=12)
|
||||||
version_cmd_table.add_column("Description")
|
version_cmd_table.add_column("Description")
|
||||||
version_cmd_table.add_row("check", "Check for new release(s)")
|
version_cmd_table.add_row("check", "Check for new release(s)")
|
||||||
version_cmd_table.add_row("info", "Version information")
|
version_cmd_table.add_row("info", "Version information")
|
||||||
|
|
||||||
syntax = f"{green}version:<command>{reset}"
|
syntax = f"{green}version:<command>{reset}"
|
||||||
xprint(f"{Help.usageText.format(syntax, 'version management')}")
|
xprint(f"{Help.usageText.format(syntax, 'version management')}")
|
||||||
xprint(version_cmd_table)
|
xprint(version_cmd_table)
|
||||||
|
|
||||||
|
|
||||||
def sourceCommand():
|
def sourceCommand():
|
||||||
source_cmd_table =Table(show_header=True, header_style=header_title)
|
source_cmd_table = Table(show_header=True, header_style=header_title)
|
||||||
source_cmd_table.add_column("Command", style="dim", width=12)
|
source_cmd_table.add_column("Command", style="dim", width=12)
|
||||||
source_cmd_table.add_column("Description")
|
source_cmd_table.add_column("Description")
|
||||||
source_cmd_table.add_row("zipball", "Download source code Zipball")
|
source_cmd_table.add_row("zipball", "Download source code Zipball")
|
||||||
source_cmd_table.add_row("tarball", "Download source code Tarball")
|
source_cmd_table.add_row("tarball", "Download source code Tarball")
|
||||||
|
|
||||||
syntax = f"{green}source:<command>{reset}"
|
syntax = f"{green}source:<command>{reset}"
|
||||||
xprint(f"{Help.usageText.format(syntax, 'source code downloads')}")
|
xprint(f"{Help.usageText.format(syntax, 'source code downloads')}")
|
||||||
xprint(source_cmd_table)
|
xprint(source_cmd_table)
|
||||||
|
|
||||||
|
|
||||||
def searchCommand():
|
def searchCommand():
|
||||||
search_cmd_table =Table(show_header=True, header_style=header_title)
|
search_cmd_table = Table(show_header=True, header_style=header_title)
|
||||||
search_cmd_table.add_column("Command", style="dim", width=12)
|
search_cmd_table.add_column("Command", style="dim", width=12)
|
||||||
search_cmd_table.add_column("Description")
|
search_cmd_table.add_column("Description")
|
||||||
search_cmd_table.add_row("users", "Search user(s)")
|
search_cmd_table.add_row("users", "Search user(s)")
|
||||||
search_cmd_table.add_row("repos", "Search repositor[y][ies]")
|
search_cmd_table.add_row("repos", "Search repositor[y][ies]")
|
||||||
search_cmd_table.add_row("topics", "Search topic(s)")
|
search_cmd_table.add_row("topics", "Search topic(s)")
|
||||||
search_cmd_table.add_row("issues", "Search issue(s)")
|
search_cmd_table.add_row("issues", "Search issue(s)")
|
||||||
search_cmd_table.add_row("commits", "Search commit(s)")
|
search_cmd_table.add_row("commits", "Search commit(s)")
|
||||||
|
|
||||||
syntax = f"{green}search:<command>{reset}"
|
syntax = f"{green}search:<command>{reset}"
|
||||||
xprint(f"{Help.usageText.format(syntax, 'target discovery')}")
|
xprint(f"{Help.usageText.format(syntax, 'target discovery')}")
|
||||||
xprint(search_cmd_table)
|
xprint(search_cmd_table)
|
||||||
|
|
||||||
|
|
||||||
def userCommand():
|
def userCommand():
|
||||||
user_cmd_table =Table(show_header=True, header_style=header_title)
|
user_cmd_table = Table(show_header=True, header_style=header_title)
|
||||||
user_cmd_table.add_column("Command", style="dim", width=12)
|
user_cmd_table.add_column("Command", style="dim", width=12)
|
||||||
user_cmd_table.add_column("Description")
|
user_cmd_table.add_column("Description")
|
||||||
user_cmd_table.add_row("profile", "Get a target's profile info")
|
user_cmd_table.add_row("profile", "Get a target's profile info")
|
||||||
user_cmd_table.add_row("gists", "Return a users's gists")
|
user_cmd_table.add_row("gists", "Return a users's gists")
|
||||||
user_cmd_table.add_row("org", "Return organizations that a target belongs to/owns")
|
user_cmd_table.add_row("org", "Return organizations that a target belongs to/owns")
|
||||||
user_cmd_table.add_row("repos", "Return a target's repositories")
|
user_cmd_table.add_row("repos", "Return a target's repositories")
|
||||||
user_cmd_table.add_row("events", "Return a target's events")
|
user_cmd_table.add_row("events", "Return a target's events")
|
||||||
user_cmd_table.add_row("follows", "Check if user(A) follows user(B)")
|
user_cmd_table.add_row("follows", "Check if user(A) follows user(B)")
|
||||||
user_cmd_table.add_row("followers", "Return a target's followers")
|
user_cmd_table.add_row("followers", "Return a target's followers")
|
||||||
user_cmd_table.add_row("following", "Return a list of users the target is following")
|
user_cmd_table.add_row("following", "Return a list of users the target is following")
|
||||||
@@ -96,13 +109,13 @@ class Help:
|
|||||||
syntax = f"{green}user:<command>{reset}"
|
syntax = f"{green}user:<command>{reset}"
|
||||||
xprint(f"{Help.usageText.format(syntax, 'user investigation(s)')}")
|
xprint(f"{Help.usageText.format(syntax, 'user investigation(s)')}")
|
||||||
xprint(user_cmd_table)
|
xprint(user_cmd_table)
|
||||||
|
|
||||||
|
|
||||||
def orgCommand():
|
def orgCommand():
|
||||||
org_cmd_table =Table(show_header=True, header_style=header_title)
|
org_cmd_table = Table(show_header=True, header_style=header_title)
|
||||||
org_cmd_table.add_column("Command", style="dim", width=12)
|
org_cmd_table.add_column("Command", style="dim", width=12)
|
||||||
org_cmd_table.add_column("Description")
|
org_cmd_table.add_column("Description")
|
||||||
org_cmd_table.add_row("profile", "Get a target organization' profile info")
|
org_cmd_table.add_row("profile", "Get a target organization' profile info")
|
||||||
org_cmd_table.add_row("repos", "Return a target organization' repositories")
|
org_cmd_table.add_row("repos", "Return a target organization' repositories")
|
||||||
org_cmd_table.add_row("events", "Return a target organization' events")
|
org_cmd_table.add_row("events", "Return a target organization' events")
|
||||||
org_cmd_table.add_row("member", "Check if a specified user is a public member of the target organization")
|
org_cmd_table.add_row("member", "Check if a specified user is a public member of the target organization")
|
||||||
@@ -110,68 +123,68 @@ class Help:
|
|||||||
syntax = f"{green}org:<command>{reset}"
|
syntax = f"{green}org:<command>{reset}"
|
||||||
xprint(f"{Help.usageText.format(syntax, 'organization investigation(s)')}")
|
xprint(f"{Help.usageText.format(syntax, 'organization investigation(s)')}")
|
||||||
xprint(org_cmd_table)
|
xprint(org_cmd_table)
|
||||||
|
|
||||||
|
|
||||||
def repoCommand():
|
def repoCommand():
|
||||||
repo_cmd_table =Table(show_header=True, header_style=header_title)
|
repo_cmd_table = Table(show_header=True, header_style=header_title)
|
||||||
repo_cmd_table.add_column("Command", style="dim", width=12)
|
repo_cmd_table.add_column("Command", style="dim", width=12)
|
||||||
repo_cmd_table.add_column("Description")
|
repo_cmd_table.add_column("Description")
|
||||||
repo_cmd_table.add_row("profile", "Get a repository's info")
|
repo_cmd_table.add_row("profile", "Get a repository's info")
|
||||||
repo_cmd_table.add_row("issues", "Return a repository's issues")
|
repo_cmd_table.add_row("issues", "Return a repository's issues")
|
||||||
repo_cmd_table.add_row("forks", "Return a repository's forks")
|
repo_cmd_table.add_row("forks", "Return a repository's forks")
|
||||||
repo_cmd_table.add_row("releases", "Return a repository's releases")
|
repo_cmd_table.add_row("releases", "Return a repository's releases")
|
||||||
repo_cmd_table.add_row("stargazers", "Return a repository's stargazers")
|
repo_cmd_table.add_row("stargazers", "Return a repository's stargazers")
|
||||||
repo_cmd_table.add_row("path_contents", "List contents in a path of a repository")
|
repo_cmd_table.add_row("path_contents", "List contents in a path of a repository")
|
||||||
|
|
||||||
syntax = f"{green}repo:<command>{reset}"
|
syntax = f"{green}repo:<command>{reset}"
|
||||||
xprint(f"{Help.usageText.format(syntax, 'repository investigation(s)')}")
|
xprint(f"{Help.usageText.format(syntax, 'repository investigation(s)')}")
|
||||||
xprint(repo_cmd_table)
|
xprint(repo_cmd_table)
|
||||||
|
|
||||||
|
|
||||||
def logsCommand():
|
def logsCommand():
|
||||||
logs_cmd_table =Table(show_header=True, header_style=header_title)
|
logs_cmd_table = Table(show_header=True, header_style=header_title)
|
||||||
logs_cmd_table.add_column("Command", style="dim", width=12)
|
logs_cmd_table.add_column("Command", style="dim", width=12)
|
||||||
logs_cmd_table.add_column("Description")
|
logs_cmd_table.add_column("Description")
|
||||||
logs_cmd_table.add_row("view", "View logs")
|
logs_cmd_table.add_row("view", "View logs")
|
||||||
logs_cmd_table.add_row("read", "Read log")
|
logs_cmd_table.add_row("read", "Read log")
|
||||||
logs_cmd_table.add_row("delete", "Delete log")
|
logs_cmd_table.add_row("delete", "Delete log")
|
||||||
|
|
||||||
syntax = f"{green}logs:<command>{reset}"
|
syntax = f"{green}logs:<command>{reset}"
|
||||||
xprint(f"{Help.usageText.format(syntax, 'log(s) management')}")
|
xprint(f"{Help.usageText.format(syntax, 'log(s) management')}")
|
||||||
xprint(logs_cmd_table)
|
xprint(logs_cmd_table)
|
||||||
|
|
||||||
|
|
||||||
def csvCommand():
|
def csvCommand():
|
||||||
csv_cmd_table =Table(show_header=True, header_style=header_title)
|
csv_cmd_table = Table(show_header=True, header_style=header_title)
|
||||||
csv_cmd_table.add_column("Command", style="dim", width=12)
|
csv_cmd_table.add_column("Command", style="dim", width=12)
|
||||||
csv_cmd_table.add_column("Description")
|
csv_cmd_table.add_column("Description")
|
||||||
csv_cmd_table.add_row("view", "View csv files")
|
csv_cmd_table.add_row("view", "View csv files")
|
||||||
csv_cmd_table.add_row("read", "Read csv")
|
csv_cmd_table.add_row("read", "Read csv")
|
||||||
csv_cmd_table.add_row("delete", "Delete csv")
|
csv_cmd_table.add_row("delete", "Delete csv")
|
||||||
|
|
||||||
syntax = f"{green}csv:<command>{reset}"
|
syntax = f"{green}csv:<command>{reset}"
|
||||||
xprint(f"{Help.usageText.format(syntax, 'csv management')}")
|
xprint(f"{Help.usageText.format(syntax, 'csv management')}")
|
||||||
xprint(csv_cmd_table)
|
xprint(csv_cmd_table)
|
||||||
|
|
||||||
|
|
||||||
def helpCommand():
|
def helpCommand():
|
||||||
core_cmd_table =Table(show_header=True, header_style=header_title)
|
core_cmd_table = Table(show_header=True, header_style=header_title)
|
||||||
core_cmd_table.add_column("Command", style="dim", width=12)
|
core_cmd_table.add_column("Command", style="dim", width=12)
|
||||||
core_cmd_table.add_column("Description")
|
core_cmd_table.add_column("Description")
|
||||||
core_cmd_table.add_row("help", "Help menu")
|
core_cmd_table.add_row("help", "Help menu")
|
||||||
core_cmd_table.add_row("exit", "Close session")
|
core_cmd_table.add_row("exit", "Close session")
|
||||||
core_cmd_table.add_row("clear", "Clear screen")
|
core_cmd_table.add_row("clear", "Clear screen")
|
||||||
core_cmd_table.add_row("about", "Program's info")
|
core_cmd_table.add_row("about", "Program's info")
|
||||||
core_cmd_table.add_row("author", "Developer's info")
|
core_cmd_table.add_row("author", "Developer's info")
|
||||||
|
|
||||||
help_sub_cmd_table =Table(show_header=True, header_style=header_title)
|
help_sub_cmd_table = Table(show_header=True, header_style=header_title)
|
||||||
help_sub_cmd_table.add_column("Command", style="dim", width=12)
|
help_sub_cmd_table.add_column("Command", style="dim", width=12)
|
||||||
help_sub_cmd_table.add_column("Description")
|
help_sub_cmd_table.add_column("Description")
|
||||||
help_sub_cmd_table.add_row("csv", "List all csv management commands")
|
help_sub_cmd_table.add_row("csv", "List all csv management commands")
|
||||||
help_sub_cmd_table.add_row("logs", "List all logs management commands")
|
help_sub_cmd_table.add_row("logs", "List all logs management commands")
|
||||||
help_sub_cmd_table.add_row("org", "List all organization investigation commands")
|
help_sub_cmd_table.add_row("org", "List all organization investigation commands")
|
||||||
help_sub_cmd_table.add_row("user", "List all users investigation commands")
|
help_sub_cmd_table.add_row("user", "List all users investigation commands")
|
||||||
help_sub_cmd_table.add_row("repo", "List all repository investigation commands")
|
help_sub_cmd_table.add_row("repo", "List all repository investigation commands")
|
||||||
help_sub_cmd_table.add_row("search", "List all target discovery commands")
|
help_sub_cmd_table.add_row("search", "List all target discovery commands")
|
||||||
help_sub_cmd_table.add_row("source", "List all source code download commands (for developers)")
|
help_sub_cmd_table.add_row("source", "List all source code download commands (for developers)")
|
||||||
help_sub_cmd_table.add_row("version", "List all version management commands")
|
help_sub_cmd_table.add_row("version", "List all version management commands")
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
"""
|
"""
|
||||||
logRoller
|
logRoller This class is where the main notification strings/messages are held, and are being used in two different
|
||||||
This class is where the main notification strings/messages are held,
|
cases (they're being used by logging to be written to log files, and being printed out to the screen).
|
||||||
and are being used in two different cases (they're beig used by logging to be written to log files, and being printed out to the screen).
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
class logRoller:
|
class logRoller:
|
||||||
Ctrl = "Session terminated with {}."
|
Ctrl = "Session terminated with {}."
|
||||||
Error = "An error occurred: {}"
|
Error = "An error occurred: {}"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,14 @@
|
|||||||
from octosuite.colors import red, white, green, reset
|
from octosuite.colors import red, white, green, reset
|
||||||
|
|
||||||
'''
|
"""
|
||||||
SignVar
|
SignVar *Even here, I couldn't think of a good name.* The Attributes class holds the signs/symbols that show what
|
||||||
*Even here, I couldn't think of a good name.*
|
a notification in OctoSuite might be all about. This might not be very important or necessary in some cases,
|
||||||
The Attributes class holds the signs/symbols that show what a notification in OctoSuite might be all about.
|
but I think it's better to know the severity of the notifications you get in a program.
|
||||||
This might not be very important or necessary in some cases, but I think it's better to know the severerity of the notifications you get in a program.
|
"""
|
||||||
'''
|
|
||||||
class SignVar:
|
class SignVar:
|
||||||
prompt = f"{white}[{green} ? {white}]{reset}"
|
prompt = f"{white}[{green} ? {white}]{reset}"
|
||||||
warning = f"{white}[{red} ! {white}]{reset}"
|
warning = f"{white}[{red} ! {white}]{reset}"
|
||||||
error = f"{white}[{red} x {white}]{reset}"
|
error = f"{white}[{red} x {white}]{reset}"
|
||||||
positive = f"{white}[{green} + {white}]{reset}"
|
positive = f"{white}[{green} + {white}]{reset}"
|
||||||
negative = f"{white}[{red} - {white}]{reset}"
|
negative = f"{white}[{red} - {white}]{reset}"
|
||||||
info = f"{white}[{green} * {white}]{reset}"
|
info = f"{white}[{green} * {white}]{reset}"
|
||||||
|
|||||||
4
setup.py
4
setup.py
@@ -5,9 +5,9 @@ with open("README.md", "r", encoding="utf-8") as file:
|
|||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name="octosuite",
|
name="octosuite",
|
||||||
version="2.2.2",
|
version="2.2.3",
|
||||||
author="Richard Mwewa",
|
author="Richard Mwewa",
|
||||||
author_email="richardmwewa@duck.com",
|
author_email="rly0nheart@duck.com",
|
||||||
packages=["octosuite"],
|
packages=["octosuite"],
|
||||||
description="Advanced Github OSINT Framework",
|
description="Advanced Github OSINT Framework",
|
||||||
long_description=long_description,
|
long_description=long_description,
|
||||||
|
|||||||
Reference in New Issue
Block a user