DBDBDBDBD
DBDBDBDBD
#--> Tanggal
skrng = datetime.datetime.now()
tahun, bulan, hari = skrng.year, skrng.month, skrng.day
bulan_cek = ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli",
"Agustus", "September", "Oktober", "November", "Desember"]
tanggal = ("%s-%s-%s"%(hari,bulan_cek[bulan-1],tahun))
#--> Animasi
def animasi():
print('\rSedang Dump %s ID'%(str(len(dump))),end=''); sys.stdout.flush()
#--> Convert
def user_to_id(username):
try:
req = bs(requests.Session().get('https://mbasic.facebook.com/%s'%
(username), cookies={'cookie':open('login/cookie.json','r').read()}).content,
'html.parser')
kut = req.find('a',string='Lainnya')
id = str(kut['href']).split('=')[1].split('&')[0]
# id = re.search('owner_id=(.*?)"',str(kut)).group(1)
return(id)
except Exception as e:return(username)
def group_to_id(username):
try:
req = bs(requests.Session().get('https://mbasic.facebook.com/groups/%s'%
(username), cookies={'cookie':open('login/cookie.json','r').read()}).content,
'html.parser')
kut = req.find('a',string='Lihat Postingan Lainnya')
id = str(kut['href']).split('?')[0].split('/')[2]
return(id)
except Exception as e:return(username)
#--> Logo
def logo():
print('.___________ ')
print('| \______ \ __ __ _____ ______ ___________ ')
print('| || | \| | \/ \\\____ \_/ __ \_ __ \\')
print('| || ` \ | / Y Y \ |_> > ___/| | \/')
print('|___/_______ /____/|__|_| / __/ \___ >__| ')
print(' \/ Facebook \/|__| \/ \n')
#--> Login
class login:
def __init__(self):
self.xyz = requests.Session()
self.cek_cookies()
main_menu()
def cek_cookies(self):
try:
self.cookie = {'cookie':open('login/cookie.json','r').read()}
self.token_eaag = open('login/token_eaag.json','r').read()
self.token_eaab = open('login/token_eaab.json','r').read()
self.token_eaaj = open('login/token_eaaj.json','r').read()
language(self.cookie)
req1 = self.xyz.get('https://graph.facebook.com/me?
fields=name,id&access_token=%s'%(self.token_eaag),cookies=self.cookie).json()
['name']
req2 = self.xyz.get('https://graph.facebook.com/me/friends?
fields=summary&limit=0&access_token=%s'%
(self.token_eaab),cookies=self.cookie).json()['summary']['total_count']
req3 = self.xyz.get('https://graph.facebook.com/me?
fields=friends.limit(0).fields(id,name,birthday)&access_token=%s'%
(self.token_eaaj),cookies=self.cookie).json()['friends']
clear()
logo()
except Exception as e:
self.insert_cookie()
def insert_cookie(self):
print('\nCookie Invalid!')
time.sleep(2)
clear()
logo()
print('Apabila Akun A2F On, Pergi Ke')
print('https://business.facebook.com/business_locations')
print('Untuk Memasukkan Kode Autentikasi')
ciko = input('Masukkan Cookie : ')
self.token_eaag = self.generate_token_eaag(ciko)
self.token_eaab = self.generate_token_eaab(ciko)
self.token_eaaj = self.generate_token_eaaj(ciko)
try:os.mkdir("login")
except:pass
open('login/cookie.json','w').write(ciko)
open('login/token_eaag.json','w').write(self.token_eaag)
open('login/token_eaab.json','w').write(self.token_eaab)
open('login/token_eaaj.json','w').write(self.token_eaaj)
self.cek_cookies()
def generate_token_eaag(self,cok):
url = 'https://business.facebook.com/business_locations'
req = self.xyz.get(url,cookies={'cookie':cok})
tok = re.search('(\["EAAG\w+)', req.text).group(1).replace('["','')
return(str(tok))
def generate_token_eaab(self,cok):
url = 'https://www.facebook.com/adsmanager/manage/campaigns'
req = self.xyz.get(url,cookies={'cookie':cok})
set = re.search('act=(.*?)&nav_source',str(req.content)).group(1)
nek = '%s?act=%s&nav_source=no_referrer'%(url,set)
roq = self.xyz.get(nek,cookies={'cookie':cok})
tok = re.search('accessToken="(.*?)"',str(roq.content)).group(1)
return(str(tok))
def generate_token_eaaj(self,cok):
self.cookie = {'cookie':cok}
apk = '661587963994814|ffe07cc864fd1dc8fe386229dcb7a05e'
data = {'access_token': apk, 'scope': ''}
req =
self.xyz.post('https://graph.facebook.com/v16.0/device/login/',data=data).json()
cd = req['code']
ucd = req['user_code']
url = 'https://graph.facebook.com/v16.0/device/login_status?
method=post&code=%s&access_token=%s'%(cd,apk)
req =
bs(self.xyz.get('https://mbasic.facebook.com/device',cookies=self.cookie).content,'
html.parser')
raq = req.find('form',{'method':'post'})
dat = {'jazoest' : re.search('name="jazoest" type="hidden"
value="(.*?)"',str(raq)).group(1), 'fb_dtsg' : re.search('name="fb_dtsg"
type="hidden" value="(.*?)"',str(req)).group(1), 'qr' : '0', 'user_code' : ucd}
rel = 'https://mbasic.facebook.com' + raq['action']
pos =
bs(self.xyz.post(rel,data=dat,cookies=self.cookie).content,'html.parser')
dat = {}
raq = pos.find('form',{'method':'post'})
for x in raq('input',{'value':True}):
try:
if x['name'] == '__CANCEL__' : pass
else: dat.update({x['name']:x['value']})
except Exception as e: pass
rel = 'https://mbasic.facebook.com' + raq['action']
pos =
bs(self.xyz.post(rel,data=dat,cookies=self.cookie).content,'html.parser')
req = self.xyz.get(url,cookies=self.cookie).json()
tok = req['access_token']
return(str(tok))
self.scrape_mb('https://mbasic.facebook.com/browse/group/members/?id=%s&start=0'%
(io))
except KeyboardInterrupt: pass
if len(self.dump) == 0: print('\rDump ID Gagal')
else: print('\rBerhasil Mendapat %s ID'%(str(len(self.dump))))
#--> Dump Timeline Group
def scrape_tl(self,url):
try:
req = bs(self.xyz.get(url,cookies=self.cookie).content,'html.parser')
for z in req.find_all('h3'):
for po in z.find_all('a',href=True):
try:
if 'mbasic.facebook.com' in po['href']:pass
elif 'story.php' in po['href']:pass
elif 'Halaman' in po.text:pass
elif 'profile.php' in po['href']:
id = re.findall('profile\.php\?
id=(.*?)&',str(po['href']))[0]
nm = po.text
else:
id = user_to_id(re.findall('\/(.*?)\/\?
refid',str(po['href']))[0])
nm = po.text
format = '%s%s%s'%(id,self.pisah,nm)
if format in self.dump:pass
else:self.dump.append(format)
animasi()
except Exception as e: continue
nek = 'https://mbasic.facebook.com' + req.find('a',string='Lihat
Postingan Lainnya')['href']
self.scrape_tl(nek)
except Exception as e: pass
#--> Warning
def belum_bisa():
print('Sorry Bos, Fiturnya Belum Tersedia\nMasih Pusing Mikirin Logikanya\
nDoakan Semoga Cepat Selesai Yaa!\nSemoga SC Ini Bisa Membantu Orang Banyak...\
nTerima Kasih!\n\n- Dapunta Khurayra X')
finish()
exit()
#--> Trigger
if __name__ == '__main__':
clear()
start()
login()
finish()