1. 14 Jul, 2020 2 commits
  2. 12 Jul, 2020 3 commits
    • Andrew Shu's avatar
      Add bottom padding to topic full text · cf3e777f
      Andrew Shu authored
      Prevents scrollbar from showing up when there is a
      subscript on the last line of text.
      
      Another option would have been overflow-y: hidden,
      but that clips the text in the (pathological?) case
      of deeply nested subscripts.
      cf3e777f
    • Andrew Shu's avatar
      Show (OP) in Topic Log changes · ac8e4387
      Andrew Shu authored
      ac8e4387
    • Deimos's avatar
      Salt: ensure that the site-icons.css file exists · e85dfa24
      Deimos authored
      The generate_site_icons_css cronjob will create this file, but the site
      won't work before it exists, so there's a (less than 5 min) gap where
      the site is broken when first set up. This probably won't be noticeable
      in dev/prod setups, but breaks things like CI setups where everything is
      getting created freshly each time.
      
      This makes sure that the file always exists on initial setup and
      whenever the Salt states are re-run.
      e85dfa24
  3. 10 Jul, 2020 1 commit
  4. 09 Jul, 2020 1 commit
  5. 06 Jul, 2020 3 commits
    • Deimos's avatar
      Hide old-scheduled-topic message if not logged in · 5b1addab
      Deimos authored
      5b1addab
    • Deimos's avatar
      Add backfill for topic_schedule.latest_topic_id · 080aadb1
      Deimos authored
      I doubt the absence of this would have ever been noticed or that adding
      this will ever matter for anyone, but I might as well do it properly!
      080aadb1
    • Deimos's avatar
      Prevent top-level comments in old scheduled topics · c4af5c7d
      Deimos authored
      By default, new top-level comments will only be allowed in the latest
      topic from a particular set of scheduled topics. Replies to existing
      comments in old topics will still be allowed - this is just intended to
      prevent the cases where an old scheduled topic gets bumped back up due
      to a reply and people inadvertently start adding new top-level comments
      to it instead of the latest one.
      
      This should be the correct behavior for most scheduled topics, but it
      can be disabled for a particular schedule if needed.
      c4af5c7d
  6. 05 Jul, 2020 1 commit
    • Deimos's avatar
      Track latest topic for each schedule · a451b7fb
      Deimos authored
      This adds a new latest_topic_id column to topic_schedule and uses
      triggers on the topics table to keep it correct.
      
      This isn't really ideal, but it will simplify a few things related to
      scheduled topics by quite a bit. For example, this commit also uses that
      new data to much more easily populate the list of scheduled topics in a
      group's sidebar, which previously required a subquery and windowing.
      a451b7fb
  7. 19 Jun, 2020 1 commit
    • Deimos's avatar
      Remove comment back-and-forth delay · 96aaf50b
      Deimos authored
      I think overall this is triggering more than I want, and getting in the
      way of perfectly reasonable conversations. I like the idea still, but
      needs adjusting.
      96aaf50b
  8. 18 Jun, 2020 1 commit
    • Deimos's avatar
      Remove specialized coronavirus views · a66e16d6
      Deimos authored
      Coronavirus topics have slowed down greatly now, with generally only
      about 3 per day, and are almost all restricted to ~health.coronavirus,
      so users can easily find (or avoid) them by just using that group.
      a66e16d6
  9. 16 Jun, 2020 4 commits
    • Deimos's avatar
      Add metric for back-and-forth warnings · 59b0f24e
      Deimos authored
      59b0f24e
    • Deimos's avatar
      Replace "whitelist" terminology · 60f47cc3
      Deimos authored
      60f47cc3
    • Deimos's avatar
      Add a delay to comment back-and-forths · 15ced1a7
      Deimos authored
      15ced1a7
    • Deimos's avatar
      Use intercooler for comment reply form · 6227f747
      Deimos authored
      Previously, the comment reply form was being created entirely
      client-side by cloning and modifying a <template>. This was nice because
      it meant that a network request wasn't necessary to display the form,
      but it also had downsides.
      
      For example, if a topic was locked after a user had already loaded the
      page (or their notifications page with a comment from that topic), they
      would still be able to click Reply and type in a comment, and wouldn't
      know that replying wasn't possible until they actually tried to submit
      the comment.
      
      By switching to using intercooler for this form, we can do server-side
      validation to check permissions before showing the form, and it also
      simplifies some other aspects, such as the warning about replying to an
      old comment, which previously needed a data-js-old-warning-age attribute
      in the HTML, but is now just part of generating the reply form template
      server-side.
      6227f747
  10. 02 Jun, 2020 1 commit
    • Deimos's avatar
      Prioritize showing comment removal over deletion · e1535991
      Deimos authored
      If a comment is removed and then deleted by its author, we should
      continue showing it as removed, since that's the more significant action
      (and the deletion is usually *because* of the removal).
      e1535991
  11. 27 May, 2020 1 commit
    • Deimos's avatar
      Don't post full "backlog" of scheduled topics · e8f8885f
      Deimos authored
      This will probably only ever be relevant in development environments,
      but we don't want the topic scheduler to always post a full backlog of
      scheduled topics when it hasn't run for a while. For example, if a dev
      environment has a daily scheduled topic set up, but the VM is not
      launched for a week, the next time the "post scheduled topics" cronjob
      runs, it will post all 7 of the backlogged topics.
      
      This commit changes the script so that it advances the schedule to the
      next *future* occurrence, instead of continuing the backlog.
      e8f8885f
  12. 26 May, 2020 1 commit
    • Deimos's avatar
      TopicQuery: include ignored topics by default · 740f71d3
      Deimos authored
      Previously, TopicQuery was excluding ignored topics by default. However,
      this caused some unexpected issues, such as a crash when someone tried
      to vote on a topic after ignoring it. I think it's more intuitive to
      reverse the logic like this: include the ignored topics by default, and
      only specifically exclude them in the cases where that's necessary.
      740f71d3
  13. 22 May, 2020 1 commit
  14. 15 May, 2020 4 commits
    • Deimos's avatar
      Salt: move postgresql-redis bridge to own state · 384c5c98
      Deimos authored
      384c5c98
    • Deimos's avatar
      Fix environment check in Prometheus config · 78002847
      Deimos authored
      Checking for prod isn't correct - we want the monitoring server to have
      these entries so that it can scrape them from prod.
      78002847
    • Deimos's avatar
      Exclude forums.terraria.org from url transforms · d5453cf2
      Deimos authored
      This forum uses the same invalid url scheme as the Paradox forums, so
      needs to be excluded as well.
      d5453cf2
    • Deimos's avatar
      Add simple metrics to event stream consumer jobs · b011be34
      Deimos authored
      This adds some very simple metrics to all of the background jobs that
      consume the event streams. Currently, the only "real" metric is a
      counter tracking how many messages have been processed by that consumer,
      but a lot of the value will come from being able to utilize the
      automatic "up" metric provided by Prometheus to monitor and make sure
      that all of the jobs are running.
      
      I decided to use ports starting from 25010 for these jobs - this is
      completely arbitrary, it's just a fairly large range of unassigned
      ports, so shouldn't conflict with anything.
      
      I'm not a fan of how much hard-coding is involved here for the different
      ports and jobs in the Prometheus config, but it's also not a big deal.
      b011be34
  15. 09 May, 2020 3 commits
    • Deimos's avatar
      Add temporary bans (manual) · 42f99a82
      Deimos authored
      This enables me to set a ban expiry time for a user (manually, in the
      database). By doing so:
      
      * The user's page will say that they're temporarily banned, and show the
        date their ban will be lifted.
      * If the user tries to log in, it will say they're temporarily banned,
        and give a specific datetime that the ban will be lifted by.
      * An hourly cronjob will lift any bans that have expired.
      42f99a82
    • Deimos's avatar
      Update error message for breached passwords · 7e96fb00
      Deimos authored
      This isn't always in the sidebar, so the previous message could be
      confusing.
      7e96fb00
    • Deimos's avatar
      Login: show whether username or password was wrong · 25e42075
      Deimos authored
      I get a fair number of "forgot password" emails where the person is
      actually trying to log in with the wrong username. Normally, a login
      system shouldn't display whether the username or password was the
      incorrect part, but since it's already public information which
      usernames exist on Tildes (simply by visiting /user/<username>), this
      really isn't meaningfully hiding anything. It would only have any effect
      on the most absolutely naive attackers. I think it's an acceptable
      trade-off to help out people that are inadvertently trying to log in
      with the wrong username instead.
      25e42075
  16. 05 May, 2020 1 commit
  17. 30 Apr, 2020 1 commit
  18. 15 Apr, 2020 3 commits
  19. 07 Apr, 2020 1 commit
    • dougmellon's avatar
      Remove aria-label from divs · b707e2b9
      dougmellon authored
      This is a recommendation from the W3C validator: "Don't use aria-label
      or aria-labelledby on a span or div unless its given a role."
      b707e2b9
  20. 03 Apr, 2020 1 commit
    • Deimos's avatar
      Monitoring server: add blackbox exporter · f2c0b68f
      Deimos authored
      This is a prometheus exporter that allows checking IPv4 and IPv6
      responses, among other things. This sets it up to make sure that the
      site is responding over both IPv4 and IPv6, so that I can monitor and
      set up an alert if either stops working.
      f2c0b68f
  21. 25 Mar, 2020 1 commit
    • Deimos's avatar
      Treat scheduled-topic title/markdown as Jinja · 284c3cfd
      Deimos authored
      This probably isn't particularly safe, but it's fine since I'm the only
      one that can create or edit scheduled topics for now. The only available
      variable so far is current_time_utc.
      284c3cfd
  22. 23 Mar, 2020 1 commit
  23. 21 Mar, 2020 2 commits
  24. 19 Mar, 2020 1 commit