Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Lucksi
GitHub Repository: Lucksi/Mr.Holmes
Path: blob/master/Core/Support/Username/Scraper.py
1071 views
1
# ORIGINAL CREATOR: Luca Garofalo (Lucksi)
2
# AUTHOR: Luca Garofalo (Lucksi)
3
# Copyright (C) 2021-2024 Lucksi <[email protected]>
4
# License: GNU General Public License v3.0
5
6
import json
7
import requests
8
from Core.Support import Font
9
from Core.Support.Username import Get_Posts
10
from Core.Support import Headers
11
from Core.Support import Language
12
from bs4 import BeautifulSoup as soup
13
14
headers = Headers.Get.classic()
15
16
filename = Language.Translation.Get_Language()
17
filename
18
19
20
class info:
21
22
@staticmethod
23
def Profile_Pic(username, profile_pic, SiteName, Opt,name2):
24
image = "GUI/Reports/{}/{}/Profile_pics/Profile_pic_{}.jpg".format(
25
Opt, name2, SiteName)
26
getter = requests.get(
27
profile_pic, headers=headers, allow_redirects=True)
28
try:
29
try:
30
open(image, "wb+").write(getter.content)
31
except Exception as e:
32
print(str(e))
33
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
34
Language.Translation.Translate_Language(filename, "Username", "Default", "Saved").format(image))
35
except Exception as e:
36
print("error" + str(e))
37
f = open(image,"rb")
38
reader = f.read()
39
f.close()
40
Get_Posts.Downloader.checkFile(image,"Image")
41
42
@staticmethod
43
def Get_Url(username, Name):
44
filename = "Site_lists/Username/site_list.json"
45
reader = open(filename,)
46
parser = json.loads(reader.read())
47
site = parser[0][Name]["Scrapable_url"].replace("{}", username)
48
return site
49
50
@staticmethod
51
def Imgur(report, username, http_proxy,Opt,name2):
52
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
53
"SCRAPING {} IMGUR PROFILE...".format(username))
54
url = info.Get_Url(username, "Imgur")
55
url
56
openurl = requests.get(url, proxies=http_proxy,
57
headers=headers, timeout=15)
58
try:
59
reader = openurl.text
60
converted = json.loads(reader)
61
id_user = converted["id"]
62
user = converted["username"]
63
bio = converted["bio"]
64
reputation = converted["reputation_count"]
65
profile_pic = converted["avatar_url"]
66
cover_url = converted["cover_url"]
67
creation = converted["created_at"]
68
69
print(Font.Color.YELLOW + "[v]" +
70
Font.Color.WHITE + "ID: {}".format(id_user))
71
print(Font.Color.YELLOW + "[v]" +
72
Font.Color.WHITE + "USERNAME: {}".format(user))
73
print(Font.Color.YELLOW + "[v]" +
74
Font.Color.WHITE + "BIO: {}".format(bio))
75
print(Font.Color.YELLOW +
76
"[v]" + Font.Color.WHITE + "REPUTATION: {}".format(reputation))
77
print(Font.Color.YELLOW +
78
"[v]" + Font.Color.WHITE + "AVATAR-IMAGE: {}".format(profile_pic))
79
print(Font.Color.YELLOW +
80
"[v]" + Font.Color.WHITE + "COVER-IMAGE: {}".format(cover_url))
81
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE +
82
"ACCOUNT-CREATED ON: {}".format(creation))
83
84
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
85
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
86
if download == 1:
87
SiteName = "Imgur"
88
info.Profile_Pic(username, profile_pic, SiteName,Opt,name2)
89
else:
90
pass
91
92
f = open(report, "a", encoding="utf-8")
93
f.write("\nIMGUR DATA:\n")
94
f.write("ID: {}\r\n".format(id_user))
95
f.write("USERNAME: {}\r\n".format(user))
96
f.write("BIO: {}\r\n".format(bio))
97
f.write("REPUTATION: {}\r\n".format(reputation))
98
f.write("ACCOUNT-CREATED ON: {}\r\n".format(creation))
99
f.close()
100
101
except ConnectionError:
102
print(Font.Color.RED + "[!]" +
103
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
104
pass
105
except Exception as e:
106
print(Font.Color.RED + "[!]" +
107
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
108
pass
109
110
@staticmethod
111
def Pr0gramm(report, username, http_proxy,Opt,name2):
112
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
113
"SCRAPING {} PR0GRAMM PROFILE...".format(username))
114
url = info.Get_Url(username, "Pr0gramm")
115
url
116
openurl = requests.get(url, proxies=http_proxy,
117
headers=headers, timeout=15)
118
try:
119
reader = openurl.text
120
converted = json.loads(reader)
121
id_user = converted["user"]["id"]
122
user = converted["user"]["name"]
123
score = converted["user"]["score"]
124
comment_deleted = converted["user"]["commentDelete"]
125
comment_count = converted["commentCount"]
126
upload_count = converted["uploadCount"]
127
likes = converted["likeCount"]
128
tags = converted["tagCount"]
129
130
print(Font.Color.YELLOW + "[v]" +
131
Font.Color.WHITE + "ID: {}".format(id_user))
132
print(Font.Color.YELLOW + "[v]" +
133
Font.Color.WHITE + "USERNAME: {}".format(user))
134
print(Font.Color.YELLOW + "[v]" +
135
Font.Color.WHITE + "SCORE: {}".format(score))
136
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE +
137
"COMMENT-DELETED: {}".format(comment_deleted))
138
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE +
139
"COMMENT-COUNTS: {}".format(comment_count))
140
print(Font.Color.YELLOW +
141
"[v]" + Font.Color.WHITE + "UPLOAD: {}".format(upload_count))
142
print(Font.Color.YELLOW + "[v]" +
143
Font.Color.WHITE + "TAGS: {}".format(tags))
144
print(Font.Color.YELLOW + "[v]" +
145
Font.Color.WHITE + "LIKES: {}".format(likes))
146
147
f = open(report, "a", encoding="utf-8")
148
f.write("\nPR0GRAMM DATA:\n")
149
f.write("ID: {}\r\n".format(id_user))
150
f.write("USERNAME: {}\r\n".format(user))
151
f.write("SCORE: {}\r\n".format(score))
152
f.write("COMMENT-DELETED: {}\r\n".format(comment_deleted))
153
f.write("COMMENT-COUNTS: {}\r\n".format(comment_count))
154
f.write("UPLOAD: {}\r\n".format(upload_count))
155
f.write("TAGS: {}\r\n".format(tags))
156
f.write("LIKES: {}\r\n".format(likes))
157
f.close()
158
159
except ConnectionError:
160
print(Font.Color.RED + "[!]" +
161
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
162
pass
163
except Exception as e:
164
print(Font.Color.RED + "[!]" +
165
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
166
pass
167
168
@staticmethod
169
def Binarysearch(report, username, http_proxy,Opt,name2):
170
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
171
"SCRAPING {} BINARYSEARCH PROFILE...".format(username))
172
url = info.Get_Url(username, "BinarySearch")
173
url
174
openurl = requests.get(url, proxies=http_proxy, headers=headers)
175
try:
176
reader = openurl.text
177
converted = json.loads(reader)
178
id_user = converted["user"]["id"]
179
user = converted["user"]["username"]
180
admin = converted["user"]["isAdmin"]
181
verified = converted["user"]["isVerified"]
182
location = converted["user"]["location"]
183
bio = converted["user"]["bio"]
184
major = converted["user"]["major"]
185
186
print(Font.Color.YELLOW + "[v]" +
187
Font.Color.WHITE + "ID: {}".format(id_user))
188
print(Font.Color.YELLOW + "[v]" +
189
Font.Color.WHITE + "USERNAME: {}".format(user))
190
print(Font.Color.YELLOW +
191
"[v]" + Font.Color.WHITE + "IS-ADMIN?: {}".format(admin))
192
print(Font.Color.YELLOW +
193
"[v]" + Font.Color.WHITE + "IS-VERIFIED?: {}".format(verified))
194
print(Font.Color.YELLOW +
195
"[v]" + Font.Color.WHITE + "LOCATION: {}".format(location))
196
print(Font.Color.YELLOW + "[v]" +
197
Font.Color.WHITE + "BIO: {}".format(bio))
198
print(Font.Color.YELLOW + "[v]" +
199
Font.Color.WHITE + "MAJOR: {}".format(major))
200
201
f = open(report, "a", encoding="utf-8")
202
f.write("\nBINARYSEARCH DATA:\n")
203
f.write("ID: {}\r\n".format(id_user))
204
f.write("USERNAME: {}\r\n".format(user))
205
f.write("BIO: {}\r\n".format(bio))
206
f.write("IS-ADMIN: {}\r\n".format(admin))
207
f.write("IS-VERIFIED: {}\r\n".format(verified))
208
f.write("LOCATION: {}\r\n".format(location))
209
f.write("MAJOR: {}\r\n".format(major))
210
f.close()
211
212
except ConnectionError:
213
print(Font.Color.RED + "[!]" +
214
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
215
pass
216
except Exception as e:
217
print(Font.Color.RED + "[!]" +
218
Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
219
pass
220
221
@staticmethod
222
def MixCloud(report, username, http_proxy,Opt,name2):
223
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
224
"SCRAPING {} MIXCLOUD PROFILE...".format(username))
225
url = info.Get_Url(username, "MixCloud")
226
url
227
openurl = requests.get(url, proxies=http_proxy,
228
headers=headers, timeout=30)
229
try:
230
reader = openurl.text
231
converted = json.loads(reader)
232
user = converted["name"]
233
usern2 = converted["username"]
234
bio = converted["biog"]
235
followers = converted["follower_count"]
236
followeed = converted["following_count"]
237
is_pro = converted["is_pro"]
238
is_premium = converted["is_premium"]
239
created = converted["created_time"]
240
profile_pic = converted["pictures"]["640wx640h"]
241
242
print(Font.Color.YELLOW +
243
"[v]" + Font.Color.WHITE + "USERNAME: {}".format(usern2))
244
print(Font.Color.YELLOW + "[v]" +
245
Font.Color.WHITE + "NAME: {}".format(user))
246
print(Font.Color.YELLOW +
247
"[v]" + Font.Color.WHITE + "IS-PRO?: {}".format(is_pro))
248
print(Font.Color.YELLOW +
249
"[v]" + Font.Color.WHITE + "IS-PREMIUM?: {}".format(is_premium))
250
print(Font.Color.YELLOW +
251
"[v]" + Font.Color.WHITE + "FOLLOWER: {}".format(followeed))
252
print(Font.Color.YELLOW +
253
"[v]" + Font.Color.WHITE + "FOLLOWERS: {}".format(followers))
254
print(Font.Color.YELLOW + "[v]" +
255
Font.Color.WHITE + "BIO: {}".format(bio))
256
print(Font.Color.YELLOW +
257
"[v]" + Font.Color.WHITE + "CREATED-ON: {}".format(created))
258
print(Font.Color.YELLOW +
259
"[v]" + Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
260
261
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
262
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
263
if download == 1:
264
SiteName = "MixCloud"
265
info.Profile_Pic(username, profile_pic, SiteName,Opt,name2)
266
else:
267
pass
268
269
f = open(report, "a", encoding="utf-8")
270
f.write("\nMIXCLOUD DATA:\n")
271
f.write("USERNAME: {}\r\n".format(usern2))
272
f.write("NAME: {}\r\n".format(user))
273
f.write("BIO: {}\r\n".format(bio))
274
f.write("IS-PRO?: {}\r\n".format(is_pro))
275
f.write("IS-PREMIUM? : {}\r\n".format(is_premium))
276
f.write("FOLLOWEED: {}\r\n".format(followeed))
277
f.write("FOLLOWERS: {}\r\n".format(followers))
278
f.write("CREATED-ON: {}\r\n".format(created))
279
f.close()
280
281
except ConnectionError:
282
print(Font.Color.RED + "[!]" +
283
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
284
pass
285
except Exception as e:
286
print(Font.Color.RED + "[!]" +
287
Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
288
pass
289
290
@staticmethod
291
def Instagram(report, username, http_proxy, InstagramParams, PostLocations, PostGpsCoordinates, Opt, name2):
292
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
293
"SCRAPING {} INSTAGRAM PROFILE...".format(username))
294
url = info.Get_Url(username, "Instagram")
295
url
296
openurl = requests.get(url, proxies=http_proxy,
297
headers=headers, timeout=None)
298
Flag = False
299
try:
300
Blocked = 'Profile is private.'.format(username)
301
text = openurl.text
302
if Blocked in text:
303
Private = "TRUE"
304
Flag = False
305
IsPrivate1 = "True"
306
else:
307
Private = "FALSE"
308
IsPrivate1 = "False"
309
InstagramParams.append(IsPrivate1)
310
Flag = True
311
reader = soup(openurl.content, "html.parser")
312
name = reader.find("h2", class_="profile-name-bottom").text
313
followers = reader.find("span", class_="followed_by").text
314
InstagramParams.append(followers)
315
followed = reader.find("span", class_="follows").text
316
bio = reader.find("div", class_="profile-description").text
317
posts = reader.find("span", class_="total_posts").text
318
InstagramParams.append(posts)
319
profile = reader.find_all("div", class_="profile-avatar")
320
for image in profile:
321
profile_pic = image.find(
322
"a", class_="profile-hd-link launchLightbox")["data-video-poster"]
323
print(Font.Color.YELLOW + "[v]" +
324
Font.Color.WHITE + "USERNAME: {}".format(username))
325
print(Font.Color.YELLOW + "[v]" +
326
Font.Color.WHITE + "NAME: {}".format(name))
327
print(Font.Color.YELLOW + "[v]" +
328
Font.Color.WHITE + "BIO: {}".format(bio.strip()))
329
print(Font.Color.YELLOW +
330
"[v]" + Font.Color.WHITE + "POSTS: {}".format(posts))
331
print(Font.Color.YELLOW +
332
"[v]" + Font.Color.WHITE + "FOLLOWERS: {}".format(followers))
333
print(Font.Color.YELLOW +
334
"[v]" + Font.Color.WHITE + "FOLLOWED: {}".format(followed))
335
print(Font.Color.YELLOW +
336
"[v]" + Font.Color.WHITE + "PRIVATE-ACCOUNT: {}".format(Private))
337
print(Font.Color.YELLOW +
338
"[v]" + Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
339
340
f = open(report, "a", encoding="utf-8")
341
f.write("\nINSTAGRAM DATA:\n")
342
f.write("USERNAME: {}\r\n".format(username))
343
f.write("NAME: {}\r\n".format(name))
344
f.write("BIO: {}\r\n".format(bio.strip()))
345
f.write("POSTS: {}\r\n".format(posts))
346
f.write("FOLLOWED: {}\r\n".format(followed))
347
f.write("FOLLOWERS: {}\r\n".format(followers))
348
f.write("PRIVATE-ACCOUNT: {}\r\n".format(Private))
349
f.close()
350
351
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
352
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
353
354
if download == 1:
355
SiteName = "Instagram"
356
info.Profile_Pic(username,
357
profile_pic, SiteName,Opt,name2)
358
else:
359
pass
360
except ConnectionError:
361
print(Font.Color.RED + "[!]" +
362
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
363
Flag = False
364
IsPrivate1 = "Undefined"
365
InstagramParams.append(IsPrivate1)
366
pass
367
except Exception as e:
368
print(Font.Color.RED + "[!]" +
369
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None") + str(e))
370
Flag = False
371
IsPrivate1 = "Undefined"
372
InstagramParams.append(IsPrivate1)
373
pass
374
finally:
375
if Flag == True:
376
Photos = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Pics").format(
377
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
378
379
if Photos == 1:
380
Posts = float(posts.replace(",", ''))
381
try:
382
Get_Posts.Downloader.Instagram(url,
383
username, http_proxy, Posts, PostLocations, PostGpsCoordinates,Opt,name2)
384
except ConnectionError:
385
print(Font.Color.RED +
386
"\n[!]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
387
else:
388
pass
389
390
@staticmethod
391
def Twitter(report, username, http_proxy, TwitterParams ,Opt,name2):
392
headers = Headers.Get.Twitter()
393
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
394
"SCRAPING {} TWITTER PROFILE...".format(username))
395
url = info.Get_Url(username, "Twitter")
396
url
397
openurl = requests.get(url, proxies=http_proxy,
398
headers=headers)
399
try:
400
Blocked = 'User "{}" has been suspended'.format(username)
401
text = openurl.text
402
if Blocked in text:
403
print(Font.Color.RED + "[!]" + Font.Color.WHITE +
404
Language.Translation.Translate_Language(filename, "Username", "Twitter", "Blocked"))
405
Flag = False
406
IsPrivate = "Undefined"
407
TwitterParams.append(IsPrivate)
408
pass
409
else:
410
Private = "This account&#x27;s tweets are protected."
411
text = openurl.text
412
if Private in text:
413
Private = "TRUE"
414
IsPrivate = "True"
415
TwitterParams.append(IsPrivate)
416
else:
417
Private = "FALSE"
418
IsPrivate = "False"
419
TwitterParams.append(IsPrivate)
420
Flag = True
421
reader = soup(openurl.content, "html.parser")
422
user = reader.find(
423
"a", href=True, class_="profile-card-fullname")
424
pic = reader.find("a", href=True, class_="profile-card-avatar")
425
profile_pic = url.replace("/"+username, "") + pic["href"]
426
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE +
427
"USER: " + user["href"].replace("/", ""))
428
follower_items = reader.find_all("li", class_="followers")
429
for item in follower_items:
430
follower = item.find(
431
"span", class_="profile-stat-num").text
432
print(Font.Color.YELLOW +
433
"[v]" + Font.Color.WHITE + "FOLLWERS: {}".format(follower))
434
TwitterParams.append(follower)
435
436
437
post_items = reader.find_all("li", class_="posts")
438
for item in post_items:
439
posts = item.find("span", class_="profile-stat-num").text
440
print(Font.Color.YELLOW +
441
"[v]" + Font.Color.WHITE + "POSTS: {}".format(posts))
442
TwitterParams.append(posts)
443
444
445
followed_item = reader.find_all("li", class_="following")
446
for item in followed_item:
447
followed = item.find(
448
"span", class_="profile-stat-num").text
449
print(Font.Color.YELLOW +
450
"[v]" + Font.Color.WHITE + "FOLLOWING: {}".format(followed))
451
print(Font.Color.YELLOW +
452
"[v]" + Font.Color.WHITE + "PROFILE-PIC: " + profile_pic)
453
print(Font.Color.YELLOW +
454
"[v]" + Font.Color.WHITE + "PRIVATE-ACCOUNT: " + Private)
455
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
456
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
457
458
if download == 1:
459
SiteName = "Twitter"
460
info.Profile_Pic(username,
461
profile_pic, SiteName ,Opt,name2)
462
else:
463
pass
464
465
f = open(report, "a", encoding="utf-8")
466
f.write("\nTWITTER DATA:\n")
467
f.write("USERNAME: {}\r\n".format(
468
user["href"].replace("/", "")))
469
f.write("POSTS: {}\r\n".format(posts))
470
f.write("FOLLOWERS: {}\r\n".format(follower))
471
f.write("FOLLOWING: {}\r\n".format(followed))
472
f.write("PRIVATE-ACCOUNT: {}\r\n".format(Private))
473
f.close()
474
475
except ConnectionError:
476
print(Font.Color.RED + "[!]" +
477
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
478
Flag = False
479
IsPrivate = "Undefined"
480
TwitterParams.append(IsPrivate)
481
pass
482
except Exception as e:
483
print(Font.Color.RED + "[!]" +
484
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None") + str(e))
485
Flag = False
486
IsPrivate = "Undefined"
487
TwitterParams.append(IsPrivate)
488
pass
489
except requests.Timeout as err:
490
print(Font.Color.RED + "[!]" +
491
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None") + str(e))
492
Flag = False
493
IsPrivate = "Undefined"
494
TwitterParams[0].append(IsPrivate)
495
finally:
496
if Flag == True:
497
Photos = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Pics").format(
498
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
499
if Photos == 1:
500
Private = "This account&#x27;s tweets are protected."
501
text = openurl.text
502
if Private in text:
503
print(Font.Color.RED + "\n[!]" + Font.Color.WHITE +
504
Language.Translation.Translate_Language(filename, "Username", "Twitter", "Protected").format(username))
505
else:
506
Posts = float(posts.replace(",", ''))
507
try:
508
Get_Posts.Downloader.Twitter(url,
509
username, http_proxy, Posts ,Opt,name2)
510
except ConnectionError:
511
print(Font.Color.RED +
512
"\n[!]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
513
else:
514
pass
515
516
@staticmethod
517
def Dockerhub(report, username, http_proxy ,Opt,name2):
518
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
519
"SCRAPING {} DOCKERHUB PROFILE...".format(username))
520
url = info.Get_Url(username, "DockerHub")
521
url
522
openurl = requests.get(url, proxies=http_proxy,
523
headers=headers, timeout=15)
524
try:
525
reader = openurl.text
526
converted = json.loads(reader)
527
id_user = converted["id"]
528
user = converted["username"]
529
full_name = converted["full_name"]
530
location = converted["location"]
531
profile_creation = converted["date_joined"]
532
account_type = converted["type"]
533
profile_pic1 = converted["gravatar_url"]
534
profile_pic = profile_pic1.replace("&", "0&")
535
print(Font.Color.YELLOW + "[v]" +
536
Font.Color.WHITE + "ID: {}".format(id_user))
537
print(Font.Color.YELLOW + "[v]" +
538
Font.Color.WHITE + "USERNAME: {}".format(user))
539
print(Font.Color.YELLOW +
540
"[v]" + Font.Color.WHITE + "FULL-NAME: {}".format(full_name))
541
print(Font.Color.YELLOW +
542
"[v]" + Font.Color.WHITE + "LOCATION: {}".format(location))
543
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE +
544
"CREATED-ON: {}".format(profile_creation))
545
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE +
546
"ACCOUNT-TYPE: {}".format(account_type))
547
print(Font.Color.YELLOW +
548
"[v]" + Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
549
550
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
551
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
552
553
if download == 1:
554
SiteName = "DockerHub"
555
info.Profile_Pic(username, profile_pic, SiteName ,Opt,name2)
556
else:
557
pass
558
559
f = open(report, "a", encoding="utf-8")
560
f.write("\nDOCKERHUB DATA:\n")
561
f.write("ID: {}\r\n".format(id_user))
562
f.write("USERNAME: {}\r\n".format(user))
563
f.write("FULL-NAME: {}\r\n".format(full_name))
564
f.write("LOCATION: {}\r\n".format(location))
565
f.write("CREATED-ON: {}\r\n".format(profile_creation))
566
f.write("ACCOUNT-TYPE: {}\r\n".format(account_type))
567
f.close()
568
except ConnectionError:
569
print(Font.Color.RED + "[!]" +
570
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
571
pass
572
except Exception as e:
573
print(Font.Color.RED + "[!]" +
574
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
575
pass
576
577
@staticmethod
578
def Kik(report, username, http_proxy ,Opt,name2):
579
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
580
"SCRAPING {} KIK PROFILE...".format(username))
581
url = info.Get_Url(username, "Kik")
582
url
583
openurl = requests.get(url, proxies=http_proxy,
584
headers=headers, timeout=15)
585
try:
586
reader = openurl.text
587
converted = json.loads(reader)
588
target = []
589
profile = []
590
for values in converted:
591
name = converted[values]
592
if values == "displayPic":
593
found = True
594
profile.append(name)
595
break
596
else:
597
found = False
598
profile.append("None")
599
target.append(name)
600
if found == True:
601
profile_pic = profile[3]
602
else:
603
profile_pic = "None"
604
print(Font.Color.YELLOW +
605
"[v]" + Font.Color.WHITE + "FIRST-NAME: {}".format(target[0]))
606
print(Font.Color.YELLOW +
607
"[v]" + Font.Color.WHITE + "LAST-NAME: {}".format(target[1]))
608
print(Font.Color.YELLOW +
609
"[v]" + Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
610
611
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
612
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
613
614
if download == 1:
615
if profile_pic != "None":
616
SiteName = "Kik"
617
info.Profile_Pic(username,
618
profile_pic, SiteName ,Opt,name2)
619
else:
620
pass
621
else:
622
pass
623
624
f = open(report, "a", encoding="utf-8")
625
f.write("\nKIK DATA:\n")
626
f.write("FIRST-NAME: {}\r\n".format(target[0]))
627
f.write("LAST-NAME: {}\r\n".format(target[1]))
628
f.close()
629
except ConnectionError:
630
print(Font.Color.RED + "[!]" +
631
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
632
pass
633
634
except Exception as e:
635
print(Font.Color.RED + "[!]" +
636
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None") + str(e))
637
pass
638
639
@staticmethod
640
def GitLab(report, username, http_proxy ,Opt,name2):
641
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
642
"SCRAPING {} GIT-LAB PROFILE...".format(username))
643
url = info.Get_Url(username, "GitLab")
644
url
645
openurl = requests.get(url, proxies=http_proxy,
646
headers=headers, timeout=15)
647
try:
648
reader = openurl.text
649
converted = json.loads(reader)
650
id_user = converted[0]["id"]
651
name = converted[0]["name"]
652
user = converted[0]["username"]
653
status = converted[0]["state"]
654
profile_pic = converted[0]["avatar_url"].replace("&", "0&")
655
656
print(Font.Color.YELLOW + "[v]" +
657
Font.Color.WHITE + "ID: {}".format(id_user))
658
print(Font.Color.YELLOW + "[v]" +
659
Font.Color.WHITE + "USERNAME: {}".format(user))
660
print(Font.Color.YELLOW + "[v]" +
661
Font.Color.WHITE + "NAME: {}".format(name))
662
print(Font.Color.YELLOW + "[v]" +
663
Font.Color.WHITE + "STATUS: {}".format(status))
664
print(Font.Color.YELLOW +
665
"[v]" + Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
666
667
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
668
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
669
670
if download == 1:
671
SiteName = "GitLab"
672
info.Profile_Pic(username, profile_pic, SiteName ,Opt,name2)
673
else:
674
pass
675
676
f = open(report, "a", encoding="utf-8")
677
678
f.write("\nGITLAB DATA:\n")
679
f.write("ID: {}\r\n".format(id_user))
680
f.write("NAME: {}\r\n".format(name))
681
f.write("USERNAME: {}\r\n".format(user))
682
f.write("STATUS: {}\r\n".format(status))
683
f.close()
684
685
except ConnectionError:
686
print(Font.Color.RED + "[!]" +
687
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
688
pass
689
except Exception as e:
690
print(Font.Color.RED + "[!]" +
691
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
692
pass
693
694
@staticmethod
695
def Wattpad(report, username, http_proxy ,Opt,name2):
696
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
697
"SCRAPING {} WATTPAD PROFILE...".format(username))
698
url = info.Get_Url(username, "Wattpad")
699
url
700
openurl = requests.get(url, proxies=http_proxy,
701
headers=headers, timeout=15)
702
try:
703
reader = openurl.text
704
converted = json.loads(reader)
705
user = converted["username"]
706
votes = converted["votesReceived"]
707
stories = converted["numStoriesPublished"]
708
creation = converted["createDate"]
709
modification = converted["modifyDate"]
710
followers = converted["numFollowers"]
711
following = converted["numFollowing"]
712
profile_pic = converted["avatar"]
713
bio = converted["description"]
714
gender = converted["gender"]
715
Location = converted["location"]
716
isPrivate = converted["isPrivate"]
717
718
print(Font.Color.YELLOW + "[v]" +
719
Font.Color.WHITE + "USERNAME: {}".format(user))
720
print(Font.Color.YELLOW + "[v]" +
721
Font.Color.WHITE + "BIO: {}".format(bio))
722
print(Font.Color.YELLOW + "[v]" +
723
Font.Color.WHITE + "GENDER: {}".format(gender))
724
print(Font.Color.YELLOW + "[v]" +
725
Font.Color.WHITE + "VOTES: {}".format(votes))
726
print(Font.Color.YELLOW +
727
"[v]" + Font.Color.WHITE + "CREATED-ON: {}".format(creation))
728
print(Font.Color.YELLOW +
729
"[v]" + Font.Color.WHITE + "MODIFIED-ON: {}".format(modification))
730
print(Font.Color.YELLOW +
731
"[v]" + Font.Color.WHITE + "STORIES: {}".format(stories))
732
print(Font.Color.YELLOW +
733
"[v]" + Font.Color.WHITE + "FOLLOWERS: {}".format(followers))
734
print(Font.Color.YELLOW +
735
"[v]" + Font.Color.WHITE + "FOLLOWING: {}".format(following))
736
print(Font.Color.YELLOW +
737
"[v]" + Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
738
print(Font.Color.YELLOW +
739
"[v]" + Font.Color.WHITE + "LOCATION: {}".format(Location))
740
print(Font.Color.YELLOW +
741
"[v]" + Font.Color.WHITE + "PRIVATE: {}".format(isPrivate))
742
743
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
744
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
745
746
if download == 1:
747
SiteName = "Wattpad"
748
info.Profile_Pic(username, profile_pic, SiteName ,Opt,name2)
749
else:
750
pass
751
752
f = open(report, "a", encoding="utf-8")
753
754
f.write("\nWATTPAD DATA:\n")
755
f.write("USERNAME: {}\r\n".format(user))
756
f.write("BIO: {}\r\n".format(bio))
757
f.write("GENDER: {}\r\n".format(gender))
758
f.write("VOTES: {}\r\n".format(votes))
759
f.write("CREATED-ON: {}\r\n".format(creation))
760
f.write("STORIES: {}\r\n".format(stories))
761
f.write("FOLLOWERS: {}\r\n".format(followers))
762
f.write("FOLLOWING: {}\r\n".format(following))
763
f.write("LOCATION: {}\r\n".format(Location))
764
f.write("PRIVATE: {}\r\n".format(isPrivate))
765
f.close()
766
767
except ConnectionError:
768
print(Font.Color.RED + "[!]" +
769
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
770
pass
771
except Exception as e:
772
print(Font.Color.RED + "[!]" +
773
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None") + str(e))
774
pass
775
776
@staticmethod
777
def Github(report, username, http_proxy ,Opt,name2):
778
try:
779
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
780
"SCRAPING {} GITHUB PROFILE...".format(username))
781
url = info.Get_Url(username, "GitHub")
782
url
783
openurl = requests.get(url, proxies=http_proxy,
784
headers=headers, timeout=15)
785
reader = openurl.text
786
converted = json.loads(reader)
787
user = converted["login"]
788
repositories = converted["public_repos"]
789
gist = converted["public_gists"]
790
creation = converted["created_at"]
791
modification = converted["updated_at"]
792
followers = converted["followers"]
793
following = converted["following"]
794
profile_pic = converted["avatar_url"]
795
bio = converted["bio"]
796
blog = converted["blog"]
797
location = converted["location"]
798
name = converted["name"]
799
email = converted["email"]
800
twitter = converted["twitter_username"]
801
is_hireable = converted["hireable"]
802
company = converted["company"]
803
804
print(Font.Color.YELLOW + "[v]" +
805
Font.Color.WHITE + "USERNAME: {}".format(user))
806
print(Font.Color.YELLOW + "[v]" +
807
Font.Color.WHITE + "BIO: {}".format(bio))
808
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE +
809
"REPOSITORIES: {}".format(repositories))
810
print(Font.Color.YELLOW + "[v]" +
811
Font.Color.WHITE + "GISTS: {}".format(gist))
812
print(Font.Color.YELLOW +
813
"[v]" + Font.Color.WHITE + "CREATED-ON: {}".format(creation))
814
print(Font.Color.YELLOW +
815
"[v]" + Font.Color.WHITE + "LAST UPDATE: {}".format(modification))
816
print(Font.Color.YELLOW +
817
"[v]" + Font.Color.WHITE + "FOLLOWERS: {}".format(followers))
818
print(Font.Color.YELLOW +
819
"[v]" + Font.Color.WHITE + "FOLLOWING: {}".format(following))
820
print(Font.Color.YELLOW +
821
"[v]" + Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
822
print(Font.Color.YELLOW + "[v]" +
823
Font.Color.WHITE + "BLOG: {}".format(blog))
824
print(Font.Color.YELLOW +
825
"[v]" + Font.Color.WHITE + "LOCATION: {}".format(location))
826
print(Font.Color.YELLOW + "[v]" +
827
Font.Color.WHITE + "NAME: {}".format(name))
828
print(Font.Color.YELLOW + "[v]" +
829
Font.Color.WHITE + "EMAIL: {}".format(email))
830
print(Font.Color.YELLOW +
831
"[v]" + Font.Color.WHITE + "TWITTER: {}".format(twitter))
832
print(Font.Color.YELLOW + "[v]" +
833
Font.Color.WHITE + "HIREABLE: {}".format(is_hireable))
834
print(Font.Color.YELLOW + "[v]" +
835
Font.Color.WHITE + "COMPANY: {}".format(company))
836
837
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
838
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
839
840
if download == 1:
841
SiteName = "GitHub"
842
info.Profile_Pic(username, profile_pic, SiteName ,Opt,name2)
843
else:
844
pass
845
f = open(report, "a", encoding="utf-8")
846
f.write("\nGIT-HUB DATA:\n")
847
f.write("USERNAME: {}\r\n".format(user))
848
f.write("BIO: {}\r\n".format(bio))
849
f.write("REPOSITORIES: {}\r\n".format(repositories))
850
f.write("GISTS: {}\r\n".format(gist))
851
f.write("CREATED-ON: {}\r\n".format(creation))
852
f.write("UPDATED-ON: {}\r\n".format(modification))
853
f.write("FOLLOWERS: {}\r\n".format(followers))
854
f.write("FOLLOWING: {}\r\n".format(following))
855
f.write("BLOG: {}\r\n".format(blog))
856
f.write("LOCATION: {}\r\n".format(location))
857
f.write("NAME: {}\r\n".format(name))
858
f.write("EMAIL: {}\r\n".format(email))
859
f.write("TWITTER: {}\r\n".format(twitter))
860
f.write("HIREABLE: {}\r\n".format(is_hireable))
861
f.write("COMPANY: {}\r\n".format(company))
862
f.close()
863
864
except ConnectionError:
865
print(Font.Color.RED + "[!]" +
866
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
867
pass
868
except Exception as e:
869
print(Font.Color.RED + "[!]" +
870
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
871
pass
872
873
@staticmethod
874
def TikTok(report, username, http_proxy ,Opt,name2):
875
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
876
"SCRAPING {} TIKTOK PROFILE...".format(username))
877
url = info.Get_Url(username, "TikTok")
878
url
879
openurl = requests.get(url, proxies=http_proxy,
880
headers=headers, timeout=15)
881
Posts = 0
882
Flag = True
883
try:
884
reader = soup(openurl.content, "html.parser")
885
user = reader.find("h1", class_="user").text
886
name = reader.find("h5", class_="text-dark").text
887
followers = reader.find(
888
"div", class_="col-7 col-md-auto text-truncate").text.replace("🦄","").replace(" ","",1)
889
followed = reader.find(
890
"div", class_="col-auto d-none d-sm-block text-truncate").text.replace("🏹","").replace(" ","",1)
891
like = reader.find("div", class_="col-auto").text.replace("🧡","").replace(" ","",1)
892
profile = reader.find_all(
893
"div", class_="col-md-auto justify-content-center text-center")
894
postsect = reader.find_all("div", class_="info3")
895
for post in postsect:
896
Posts = Posts + 1
897
898
for image in profile:
899
profile_pic = image.find("img")["src"]
900
901
print(Font.Color.YELLOW + "[v]" +
902
Font.Color.WHITE + "USERNAME: {}".format(user))
903
print(Font.Color.YELLOW + "[v]" +
904
Font.Color.WHITE + "NAME: {}".format(name))
905
print(Font.Color.YELLOW + "[v]" +
906
Font.Color.WHITE + "LIKES: {}".format(like))
907
print(Font.Color.YELLOW +
908
"[v]" + Font.Color.WHITE + "FOLLOWERS: {}".format(followers))
909
print(Font.Color.YELLOW +
910
"[v]" + Font.Color.WHITE + "FOLLOWED: {}".format(followed))
911
print(Font.Color.YELLOW +
912
"[v]" + Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
913
914
f = open(report, "a", encoding="utf-8")
915
f.write("\nTIKTOK DATA:\n")
916
f.write("USERNAME: {}\r\n".format(user))
917
f.write("NAME: {}\r\n".format(name))
918
f.write("LIKES: {}\r\n".format(like))
919
f.write("FOLLOWED: {}\r\n".format(followed))
920
f.write("FOLLOWERS: {}\r\n".format(followers))
921
f.close()
922
923
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
924
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
925
926
if download == 1:
927
SiteName = "TikTok"
928
info.Profile_Pic(username, profile_pic, SiteName ,Opt,name2)
929
else:
930
pass
931
932
except ConnectionError:
933
print(Font.Color.RED + "[!]" +
934
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
935
Flag = False
936
pass
937
except Exception as e:
938
print(Font.Color.RED + "[!]" +
939
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None") + str(e))
940
Flag = False
941
pass
942
finally:
943
if Flag == True:
944
Video = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Pics").format(
945
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
946
947
if Video == 1:
948
try:
949
Get_Posts.Downloader.TikTok(
950
url, username, http_proxy, Posts ,Opt,name2)
951
except ConnectionError:
952
print(Font.Color.RED +
953
"\n[!]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
954
else:
955
pass
956
957
@staticmethod
958
def Minecraft(report, username, http_proxy ,Opt,name2):
959
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
960
"SCRAPING {} MINECRAFT PROFILE...".format(username))
961
url = info.Get_Url(username, "Minecraft")
962
url
963
openurl = requests.get(url, proxies=http_proxy, headers=headers)
964
try:
965
reader = openurl.text
966
converted = json.loads(reader)
967
id_user = converted["id"]
968
user = converted["name"]
969
970
print(Font.Color.YELLOW + "[v]" +
971
Font.Color.WHITE + "ID: {}".format(id_user))
972
print(Font.Color.YELLOW + "[v]" +
973
Font.Color.WHITE + "USERNAME: {}".format(user))
974
975
f = open(report, "a", encoding="utf-8")
976
f.write("\nMINECRAFT DATA:\n")
977
f.write("ID: {}\r\n".format(id_user))
978
f.write("USERNAME: {}\r\n".format(user))
979
f.close()
980
981
except ConnectionError:
982
print(Font.Color.RED + "[!]" +
983
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
984
pass
985
except Exception as e:
986
print(Font.Color.RED + "[!]" +
987
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
988
pass
989
990
@staticmethod
991
def Ngl(report, username, http_proxy ,Opt,name2):
992
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
993
"SCRAPING {} NGL.LINK PROFILE...".format(username))
994
url = info.Get_Url(username, "Ngl.link")
995
url
996
openurl = requests.get(url, proxies=http_proxy, headers=headers)
997
try:
998
reader = soup(openurl.content, "html.parser")
999
profile_pic = reader.find("img", class_="pfp")["src"]
1000
clicks = reader.find("span", class_="clickCount").text
1001
print(Font.Color.YELLOW + "[v]" +
1002
Font.Color.WHITE + "USERNAME: {}".format(username))
1003
print(Font.Color.YELLOW + "[v]" +
1004
Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
1005
print(Font.Color.YELLOW + "[v]" +
1006
Font.Color.WHITE + "CLICKS: {}".format(clicks))
1007
1008
f = open(report, "a", encoding="utf-8")
1009
f.write("\nNGL.LINK DATA:\n")
1010
f.write("USERNAME: {}\r\n".format(username))
1011
f.write("CLICKS: {}\r\n".format(clicks))
1012
f.close()
1013
1014
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
1015
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
1016
1017
if download == 1:
1018
SiteName = "Ngl.link"
1019
info.Profile_Pic(username, profile_pic, SiteName ,Opt,name2)
1020
else:
1021
pass
1022
1023
except ConnectionError:
1024
print(Font.Color.RED + "[!]" +
1025
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
1026
pass
1027
except Exception as e:
1028
print(Font.Color.RED + "[!]" +
1029
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None"))
1030
pass
1031
1032
@staticmethod
1033
def Disqus(report, username, http_proxy ,Opt,name2):
1034
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
1035
"SCRAPING {} DISQUS PROFILE...".format(username))
1036
url = info.Get_Url(username, "Disqus")
1037
url
1038
openurl = requests.get(url, proxies=http_proxy, headers=headers)
1039
try:
1040
reader = openurl.text
1041
converted = json.loads(reader)
1042
id_user = converted["response"]["id"]
1043
user = converted["response"]["username"]
1044
creation = converted["response"]["joinedAt"]
1045
location = converted["response"]["location"]
1046
private = converted["response"]["isPrivate"]
1047
Followers = converted["response"]["numFollowers"]
1048
rep = converted["response"]["reputation"]
1049
Followed = converted["response"]["numFollowing"]
1050
bio = converted["response"]["about"]
1051
profile_pic = converted["response"]["avatar"]["permalink"]
1052
1053
print(Font.Color.YELLOW + "[v]" +
1054
Font.Color.WHITE + "ID: {}".format(id_user))
1055
print(Font.Color.YELLOW + "[v]" +
1056
Font.Color.WHITE + "USERNAME: {}".format(user))
1057
print(Font.Color.YELLOW + "[v]" +
1058
Font.Color.WHITE + "CREATED ON: {}".format(creation))
1059
print(Font.Color.YELLOW + "[v]" +
1060
Font.Color.WHITE + "LOCATION: {}".format(location))
1061
print(Font.Color.YELLOW + "[v]" +
1062
Font.Color.WHITE + "PRIVATE: {}".format(private))
1063
print(Font.Color.YELLOW + "[v]" +
1064
Font.Color.WHITE + "FOLLOWERS: {}".format(Followers))
1065
print(Font.Color.YELLOW + "[v]" +
1066
Font.Color.WHITE + "FOLLOWED: {}".format(Followed))
1067
print(Font.Color.YELLOW + "[v]" +
1068
Font.Color.WHITE + "BIO: {}".format(bio))
1069
print(Font.Color.YELLOW + "[v]" +
1070
Font.Color.WHITE + "REPUTATION: {}".format(rep))
1071
print(Font.Color.YELLOW + "[v]" +
1072
Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
1073
1074
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
1075
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
1076
1077
if download == 1:
1078
SiteName = "Disqus"
1079
info.Profile_Pic(username, profile_pic, SiteName ,Opt,name2)
1080
else:
1081
pass
1082
f = open(report, "a", encoding="utf-8")
1083
f.write("\nDISQUS DATA:\n")
1084
f.write("ID: {}\r\n".format(id_user))
1085
f.write("USERNAME: {}\r\n".format(user))
1086
f.write("CREATED ON: {}\r\n".format(creation))
1087
f.write("LOCATION: {}\r\n".format(location))
1088
f.write("PRIVATE: {}\r\n".format(private))
1089
f.write("FOLLOWERS: {}\r\n".format(Followers))
1090
f.write("FOLLOWED: {}\r\n".format(Followed))
1091
f.write("BIO: {}\r\n".format(bio))
1092
f.write("REPUTATION: {}\r\n".format(rep))
1093
f.close()
1094
1095
except ConnectionError:
1096
print(Font.Color.RED + "[!]" +
1097
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
1098
pass
1099
except Exception as e:
1100
print(Font.Color.RED + "[!]" +
1101
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None") + str(e))
1102
pass
1103
1104
@staticmethod
1105
def Tellonym(report, username, http_proxy ,Opt,name2):
1106
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
1107
"SCRAPING {} TELLONYM PROFILE...".format(username))
1108
url = info.Get_Url(username, "Tellonym")
1109
url
1110
openurl = requests.get(url, proxies=http_proxy, headers=headers)
1111
try:
1112
reader = soup(openurl.content, "html.parser")
1113
profile_pic = reader.find(
1114
"meta", attrs={"name": "twitter:image"})["content"]
1115
print(Font.Color.YELLOW + "[v]" +
1116
Font.Color.WHITE + "USERNAME: {}".format(username))
1117
print(Font.Color.YELLOW + "[v]" +
1118
Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
1119
1120
f = open(report, "a", encoding="utf-8")
1121
f.write("\nTELLONYM DATA:\n")
1122
f.write("USERNAME: {}\r\n".format(username))
1123
f.write("PROFILE-PIC: {}\r\n".format(profile_pic))
1124
f.close()
1125
1126
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
1127
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
1128
1129
if download == 1:
1130
SiteName = "Tellonym"
1131
info.Profile_Pic(username, profile_pic, SiteName ,Opt,name2)
1132
else:
1133
pass
1134
1135
except ConnectionError:
1136
print(Font.Color.RED + "[!]" +
1137
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
1138
pass
1139
except Exception as e:
1140
print(Font.Color.RED + "[!]" +
1141
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None") + str(e))
1142
pass
1143
1144
@staticmethod
1145
def Gravatar(report, username, http_proxy ,Opt,name2):
1146
try:
1147
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
1148
"SCRAPING {} GRAVATAR PROFILE...".format(username))
1149
url = info.Get_Url(username, "Gravatar")
1150
url
1151
openurl = requests.get(url, proxies=http_proxy,
1152
headers=headers, timeout=15)
1153
reader = openurl.text
1154
converted = json.loads(reader)
1155
hashid = converted["entry"][0]["hash"]
1156
user = converted["entry"][0]["preferredUsername"]
1157
displayname = converted["entry"][0]["displayName"]
1158
profile_pic = converted["entry"][0]["thumbnailUrl"]
1159
if "aboutMe" in reader:
1160
bio = converted["entry"][0]["aboutMe"]
1161
else:
1162
bio = ""
1163
if "formatted" in reader:
1164
name = converted["entry"][0]["name"]["formatted"]
1165
else:
1166
name = "None"
1167
urls = converted["entry"][0]["urls"]
1168
if "last_profile_edit" in reader:
1169
modification = converted["entry"][0]["last_profile_edit"]
1170
else:
1171
modification = "None"
1172
f = open(report, "a", encoding="utf-8")
1173
f.write("\nGRAVATAR DATA:\n")
1174
1175
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "HASH: {}".format(hashid))
1176
f.write("HASH: {}\r\n".format(hashid))
1177
1178
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "USERNAME: {}".format(user))
1179
f.write("USERNAME: {}\r\n".format(user))
1180
1181
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "DISPLAY-NAME: {}".format(displayname))
1182
f.write("DISPLAY-NAME: {}\r\n".format(displayname))
1183
1184
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "NAME: {}".format(name))
1185
f.write("NAME: {}\r\n".format(name))
1186
1187
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "BIO: {}".format(bio))
1188
f.write("BIO: {}\r\n".format(bio))
1189
1190
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "UPADTED ON: {}".format(modification))
1191
f.write("UPDATED-ON: {}\r\n".format(modification))
1192
i = 1
1193
for url in urls:
1194
print(Font.Color.YELLOW + "[V]" + Font.Color.WHITE + "LINK N°{}: {}".format(i,url["value"]))
1195
f.write("LINK N°{}: {}\r\n".format(i,url["value"]))
1196
i = i +1
1197
1198
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
1199
f.write("PROFILE-PIC: {}\r\n".format(profile_pic))
1200
f.close()
1201
1202
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
1203
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
1204
1205
if download == 1:
1206
SiteName = "Gravatar"
1207
info.Profile_Pic(username, profile_pic, SiteName ,Opt,name2)
1208
else:
1209
pass
1210
1211
except ConnectionError:
1212
print(Font.Color.RED + "[!]" +
1213
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
1214
pass
1215
except Exception as e:
1216
print(Font.Color.RED + "[!]" +
1217
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None") + str(e))
1218
pass
1219
1220
@staticmethod
1221
def Joinroll(report, username, http_proxy ,Opt,name2):
1222
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
1223
"SCRAPING {} JOINROLL PROFILE...".format(username))
1224
url = info.Get_Url(username, "JoinRoll")
1225
url
1226
openurl = requests.get(url, proxies=http_proxy,
1227
headers=headers, timeout=15)
1228
try:
1229
reader = openurl.text
1230
converted = json.loads(reader)
1231
id_user = converted["id"]
1232
user = converted["username"]
1233
bio = converted["bio"]
1234
subscribed = converted["isSubscribed"]
1235
id_roll = converted["roll"]["id"]
1236
price = converted["roll"]["subscriptionPriceCent"]
1237
messageA = converted["conversation"]["messaging"]["isActive"]
1238
messageE = converted["conversation"]["messaging"]["isEnabled"]
1239
messageF = converted["conversation"]["messaging"]["isFree"]
1240
1241
print(Font.Color.YELLOW + "[v]" +
1242
Font.Color.WHITE + "ID: {}".format(id_user))
1243
print(Font.Color.YELLOW + "[v]" +
1244
Font.Color.WHITE + "USERNAME: {}".format(user))
1245
print(Font.Color.YELLOW + "[v]" +
1246
Font.Color.WHITE + "BIO: {}".format(bio))
1247
print(Font.Color.YELLOW +
1248
"[v]" + Font.Color.WHITE + "ROLL-ID: {}".format(id_roll))
1249
print(Font.Color.YELLOW +
1250
"[v]" + Font.Color.WHITE + "SUBSCRIPTION-PRICE: {}".format(price))
1251
print(Font.Color.YELLOW +
1252
"[v]" + Font.Color.WHITE + "MESSAGE-AVAILABLE: {}".format(messageA))
1253
print(Font.Color.YELLOW +
1254
"[v]" + Font.Color.WHITE + "MESSAGE-ENABLED: {}".format(messageE))
1255
print(Font.Color.YELLOW +
1256
"[v]" + Font.Color.WHITE + "MESSAGE-FREE: {}".format(messageF))
1257
1258
1259
f = open(report, "a", encoding="utf-8")
1260
1261
f.write("\nJOINROLL DATA:\n")
1262
f.write("ID: {}\r\n".format(id_user))
1263
f.write("USERNAME: {}\r\n".format(user))
1264
f.write("BIO: {}\r\n".format(bio))
1265
f.write("ROLL-ID: {}\r\n".format(id_roll))
1266
f.write("SUBSCRIPTION-PRICE: {}\r\n".format(price))
1267
f.write("MESSAGE-AVAILABLE: {}\r\n".format(messageA))
1268
f.write("MESSAGE-ENABLED: {}\r\n".format(messageE))
1269
f.write("MESSAGE-FREE: {}\r\n".format(messageF))
1270
f.close()
1271
1272
except ConnectionError:
1273
print(Font.Color.RED + "[!]" +
1274
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
1275
pass
1276
except Exception as e:
1277
print(Font.Color.RED + "[!]" +
1278
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None") + str(e))
1279
pass
1280
1281
@staticmethod
1282
def Chess(report, username, http_proxy ,Opt,name2):
1283
try:
1284
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
1285
"SCRAPING {} CHESS.COM PROFILE...".format(username))
1286
url = info.Get_Url(username, "Chess.com")
1287
url
1288
openurl = requests.get(url, proxies=http_proxy,
1289
headers=headers, timeout=15)
1290
reader = openurl.text
1291
converted = json.loads(reader)
1292
profile_id = converted["player_id"]
1293
user = converted["username"]
1294
if '"name"' in reader:
1295
name = converted["name"]
1296
1297
else:
1298
name = "None"
1299
if "avatar" in reader:
1300
profile_pic = converted["avatar"]
1301
else:
1302
profile_pic = "None"
1303
if "title" in reader:
1304
title = converted["title"]
1305
else:
1306
title = "None"
1307
if "location" in reader:
1308
location = converted["location"]
1309
else:
1310
location = "None"
1311
if "twitch_url" in reader:
1312
twitch_link = converted["twitch_url"]
1313
else:
1314
twitch_link = "NONE"
1315
followers = converted["followers"]
1316
status = converted["status"]
1317
streamer = converted["is_streamer"]
1318
verified = converted["verified"]
1319
if "league" in reader:
1320
league = converted["league"]
1321
else:
1322
league = "None"
1323
country = converted["country"].replace("https://api.chess.com/pub/country/","")
1324
1325
1326
f = open(report, "a", encoding="utf-8")
1327
f.write("\nCHESS.COM DATA:\n")
1328
1329
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "ID: {}".format(profile_id))
1330
f.write("ID: {}\r\n".format(profile_id))
1331
1332
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "USERNAME: {}".format(user))
1333
f.write("USERNAME: {}\r\n".format(user))
1334
1335
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "NAME: {}".format(name))
1336
f.write("NAME: {}\r\n".format(name))
1337
1338
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "FOLLOWERS: {}".format(followers))
1339
f.write("FOLLOWERS: {}\r\n".format(followers))
1340
1341
1342
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "STATUS: {}".format(status))
1343
f.write("STATUS: {}\r\n".format(status))
1344
1345
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "LOCATION: {}".format(location))
1346
f.write("LOCATION: {}\r\n".format(location))
1347
1348
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "TITLE: {}".format(title))
1349
f.write("TITLE: {}\r\n".format(title))
1350
1351
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "STREAMER: {}".format(streamer))
1352
f.write("STREAMER: {}\r\n".format(streamer))
1353
1354
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "TWITCH LINK: {}".format(twitch_link))
1355
f.write("TWITCH LINK: {}\r\n".format(twitch_link))
1356
1357
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "VERIFIED: {}".format(verified))
1358
f.write("VERIFIED: {}\r\n".format(verified))
1359
1360
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "LEAGUE: {}".format(league))
1361
f.write("LEAGUE: {}\r\n".format(league))
1362
1363
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "COUNTRY: {}".format(country))
1364
f.write("COUNTRY: {}\r\n".format(country))
1365
1366
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE + "PROFILE-PIC: {}".format(profile_pic))
1367
f.write("PROFILE-PIC: {}\r\n".format(profile_pic))
1368
1369
f.close()
1370
1371
download = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Username", "Default", "Profile_Pic").format(
1372
username) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
1373
if profile_pic != "None":
1374
if download == 1:
1375
SiteName = "Chess.com"
1376
info.Profile_Pic(username, profile_pic, SiteName ,Opt,name2)
1377
else:
1378
pass
1379
1380
except ConnectionError:
1381
print(Font.Color.RED + "[!]" +
1382
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Connection_Error2", "None"))
1383
pass
1384
except Exception as e:
1385
print(Font.Color.RED + "[!]" +
1386
Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Default", "Error", "None") + str(e))
1387
pass
1388
1389