fgdgd
This commit is contained in:
parent
d4d8b1f0ce
commit
b34dcaebf8
4 changed files with 21 additions and 79 deletions
|
@ -6,13 +6,4 @@ class BannedDomain(Base):
|
|||
__tablename__ = "banneddomains"
|
||||
id = Column(Integer, primary_key=True)
|
||||
domain = Column(String(50))
|
||||
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)
|
||||
reason = Column(String(100))
|
|
@ -42,7 +42,7 @@ class Submission(Base):
|
|||
downvotes = Column(Integer, default=0)
|
||||
app_id=Column(Integer, ForeignKey("oauth_apps.id"))
|
||||
title = Column(String(500))
|
||||
title_html = Column(String(500))
|
||||
title_html = Column(String(1000))
|
||||
url = Column(String(500))
|
||||
body = deferred(Column(String(10000)))
|
||||
body_html = deferred(Column(String(20000)))
|
||||
|
|
|
@ -72,18 +72,18 @@ else:
|
|||
|
||||
class User(Base):
|
||||
__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:
|
||||
quadrant = Column(String(20))
|
||||
basedcount = Column(Integer, default=0)
|
||||
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)
|
||||
theme = Column(String(10), default=defaulttheme)
|
||||
themecolor = Column(String(6), default=defaultcolor)
|
||||
|
@ -124,12 +124,8 @@ class User(Base):
|
|||
nitter = Column(Boolean)
|
||||
frontsize = Column(Integer, default=25)
|
||||
controversial = Column(Boolean, default=False)
|
||||
submissions = relationship("Submission", lazy="dynamic", primaryjoin="Submission.author_id==User.id", viewonly=True)
|
||||
bio = Column(String(1500))
|
||||
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)
|
||||
unban_utc = Column(Integer, default=0)
|
||||
ban_reason = Column(String(120))
|
||||
|
@ -145,29 +141,25 @@ class User(Base):
|
|||
defaultsortingcomments = Column(String(15), default="top")
|
||||
defaultsorting = Column(String(15), default="hot")
|
||||
defaulttime = Column(String(5), default=defaulttimefilter)
|
||||
|
||||
is_nofollow = Column(Boolean, default=False)
|
||||
custom_filter_list = Column(String(1000))
|
||||
discord_id = Column(String(64))
|
||||
ban_evade = Column(Integer, default=0)
|
||||
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"))
|
||||
|
||||
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)
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
|
|
|
@ -239,25 +239,6 @@ def api_comment(v):
|
|||
|
||||
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
|
||||
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
|
||||
else: return render_template("comment_failed.html",
|
||||
action=f"/edit_comment/{c.id}",
|
||||
badlinks=[
|
||||
x.domain for x in bans],
|
||||
badlinks=[x.domain for x in bans],
|
||||
body=body,
|
||||
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
|
||||
now = int(time.time())
|
||||
cutoff = now - 60 * 60 * 24
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue