Skip to content
This repository was archived by the owner on Sep 29, 2021. It is now read-only.

Commit aa9594f

Browse files
committed
Userbot: Revert speedtest from bothub
Signed-off-by: MoveAngel <[email protected]>
1 parent 79a6f7e commit aa9594f

File tree

1 file changed

+34
-72
lines changed

1 file changed

+34
-72
lines changed

userbot/modules/www.py

Lines changed: 34 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -7,88 +7,50 @@
77
Information Superhighway (yes, Internet). """
88

99
from datetime import datetime
10-
import io
11-
import speedtest
10+
11+
from speedtest import Speedtest
1212
from telethon import functions
13-
from userbot import CMD_HELP, bot
13+
from userbot import CMD_HELP
1414
from userbot.events import register
1515

1616

17-
@register(outgoing=True, pattern="^.speedtest(?: |$)(.*)")
18-
async def _(event):
19-
if event.fwd_from:
20-
return
21-
input_str = event.pattern_match.group(1)
22-
as_text = False
23-
as_document = True
24-
if input_str == "image":
25-
as_document = False
26-
elif input_str == "file":
27-
as_document = True
28-
elif input_str == "text":
29-
as_text = True
30-
await event.edit("Calculating my internet speed. Please wait!")
31-
start = datetime.now()
32-
s = speedtest.Speedtest()
33-
s.get_best_server()
34-
s.download()
35-
s.upload()
36-
end = datetime.now()
37-
ms = (end - start).microseconds / 1000
38-
response = s.results.dict()
39-
download_speed = response.get("download")
40-
upload_speed = response.get("upload")
41-
ping_time = response.get("ping")
42-
client_infos = response.get("client")
43-
i_s_p = client_infos.get("isp")
44-
i_s_p_rating = client_infos.get("isprating")
45-
reply_msg_id = event.message.id
46-
if event.reply_to_msg_id:
47-
reply_msg_id = event.reply_to_msg_id
48-
try:
49-
response = s.results.share()
50-
speedtest_image = response
51-
if as_text:
52-
await event.edit("""**SpeedTest** completed in {} seconds
53-
Download: {}
54-
Upload: {}
55-
Ping: {}
56-
Internet Service Provider: {}
57-
ISP Rating: {}""".format(ms, convert_from_bytes(download_speed), convert_from_bytes(upload_speed), ping_time, i_s_p, i_s_p_rating))
58-
else:
59-
await bot.send_file(
60-
event.chat_id,
61-
speedtest_image,
62-
caption="**SpeedTest** completed in {} seconds".format(ms),
63-
force_document=as_document,
64-
reply_to=reply_msg_id,
65-
allow_cache=False
66-
)
67-
await event.delete()
68-
except Exception as exc:
69-
await event.edit("""**SpeedTest** completed in {} seconds
70-
Download: {}
71-
Upload: {}
72-
Ping: {}
17+
@register(outgoing=True, pattern="^.speed$")
18+
async def speedtst(spd):
19+
""" For .speed command, use SpeedTest to check server speeds. """
20+
await spd.edit("`Running speed test . . .`")
21+
test = Speedtest()
22+
23+
test.get_best_server()
24+
test.download()
25+
test.upload()
26+
test.results.share()
27+
result = test.results.dict()
7328

74-
__With the Following ERRORs__
75-
{}""".format(ms, convert_from_bytes(download_speed), convert_from_bytes(upload_speed), ping_time, str(exc)))
29+
await spd.edit("`"
30+
"Started at "
31+
f"{result['timestamp']} \n\n"
32+
"Download "
33+
f"{speed_convert(result['download'])} \n"
34+
"Upload "
35+
f"{speed_convert(result['upload'])} \n"
36+
"Ping "
37+
f"{result['ping']} \n"
38+
"ISP "
39+
f"{result['client']['isp']}"
40+
"`")
7641

7742

78-
def convert_from_bytes(size):
43+
def speed_convert(size):
44+
"""
45+
Hi human, you can't read bytes?
46+
"""
7947
power = 2**10
80-
n = 0
81-
units = {
82-
0: "",
83-
1: "kilobytes",
84-
2: "megabytes",
85-
3: "gigabytes",
86-
4: "terabytes"
87-
}
48+
zero = 0
49+
units = {0: '', 1: 'Kb/s', 2: 'Mb/s', 3: 'Gb/s', 4: 'Tb/s'}
8850
while size > power:
8951
size /= power
90-
n += 1
91-
return f"{round(size, 2)} {units[n]}"
52+
zero += 1
53+
return f"{round(size, 2)} {units[zero]}"
9254

9355

9456
@register(outgoing=True, pattern="^.dc$")

0 commit comments

Comments
 (0)