add extra username for patrons
parent
630f0a4891
commit
d7350e73cf
|
@ -78,6 +78,8 @@ function makeEmojisSearchDictionary() {
|
||||||
emojisSearchDictionary.updateTag(`@${emoji.author_username.toLowerCase()}`, emoji.name);
|
emojisSearchDictionary.updateTag(`@${emoji.author_username.toLowerCase()}`, emoji.name);
|
||||||
if (emoji.author_original_username != emoji.author_username)
|
if (emoji.author_original_username != emoji.author_username)
|
||||||
emojisSearchDictionary.updateTag(`@${emoji.author_original_username.toLowerCase()}`, emoji.name);
|
emojisSearchDictionary.updateTag(`@${emoji.author_original_username.toLowerCase()}`, emoji.name);
|
||||||
|
if (emoji.author_extra_username !== undefined)
|
||||||
|
emojisSearchDictionary.updateTag(`@${emoji.author_extra_username.toLowerCase()}`, emoji.name);
|
||||||
if (emoji.author_prelock_username !== undefined)
|
if (emoji.author_prelock_username !== undefined)
|
||||||
emojisSearchDictionary.updateTag(`@${emoji.author_prelock_username.toLowerCase()}`, emoji.name);
|
emojisSearchDictionary.updateTag(`@${emoji.author_prelock_username.toLowerCase()}`, emoji.name);
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,8 @@ class Emoji(Base):
|
||||||
data["author_username"] = self.author_username
|
data["author_username"] = self.author_username
|
||||||
if "author_original_username" in self.__dict__ and self.author_original_username:
|
if "author_original_username" in self.__dict__ and self.author_original_username:
|
||||||
data["author_original_username"] = self.author_original_username
|
data["author_original_username"] = self.author_original_username
|
||||||
|
if "author_extra_username" in self.__dict__ and self.author_extra_username:
|
||||||
|
data["author_extra_username"] = self.author_extra_username
|
||||||
if "author_prelock_username" in self.__dict__ and self.author_prelock_username:
|
if "author_prelock_username" in self.__dict__ and self.author_prelock_username:
|
||||||
data["author_prelock_username"] = self.author_prelock_username
|
data["author_prelock_username"] = self.author_prelock_username
|
||||||
return data
|
return data
|
||||||
|
|
|
@ -134,6 +134,7 @@ class User(Base):
|
||||||
defaulttime = Column(String, default=DEFAULT_TIME_FILTER)
|
defaulttime = Column(String, default=DEFAULT_TIME_FILTER)
|
||||||
custom_filter_list = Column(String)
|
custom_filter_list = Column(String)
|
||||||
original_username = Column(String)
|
original_username = Column(String)
|
||||||
|
extra_username = Column(String)
|
||||||
prelock_username = Column(String)
|
prelock_username = Column(String)
|
||||||
referred_by = Column(Integer, ForeignKey("users.id"))
|
referred_by = Column(Integer, ForeignKey("users.id"))
|
||||||
currently_held_lottery_tickets = Column(Integer, default=0)
|
currently_held_lottery_tickets = Column(Integer, default=0)
|
||||||
|
@ -979,6 +980,8 @@ class User(Base):
|
||||||
if self.username == self.original_username:
|
if self.username == self.original_username:
|
||||||
return ''
|
return ''
|
||||||
names = {self.original_username}
|
names = {self.original_username}
|
||||||
|
if self.extra_username:
|
||||||
|
names.add(self.extra_username)
|
||||||
if self.prelock_username:
|
if self.prelock_username:
|
||||||
names.add(self.prelock_username)
|
names.add(self.prelock_username)
|
||||||
return 'Original Usernames: @' + ', @'.join(names)
|
return 'Original Usernames: @' + ', @'.join(names)
|
||||||
|
|
|
@ -32,6 +32,7 @@ def get_user(username, v=None, graceful=False, include_blocks=False, attributes=
|
||||||
or_(
|
or_(
|
||||||
User.username.ilike(search_name),
|
User.username.ilike(search_name),
|
||||||
User.original_username.ilike(search_name),
|
User.original_username.ilike(search_name),
|
||||||
|
User.extra_username.ilike(search_name),
|
||||||
User.prelock_username.ilike(search_name),
|
User.prelock_username.ilike(search_name),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -65,8 +66,9 @@ def get_users(usernames, ids_only=False, graceful=False):
|
||||||
or_(
|
or_(
|
||||||
User.username.ilike(any_(usernames)),
|
User.username.ilike(any_(usernames)),
|
||||||
User.original_username.ilike(any_(usernames)),
|
User.original_username.ilike(any_(usernames)),
|
||||||
|
User.extra_username.ilike(any_(usernames)),
|
||||||
User.prelock_username.ilike(any_(usernames)),
|
User.prelock_username.ilike(any_(usernames)),
|
||||||
)
|
)
|
||||||
).all()
|
).all()
|
||||||
|
|
||||||
if len(users) != len(usernames) and not graceful:
|
if len(users) != len(usernames) and not graceful:
|
||||||
|
|
|
@ -423,6 +423,8 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=False, count_emojis
|
||||||
users_dict[u.username.lower()] = u
|
users_dict[u.username.lower()] = u
|
||||||
if u.original_username:
|
if u.original_username:
|
||||||
users_dict[u.original_username.lower()] = u
|
users_dict[u.original_username.lower()] = u
|
||||||
|
if u.extra_username:
|
||||||
|
users_dict[u.extra_username.lower()] = u
|
||||||
if u.prelock_username:
|
if u.prelock_username:
|
||||||
users_dict[u.prelock_username.lower()] = u
|
users_dict[u.prelock_username.lower()] = u
|
||||||
|
|
||||||
|
|
|
@ -418,6 +418,7 @@ def searchusers(v):
|
||||||
or_(
|
or_(
|
||||||
User.username.ilike(f'%{term}%'),
|
User.username.ilike(f'%{term}%'),
|
||||||
User.original_username.ilike(f'%{term}%'),
|
User.original_username.ilike(f'%{term}%'),
|
||||||
|
User.extra_username.ilike(f'%{term}%'),
|
||||||
User.prelock_username.ilike(f'%{term}%'),
|
User.prelock_username.ilike(f'%{term}%'),
|
||||||
)
|
)
|
||||||
).order_by(User.username.ilike(term).desc(), User.stored_subscriber_count.desc())
|
).order_by(User.username.ilike(term).desc(), User.stored_subscriber_count.desc())
|
||||||
|
|
|
@ -574,6 +574,7 @@ def settings_images_profile(v):
|
||||||
cache.delete_memoized(get_profile_picture, v.id)
|
cache.delete_memoized(get_profile_picture, v.id)
|
||||||
cache.delete_memoized(get_profile_picture, v.username)
|
cache.delete_memoized(get_profile_picture, v.username)
|
||||||
cache.delete_memoized(get_profile_picture, v.original_username)
|
cache.delete_memoized(get_profile_picture, v.original_username)
|
||||||
|
cache.delete_memoized(get_profile_picture, v.extra_username)
|
||||||
cache.delete_memoized(get_profile_picture, v.prelock_username)
|
cache.delete_memoized(get_profile_picture, v.prelock_username)
|
||||||
|
|
||||||
return redirect("/settings/personal?msg=Profile picture successfully updated!")
|
return redirect("/settings/personal?msg=Profile picture successfully updated!")
|
||||||
|
@ -768,6 +769,9 @@ def settings_name_change(v):
|
||||||
if existing and existing.id != v.id:
|
if existing and existing.id != v.id:
|
||||||
abort(400, f"Username `{new_name}` is already in use.")
|
abort(400, f"Username `{new_name}` is already in use.")
|
||||||
|
|
||||||
|
if v.patron:
|
||||||
|
v.extra_username = v.username
|
||||||
|
|
||||||
v.username = new_name
|
v.username = new_name
|
||||||
|
|
||||||
if new_name.lower() == v.original_username.lower():
|
if new_name.lower() == v.original_username.lower():
|
||||||
|
|
|
@ -90,6 +90,7 @@ def get_emojis(nsfw):
|
||||||
User.id,
|
User.id,
|
||||||
User.username,
|
User.username,
|
||||||
User.original_username,
|
User.original_username,
|
||||||
|
User.extra_username,
|
||||||
User.prelock_username,
|
User.prelock_username,
|
||||||
)).filter(Emoji.submitter_id == None)
|
)).filter(Emoji.submitter_id == None)
|
||||||
|
|
||||||
|
@ -110,6 +111,7 @@ def get_emojis(nsfw):
|
||||||
else:
|
else:
|
||||||
emoji.author_username = author.username
|
emoji.author_username = author.username
|
||||||
emoji.author_original_username = author.original_username
|
emoji.author_original_username = author.original_username
|
||||||
|
emoji.author_extra_username = author.extra_username
|
||||||
emoji.author_prelock_username = author.prelock_username
|
emoji.author_prelock_username = author.prelock_username
|
||||||
collected.append(emoji.json())
|
collected.append(emoji.json())
|
||||||
return collected
|
return collected
|
||||||
|
|
|
@ -33,6 +33,10 @@
|
||||||
{% if can_see(v, u) and u.username != u.original_username %}
|
{% if can_see(v, u) and u.username != u.original_username %}
|
||||||
{% set ns.og_usernames = 'Original Usernames:<br>@' ~ u.original_username %}
|
{% set ns.og_usernames = 'Original Usernames:<br>@' ~ u.original_username %}
|
||||||
|
|
||||||
|
{% if u.extra_username and u.extra_username != u.original_username %}
|
||||||
|
{% set ns.og_usernames = ns.og_usernames + '<br>@' ~ u.extra_username %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if u.prelock_username and u.prelock_username != u.original_username %}
|
{% if u.prelock_username and u.prelock_username != u.original_username %}
|
||||||
{% set ns.og_usernames = ns.og_usernames + '<br>@' ~ u.prelock_username %}
|
{% set ns.og_usernames = ns.og_usernames + '<br>@' ~ u.prelock_username %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
alter table users add column extra_username character varying(30) unique;
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX lowercase_extra_username ON public.users USING btree (lower((extra_username)::text));
|
||||||
|
|
||||||
|
CREATE INDEX users_extra_username_trgm_idx ON public.users USING gin (extra_username public.gin_trgm_ops);
|
Loading…
Reference in New Issue