-
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
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 |
|
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! |
56f83fb to
080c1ff
Compare
|
@kaifcodec As I'm seeing, |
|
Yeah that will be good too. |
|
I added the new category and the first module in it. Error:user_scanner/email_scan/social/porn/pornhub.py:62: error: Incompatible return value type (got "Coroutine[Any, Any, Result]", expected "Result") [return-value]
user_scanner/email_scan/social/porn/pornhub.py:62: note: Maybe you forgot to use "await"?
Found 1 error in 1 file (checked 72 source files)
Error: Process completed with exit code 1.I made the required changes and CI is passing now, but we should make the other modules asynchronous too. |
|
@json-hunter07 The new folder you created is in the wrong directory. It should be under |
|
My bad, Github's editor is weird, let me fix it fast. |
2f227e5 to
0228930
Compare
|
@VamatoHD I think this is ready to be merged, or are you planning to refactor any core files? All the main tasks seem to be completed, except for the @kaifcodec is busy, so I’m just stepping in to help out a bit in his place. |
|
@json-hunter07 I'm also a bit busy. |
Expanded contributing guidelines with module naming conventions, best practices for email modules, and validator function requirements.
|
@kaifcodec I think this PR is ready to be merged. It has been open for quite a while and there are many commits, so merging now makes sense. Any further fixes or adjustments can be handled in new PRs. |
email_scandirectory.Task Checklist: (#123)