Last active
September 26, 2023 07:49
-
-
Save zevtyardt/db10562159693b601a6ee1d72b0b8744 to your computer and use it in GitHub Desktop.
github profile views
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
import re | |
import time | |
import user_agent | |
import math | |
import threading | |
from rich.live import Live | |
from rich.table import Table | |
# TAHAN ICON TOTAL VIEWS, SALIN LINK, PASTE DIBAWAH | |
url = '' | |
total_bandwidth = 0 | |
matches = "0" | |
thread = "~" | |
lock = threading.Lock() | |
def convert_size(size_bytes): | |
if size_bytes == 0: | |
return "0 B" | |
size_name = ("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB") | |
i = int(math.floor(math.log(size_bytes, 1024))) | |
p = math.pow(1024, i) | |
size = round(size_bytes / p, 5) | |
return f"{size} {size_name[i]}" | |
def format_time(seconds): | |
intervals = ( | |
('tahun', 31536000), # 60 * 60 * 24 * 365 | |
('bulan', 2592000), # 60 * 60 * 24 * 30 | |
('minggu', 604800), # 60 * 60 * 24 * 7 | |
('hari', 86400), # 60 * 60 * 24 | |
('jam', 3600), # 60 * 60 | |
('menit', 60), | |
('detik', 1), | |
) | |
result = [] | |
for name, count in intervals: | |
value = seconds // count | |
if value: | |
seconds -= value * count | |
if value == 1: | |
name = name.rstrip('s') | |
result.append("{} {}".format(int(value), name)) | |
if len(result) == 0: | |
return "0 detik" | |
return ', '.join(result) | |
def worker(i): | |
global total_bandwidth, matches, thread | |
while True: | |
ua = user_agent.generate_user_agent() | |
headers = { | |
'Host': 'camo.githubusercontent.com', | |
'User-Agent': ua, | |
'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8', | |
} | |
response = requests.get(url, headers=headers) | |
response_text = response.text | |
response_size = len(response_text) | |
with lock: | |
total_bandwidth += response_size + \ | |
int(response.headers.get('content-length', 0)) | |
pattern = r'(?<=<title>)([^<]+)(?=<\/title>)' | |
matches = re.findall(pattern, response_text)[0].split(": ")[-1] | |
thread = str(i) | |
for i in range(10): | |
th = threading.Thread(target=worker, args=(i,), daemon=True) | |
th.start() | |
print("\x1bc" + "\n" * 10) | |
with Live(auto_refresh=500) as live: | |
start_time = time.time() | |
live.console.print("\n[green] GITHUB KOMAREV AUTO VIEWS[reset]\n") | |
try: | |
while True: | |
table = Table.grid(pad_edge=2) | |
table.add_row(" ", "UPTIME", format_time(time.time() - start_time)) | |
table.add_row("", "THREAD", thread) | |
table.add_row("", "BANDWIDTH", convert_size(total_bandwidth)) | |
table.add_row("", "TOTAL VIEWS ", matches) | |
live.update(table) | |
except (Exception, KeyboardInterrupt): | |
pass |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment