Esempio n. 1
0
 def proceed(self, worker):
     info = worker.account_info()
     warning_ = info["warning"]
     level = info["level"]
     eggs = egg_count(worker)
     lures = lure_count(worker)
     db_set_logged_in_stats(info.username, lures, eggs, level)
     if warning_:
         db_set_warned(info, datetime.datetime.now())
     return True
Esempio n. 2
0
def proceed(worker):
    info = worker.account_info()
    warning_ = info["warning"]
    level = info["level"]
    eggs = egg_count(worker)
    lures = lure_count(worker)
    db_set_logged_in_stats(info.username, lures, eggs, level)
    log.info("{} level {}, {} lures {} eggs".format(worker.name(), level,
                                                    lures, eggs))
    if warning_:
        db_set_warned(info, datetime.datetime.now())
    return False
Esempio n. 3
0
def check_worker(worker, location_to_use, accounts_file, use_account_db,
                 login_only, proceed):
    banned = False

    try:
        worker.login(location_to_use, proceed)
        db_set_warned(worker.account_info(), None)
    except AccountBannedException:
        db_set_temp_banned(worker.name(), datetime.datetime.now())
        return False
    except TooManyLoginAttempts:
        db_set_perm_banned(worker.account_info(), datetime.datetime.now())
        return False
    except WarnedAccount:
        if not worker.account_info()["warning"]:
            db_set_warned(worker.account_info(), datetime.datetime.now())
        return False
    except Exception:
        log.exception("Unknown exception with account {}".format(
            worker.name()))
        return False

    if login_only:
        return

    response = None
    try:
        response = try_a_couple_of_times(worker, location_to_use)
    except AccountBannedException:
        banned = True

    if banned or not response:
        log.info("{} is banned".format(worker.name()))
        if use_account_db:
            if not worker.account_info().banned:
                db_set_temp_banned(worker.name(), datetime.datetime.now())
        else:
            write_to_file(accounts_file + "_banned.csv",
                          worker.account_info().username,
                          worker.account_info().password)
    else:
        count = match_pokemon_in_result(response,
                                        cannot_be_seen_when_shadowbanned)
        if count > 0:
            log.info("{} is clean".format(worker.name()))
            if use_account_db:
                db_set_temp_banned(worker.name(), None)
                db_set_blinded(worker.name(), None)
            else:
                write_to_file(accounts_file + "_clean.csv",
                              worker.account_info().username,
                              worker.account_info().password)
            return True
        else:
            log.info("{} may be blinded".format(
                worker.account_info().username))
            if use_account_db:
                db_set_blinded(worker.name(), datetime.datetime.now())
                db_set_temp_banned(worker.name(), None)
            else:
                write_to_file(accounts_file + "_blinded.csv",
                              worker.account_info().username,
                              worker.account_info().password)
    return False
Esempio n. 4
0
 def mark_warned(self, account_info):
     # self.account_failures.append(account.as_map())
     log.error("Account is warned " + account_info.name())
     # account_info.()
     if self.usingdb:
         db_set_warned(account_info.username, datetime.now())
Esempio n. 5
0
 def handle_warned(self, pogoservice):
     if self.usingdb:
         db_set_warned(pogoservice.account_info(), datetime.now())
     return self.replace(
         pogoservice) if self.replace_warned else pogoservice