dsherlock 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,9 @@
1
+ Metadata-Version: 2.4
2
+ Name: dsherlock
3
+ Version: 1.0.0
4
+ Summary: Dark Sherlock - Username CSINT Tool : Find Usernames Across Dark web
5
+ Author: ovax
6
+ License: MIT
7
+ Project-URL: Repository, https://github.com/banaxou/dark-sherlock
8
+ Requires-Python: >=3.8
9
+ Requires-Dist: requests>=2.28.0
@@ -0,0 +1,156 @@
1
+ # code by ovax | dark sherlock argparse 1.0
2
+
3
+ import requests
4
+ import argparse
5
+ import json
6
+ import sys
7
+ from datetime import datetime
8
+
9
+ WHITE = "\033[1;97m"
10
+ RED = "\033[1;91m"
11
+ RESET = "\033[0m"
12
+
13
+ def parsey():
14
+ parser = argparse.ArgumentParser(
15
+ prog="dark-sl",
16
+ description="Dark Sherlock - Username CSINT Tool : Find Usernames Across Dark web ;) v1.0",
17
+ usage="%(prog)s [username] [-u USERNAME] [--json] [--txt]",
18
+ formatter_class=argparse.RawDescriptionHelpFormatter
19
+ )
20
+
21
+ parser.add_argument(
22
+ "usernames",
23
+ nargs="*",
24
+ help="Username to check"
25
+ )
26
+
27
+ parser.add_argument(
28
+ "-u", "--user",
29
+ dest="users",
30
+ nargs="+",
31
+ help="Username target | Double username target"
32
+ )
33
+
34
+ parser.add_argument(
35
+ "--json",
36
+ action="store_true",
37
+ help="Save results in JSON file + display normal output"
38
+ )
39
+
40
+ parser.add_argument(
41
+ "--txt",
42
+ action="store_true",
43
+ help="Save results in TXT file"
44
+ )
45
+
46
+ return parser.parse_args()
47
+
48
+ def dsherlock(user, jsonx=False, txt=False):
49
+ if not jsonx:
50
+ print(f"\n[{RED}*{RESET}] {WHITE}Checking username {user} on:{RESET}\n")
51
+
52
+ results_data = {
53
+ "tool": "[dark-sherlock]",
54
+ "username": user,
55
+ "platforms": [],
56
+ "total": 0
57
+ }
58
+
59
+ try:
60
+ req = requests.get(f"https://threatactorusernames.com/api/search?q={user}", timeout=10)
61
+ data = req.json()
62
+ results = data.get("results", [])
63
+
64
+ req_x = requests.get(f"https://x.com/{user}", timeout=10)
65
+ status_x = req_x.status_code
66
+ x = status_x == 200
67
+
68
+ req_github = requests.get(f"https://api.github.com/users/{user}", timeout=10)
69
+ s = req_github.status_code
70
+ g = s == 200
71
+
72
+ allx = len(results) + (1 if x else 0) + (1 if g else 0)
73
+ results_data["total"] = allx
74
+
75
+ if not jsonx:
76
+ print(f"[{RED}+{RESET}] {WHITE}Results: {allx}{RESET}\n")
77
+
78
+ if not results and not x and not g:
79
+ if not jsonx:
80
+ print(f"[{RED}-{RESET}] No results found")
81
+ else:
82
+ for item in results:
83
+ source = item.get("forum", item.get("source", "Unknown"))
84
+ results_data["platforms"].append({
85
+ "platform": source,
86
+ "username": user,
87
+ "found_by": "[dark-sherlock]"
88
+ })
89
+ if not jsonx:
90
+ print(f"[{RED}+{RESET}] {WHITE}{source}: {user}{RESET}")
91
+
92
+ if x:
93
+ results_data["platforms"].append({
94
+ "platform": "x | twitter",
95
+ "username": user,
96
+ "found_by": "[dark-sherlock]"
97
+ })
98
+ if not jsonx:
99
+ print(f"[{RED}+{RESET}] {WHITE}x | twitter: {user}{RESET}")
100
+
101
+ if g:
102
+ results_data["platforms"].append({
103
+ "platform": "github",
104
+ "username": user,
105
+ "found_by": "[dark-sherlock]"
106
+ })
107
+ if not jsonx:
108
+ print(f"[{RED}+{RESET}] {WHITE}github: {user}{RESET}")
109
+
110
+ if jsonx:
111
+ filename = f"dark-sherlock_{user}_{datetime.now().strftime('%Y%m%d_%H%M%S')}.json"
112
+ with open(filename, "w", encoding="utf-8") as f:
113
+ json.dump(results_data, f, indent=2, ensure_ascii=False)
114
+ print(f"[{RED}+{RESET}] JSON saved → {filename}")
115
+
116
+ if txt:
117
+ filename = f"dark-sherlock_{user}_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt"
118
+ with open(filename, "w", encoding="utf-8") as f:
119
+ f.write(f"[dark-sherlock] Results for {user}\n")
120
+ f.write(f"Total: {results_data['total']}\n\n")
121
+ for p in results_data["platforms"]:
122
+ f.write(f"[+] {p['platform']}: {user}\n")
123
+ print(f"[{RED}+{RESET}] TXT saved → {filename}")
124
+
125
+ except requests.exceptions.RequestException as e:
126
+ if jsonx:
127
+ print(json.dumps({"error": str(e)}, indent=2))
128
+ else:
129
+ print(f"[{RED}-{RESET}] Error: {e}")
130
+ sys.exit(1)
131
+ except Exception as e:
132
+ if jsonx:
133
+ print(json.dumps({"error": str(e)}, indent=2))
134
+ else:
135
+ print(f"[{RED}-{RESET}] Unexpected error: {e}")
136
+ sys.exit(1)
137
+
138
+ def main():
139
+ args = parsey()
140
+
141
+ usernames = []
142
+ if args.usernames:
143
+ usernames.extend(args.usernames)
144
+ if args.users:
145
+ usernames.extend(args.users)
146
+
147
+ if not usernames:
148
+ user = input(f"{RED}╭──\n╰─>{RESET} {WHITE}enter username:{RESET} ").strip() or "ZeroBytes"
149
+ usernames = [user]
150
+
151
+ for user in usernames:
152
+ dsherlock(user, jsonx=args.json, txt=args.txt)
153
+
154
+
155
+ if __name__ == "__main__":
156
+ main()
@@ -0,0 +1,9 @@
1
+ Metadata-Version: 2.4
2
+ Name: dsherlock
3
+ Version: 1.0.0
4
+ Summary: Dark Sherlock - Username CSINT Tool : Find Usernames Across Dark web
5
+ Author: ovax
6
+ License: MIT
7
+ Project-URL: Repository, https://github.com/banaxou/dark-sherlock
8
+ Requires-Python: >=3.8
9
+ Requires-Dist: requests>=2.28.0
@@ -0,0 +1,8 @@
1
+ dark_sl_cli.py
2
+ pyproject.toml
3
+ dsherlock.egg-info/PKG-INFO
4
+ dsherlock.egg-info/SOURCES.txt
5
+ dsherlock.egg-info/dependency_links.txt
6
+ dsherlock.egg-info/entry_points.txt
7
+ dsherlock.egg-info/requires.txt
8
+ dsherlock.egg-info/top_level.txt
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ dsherlock = dark_sl_cli:main
@@ -0,0 +1 @@
1
+ requests>=2.28.0
@@ -0,0 +1 @@
1
+ dark_sl_cli
@@ -0,0 +1,25 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "dsherlock"
7
+ version = "1.0.0"
8
+ description = "Dark Sherlock - Username CSINT Tool : Find Usernames Across Dark web"
9
+ requires-python = ">=3.8"
10
+ license = {text = "MIT"}
11
+ authors = [
12
+ {name = "ovax"}
13
+ ]
14
+ dependencies = [
15
+ "requests>=2.28.0",
16
+ ]
17
+
18
+ [project.urls]
19
+ Repository = "https://github.com/banaxou/dark-sherlock"
20
+
21
+ [project.scripts]
22
+ dsherlock = "dark_sl_cli:main"
23
+
24
+ [tool.setuptools]
25
+ py-modules = ["dark_sl_cli"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+