mirror of
https://github.com/danielmiessler/SecLists.git
synced 2025-04-28 01:36:29 -04:00
57 lines
1.8 KiB
Python
Executable file
57 lines
1.8 KiB
Python
Executable file
#!/usr/bin/python3
|
|
|
|
# If you change the commit message you need to change .github/workflows/readme-updater.yml
|
|
|
|
import requests,re
|
|
from decimal import Decimal
|
|
|
|
print("[+] Readme stats updater")
|
|
|
|
# Constants
|
|
CONNECTION_SPEED_MBPS = 50 # Change this to set a different cloning speed (in Mbps)
|
|
REPOSITORY_API="https://api.github.com/repos/%s"
|
|
REPOSITORY="danielmiessler/SecLists"
|
|
BADGE_REGEX=r"!\[Approx cloning time\]\(https://img\.shields\.io/badge/.*?\)"
|
|
BADGE_TEMPLATE = f""
|
|
ERROR_STRING="::error file=%s,line=%s,col=%s,endColumn=%s::%s"
|
|
|
|
def print_err(file,msg,line=1,col=1,endcol=1):
|
|
print(ERROR_STRING%(file,line,col,endcol,msg))
|
|
|
|
size=requests.get(REPOSITORY_API%(REPOSITORY)).json()['size'] # Its in kb
|
|
|
|
# Calculate size in MB
|
|
size_mb = Decimal(size) / 1024
|
|
|
|
# Calculate cloning time for the defined connection speed (convert size to bits)
|
|
cloning_time_seconds = int((size_mb * 8) / CONNECTION_SPEED_MBPS)
|
|
|
|
# Cloning time seconds to minutes and seconds
|
|
minutes = cloning_time_seconds // 60
|
|
seconds = cloning_time_seconds % 60
|
|
|
|
if minutes > 0:
|
|
cloning_time = f"{minutes}m%20{seconds}s"
|
|
else:
|
|
cloning_time = f"{seconds}s"
|
|
|
|
# New badge string
|
|
approx_cloning_time_badge = BADGE_TEMPLATE % (cloning_time, CONNECTION_SPEED_MBPS)
|
|
|
|
readme_contents=open("README.md").read()
|
|
|
|
if not re.search(BADGE_REGEX,readme_contents,flags=re.DOTALL):
|
|
print_err("README.md", "[!] Error: No approx cloning time badge found!")
|
|
exit(2)
|
|
|
|
# Update the badge in the README.md content
|
|
new_readme_content = re.sub(
|
|
BADGE_REGEX,
|
|
approx_cloning_time_badge,
|
|
readme_contents,
|
|
count=1
|
|
)
|
|
|
|
open("README.md","w").write(new_readme_content)
|
|
|
|
print(f"[+] Updated README.md with new cloning time badge at {CONNECTION_SPEED_MBPS}Mb/s!")
|