-
Notifications
You must be signed in to change notification settings - Fork 40
Feature: Add email osint mode #125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
@kaifcodec I didn't have time to fully implement the email logic. |
|
@VamatoHD I reviewed the changes you made. if not args.username:
parser.print_help()
returnIs there any specific reason to remove that? Maybe some implementations later? I would change it to if not (args.username or args.email):
parser.print_help()
returnOverall the start is good! |
|
@kaifcodec I removed it since I thought the following code would replace it: group = parser.add_mutually_exclusive_group(required=True)
group.add_argument(
"-u", "--username", help="Username to scan across platforms")
group.add_argument(
"-e", "--email", help="Email to scan across platforms"
)However, it doesn't print the help menu. |
|
But I think the help menu is not that much huge right now, so maybe it's better to print the help menu if no arguments provided. |
|
What if instead of repeatedly passing the argument def run_checks(username: str, printer: Printer, last: bool = True, is_email: bool = False) -> List[Result]:
def run_checks_category(category_path: Path, username: str, printer: Printer, last: bool = True, is_email: bool = False) -> List[Result]:
def run_module_single(module, username: str, printer: Printer, last: bool = True, is_email: bool = False) -> List[Result]:I make a class that holds those values and is passed instead? class RunContext:
def __init__(self, printer, is_last, is_email):
...def run_checks(username: str, ctx: RunContext) -> List[Result]:
def run_checks_category(category_path: Path, username: str, ctx: RunContext) -> List[Result]:
def run_module_single(module, username: str, ctx: RunContext) -> List[Result]: |
|
Yeah it makes it clean, but will not it also make it a bit complex? |
|
It wouldn't be complex; it's just: RunContext(printer, is_last, is_email)Also, what if we revert the printing to always be the |
|
Then what are you planning to print on the console when a format is selected? Anyways I am not seeing the full picture in my mind right now. |
|
Basically I reverted to the state before the implementation of |
|
I saw this one but, there is an issue, you might have overlooked the json formating in However CSV output works perfectly. |
|
My idea was to revert the printing to Also, the formatted file appears to be formatted correctly. |
|
Oh, Yeah, It's working (the json output), I had mistakenly used |
7343fc1 to
4089bd2
Compare
|
@VamatoHD I’ve finished most of the core logic changes, there's still many bugs I am fixing them one by one. |
|
I'll work on improving the code. |
|
There are still a few minor issues to address, for example:
|
|
Is it on purpose for the email scanner to not show headers like username scanner does? Like showing |
|
I am implementing to show the headers, I even have finished the changes in |
|
By the way, I’m not planning to touch That said, are you planning to work on this next—specifically improving the code quality and handling the renaming of classes/objects? |
|
It may be my perfectionism, but, while user_scanner checks each user individually and prints each module for that user, the email scanner checks every username permutation in a module before checking the next: |
I'm still busy with a school project, but, in my free time, I'll refactor the |
|
Oh yeah, I see that’s an issue and it definitely should be fixed. If you want to work on it, I can leave it as-is for now. Same here, I’ll be extremely busy for the next 20–25 days (can't even touch codes), which is why I pushed all of this together, to give a complete picture of the direction we should take and how things are supposed to flow.
Take your time! |
email_scandirectory.Task Checklist: (#123)