12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import random
- from datetime import timedelta
- from django.utils import timezone
- from ..users.models import Ban
- def get_fake_username_ban(fake):
- ban = _create_base_ban(fake, Ban.USERNAME)
- banned_value = fake.first_name()
- if random.randint(0, 100) < 31:
- banned_value = "%s*" % banned_value
- elif random.randint(0, 100) < 31:
- banned_value = "*%s" % banned_value
- elif random.randint(0, 100) < 31:
- banned_value = list(banned_value)
- banned_value.insert(random.randint(0, len(banned_value) - 1), "*")
- banned_value = "".join(banned_value)
- ban.banned_value = banned_value
- ban.save()
- return ban
- def get_fake_email_ban(fake):
- ban = _create_base_ban(fake, Ban.EMAIL)
- if random.randint(0, 100) < 35:
- ban.banned_value = "*@%s" % fake.domain_name()
- else:
- ban.banned_value = fake.email()
- ban.save()
- return ban
- def get_fake_ip_ban(fake):
- ban = _create_base_ban(fake, Ban.IP)
- if random.randint(0, 1):
- banned_value = fake.ipv4()
- if random.randint(0, 100) < 35:
- banned_value = banned_value.split(".")
- banned_value = ".".join(banned_value[: random.randint(1, 3)])
- banned_value = "%s.*" % banned_value
- elif random.randint(0, 100) < 35:
- banned_value = banned_value.split(".")
- banned_value = ".".join(banned_value[random.randint(1, 3) :])
- banned_value = "*.%s" % banned_value
- elif random.randint(0, 100) < 35:
- banned_value = banned_value.split(".")
- banned_value[random.randint(0, 3)] = "*"
- banned_value = ".".join(banned_value)
- else:
- banned_value = fake.ipv6()
- if random.randint(0, 100) < 35:
- banned_value = banned_value.split(":")
- banned_value = ":".join(banned_value[: random.randint(1, 7)])
- banned_value = "%s:*" % banned_value
- elif random.randint(0, 100) < 35:
- banned_value = banned_value.split(":")
- banned_value = ":".join(banned_value[: random.randint(1, 7)])
- banned_value = "*:%s" % banned_value
- elif random.randint(0, 100) < 35:
- banned_value = banned_value.split(":")
- banned_value[random.randint(0, 7)] = "*"
- banned_value = ":".join(banned_value)
- ban.banned_value = banned_value
- ban.save()
- return ban
- def _create_base_ban(fake, ban_type):
- ban = Ban(check_type=ban_type)
- if random.randint(0, 10) == 0:
- ban.user_message = fake.sentence()
- if random.randint(0, 10) == 0:
- ban.staff_message = fake.sentence()
- if random.randint(0, 1):
- # Lets make ban temporary
- ban_length = timedelta(days=random.randint(0, 300))
- if random.randint(0, 1):
- ban.valid_until = timezone.now().date() - ban_length
- else:
- ban.valid_until = timezone.now().date() + ban_length
- return ban
|