Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Lucksi
GitHub Repository: Lucksi/Mr.Holmes
Path: blob/master/Core/Searcher_person.py
1071 views
1
# ORIGINAL CREATOR: Luca Garofalo (Lucksi)
2
# AUTHOR: Luca Garofalo (Lucksi)
3
# Copyright (C) 2022-2023 Lucksi <[email protected]>
4
# License: GNU General Public License v3.0
5
6
7
import os
8
import json
9
import urllib
10
from Core.Support import Font
11
from Core.Support import Creds
12
from Core.Support import Proxies
13
from Core.Support.Person import Scraper
14
from Core.Support import Clear
15
from Core.Support import Dorks
16
from Core.Support import Logs
17
from Core.Support import Banner_Selector as banner
18
from Core.Support import Language
19
from Core.Support import DateFormat
20
from Core.Support import Notification
21
from Core.Support import Recap
22
from Core.Support import FileTransfer
23
from datetime import datetime
24
from time import sleep
25
from Core.Support import Encoding
26
27
28
filename = Language.Translation.Get_Language()
29
filename
30
31
32
class info:
33
34
@staticmethod
35
def Google_dork(username):
36
report = "GUI/Reports/People/Dorks/{}_Dorks.txt".format(username)
37
nomefile = "Site_lists/Username/Google_dorks.txt"
38
if os.path.isfile(report):
39
os.remove(report)
40
print(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE +
41
Language.Translation.Translate_Language(filename, "Dorks", "Remove", "None").format(username))
42
else:
43
pass
44
Type = "GOOGLE"
45
Dorks.Search.dork(username, report, nomefile, Type)
46
47
@staticmethod
48
def Yandex_dork(username):
49
report = "GUI/Reports/People/Dorks/{}_Dorks.txt".format(username)
50
nomefile = "Site_lists/Username/Yandex_dorks.txt"
51
Type = "YANDEX"
52
Dorks.Search.dork(username, report, nomefile, Type)
53
54
@staticmethod
55
def Banner(Mode):
56
Clear.Screen.Clear()
57
Folder = "Banners/Person"
58
banner.Random.Get_Banner(Folder, Mode)
59
60
@staticmethod
61
def Search(username, Mode):
62
username2 = username.replace(" ", "_")
63
folder = "GUI/Reports/People/" + username2 + "/"
64
report = folder + username2 + ".txt"
65
report2 = folder + username2 + ".mh"
66
link1 = folder + "Insta_Link.json"
67
link2 = folder + "Twitter_Link.json"
68
link3 = folder + "TikTok_Link.json"
69
Recap1 = folder + "Recap.txt"
70
Recap2 = folder + "Recap.mh"
71
imagefold = "GUI/Reports/People/" + username2 + "/Profile_pics"
72
InstagramParams = []
73
TwitterParams = []
74
PostLocations = []
75
PostGpsCoordinates = []
76
MostTags = []
77
info.Banner(Mode)
78
print(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + "INFO:" + "[{}]".format(Font.Color.GREEN + Language.Translation.Translate_Language(filename,"Username","Default","ExplanationP") + Font.Color.WHITE) )
79
subject = "PERSON"
80
now = datetime.now()
81
dataformat = DateFormat.Get.Format()
82
dt_string = now.strftime(dataformat)
83
Date = "Date: " + str(dt_string)
84
if os.path.exists(report):
85
os.remove(report)
86
if os.path.exists(Recap1):
87
os.remove(Recap1)
88
elif os.path.exists(Recap2):
89
os.remove(Recap2)
90
if os.path.exists(link1):
91
os.remove(link1)
92
if os.path.exists(link2):
93
os.remove(link2)
94
if os.path.exists(link3):
95
os.remove(link3)
96
print(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE +
97
Language.Translation.Translate_Language(filename, "Default", "Delete", "None").format(username))
98
elif os.path.exists(report2):
99
os.remove(report2)
100
if os.path.exists(Recap1):
101
os.remove(Recap1)
102
elif os.path.exists(Recap2):
103
os.remove(Recap2)
104
if os.path.exists(link1):
105
os.remove(link1)
106
if os.path.exists(link2):
107
os.remove(link2)
108
if os.path.exists(link3):
109
os.remove(link3)
110
print(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE +
111
Language.Translation.Translate_Language(filename, "Default", "Delete", "None").format(username))
112
else:
113
os.mkdir(folder)
114
choice = int(input(
115
Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "choice", "None") + Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
116
if choice == 1:
117
http_proxy = Proxies.proxy.final_proxis
118
http_proxy2 = Proxies.proxy.choice3
119
source = "http://ip-api.com/json/" + http_proxy2
120
access = urllib.request.urlopen(source)
121
content = access.read()
122
final = json.loads(content)
123
identity = Language.Translation.Translate_Language(
124
filename, "Default", "ProxyLoc", "None").format(final["regionName"], final["country"])
125
126
else:
127
http_proxy = None
128
http_proxy2 = str(http_proxy)
129
identity = "None"
130
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
131
Language.Translation.Translate_Language(filename, "Default", "Proxy", "None").format(http_proxy2))
132
if identity != "None":
133
print(Font.Color.GREEN +
134
"[+]" + Font.Color.WHITE + identity)
135
else:
136
pass
137
if os.path.isfile(report):
138
os.remove(report)
139
print(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE +
140
Language.Translation.Translate_Language(filename, "Default", "Delete", "None").format(username))
141
folder = "People"
142
Logs.Log.Checker(username, folder)
143
f = open(report, "a")
144
f.write(Language.Translation.Translate_Language(
145
filename, "Report", "Default", "Date").format(Date) + "\r\n")
146
f.close()
147
Scraper.Search.Instagram(report, username, http_proxy, InstagramParams,
148
PostLocations, PostGpsCoordinates, imagefold, username2,"People")
149
Scraper.Search.Twitter(report, username, http_proxy, TwitterParams,
150
imagefold, username2,"People")
151
Scraper.Search.TikTok(
152
report, username, http_proxy, imagefold, username2,"People")
153
Scraper.Search.Github(report, username, http_proxy,imagefold, username2,"People")
154
if PostGpsCoordinates == [] and PostLocations == []:
155
pass
156
else:
157
n = 0
158
print(Font.Color.GREEN +
159
"\n[+]" + Font.Color.WHITE + "GETTING LATEST POST GEOLOCATION:")
160
f = open(report, "a")
161
f.write("\nGETTING LATEST POST GEOLOCATION:\n")
162
for Locations in PostGpsCoordinates:
163
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + Locations)
164
f.write(Locations + "\n")
165
n = n + 1
166
f.close()
167
168
print(Font.Color.GREEN +
169
"\n[+]" + Font.Color.WHITE + "GETTING LATEST PLACE VISITED:")
170
f = open(report, "a")
171
f.write("\nGETTING LATEST PLACE VISITED:\n")
172
for Locations in PostLocations:
173
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + Locations)
174
f.write(Locations+"\n")
175
f.close()
176
Recaps = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(
177
filename, "Default", "Hypo", "None") + Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
178
if Recaps == 1:
179
if len(InstagramParams):
180
print(Font.Color.GREEN +
181
"\n[+]" + Font.Color.WHITE + "INSTAGRAM HYPOTHESIS")
182
Recap.Stats.Hypotesys(InstagramParams, username, Recap1)
183
if len(TwitterParams):
184
print(Font.Color.GREEN + "\n[+]" +
185
Font.Color.WHITE + "TWITTER HYPOTHESIS")
186
Recap.Stats.Hypotesys(TwitterParams, username, Recap1)
187
Recap.Stats.Places(PostLocations,Recap1,InstagramParams,username,MostTags)
188
if len(MostTags):
189
print(Font.Color.GREEN +
190
"\n[+]" + Font.Color.WHITE + "GETTING POSSIBLE HOBBIES/INTERESTS:")
191
f = open(Recap1, "a")
192
f.write("\nGETTING POSSIBLE HOBBIES/INTERESTS:\n")
193
sleep(3)
194
for PossibleHobby in MostTags:
195
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + PossibleHobby)
196
f.write(PossibleHobby+"\n")
197
Encoding.Encoder.Encode(Recap1)
198
choice = int(input(
199
Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Dorks", "None") + Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
200
if choice == 1:
201
info.Google_dork(username)
202
info.Yandex_dork(username)
203
Notification.Notifier.Start(Mode)
204
Creds.Sender.mail(report, username)
205
choice = int(input(
206
Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Transfer", "Question", "None") + Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
207
if choice == 1:
208
FileTransfer.Transfer.File(report, username, ".txt")
209
Encoding.Encoder.Encode(report)
210
print(Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Report", "None") +
211
report)
212
inp = input(Language.Translation.Translate_Language(
213
filename, "Default", "Continue", "None"))
214
215