removed some

pull/6/head
Lasse Edfast 5 years ago
parent 2788d8842c
commit 5afe839eb7
  1. 2
      .gitignore
  2. 290
      facebook/accs.py

2
.gitignore vendored

@ -17,5 +17,3 @@ facebook/mrkoll.py
*.pyc
facebook/tortest.py
facebook/phone.py
facebook/accs.py
facebook/gephi.py

@ -0,0 +1,290 @@
""" Import profiles from accsmarket """
from os import chdir
from getpass import getpass
from os.path import abspath, dirname
from random import randint
from time import sleep
import base64
import json
import requests
# Gör fb-scraper till arbetsmapp
chdir(dirname(dirname(abspath(__file__))))
from arangodb import arango_connect
import config
from helpers import now, nowstamp
def mullvad_servers_to_db(db):
""" Läser fil med servarar och exporterar till db. Används bara om servarna skulle uppdateras hos Mullvad. """
with open("data/servers.txt") as f:
for line in f.readlines():
if "@" in line:
line = line.strip()
city = line[: line.find("@")].strip()
if ("WireGuard" in line): # "au", "ca" #För senare när det behövs
line = line.strip()
country_short = line[:2]
server_id = line[: line.find("-")]
# Kolla så att servern inte redan används av profil i databasen
# eller finns i listan som skapas nu.
city_short = city[city.find("(") + 1 : city.find(")")]
server_name = [country_short, city_short, server_id + "-wireguard"]
server = {
'_key': server_id,
'country': country_short,
"city": city,
"id": server_id,
"server": server_id + "-wg.socks5.mullvad.net:1080",
"server_connect": server_name,}
db.insert_document('servers', server)
sleep(0.1)
def servers_to_db(db, server_collection, socks='socks5'):
""" Läser fil med servarar och exporterar till db. """
with open("socks5free.csv") as f:
for line in f.readlines():
server = line.split(';')[1]
db.insert_document(server_collection, {'_key':server, 'proxies': {"https": f"{socks}://{server}",
"http": f"{socks}://{server}"}, 'country': False})
sleep(0.1)
def used_emails(db, collection):
cursor = db.aql.execute(
"""
FOR doc IN @@col
RETURN doc.email
""",
bind_vars={'@col': collection})
return [email for email in cursor]
def get_server(db, country, test=False, servers='servers', profiles='profiles'):
""" Hämtar en server åt profilen """
if country == 'any':
cursor = db.aql.execute(
"""
FOR doc IN @@col
FILTER doc.country not in ['us', 'se']
RETURN {proxies: doc.proxies, country: doc.country, id: doc.id, _key:doc._key, city:doc.city, server:doc.server, server_connect:doc.server_connect}
""", bind_vars={'@col': servers})
else:
cursor = db.aql.execute(
"""
FOR doc IN @@servers
FILTER doc.country == @country
RETURN {proxies: doc.proxies, country: doc.country, id: doc.id, _key:doc._key, city:doc.city, server:doc.server, server_connect:doc.server_connect}
""",
bind_vars={'country': country, '@servers': servers}
)
servers = []
used = used_servers(test, profiles)
for server in cursor:
if server['_key'] not in used:
servers.append(server)
if servers != []:
server = servers[randint(0, len(servers)-1)]
return server
def to_accs(db, vendors, accs, profiles):
"""
Ta profiles från köpt fil och lägg i accs
"""
file = input('Lägg filen här ').strip("'").strip()
vendor = str(file[file.rfind('-')+1:file.rfind('.')])
sep = vendors[vendor]['sep']
info = vendors[vendor]['info'].split(':')
used_accs = used_emails(db, accs)
used_profiles = used_emails(db, profiles)
with open(file) as f:
for line in f:
line = line.replace("https:", "https;")
l = line.split(sep)
# c = 0
# for i in l:
# c += 1
# print(c)
# print(i)
# print()
doc = {}
doc["vendor"] = vendor
doc["created"] = now()
if 'email' in info:
doc['email'] = l[info.index('email')]
elif 'login' in info:
doc['email'] = l[info.index('login')]
if doc['email'] in used_accs or doc['email'] in used_profiles:
continue
doc['name'] = doc['email']
if 'pwd' in info:
doc["pwd"] = l[info.index('pwd')]
else:
doc["pwd"] = ''
if 'url' in info:
doc['id'] = l[info.index('url')].replace("https;", "https:")
if "useragent" in info:
doc["useragent"] = l[info.index('useragent')].strip()
else:
doc["useragent"] = config.user_agent
if 'cookie' in info:
cookies = l[info.index('cookie')]
if 'c_user=' in cookies:
cookie = {}
for c in cookies.split(';'):
cookie[c[:c.find('=')].strip()] = c[c.find('=') + 1:].strip()
else:
cookies_base64 = cookies.strip()#.strip('=')
# print()
# print(cookies_base64)
# print()
cookies64_bytes = cookies_base64.encode("ascii")
cookies_bytes = base64.b64decode(cookies64_bytes)
#exit()
cookies_str = (
cookies_bytes.decode("ascii")
.replace("'", '"')
.replace("False", "false")
.replace("True", "true")
)
cookies = json.loads(cookies_str)
cookie = {}
if vendor == '159':
for c in cookies['cookies']:
cookie[c['name']] = c['value']
else:
for c in cookies:
name = c["name"]
del c["name"]
cookie[name] = c["value"]
doc['cookie'] = cookie
else:
cookie = {}
if 'birthday' in info:
doc["birthday"] = l[info.index('birthday')]
if 'token' in info:
doc['token'] = l[info.index('token')].strip()
db.insert_document(accs, doc)
sleep(0.1)
def to_profiles(db, test, accs='accs', profiles='profiles', country='us', servers='servers'):
""" Tar en prifil från accs och en server från servers och lägger in i profiles """
count = 0
for profile in [i for i in db.collection(accs).all()]:
count +=1
if profile['email'] in used_emails(db, profiles):
continue
id_acc = profile['_id']
del profile['_id']
del profile['_rev']
server = get_server(db, country, test, servers, profiles)
if server == None:
print(f'Inlagda profiler: {count}\nInga fler lediga servrar.')
break
profile["server"] = server["server"]
profile["server_connect"] = server["server_connect"]
profile["_key"] = server["_key"]#.replace(':', '')
profile["in_use"] = nowstamp()
profile['proxies'] = server['proxies']
if test:
profile["in_use"] = nowstamp() - 1200
db.insert_document(profiles, profile)
sleep(0.1)
db.delete_document(id_acc)
print('Inlagda profiler:', count, end='\r')
def used_servers(test=False, profiles='profiles'):
cursor = db.aql.execute(
"""
FOR doc IN @@col
RETURN doc._key
""",
bind_vars={'@col': profiles}
)
servers = [doc for doc in cursor]
return servers
def webshare_proxies():
"""Get list of webshare-proxies."""
proxielist = requests.get('https://proxy.webshare.io/proxy/list/download/sompzungcbajbeqmxoopddsthzarqlewjgraicog/-/http/port/direct/')
proxies = {}
count = 0
for line in proxielist.text.split('\n'):
count += 1
proxie = line.replace('\r', '').split(':')
if proxie != ['']:
server = proxie[0]
port = proxie[1]
proxies[count] = {'server': server, 'port': port}
for _, proxie in proxies.items():
proxies={'https':'socks5://xigpxrzr:ezgjcwr8lonj@{server}:{port}'.format(server=proxie['server'], port=proxie['port']),
'http':'socks5://xigpxrzr:ezgjcwr8lonj@{server}:{port}'.format(server=proxie['server'], port=proxie['port'])
}
try:
db.insert_document('servers_webshare', {'_key':proxie['server'], 'proxies': proxies, 'country': 'us'})
except:
pass
if __name__ == "__main__":
vendors = {
'1152': {'info': 'login:password:cookie:token', 'sep': '|'},
'1091': {'info': 'login:password:birthday:url:cookie', 'sep': ':'},
'1113': {'info': 'login:password:mail:password:birthday:country:useragent:token:cookie', 'sep': '|'},
'926': {'info': 'login:password:email:email password:birthday:token:cookie', 'sep': '|'} ,
#'1113': {'info': 'login:mail:password:emailpassword:birthday:useragent:token:cookie', 'sep': '|'},
'159': {'info': 'login:password:birthday:id:cookie', 'sep':':'}
}
# Det här ska köras lokalt så löseordet finns i fil
try:
with open("password_arango.txt") as f:
pwd = f.readline()
except:
pwd = getpass('Lösenord för Accs: ').strip()
db = arango_connect(pwd, username='Accs')
§
###############################
### Variabler att ställa in ###
country='us'
test = False
profiles = 'profiles_webshare' # ex profiles_free
servers = 'servers_webshare'
###############################
accs = 'accs'
if test:
profiles='profiles_test'
accs='accs_test'
#to_accs(db, vendors, accs=accs, profiles=profiles) ## Den här för att lägga in nyköpta profiler
#webshare_proxies() ## Den här för att uppdatera servers hos webshare
# Kombinera köpt profil med server och lägg i profiles
to_profiles(db, test, accs=accs, profiles=profiles, country=country, servers=servers)
Loading…
Cancel
Save