waymore 8.2__tar.gz → 8.4__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: waymore
3
- Version: 8.2
3
+ Version: 8.4
4
4
  Summary: Find way more from the Wayback Machine, Common Crawl, Alien Vault OTX, URLScan, VirusTotal & Intelligence X!
5
5
  Home-page: https://github.com/xnl-h4ck3r/waymore
6
6
  Author: xnl-h4ck3r
@@ -21,7 +21,7 @@ Dynamic: license-file
21
21
 
22
22
  <center><img src="https://github.com/xnl-h4ck3r/waymore/blob/main/waymore/images/title.png"></center>
23
23
 
24
- ## About - v8.2
24
+ ## About - v8.4
25
25
 
26
26
  The idea behind **waymore** is to find even more links from the Wayback Machine (plus other sources) than other existing tools.
27
27
 
@@ -1,6 +1,6 @@
1
1
  <center><img src="https://github.com/xnl-h4ck3r/waymore/blob/main/waymore/images/title.png"></center>
2
2
 
3
- ## About - v8.2
3
+ ## About - v8.4
4
4
 
5
5
  The idea behind **waymore** is to find even more links from the Wayback Machine (plus other sources) than other existing tools.
6
6
 
waymore-8.4/setup.py ADDED
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env python
2
+ import os
3
+ import re
4
+ import shutil
5
+ import sys
6
+
7
+ from setuptools import find_packages, setup
8
+
9
+ # Read version from __init__.py without importing
10
+
11
+
12
+ def get_version():
13
+ init_path = os.path.join(os.path.dirname(__file__), "waymore", "__init__.py")
14
+ with open(init_path, encoding="utf-8") as f:
15
+ content = f.read()
16
+ match = re.search(r'__version__\s*=\s*["\']([^"\']+)["\']', content)
17
+ if match:
18
+ return match.group(1)
19
+ raise RuntimeError("Unable to find version string.")
20
+
21
+
22
+ target_directory = (
23
+ os.path.join(os.getenv("APPDATA", ""), "waymore")
24
+ if os.name == "nt"
25
+ else (
26
+ os.path.join(os.path.expanduser("~"), "Library", "Application Support", "waymore")
27
+ if sys.platform == "darwin"
28
+ else os.path.join(os.path.expanduser("~"), ".config", "waymore")
29
+ )
30
+ )
31
+
32
+ # Copy the config.yml file to the target directory if it exists
33
+ configNew = False
34
+ if target_directory and os.path.isfile("config.yml"):
35
+ os.makedirs(target_directory, exist_ok=True)
36
+ # If file already exists, create a new one
37
+ if os.path.isfile(target_directory + "/config.yml"):
38
+ configNew = True
39
+ os.rename(target_directory + "/config.yml", target_directory + "/config.yml.OLD")
40
+ shutil.copy("config.yml", target_directory)
41
+ os.rename(target_directory + "/config.yml", target_directory + "/config.yml.NEW")
42
+ os.rename(target_directory + "/config.yml.OLD", target_directory + "/config.yml")
43
+ else:
44
+ shutil.copy("config.yml", target_directory)
45
+
46
+ setup(
47
+ name="waymore",
48
+ packages=find_packages(),
49
+ version=get_version(),
50
+ description="Find way more from the Wayback Machine, Common Crawl, Alien Vault OTX, URLScan & VirusTotal!",
51
+ long_description=open("README.md", encoding="utf-8").read(),
52
+ long_description_content_type="text/markdown",
53
+ author="@xnl-h4ck3r",
54
+ url="https://github.com/xnl-h4ck3r/waymore",
55
+ install_requires=[
56
+ "requests",
57
+ "pyyaml",
58
+ "termcolor",
59
+ "psutil",
60
+ "urlparse3",
61
+ "tldextract",
62
+ ],
63
+ entry_points={
64
+ "console_scripts": [
65
+ "waymore = waymore.waymore:main",
66
+ ],
67
+ },
68
+ )
69
+
70
+ if configNew:
71
+ print(
72
+ "\n\033[33mIMPORTANT: The file "
73
+ + target_directory
74
+ + "/config.yml already exists.\nCreating config.yml.NEW but leaving existing config.\nIf you need the new file, then remove the current one and rename config.yml.NEW to config.yml\n\033[0m"
75
+ )
76
+ else:
77
+ print("\n\033[92mThe file " + target_directory + "/config.yml has been created.\n\033[0m")
@@ -0,0 +1 @@
1
+ __version__ = "8.4"
@@ -3188,13 +3188,21 @@ def getAlienVaultUrls():
3188
3188
  )
3189
3189
 
3190
3190
  if not args.check_only:
3191
- linkCountAlienVault = len(linksFoundAlienVault)
3192
- write(
3193
- colored("AlienVault - [ INFO ] Links found on alienvault.com: ", "cyan")
3194
- + colored(str(linkCountAlienVault), "white")
3195
- )
3196
- linksFound.update(linksFoundAlienVault)
3197
- linksFoundAlienVault.clear()
3191
+ if linksFoundAlienVault is not None:
3192
+ linkCountAlienVault = len(linksFoundAlienVault)
3193
+ write(
3194
+ colored("AlienVault - [ INFO ] Links found on alienvault.com: ", "cyan")
3195
+ + colored(str(linkCountAlienVault), "white")
3196
+ )
3197
+ if linksFound is not None:
3198
+ linksFound.update(linksFoundAlienVault)
3199
+ linksFoundAlienVault.clear()
3200
+ else:
3201
+ linkCountAlienVault = 0
3202
+ write(
3203
+ colored("AlienVault - [ INFO ] Links found on alienvault.com: ", "cyan")
3204
+ + colored("0", "white")
3205
+ )
3198
3206
 
3199
3207
  except Exception as e:
3200
3208
  writerr(colored("ERROR getAlienVaultUrls 1: " + str(e), "red"))
@@ -3294,7 +3302,8 @@ def processURLScanUrl(url, httpCode, mimeType, urlscanID=""):
3294
3302
  if verbose():
3295
3303
  if mimeType.strip() != "":
3296
3304
  with links_lock:
3297
- linkMimes.add(mimeType)
3305
+ if linkMimes is not None:
3306
+ linkMimes.add(mimeType)
3298
3307
 
3299
3308
  # Add link if it passed filters
3300
3309
  if addLink:
@@ -3314,6 +3323,9 @@ def processURLScanUrl(url, httpCode, mimeType, urlscanID=""):
3314
3323
  )
3315
3324
  if match is not None:
3316
3325
  if args.mode in ("U", "B"):
3326
+ # Ensure linksFoundURLScan is initialized (can be None during concurrent execution)
3327
+ if linksFoundURLScan is None:
3328
+ linksFoundURLScan = set()
3317
3329
  linksFoundAdd(url, linksFoundURLScan)
3318
3330
  # If Response mode is requested then add the DOM ID to try later, for the number of responses wanted
3319
3331
  if urlscanID != "" and args.mode in ("R", "B"):
@@ -4494,7 +4506,7 @@ def getURLScanUrls():
4494
4506
  stopSourceURLScan = True
4495
4507
 
4496
4508
  # Show the MIME types found (in case user wants to exclude more)
4497
- if verbose() and len(linkMimes) > 0 and args.mode != "R":
4509
+ if verbose() and linkMimes is not None and len(linkMimes) > 0 and args.mode != "R":
4498
4510
  linkMimes.discard("warc/revisit")
4499
4511
  write(
4500
4512
  colored("URLScan - [ INFO ] MIME types found: ", "magenta")
@@ -4503,13 +4515,21 @@ def getURLScanUrls():
4503
4515
  )
4504
4516
 
4505
4517
  if args.mode != "R":
4506
- linkCountURLScan = len(linksFoundURLScan)
4507
- write(
4508
- colored("URLScan - [ INFO ] Links found on urlscan.io: ", "cyan")
4509
- + colored(str(linkCountURLScan), "white")
4510
- )
4511
- linksFound.update(linksFoundURLScan)
4512
- linksFoundURLScan.clear()
4518
+ if linksFoundURLScan is not None:
4519
+ linkCountURLScan = len(linksFoundURLScan)
4520
+ write(
4521
+ colored("URLScan - [ INFO ] Links found on urlscan.io: ", "cyan")
4522
+ + colored(str(linkCountURLScan), "white")
4523
+ )
4524
+ if linksFound is not None:
4525
+ linksFound.update(linksFoundURLScan)
4526
+ linksFoundURLScan.clear()
4527
+ else:
4528
+ linkCountURLScan = 0
4529
+ write(
4530
+ colored("URLScan - [ INFO ] Links found on urlscan.io: ", "cyan")
4531
+ + colored("0", "white")
4532
+ )
4513
4533
 
4514
4534
  except Exception as e:
4515
4535
  writerr(colored("ERROR getURLScanUrls 1: " + str(e), "red"))
@@ -4973,7 +4993,7 @@ def getWaybackUrls():
4973
4993
  p.join()
4974
4994
 
4975
4995
  # Show the MIME types found (in case user wants to exclude more)
4976
- if verbose() and len(linkMimes) > 0:
4996
+ if verbose() and linkMimes is not None and len(linkMimes) > 0:
4977
4997
  linkMimes.discard("warc/revisit")
4978
4998
  write(
4979
4999
  colored("Wayback - [ INFO ] MIME types found: ", "magenta")
@@ -4983,15 +5003,27 @@ def getWaybackUrls():
4983
5003
  linkMimes = None
4984
5004
 
4985
5005
  if not args.xwm:
4986
- linkCountWayback = len(linksFoundWayback)
4987
- write(
4988
- colored(
4989
- "Wayback - [ INFO ] Links found on Wayback Machine (archive.org): ", "cyan"
5006
+ if linksFoundWayback is not None:
5007
+ linkCountWayback = len(linksFoundWayback)
5008
+ write(
5009
+ colored(
5010
+ "Wayback - [ INFO ] Links found on Wayback Machine (archive.org): ",
5011
+ "cyan",
5012
+ )
5013
+ + colored(str(linkCountWayback), "white")
5014
+ )
5015
+ if linksFound is not None:
5016
+ linksFound.update(linksFoundWayback)
5017
+ linksFoundWayback.clear()
5018
+ else:
5019
+ linkCountWayback = 0
5020
+ write(
5021
+ colored(
5022
+ "Wayback - [ INFO ] Links found on Wayback Machine (archive.org): ",
5023
+ "cyan",
5024
+ )
5025
+ + colored("0", "white")
4990
5026
  )
4991
- + colored(str(linkCountWayback), "white")
4992
- )
4993
- linksFound.update(linksFoundWayback)
4994
- linksFoundWayback.clear()
4995
5027
 
4996
5028
  except Exception as e:
4997
5029
  writerr(colored("ERROR getWaybackUrls 1: " + str(e), "red"))
@@ -5449,7 +5481,7 @@ def getCommonCrawlUrls():
5449
5481
  p.join()
5450
5482
 
5451
5483
  # Show the MIME types found (in case user wants to exclude more)
5452
- if verbose() and len(linkMimes) > 0:
5484
+ if verbose() and linkMimes is not None and len(linkMimes) > 0:
5453
5485
  linkMimes.discard("warc/revisit")
5454
5486
  write(
5455
5487
  colored("CommonCrawl - [ INFO ] MIME types found: ", "magenta")
@@ -5457,13 +5489,21 @@ def getCommonCrawlUrls():
5457
5489
  + "\n"
5458
5490
  )
5459
5491
 
5460
- linkCountCommonCrawl = len(linksFoundCommonCrawl)
5461
- write(
5462
- colored("CommonCrawl - [ INFO ] Links found on commoncrawl.org: ", "cyan")
5463
- + colored(str(linkCountCommonCrawl), "white")
5464
- )
5465
- linksFound.update(linksFoundCommonCrawl)
5466
- linksFoundCommonCrawl.clear()
5492
+ if linksFoundCommonCrawl is not None:
5493
+ linkCountCommonCrawl = len(linksFoundCommonCrawl)
5494
+ write(
5495
+ colored("CommonCrawl - [ INFO ] Links found on commoncrawl.org: ", "cyan")
5496
+ + colored(str(linkCountCommonCrawl), "white")
5497
+ )
5498
+ if linksFound is not None:
5499
+ linksFound.update(linksFoundCommonCrawl)
5500
+ linksFoundCommonCrawl.clear()
5501
+ else:
5502
+ linkCountCommonCrawl = 0
5503
+ write(
5504
+ colored("CommonCrawl - [ INFO ] Links found on commoncrawl.org: ", "cyan")
5505
+ + colored("0", "white")
5506
+ )
5467
5507
 
5468
5508
  except Exception as e:
5469
5509
  writerr(colored("ERROR getCommonCrawlUrls 1: " + str(e), "red"))
@@ -5678,13 +5718,21 @@ def getVirusTotalUrls():
5678
5718
  processVirusTotalUrl(url)
5679
5719
 
5680
5720
  # Show links found
5681
- linkCountVirusTotal = len(linksFoundVirusTotal)
5682
- write(
5683
- colored("VirusTotal - [ INFO ] Links found on virustotal.com: ", "cyan")
5684
- + colored(str(linkCountVirusTotal), "white")
5685
- )
5686
- linksFound.update(linksFoundVirusTotal)
5687
- linksFoundVirusTotal.clear()
5721
+ if linksFoundVirusTotal is not None:
5722
+ linkCountVirusTotal = len(linksFoundVirusTotal)
5723
+ write(
5724
+ colored("VirusTotal - [ INFO ] Links found on virustotal.com: ", "cyan")
5725
+ + colored(str(linkCountVirusTotal), "white")
5726
+ )
5727
+ if linksFound is not None:
5728
+ linksFound.update(linksFoundVirusTotal)
5729
+ linksFoundVirusTotal.clear()
5730
+ else:
5731
+ linkCountVirusTotal = 0
5732
+ write(
5733
+ colored("VirusTotal - [ INFO ] Links found on virustotal.com: ", "cyan")
5734
+ + colored("0", "white")
5735
+ )
5688
5736
 
5689
5737
  except Exception as e:
5690
5738
  writerr(colored(f"ERROR getVirusTotalUrls: {e}", "red"))
@@ -6001,13 +6049,21 @@ def getIntelxUrls():
6001
6049
  if not intelxAPIIssue:
6002
6050
  processIntelxType(3, credits)
6003
6051
 
6004
- linkCountIntelx = len(linksFoundIntelx)
6005
- write(
6006
- colored("IntelX - [ INFO ] Links found on intelx.io: ", "cyan")
6007
- + colored(str(linkCountIntelx), "white")
6008
- )
6009
- linksFound.update(linksFoundIntelx)
6010
- linksFoundIntelx.clear()
6052
+ if linksFoundIntelx is not None:
6053
+ linkCountIntelx = len(linksFoundIntelx)
6054
+ write(
6055
+ colored("IntelX - [ INFO ] Links found on intelx.io: ", "cyan")
6056
+ + colored(str(linkCountIntelx), "white")
6057
+ )
6058
+ if linksFound is not None:
6059
+ linksFound.update(linksFoundIntelx)
6060
+ linksFoundIntelx.clear()
6061
+ else:
6062
+ linkCountIntelx = 0
6063
+ write(
6064
+ colored("IntelX - [ INFO ] Links found on intelx.io: ", "cyan")
6065
+ + colored("0", "white")
6066
+ )
6011
6067
 
6012
6068
  except Exception as e:
6013
6069
  writerr(colored("ERROR getIntelxUrls 1: " + str(e), "red"))
@@ -6292,15 +6348,23 @@ def getGhostArchiveUrls():
6292
6348
  if not args.check_only:
6293
6349
  # Count links based on mode - in R mode, count response links; in U/B mode, count URL links
6294
6350
  if args.mode == "R":
6295
- linkCountGhostArchive = len(ghostArchiveRequestLinks)
6351
+ if ghostArchiveRequestLinks is not None:
6352
+ linkCountGhostArchive = len(ghostArchiveRequestLinks)
6353
+ else:
6354
+ linkCountGhostArchive = 0
6296
6355
  else:
6297
- linkCountGhostArchive = len(linksFoundGhostArchive)
6356
+ if linksFoundGhostArchive is not None:
6357
+ linkCountGhostArchive = len(linksFoundGhostArchive)
6358
+ else:
6359
+ linkCountGhostArchive = 0
6298
6360
  write(
6299
6361
  colored("GhostArchive - [ INFO ] Links found on ghostarchive.org: ", "cyan")
6300
6362
  + colored(str(linkCountGhostArchive), "white")
6301
6363
  )
6302
- linksFound.update(linksFoundGhostArchive)
6303
- linksFoundGhostArchive.clear()
6364
+ if linksFoundGhostArchive is not None:
6365
+ if linksFound is not None:
6366
+ linksFound.update(linksFoundGhostArchive)
6367
+ linksFoundGhostArchive.clear()
6304
6368
 
6305
6369
  except Exception as e:
6306
6370
  writerr(colored("ERROR getGhostArchiveUrls 1: " + str(e), "red"))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: waymore
3
- Version: 8.2
3
+ Version: 8.4
4
4
  Summary: Find way more from the Wayback Machine, Common Crawl, Alien Vault OTX, URLScan, VirusTotal & Intelligence X!
5
5
  Home-page: https://github.com/xnl-h4ck3r/waymore
6
6
  Author: xnl-h4ck3r
@@ -21,7 +21,7 @@ Dynamic: license-file
21
21
 
22
22
  <center><img src="https://github.com/xnl-h4ck3r/waymore/blob/main/waymore/images/title.png"></center>
23
23
 
24
- ## About - v8.2
24
+ ## About - v8.4
25
25
 
26
26
  The idea behind **waymore** is to find even more links from the Wayback Machine (plus other sources) than other existing tools.
27
27
 
waymore-8.2/setup.py DELETED
@@ -1,42 +0,0 @@
1
- #!/usr/bin/env python
2
- import os
3
- import re
4
-
5
- from setuptools import find_packages, setup
6
-
7
- # Read version from __init__.py without importing
8
-
9
-
10
- def get_version():
11
- init_path = os.path.join(os.path.dirname(__file__), "waymore", "__init__.py")
12
- with open(init_path, encoding="utf-8") as f:
13
- content = f.read()
14
- match = re.search(r'__version__\s*=\s*["\']([^"\']+)["\']', content)
15
- if match:
16
- return match.group(1)
17
- raise RuntimeError("Unable to find version string.")
18
-
19
-
20
- setup(
21
- name="waymore",
22
- packages=find_packages(),
23
- version=get_version(),
24
- description="Find way more from the Wayback Machine, Common Crawl, Alien Vault OTX, URLScan & VirusTotal!",
25
- long_description=open("README.md", encoding="utf-8").read(),
26
- long_description_content_type="text/markdown",
27
- author="@xnl-h4ck3r",
28
- url="https://github.com/xnl-h4ck3r/waymore",
29
- install_requires=[
30
- "requests",
31
- "pyyaml",
32
- "termcolor",
33
- "psutil",
34
- "urlparse3",
35
- "tldextract",
36
- ],
37
- entry_points={
38
- "console_scripts": [
39
- "waymore = waymore.waymore:main",
40
- ],
41
- },
42
- )
@@ -1 +0,0 @@
1
- __version__ = "8.2"
File without changes
File without changes
File without changes
File without changes
File without changes