diff --git a/files/assets/images/pfps/girls/10.webp b/files/assets/images/pfps/girls/10.webp new file mode 100644 index 000000000..220ca6b99 Binary files /dev/null and b/files/assets/images/pfps/girls/10.webp differ diff --git a/files/assets/images/pfps/girls/11.webp b/files/assets/images/pfps/girls/11.webp new file mode 100644 index 000000000..694ac9c61 Binary files /dev/null and b/files/assets/images/pfps/girls/11.webp differ diff --git a/files/assets/images/pfps/girls/12.webp b/files/assets/images/pfps/girls/12.webp new file mode 100644 index 000000000..545d10855 Binary files /dev/null and b/files/assets/images/pfps/girls/12.webp differ diff --git a/files/assets/images/pfps/girls/13.webp b/files/assets/images/pfps/girls/13.webp new file mode 100644 index 000000000..037fbdf93 Binary files /dev/null and b/files/assets/images/pfps/girls/13.webp differ diff --git a/files/assets/images/pfps/girls/14.webp b/files/assets/images/pfps/girls/14.webp new file mode 100644 index 000000000..a6ae01126 Binary files /dev/null and b/files/assets/images/pfps/girls/14.webp differ diff --git a/files/assets/images/pfps/girls/15.webp b/files/assets/images/pfps/girls/15.webp new file mode 100644 index 000000000..bf203b590 Binary files /dev/null and b/files/assets/images/pfps/girls/15.webp differ diff --git a/files/assets/images/pfps/girls/16.webp b/files/assets/images/pfps/girls/16.webp new file mode 100644 index 000000000..f52b6668f Binary files /dev/null and b/files/assets/images/pfps/girls/16.webp differ diff --git a/files/assets/images/pfps/girls/17.webp b/files/assets/images/pfps/girls/17.webp new file mode 100644 index 000000000..3d3a822c1 Binary files /dev/null and b/files/assets/images/pfps/girls/17.webp differ diff --git a/files/assets/images/pfps/girls/18.webp b/files/assets/images/pfps/girls/18.webp new file mode 100644 index 000000000..64ce13aca Binary files /dev/null and b/files/assets/images/pfps/girls/18.webp differ diff --git a/files/assets/images/pfps/girls/19.webp b/files/assets/images/pfps/girls/19.webp new file mode 100644 index 000000000..94d0bd228 Binary files /dev/null and b/files/assets/images/pfps/girls/19.webp differ diff --git a/files/assets/images/pfps/girls/20.webp b/files/assets/images/pfps/girls/20.webp new file mode 100644 index 000000000..b27cc522d Binary files /dev/null and b/files/assets/images/pfps/girls/20.webp differ diff --git a/files/assets/images/pfps/girls/21.webp b/files/assets/images/pfps/girls/21.webp new file mode 100644 index 000000000..88d702790 Binary files /dev/null and b/files/assets/images/pfps/girls/21.webp differ diff --git a/files/assets/images/pfps/girls/22.webp b/files/assets/images/pfps/girls/22.webp new file mode 100644 index 000000000..d089cf51a Binary files /dev/null and b/files/assets/images/pfps/girls/22.webp differ diff --git a/files/assets/images/pfps/girls/23.webp b/files/assets/images/pfps/girls/23.webp new file mode 100644 index 000000000..12a821a95 Binary files /dev/null and b/files/assets/images/pfps/girls/23.webp differ diff --git a/files/assets/images/pfps/girls/24.webp b/files/assets/images/pfps/girls/24.webp new file mode 100644 index 000000000..e7a109ecb Binary files /dev/null and b/files/assets/images/pfps/girls/24.webp differ diff --git a/files/assets/images/pfps/girls/25.webp b/files/assets/images/pfps/girls/25.webp new file mode 100644 index 000000000..6992a5c2c Binary files /dev/null and b/files/assets/images/pfps/girls/25.webp differ diff --git a/files/assets/images/pfps/girls/9.webp b/files/assets/images/pfps/girls/9.webp new file mode 100644 index 000000000..367873aea Binary files /dev/null and b/files/assets/images/pfps/girls/9.webp differ diff --git a/files/classes/user.py b/files/classes/user.py index d3f1f0027..b304cdcd2 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -818,7 +818,7 @@ class User(Base): if self.rainbow: return f"{SITE_FULL}/e/marseysalutepride.webp" if self.queen: - number_of_girl_pfps = 8 + number_of_girl_pfps = 25 pic_num = (self.id % number_of_girl_pfps) + 1 return f"{SITE_FULL}/i/pfps/girls/{pic_num}.webp" if self.profileurl and self.can_see_my_shit: diff --git a/files/helpers/config/const.py b/files/helpers/config/const.py index 29ed29b11..05787050f 100644 --- a/files/helpers/config/const.py +++ b/files/helpers/config/const.py @@ -101,8 +101,11 @@ AJ_REPLACEMENTS = { 'EVERYBODY': 'EVERYPONY', } +PHRASE_CHANCE = 0.5 GIRL_PHRASES = [ "ok so $", + "um $", + "also like $", "literally, $", "i feel like $", "my heart is telling me $", @@ -112,8 +115,10 @@ GIRL_PHRASES = [ "$ and thats the tea, sis", "$ but go off i guess", "$ but go off", - "$, karen", - "$ but its whatever" + "$ but its whatever", + "$ and its EVERYTHING", + "$ *sips tea*", + "$ PERIODT" ] GIRL_NAME_PREFIX = [ 'the', diff --git a/files/helpers/regex.py b/files/helpers/regex.py index 1f82ef06c..71751d663 100644 --- a/files/helpers/regex.py +++ b/files/helpers/regex.py @@ -69,9 +69,20 @@ torture_regex = re.compile('(^|\s)(i|me)($|\s)', flags=re.I|re.A) torture_regex2 = re.compile("(^|\s)(i'm)($|\s)", flags=re.I|re.A) torture_regex3 = re.compile("(^|\s)(my|mine)($|\s)", flags=re.I|re.A) -sentence_ending_regex = re.compile('(\.)', flags=re.I|re.A) +#matches ". ", does not match "..." or a.b +sentence_ending_regex = re.compile('(?+)', flags=re.I|re.A) image_check_regex = re.compile(f'!\[\]\(((?!(https:\/\/({hosts})\/|\/)).*?)\)', flags=re.A) diff --git a/files/helpers/sanitize.py b/files/helpers/sanitize.py index 31bfe736a..84c590d7e 100644 --- a/files/helpers/sanitize.py +++ b/files/helpers/sanitize.py @@ -688,14 +688,27 @@ def torture_ap(string, username): def torture_queen(string, key): if not string: return string + result = initial_part_regex.search(string) + initial = result.group(1) if result else "" string = string.lower() + string = initial_part_regex.sub("", string) string = sentence_ending_regex.sub(", and", string) + string = superlative_regex.sub(r"literally \g<1>", string) + string = totally_regex.sub(r"totally \g<1>", string) + string = single_repeatable_punctuation.sub(r"\g<1>\g<1>\g<1>", string) + string = greeting_regex.sub(r"hiiiiiiiiii", string) + string = like_after_regex.sub(r"\g<1> like", string) + string = like_before_regex.sub(r"like \g<1>", string) string = normal_punctuation_regex.sub("", string) string = more_than_one_comma_regex.sub(",", string) if string[-5:] == ', and': string = string[:-5] - girl_phrase = GIRL_PHRASES[key%len(GIRL_PHRASES)] - string = girl_phrase.replace("$", string) + + random.seed(key) + if random.random() < PHRASE_CHANCE: + girl_phrase = random.choice(GIRL_PHRASES) + string = girl_phrase.replace("$", string) + string = initial + string return string def torture_object(obj, torture_method): @@ -706,7 +719,7 @@ def torture_object(obj, torture_method): i = 0 for tag in tags: i+=1 - key = obj.id*i + key = obj.id+i tag.string.replace_with(torture_method(tag.string, key)) obj.body_html = str(soup).replace('','').replace('','') diff --git a/files/routes/awards.py b/files/routes/awards.py index 5c005ea5d..6591c4b06 100644 --- a/files/routes/awards.py +++ b/files/routes/awards.py @@ -329,12 +329,15 @@ def award_thing(v, thing_type, id): abort(409, f"{safe_username} is under the effect of a conflicting award: OwOify award!") if not author.queen: - - adjective = GIRL_NAME_ADJECTIVE[author.id%20].capitalize() - noun = GIRL_NAME_NOUN[(int(author.id/20))%20].capitalize() - prefix = GIRL_NAME_PREFIX[(int((id/20)/20))%8] + number_of_adjectives = len(GIRL_NAME_ADJECTIVE) + number_of_nouns = len(GIRL_NAME_NOUN) + number_of_prefix = len(GIRL_NAME_PREFIX) + numbers = get_number_tuple(author.id, [number_of_adjectives, number_of_nouns, number_of_prefix]) + adjective = GIRL_NAME_ADJECTIVE[numbers[0]].capitalize() + noun = GIRL_NAME_NOUN[numbers[1]].capitalize() + prefix = GIRL_NAME_PREFIX[numbers[2]] prefix = prefix[0].upper() + prefix[1:] - number = int(((author.id/20)/20)/8) + number = numbers[3] new_name = f"{prefix}{adjective}{noun}"+ (str(number) if number > 0 else "") @@ -551,3 +554,18 @@ def award_thing(v, thing_type, id): return {"message": f"{AWARDS[kind]['title']} award given to {thing_type} successfully!"} +def shift_number_down(input, mod): + if input <= 0: + return 0, 0 + number = (input%mod) + input -= number + input /= mod + return int(number), int(input) + +def get_number_tuple(input, mods): + results = [] + for mod in mods: + result, input = shift_number_down(input, mod) + results.append(result) + results.append(input) + return results \ No newline at end of file