|
|
|
|
@ -5,7 +5,7 @@ from sys import argv, exit |
|
|
|
|
from time import sleep |
|
|
|
|
|
|
|
|
|
import arangodb |
|
|
|
|
from arangodb import db, write_report, backup |
|
|
|
|
from arangodb import db, write_report, backup, report_blocked |
|
|
|
|
from classes import Profile, User |
|
|
|
|
from helpers import sleep_, write_error |
|
|
|
|
from scrapers import profile_picture_reactions |
|
|
|
|
@ -22,10 +22,22 @@ if __name__ == "__main__": |
|
|
|
|
argv = argv[1:] |
|
|
|
|
try: |
|
|
|
|
opts, args = getopt(argv, "bm:u:o:", ['backup=',"mode=", "users=", "other="]) |
|
|
|
|
for o, a in opts: |
|
|
|
|
# mode_nr används för hur ofta profile ska roteras |
|
|
|
|
if o in ["-m", "--mode"]: |
|
|
|
|
mode = a |
|
|
|
|
if mode == 'single': |
|
|
|
|
mode_nr = 1.7 |
|
|
|
|
elif mode == 'few': |
|
|
|
|
mode_nr = 1.4 |
|
|
|
|
else: |
|
|
|
|
mode = 'all' |
|
|
|
|
mode_nr = 1 |
|
|
|
|
|
|
|
|
|
for o, a in opts: |
|
|
|
|
if o in ["-u", "--user"]: |
|
|
|
|
users = [ |
|
|
|
|
User(str(i).strip()) |
|
|
|
|
User(str(i).strip(), mode) |
|
|
|
|
for i in [(str(i).strip()) for i in a.split(",")] |
|
|
|
|
] |
|
|
|
|
if o in ["-o", "--other"]: |
|
|
|
|
@ -35,26 +47,16 @@ if __name__ == "__main__": |
|
|
|
|
backup(db) |
|
|
|
|
sleep(21600) |
|
|
|
|
|
|
|
|
|
# mode_nr används för hur ofta profile ska roteras |
|
|
|
|
if o in ["-m", "--mode"]: |
|
|
|
|
mode = a |
|
|
|
|
if mode == 'single': |
|
|
|
|
mode_nr = 1,7 |
|
|
|
|
elif mode == 'few': |
|
|
|
|
mode_nr = 1,4 |
|
|
|
|
else: |
|
|
|
|
mode_nr = 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if "users" not in globals(): |
|
|
|
|
users = [ |
|
|
|
|
User(str(i).strip()) |
|
|
|
|
User(str(i).strip(), mode) |
|
|
|
|
for i in input("Vem/vilka vill du kolla bilder för? ").split(",") |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
except GetoptError: |
|
|
|
|
users = [ |
|
|
|
|
User(str(i).strip()) |
|
|
|
|
User(str(i).strip(), mode) |
|
|
|
|
for i in input("Vem/vilka vill du kolla bilder för? ").split(",") |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
@ -125,48 +127,13 @@ if __name__ == "__main__": |
|
|
|
|
count_friends = 0 |
|
|
|
|
for friend in friends_unchecked: |
|
|
|
|
count_friends += 1 |
|
|
|
|
user = User(str(friend)) |
|
|
|
|
user = User(str(friend), mode) |
|
|
|
|
sleep_(2) |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
profile_picture_reactions( |
|
|
|
|
profile, user, all_pictures, mode=mode |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
if profile.blocked == True: |
|
|
|
|
# Ta bort profilen ur databasen |
|
|
|
|
arangodb.remove_profile(profile.doc["_key"]) |
|
|
|
|
# Ta bort från listan på fb-profiler som används |
|
|
|
|
profiles.remove(profile) |
|
|
|
|
# Försök lägga till en ny fb-profil (om det finns en skapad och ledig i databasen) |
|
|
|
|
try: |
|
|
|
|
profiles[profile_nr] = Profile(new=True) |
|
|
|
|
print("Laddat ny profil:", profiles[profile_nr].name) |
|
|
|
|
sleep(3) |
|
|
|
|
except e: |
|
|
|
|
print("Det behövs nya profiler...") |
|
|
|
|
for s in range(0, 1600 / len(profiles)): |
|
|
|
|
print(f"Sover {600-s} sekunder till... ", end="\r") |
|
|
|
|
profile_nr += 1 |
|
|
|
|
print(f"Försöker med {profiles[profile_nr].name}.") |
|
|
|
|
|
|
|
|
|
else: |
|
|
|
|
print("Klar med", user.username, "\n") |
|
|
|
|
|
|
|
|
|
# Rotera fb-profiler |
|
|
|
|
if count_friends > 5 * mode_nr: |
|
|
|
|
if random.randrange(0, 2, 1) == 1: |
|
|
|
|
profile_nr += 1 |
|
|
|
|
count_friends = 0 |
|
|
|
|
print("Växlar till", profiles[profile_nr].name) |
|
|
|
|
elif count_friends > 9 * mode_nr: |
|
|
|
|
profile_nr += 1 |
|
|
|
|
count_friends = 0 |
|
|
|
|
print("Växlar till", profiles[profile_nr].name) |
|
|
|
|
|
|
|
|
|
if profile_nr > len(profiles) - 1: |
|
|
|
|
profile_nr = 0 |
|
|
|
|
profile = profiles[profile_nr] |
|
|
|
|
|
|
|
|
|
except Exception as e: # Fel4 |
|
|
|
|
write_error( |
|
|
|
|
4, |
|
|
|
|
@ -177,7 +144,47 @@ if __name__ == "__main__": |
|
|
|
|
) |
|
|
|
|
print("\nFel: ", str(user.username), "\n") |
|
|
|
|
sleep_(15) |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
if profile.blocked == False: |
|
|
|
|
print("Klar med", user.username, "\n") |
|
|
|
|
|
|
|
|
|
# Rotera fb-profiler |
|
|
|
|
if count_friends > 5 * mode_nr: |
|
|
|
|
if random.randrange(0, 2, 1) == 1: |
|
|
|
|
profile_nr += 1 |
|
|
|
|
count_friends = 0 |
|
|
|
|
print("Växlar till", profiles[profile_nr].name) |
|
|
|
|
elif count_friends > 9 * mode_nr: |
|
|
|
|
profile_nr += 1 |
|
|
|
|
count_friends = 0 |
|
|
|
|
print("Växlar till", profiles[profile_nr].name) |
|
|
|
|
|
|
|
|
|
if profile_nr > len(profiles) - 1: |
|
|
|
|
profile_nr = 0 |
|
|
|
|
|
|
|
|
|
elif profile.blocked == True: |
|
|
|
|
# Ta bort profilen ur databasen |
|
|
|
|
report_blocked(profile, users) |
|
|
|
|
arangodb.remove_profile(profile.doc) |
|
|
|
|
# Ta bort från listan på fb-profiler som används |
|
|
|
|
profiles.remove(profile) |
|
|
|
|
# Försök lägga till en ny fb-profil (om det finns en skapad och ledig i databasen) |
|
|
|
|
try: |
|
|
|
|
profiles[profile_nr] = Profile(new=True) |
|
|
|
|
print("Laddat ny profil:", profiles[profile_nr].name) |
|
|
|
|
sleep(3) |
|
|
|
|
except e: |
|
|
|
|
print("Det behövs nya profiler...") |
|
|
|
|
if len(profiles) == 0: |
|
|
|
|
break |
|
|
|
|
for s in range(0, 1600 / len(profiles)): |
|
|
|
|
print(f"Sover {600-s} sekunder till... ", end="\r") |
|
|
|
|
profile_nr += 1 |
|
|
|
|
print(f"Försöker med {profiles[profile_nr].name}.") |
|
|
|
|
|
|
|
|
|
profile = profiles[profile_nr] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
except: |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|