fgdgd
This commit is contained in:
parent
d4d8b1f0ce
commit
b34dcaebf8
4 changed files with 21 additions and 79 deletions
|
@ -7,12 +7,3 @@ class BannedDomain(Base):
|
||||||
id = Column(Integer, primary_key=True)
|
id = Column(Integer, primary_key=True)
|
||||||
domain = Column(String(50))
|
domain = Column(String(50))
|
||||||
reason = Column(String(100))
|
reason = Column(String(100))
|
||||||
|
|
||||||
|
|
||||||
class BadLink(Base):
|
|
||||||
|
|
||||||
__tablename__ = "badlinks"
|
|
||||||
id = Column(Integer, primary_key=True)
|
|
||||||
link = Column(String(512))
|
|
||||||
reason = Column(String(100))
|
|
||||||
autoban = Column(Boolean, default=False)
|
|
|
@ -42,7 +42,7 @@ class Submission(Base):
|
||||||
downvotes = Column(Integer, default=0)
|
downvotes = Column(Integer, default=0)
|
||||||
app_id=Column(Integer, ForeignKey("oauth_apps.id"))
|
app_id=Column(Integer, ForeignKey("oauth_apps.id"))
|
||||||
title = Column(String(500))
|
title = Column(String(500))
|
||||||
title_html = Column(String(500))
|
title_html = Column(String(1000))
|
||||||
url = Column(String(500))
|
url = Column(String(500))
|
||||||
body = deferred(Column(String(10000)))
|
body = deferred(Column(String(10000)))
|
||||||
body_html = deferred(Column(String(20000)))
|
body_html = deferred(Column(String(20000)))
|
||||||
|
|
|
@ -72,18 +72,18 @@ else:
|
||||||
|
|
||||||
class User(Base):
|
class User(Base):
|
||||||
__tablename__ = "users"
|
__tablename__ = "users"
|
||||||
id = Column(Integer, primary_key=True)
|
|
||||||
username = Column(String(25))
|
|
||||||
namecolor = Column(String(6), default=defaultcolor)
|
|
||||||
background = Column(String(20))
|
|
||||||
customtitle = Column(String(300))
|
|
||||||
customtitleplain = Column(String(100))
|
|
||||||
|
|
||||||
if "pcmemes.net" in site:
|
if "pcmemes.net" in site:
|
||||||
quadrant = Column(String(20))
|
quadrant = Column(String(20))
|
||||||
basedcount = Column(Integer, default=0)
|
basedcount = Column(Integer, default=0)
|
||||||
pills = deferred(Column(String(300), default=""))
|
pills = deferred(Column(String(300), default=""))
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
username = Column(String(25))
|
||||||
|
namecolor = Column(String(6), default=defaultcolor)
|
||||||
|
background = Column(String(20))
|
||||||
|
customtitle = Column(String(300))
|
||||||
|
customtitleplain = Column(String(100))
|
||||||
titlecolor = Column(String(6), default=defaultcolor)
|
titlecolor = Column(String(6), default=defaultcolor)
|
||||||
theme = Column(String(10), default=defaulttheme)
|
theme = Column(String(10), default=defaulttheme)
|
||||||
themecolor = Column(String(6), default=defaultcolor)
|
themecolor = Column(String(6), default=defaultcolor)
|
||||||
|
@ -124,12 +124,8 @@ class User(Base):
|
||||||
nitter = Column(Boolean)
|
nitter = Column(Boolean)
|
||||||
frontsize = Column(Integer, default=25)
|
frontsize = Column(Integer, default=25)
|
||||||
controversial = Column(Boolean, default=False)
|
controversial = Column(Boolean, default=False)
|
||||||
submissions = relationship("Submission", lazy="dynamic", primaryjoin="Submission.author_id==User.id", viewonly=True)
|
|
||||||
bio = Column(String(1500))
|
bio = Column(String(1500))
|
||||||
bio_html = Column(String(10000))
|
bio_html = Column(String(10000))
|
||||||
badges = relationship("Badge", lazy="dynamic", viewonly=True)
|
|
||||||
notifications = relationship("Notification", lazy="dynamic", viewonly=True)
|
|
||||||
|
|
||||||
is_banned = Column(Integer, default=0)
|
is_banned = Column(Integer, default=0)
|
||||||
unban_utc = Column(Integer, default=0)
|
unban_utc = Column(Integer, default=0)
|
||||||
ban_reason = Column(String(120))
|
ban_reason = Column(String(120))
|
||||||
|
@ -145,29 +141,25 @@ class User(Base):
|
||||||
defaultsortingcomments = Column(String(15), default="top")
|
defaultsortingcomments = Column(String(15), default="top")
|
||||||
defaultsorting = Column(String(15), default="hot")
|
defaultsorting = Column(String(15), default="hot")
|
||||||
defaulttime = Column(String(5), default=defaulttimefilter)
|
defaulttime = Column(String(5), default=defaulttimefilter)
|
||||||
|
|
||||||
is_nofollow = Column(Boolean, default=False)
|
is_nofollow = Column(Boolean, default=False)
|
||||||
custom_filter_list = Column(String(1000))
|
custom_filter_list = Column(String(1000))
|
||||||
discord_id = Column(String(64))
|
discord_id = Column(String(64))
|
||||||
ban_evade = Column(Integer, default=0)
|
ban_evade = Column(Integer, default=0)
|
||||||
original_username = deferred(Column(String(25)))
|
original_username = deferred(Column(String(25)))
|
||||||
subscriptions = relationship("Subscription", viewonly=True)
|
|
||||||
|
|
||||||
following = relationship("Follow", primaryjoin="Follow.user_id==User.id", viewonly=True)
|
|
||||||
followers = relationship("Follow", primaryjoin="Follow.target_id==User.id", viewonly=True)
|
|
||||||
|
|
||||||
viewers = relationship("ViewerRelationship", primaryjoin="User.id == ViewerRelationship.user_id", viewonly=True)
|
|
||||||
|
|
||||||
blocking = relationship("UserBlock", lazy="dynamic", primaryjoin="User.id==UserBlock.user_id", viewonly=True)
|
|
||||||
blocked = relationship("UserBlock", lazy="dynamic", primaryjoin="User.id==UserBlock.target_id", viewonly=True)
|
|
||||||
|
|
||||||
apps = relationship("OauthApp", lazy="dynamic", viewonly=True)
|
|
||||||
authorizations = relationship("ClientAuth", lazy="dynamic", viewonly=True)
|
|
||||||
|
|
||||||
awards = relationship("AwardRelationship", lazy="dynamic", primaryjoin="User.id==AwardRelationship.user_id", viewonly=True)
|
|
||||||
|
|
||||||
referred_by = Column(Integer, ForeignKey("users.id"))
|
referred_by = Column(Integer, ForeignKey("users.id"))
|
||||||
|
|
||||||
|
submissions = relationship("Submission", lazy="dynamic", primaryjoin="Submission.author_id==User.id", viewonly=True)
|
||||||
|
badges = relationship("Badge", lazy="dynamic", viewonly=True)
|
||||||
|
notifications = relationship("Notification", lazy="dynamic", viewonly=True)
|
||||||
|
subscriptions = relationship("Subscription", viewonly=True)
|
||||||
|
following = relationship("Follow", primaryjoin="Follow.user_id==User.id", viewonly=True)
|
||||||
|
followers = relationship("Follow", primaryjoin="Follow.target_id==User.id", viewonly=True)
|
||||||
|
viewers = relationship("ViewerRelationship", primaryjoin="User.id == ViewerRelationship.user_id", viewonly=True)
|
||||||
|
blocking = relationship("UserBlock", lazy="dynamic", primaryjoin="User.id==UserBlock.user_id", viewonly=True)
|
||||||
|
blocked = relationship("UserBlock", lazy="dynamic", primaryjoin="User.id==UserBlock.target_id", viewonly=True)
|
||||||
|
apps = relationship("OauthApp", lazy="dynamic", viewonly=True)
|
||||||
|
authorizations = relationship("ClientAuth", lazy="dynamic", viewonly=True)
|
||||||
|
awards = relationship("AwardRelationship", lazy="dynamic", primaryjoin="User.id==AwardRelationship.user_id", viewonly=True)
|
||||||
referrals = relationship("User", viewonly=True)
|
referrals = relationship("User", viewonly=True)
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
|
|
|
@ -239,25 +239,6 @@ def api_comment(v):
|
||||||
|
|
||||||
return {"error": "Too much spam!"}, 403
|
return {"error": "Too much spam!"}, 403
|
||||||
|
|
||||||
# check badlinks
|
|
||||||
soup = BeautifulSoup(body_html, features="html.parser")
|
|
||||||
links = [x['href'] for x in soup.find_all('a') if x.get('href')]
|
|
||||||
|
|
||||||
for link in links:
|
|
||||||
parse_link = urlparse(link)
|
|
||||||
check_url = ParseResult(scheme="https",
|
|
||||||
netloc=parse_link.netloc,
|
|
||||||
path=parse_link.path,
|
|
||||||
params=parse_link.params,
|
|
||||||
query=parse_link.query,
|
|
||||||
fragment='')
|
|
||||||
check_url = urlunparse(check_url)
|
|
||||||
|
|
||||||
badlink = g.db.query(BadLink).options(lazyload('*')).filter(
|
|
||||||
literal(check_url).contains(
|
|
||||||
BadLink.link)).first()
|
|
||||||
|
|
||||||
if badlink: return {"error": f"Remove the following link and try again: `{check_url}`. Reason: {badlink.reason}"}, 403
|
|
||||||
# create comment
|
# create comment
|
||||||
parent_id = parent_fullname.split("_")[1]
|
parent_id = parent_fullname.split("_")[1]
|
||||||
|
|
||||||
|
@ -619,32 +600,10 @@ def edit_comment(cid, v):
|
||||||
if request.headers.get("Authorization"): return {'error': f'A blacklisted domain was used.'}, 400
|
if request.headers.get("Authorization"): return {'error': f'A blacklisted domain was used.'}, 400
|
||||||
else: return render_template("comment_failed.html",
|
else: return render_template("comment_failed.html",
|
||||||
action=f"/edit_comment/{c.id}",
|
action=f"/edit_comment/{c.id}",
|
||||||
badlinks=[
|
badlinks=[x.domain for x in bans],
|
||||||
x.domain for x in bans],
|
|
||||||
body=body,
|
body=body,
|
||||||
v=v
|
v=v
|
||||||
)
|
)
|
||||||
# check badlinks
|
|
||||||
soup = BeautifulSoup(body_html, features="html.parser")
|
|
||||||
links = [x['href'] for x in soup.find_all('a') if x.get('href')]
|
|
||||||
|
|
||||||
for link in links:
|
|
||||||
parse_link = urlparse(link)
|
|
||||||
check_url = ParseResult(scheme="https",
|
|
||||||
netloc=parse_link.netloc,
|
|
||||||
path=parse_link.path,
|
|
||||||
params=parse_link.params,
|
|
||||||
query=parse_link.query,
|
|
||||||
fragment='')
|
|
||||||
check_url = urlunparse(check_url)
|
|
||||||
|
|
||||||
badlink = g.db.query(BadLink).options(lazyload('*')).filter(
|
|
||||||
literal(check_url).contains(
|
|
||||||
BadLink.link)).first()
|
|
||||||
|
|
||||||
if badlink:
|
|
||||||
return {"error": f"Remove the following link and try again: `{check_url}`. Reason: {badlink.reason}"}, 403
|
|
||||||
|
|
||||||
# check spam - this should hopefully be faster
|
# check spam - this should hopefully be faster
|
||||||
now = int(time.time())
|
now = int(time.time())
|
||||||
cutoff = now - 60 * 60 * 24
|
cutoff = now - 60 * 60 * 24
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue