Example #1
0
INSTAGRAM = fields.SetField(
    name='INSTAGRAM',
    URLS=fields.SetField(
        HOME='https://www.instagram.com/',
        LOGIN='******',
        TEST="https://postman-echo.com/post",
        configurable=False,
    ),
    REQUEST=fields.SetField(
        FIELDS=fields.SetField(
            USERNAME='******',
            PASSWORD='******',
            configurable=False,
        ),
        USERAGENT=(
            f'Instagram 9.2.0 Android ({_VERSION}/{_RELEASE}; '
            f'320dpi; 720x1280; {_MFG}; {_MODEL}; armani; qcom; en_US)'),
        # Only Headers Are Configurable
        configurable=True,
    ),
    FIELDS=fields.SetField(
        USERNAME='******',
        PASSWORD='******',
        configurable=False,
    ),
    RESPONSE=fields.SetField(
        CHECKPOINT_REQUIRED="checkpoint_required",
        GENERIC_REQUEST_ERROR='generic_request_error',
        GENERIC_REQUEST_MESSAGE='Sorry, there was a problem with your request.',
        configurable=False,
    ),
    # Only Headers Are Configurable
    configurable=True,
)
Example #2
0
GENERATOR = fields.SetField(
    # TODO: Add validation to make sure all elements of nested lists are
    # integers.
    name='GENERATOR',
    CAPITALIZE_AT_INDICES=fields.SeriesField(
        default=[0, 1, [0, 1]],
        values={
            'type': (int, list),
        }
    ),
    # TODO: Add Validation to Key/Value Types
    COMMON_CHAR_REPLACEMENTS=fields.DictField({
        'i': ('1', '!'),
        'p': ('3', '@'),
    }),
    GENERATOR=fields.SetField(
        BEFORE=fields.BooleanField(default=False),
        AFTER=fields.BooleanField(default=False),
    ),
    NUMERICS=fields.SetField(
        BEFORE=fields.BooleanField(default=False),
        AFTER=fields.BooleanField(default=False),
        BIRTHDAY=fields.SetField(
            PROVIDED=fields.BooleanField(default=True),
            ALL=fields.BooleanField(default=False),
            START_YEAR=fields.YearField(default=1991),
            END_YEAR=fields.YearField(default=2000)

        )
    )
)
Example #3
0
from .app import *  # noqa
from .db import *  # noqa
from .http import *  # noqa
from .login import ATTEMPTS, PASSWORDS  # noqa
from .proxies import PROXIES  # noqa
from .users import *  # noqa

from instattack.config import fields

DEBUG = False

# Make Non Configurable for Now
LOGGING = fields.SetField(
    name='LOGGING',
    LEVEL='INFO',
    LOG_REQUEST_ERRORS=True,
    LOG_PROXY_QUEUE=True,
    DEFAULT_MODE='termx',
    configurable=False,
)
Example #4
0
LIMITS = fields.SetField(
    name='LIMITS',
    # TODO: Allow Historical & Current
    RESP_TIME=fields.PositiveFloatField(
        default=None,
        optional=True,
        help=
        ("The maximum response time in seconds. If proxy.avg_resp_time exceeds this "
         "value, proxy will be removed from the pool."),
    ),
    REQUESTS=fields.SetField(
        ALL=fields.SetField(
            HISTORICAL=fields.PositiveIntField(optional=True, default=None),
            ACTIVE=fields.PositiveIntField(optional=True, default=None),
        ),
        SUCCESS=fields.SetField(
            HISTORICAL=fields.PositiveIntField(optional=True, default=None),
            ACTIVE=fields.PositiveIntField(optional=True, default=None),
        ),
        FAIL=fields.SetField(
            HISTORICAL=fields.PositiveIntField(optional=True, default=None),
            ACTIVE=fields.PositiveIntField(optional=True, default=None),
        ),
        help=
        ("The maxmium number of allowed requests for each proxy per attack, before "
         "being removed from pool.  For LARGER attacks, this should probably be "
         "negated, since we do not want to discard good proxies.")),

    # TODO: Start Measuring Historical & Active
    ERROR_RATE=fields.SetField(
        HISTORICAL=fields.PositiveFloatField(optional=True, default=None),
        ACTIVE=fields.PositiveFloatField(optional=True, default=None),
        HORIZON=fields.PositiveIntField(
            default=5,
            max=30,
            help=
            "The minimum number of requests required before error rate is non-zero."
        ),
        help=("The maximum number of allowed errors for a proxy before being "
              "removed from the pool or not included in pool to begin with.")),
    ERRORS=fields.SetField(
        ALL=fields.SetField(
            HISTORICAL=fields.PositiveIntField(optional=True, default=2),
            ACTIVE=fields.PositiveIntField(optional=True, default=1),
        ),
        CONNECTION=fields.SetField(
            HISTORICAL=fields.PositiveIntField(optional=True, default=2),
            ACTIVE=fields.PositiveIntField(optional=True, default=1),
        ),
        RESPONSE=fields.SetField(
            HISTORICAL=fields.PositiveIntField(optional=True, default=2),
            ACTIVE=fields.PositiveIntField(optional=True, default=1),
        ),
        INSTAGRAM=fields.SetField(
            HISTORICAL=fields.PositiveIntField(optional=True, default=1),
            ACTIVE=fields.PositiveIntField(optional=True, default=1),
        ),
        SSL=fields.SetField(
            HISTORICAL=fields.PositiveIntField(optional=True, default=3),
            ACTIVE=fields.PositiveIntField(optional=True, default=2),
        ),
        # [x] NOTE:
        # --------
        # There seem to be a lot of proxies that do get confirmed results
        # but also have a lot of historical timeout errors.
        TIMEOUT=fields.SetField(
            HISTORICAL=fields.PositiveIntField(optional=True, default=4),
            ACTIVE=fields.PositiveIntField(optional=True, default=2),
        ),
        help=("The maximum number of allowed errors for a proxy before being "
              "removed from the pool or not included in pool to begin with.")),
)