Commit Graph
100 Commits
Author SHA1 Message Date
evazion fe0bb1e602 rake: remove unused image tasks. 2019-12-30 23:00:53 -06:00
evazion 24ab98ccc8 Merge pull request #4237 from Nikey646/patch-1
Set Webpack Compile Output to true during development.
2019-12-30 00:16:54 -06:00
evazion 87fe3c63fb capistrano: fixup delayed jobs deployment. 2019-12-30 00:12:51 -06:00
evazion 27c797f5c6 Fix #4230: Inconsistency between DText preview and DText renders of inline DText. 2019-12-28 13:28:45 -06:00
evazion bb4be383b9 Fix #4231: Allow artist commentary titles to be formatted with DText. 2019-12-28 12:37:37 -06:00
evazion c95108d37b maintenance: prevent exceptions from halting daily maintenance.
Fix cases where not all daily maintenance tasks run because some earlier
task raised an exception.
2019-12-28 00:21:56 -06:00
evazion 56d787a17f storage manager: make rclone path configurable.
Fix bug where pruning uploads failed because the rclone binary couldn't
be found. The upload pruner runs under cron, which has a fixed default
$PATH of "/bin:/usr/bin", but in production rclone is installed under
/usr/local/bin. This caused the upload pruner to fail, which prevented
the rest of daily maintenance from running.
2019-12-28 00:21:40 -06:00
evazion 159a4cc3d4 Update gems. 2019-12-27 16:18:30 -06:00
evazion 514b736a07 pools: fix crash in post_tags_match search option.
Fix exception in /pools/search[post_tags_match]=touhou. Caused by
`Pool.post_tags_match(query).count` generating invalid SQL (`count`
doesn't like the top-level cross join).

ref: https://danbooru.donmai.us/forum_topics/9127?page=289#forum_post_161821
2019-12-27 12:53:46 -06:00
evazion 3bcc503cf7 BURs: process bulk updates in dedicated job queue.
Add a dedicated queue for bulk update requests and process it using a
single worker. This prevents bulk updates from consuming all available
workers and preventing other job types from running.

This also effectively serializes bulk updates so that they're processed
one-at-a-time instead of in parallel. This will be slower overall but
may avoid some of the issues with indeterminate update order under
parallel updates.
2019-12-27 12:24:51 -06:00
evazion 06e12973e2 BURs: lock posts when updating tags during bulk updates.
Fixes updates sometimes getting clobbered when multiple aliases or mass
updates tried to update the same post at the same time.
2019-12-27 12:11:42 -06:00
evazion 3b4f9ad086 tags: fix post counts for nonexistent tags.
Fix a bug where the post count regenerator didn't fix counts for tags
that had a non-zero count but weren't present on any posts.
2019-12-27 11:24:05 -06:00
evazion b6a3a05422 aliases: fix bug when trying to move wiki pages. 2019-12-26 15:13:14 -06:00
evazion 231e4872ed Re-enable post search counts and view counts.
Re-enable post view counts, post search counts, and missed search
counts. These were disabled in 89adf88d5 because of a bug caused by the
upgrade to rack-2.0.8 in a58dd83ad.

The bug was that rack-2.0.8 changed `session.id` to return a value of a
new wrapper type that doesn't respond to `to_s`. Previously it just
returned a string. Now we have to call `session[:session_id]` or
`session.id.public_id` to get a plain string. This was an undocumented
breaking change in rack-2.0.8 to fix CVE-2019-16782.
2019-12-25 23:53:50 -06:00
evazion b02d84cfae winter sale: link to forum topic. 2019-12-24 18:19:44 -06:00
evazion 89adf88d50 temp disable search counts. 2019-12-24 17:13:17 -06:00
evazion 283bed64da temp disable view counts 2019-12-24 17:00:40 -06:00
evazion 963f1f7991 Add Danbooru Winter Sale.
* 25% off Gold and Platinum accounts.
* Free 6 tag searches for Member-level users.
* Runs from midnight Dec. 25th to 28th (UTC time).
2019-12-24 15:39:29 -06:00
evazion ef2eb9d0f5 user upgrades: factor out gold/platinum prices. 2019-12-24 12:04:15 -06:00
evazion 7694be9cb3 users: remove no_flagging and no_feedback permissions. 2019-12-24 10:24:15 -06:00
evazion 939c168fe9 danbooru_default_config.rb: fix default storage dir. 2019-12-23 22:15:04 -06:00
evazion 432b3e19a9 config: don't use redis when not redis_url not configured. 2019-12-23 15:09:34 -06:00
evazion 2d7169c80f Remove useless binstubs. 2019-12-23 01:01:35 -06:00
evazion bdebd1a594 approver pruner: change inactivity threshold to 30 approvals in 45 days.
* Change minimum activity threshold to 30 approvals in 45 days.
* Exclude mods from losing privileges, not just admins.
* Fix undeletions of old posts not counting towards the activity threshold.
2019-12-23 00:44:22 -06:00
evazion ac9d06bf79 maintenance: remove hourly upload error checker. 2019-12-23 00:14:38 -06:00
evazion b650558633 user feedbacks: replace permanent deletions with soft deletions.
* Add is_deleted flag.
* Allow mods to delete and undelete user feedbacks.
* Don't hide old name change feedbacks (these will be deleted instead).
2019-12-23 00:02:54 -06:00
evazion cd442d60af tag_category.rb: fix windows line endings. 2019-12-22 21:24:00 -06:00
evazion 309821bf73 rubocop: fix various style issues. 2019-12-22 21:23:37 -06:00
evazion 09f6a84660 Add .rubocop.yml. 2019-12-22 21:23:36 -06:00
evazion a58dd83ad7 Update ruby gems and yarn packages. 2019-12-22 17:33:52 -06:00
evazion 2320fad139 danbooru logger: fix request parameter filtering. 2019-12-22 17:33:51 -06:00
evazion f586db97bc Merge pull request #4228 from danbooru/dependabot/bundler/rack-2.0.8
build(deps): bump rack from 2.0.7 to 2.0.8
2019-12-22 13:58:58 -06:00
evazion c606dfc181 posts: fix videos not looping.
Fixup for 15d737d68.
2019-12-18 03:44:59 -06:00
evazion eddd43c21f recommender: fix typo in recommend_for_user. 2019-12-17 02:24:44 -06:00
evazion fff4e3badd artists: allow members to rename, delete, and undelete artists.
Also allow Members to edit deleted or banned artists. Previously this
was limited in the html, but not in the backend.
2019-12-16 19:42:10 -06:00
evazion ddf928515c wiki pages: allow members to rename, delete, and undelete wikis. 2019-12-16 19:42:10 -06:00
evazion be9bdc0ab3 wiki pages: warn when renaming wikis still linked from other wikis.
* Warn when renaming a wiki that still has links from other wikis.
* When renaming a wiki that still has posts, just show a warning instead
  of returning an error and making the user confirm the rename.
2019-12-16 18:49:43 -06:00
evazion b038761fa7 Post.fast_count: fix post count estimates when there are no posts.
Bug: Post.fast_count failed when Danbooru.config.estimate_post_counts
was enabled but the database didn't have any posts. This normally
happened only during testing.
2019-12-16 18:49:43 -06:00
evazion 82564355e6 Add better error page for database timeouts. 2019-12-16 13:38:06 -06:00
evazion 3d03de1c52 mod actions: hide ip bans from non-mods.
Hide IP ban creation and deletion actions from non-mods in the
/mod_actions listing.

The previous approach of just filtering out the IP from the description
was hacky and didn't work with the `only` param (/mod_actions.json?only=id
still included the description field).
2019-12-16 12:20:41 -06:00
evazion 84ba1d417f Fix #4220: Uploading from Tumblr is broken. 2019-12-15 19:04:52 -06:00
evazion c96565dac2 Update gems and yarn packages. 2019-12-15 17:53:05 -06:00
evazion e0f5103e4a reltags: fix nil exception on fast_count timeouts.
Fixes a nil dereference error when calculating related tags for the
sidebar. Cased by Post.fast_count returning nil when it times out.
2019-12-15 17:06:58 -06:00
evazion 41378bc8e3 sources: replace HttpartyCache with Danbooru::Http. 2019-12-15 17:06:58 -06:00
evazion 0adec60259 recommender: replace HttpartyCache with Danbooru::Http. 2019-12-15 15:48:38 -06:00
evazion 518de2fdec cloudflare: fix purging of cached urls.
* Switch CloudflareService from HttpartyCache to Danbooru::Http.

* Purge cached urls from Cloudflare when a post is replaced and the md5
  doesn't change. This happens when a corrupted image is replaced or
  thumbnails are regenerated. Before we purged urls when a post was
  expunged, which was unneeded because those urls can expire naturally.
  It was also wrong because the subdomains were hardcoded, the urls used
  http:// instead of https://, and we didn't account for tagged urls.
2019-12-15 14:03:15 -06:00
evazion 15d737d68b posts: enable looping on video_with_sound posts.
Looping was disabled on video_with_sound posts as per
https://danbooru.donmai.us/forum_topics/12036#forum_post_107823. But the
fact that video_with_sound posts didn't loop proved to be confusing to
users and undesirable in many cases.
2019-12-14 16:53:12 -06:00
evazion efd1327f1e login: remove login reminder page.
Remove the login reminder page. The meaning of "login reminder" wasn't
clear (it's for recovering a forgotten username) and the functionality
was redundant. The password reset page can already be used to recover
forgotten usernames.

There was also a privacy leak, since the login reminder page could be
used to find out whether a given email is in use on Danbooru.
2019-12-14 16:19:01 -06:00
evazion 872bd28d42 login: move password reset link.
Add "Forgot password?" link next to password field to make it more
obvious.
2019-12-14 15:34:01 -06:00
evazion 48e0569832 login: add /login & /logout routes, rename 'sign in' to 'login'.
* Replace /session/new with /login and /session/sign_out with /logout.
* Rename 'sign in' to 'login'.

This changes are to make urls cleaner and terminology more consistent.
2019-12-14 15:27:13 -06:00
evazion 7f08300f56 login: refactor login form to use simple form.
Also change form to pass params as e.g. `session[name]` instead of just
`name`.
2019-12-14 15:05:54 -06:00
evazion 57b09c39b2 css: fix stylelint errors. 2019-12-13 19:10:56 -06:00
evazion f73bd03576 Update yarn packages. 2019-12-13 19:06:40 -06:00
evazion c9e682f39f Upgrade to Rails 6.0.2. 2019-12-13 18:19:52 -06:00
evazion 2202fdf086 dotenv: remove manual load of .env.local.
dotenv loads .env.local by default now.
2019-12-13 18:19:51 -06:00
evazion 3cc636e719 Fix uninitialized constant error with Resolv class.
Fix uninitialized constant error (introduced by the switch to zeitwerk?)
2019-12-13 18:19:41 -06:00
evazion da84e3a2f2 twitter: replace twitter gem with our own API client.
The twitter gem had several problems:

* It's been unmaintained for over a year.
* It pulled in a lot of dependencies, many of which were outdated. In
  particular, it locked the `http` gem to version 3.3, preventing us
  from upgrading to 4.2.
* It raised exceptions on normal error conditions, like for deleted
  tweets or suspended users, which we really don't want.
* We had to wrap it to provide caching.

Changes:

* Fixes #4226 (Exception when creating new artists entries for suspended
  Twitter accounts)
* Drop support for scraping images from summary cards. Summary cards
  are the previews you get when you link to a website in a tweet. These
  preview images aren't always the best image.
2019-12-13 17:27:03 -06:00
evazion 0b556ece1c Add Danbooru::Http client.
This is a wrapper around the http.rb gem that provides caching.
2019-12-13 15:32:21 -06:00
evazion ddb0e4d3ce config: refactor secret_key_base initialization. 2019-12-13 04:21:04 -06:00
evazion 6382aec85e config: update to Rails 6.0 defaults. 2019-12-13 04:21:04 -06:00
evazion fc5bce5595 redis: bump timeout settings. 2019-12-13 03:13:17 -06:00
evazion ea15b525f8 config: clean up filter_parameters initializer. 2019-12-13 03:05:46 -06:00
evazion a4e587aa6a config: refactor email settings.
* Add `Danbooru.config.mail_delivery_method` option.
* Remove `Danbooru.config.aws_ses_enabled?` option.
* Replace `Danbooru.config.aws_ses_options` with `Danbooru.config.mail_settings`.
2019-12-13 03:00:12 -06:00
evazion 33e3754c2d Update gems. 2019-12-13 02:14:20 -06:00
evazion 316690f393 storage manager: remove S3 backend.
Remove in favor of the rclone S3 backend.
2019-12-13 02:14:14 -06:00
evazion 92aca9ed2d storage manager: remove fog backend.
Remove in favor of rclone.
2019-12-13 01:45:43 -06:00
evazion 8e93b0fc6c /tags: fix link to [[help:tags]] in subnav menu. 2019-12-11 18:18:12 -06:00
evazion 99a1a408cd /artists/banned, /favorites: fix redirects for non-html requests.
ref: https://danbooru.donmai.us/forum_topics/9127?page=287#forum_post_161549
2019-12-11 02:27:41 -06:00
evazion afea704b55 storage manager: add rclone backend. 2019-12-11 01:44:23 -06:00
evazion 2e6486ab5f BURs: fix exception in category change requests for new tags.
`category blah -> character` failed when `blah` didn't exist yet.
2019-12-10 15:17:10 -06:00
evazion 2f27a4eddd image resizer: fix incompatibility with libvips-8.8.
In libvips-8.8 the `auto_rotate` option was replaced with `no_rotate`.
Using `auto_rotate` in libvips-8.8 fails, so we need a version check
here.
2019-12-10 14:04:40 -06:00
evazion 90f64eb407 image resizer: remove shell fallback for old versions of libvips.
Remove fallback for old versions of Debian. Debian stable now provides
libvips 8.7.
2019-12-10 14:04:40 -06:00
evazion 4b426ec5b9 storage manager: fix b2 storage bugs.
* B2 doesn't allow the path to start with a '/' character.
* When storing the file, we have to rewind the file pointer to make sure
  we get the whole file.
2019-12-10 14:04:40 -06:00
evazion e4f4326982 storage manager: add backblaze b2 backend. 2019-12-10 02:04:32 -06:00
evazion 6b165a90f8 tags: fix negative tag counts not being regenerated. 2019-12-10 01:43:05 -06:00
evazion 6196f7ba67 BURs: fix exception when estimating post counts of category changes.
Fix an error in operator precedence:

> sum + Tag.find_by_name(token[1]).try(:post_count) || 0

This was treated as `(sum + X) || 0` not `sum + (X || 0)` as intended.
This failed when X was nil.
2019-12-10 01:43:05 -06:00
evazion e906b902d8 circleci: reduce parallelism
Fix circleci builds not running because parallelism was set too high (free plan is limited to 4x).
2019-12-08 00:43:39 -06:00
evazion f24220982a seo: don't noindex /posts?tags=order:rank. 2019-12-07 22:18:58 -06:00
evazion fdffd3bdcb BURs: fix "This request will be attached to" link.
ref: https://danbooru.donmai.us/forum_topics/9127?page=287#forum_post_161392
2019-12-07 20:09:03 -06:00
evazion 5394dbc3d2 tagging: lower happy/sad tag count thresholds.
Lower the frowny face tag threshold from 25 to 10 tags and the happy
face tag threshold from 35 to 20 tags.
2019-12-07 19:03:40 -06:00
evazion 5919b825d7 seo: don't hide the front page from web crawlers.
Don't mark the front page (empty tag search) as noindex.
2019-12-07 18:35:53 -06:00
evazion 81f7d14fa3 uploads: bump iqdb similarity threshold 65% -> 70%. 2019-12-07 11:24:39 -06:00
evazion ea718122da Fix #4219: Deviantart broke download urls when not logged in. 2019-12-06 22:54:08 -06:00
evazion 1c3b96dc4e deviantart: fix non-downloadable posts (#4219).
Adapted from https://github.com/lllusion3469/danbooru/commit/e51e1aa7ddb73e92541bfbcab5c2f8c0359a07dc.
2019-12-06 22:54:08 -06:00
evazion 2bffad9311 BURs: credit tag edits to DanbooruBot.
Credit tag edits that are performed as part of an alias, implication, or
mass update to DanbooruBot instead of the admin who approved the BUR.
2019-12-06 22:54:08 -06:00
evazion 620b81e7b9 Fix #4218: Can't install because Rails assets manifest is missing. 2019-12-06 02:44:10 -06:00
evazion 2be9c113e2 Fix #4222: unrecognized configuration parameter "default_table_access_method"
This option was introduced in Postgres 12 and isn't backwards compatible
with older Postgres versions.
2019-12-06 02:32:15 -06:00
evazion 669ba6fc8d upgrades: fix post-upgrade landing page.
* Fix the post-upgrade message showing the gift message instead of the
  normal upgrade message.

* Link back to Danbooru so people don't stay on Safebooru and get
  confused when they can't see hidden posts.
2019-12-06 02:26:11 -06:00
evazion f355503413 tests: fix recommended posts tests. 2019-12-06 01:33:52 -06:00
evazion 0c483cad15 config: fix references to Danbooru.config.app_name.
Danbooru.config.app_name is either Safebooru or Danbooru. Fix some
places where it should always be Danbooru.
2019-12-06 01:33:52 -06:00
evazion 06078ef172 danbooru_default_config.rb: remove unused config params. 2019-12-06 01:33:52 -06:00
evazion 5cdccf4b93 Update gems. 2019-12-06 01:33:52 -06:00
evazion 0a5d8f57d5 ruby: bump ruby version to 2.6.5. 2019-12-05 22:32:45 -06:00
evazion cb45aa6fe6 Remove unused automod code.
The DynamoDB update job was disabled a few months ago. Remove it
completely.
2019-12-03 10:45:18 -06:00
evazion a559278953 notes: fix scrollbars appearing when using certain fonts. 2019-12-02 21:14:41 -06:00
evazion 5d1a1cc87e Change github repo url to https://github.com/danbooru/danbooru.
The danbooru repo was moved to https://github.com/danbooru.
2019-12-02 17:33:40 -06:00
evazion 008e97a787 capistrano: reduce delayed job worker count (16 -> 12). 2019-12-02 16:57:26 -06:00
evazion 56a2fae26f Revert "Temp disable account upgrades."
This reverts commit c4cdba0874.
2019-12-02 16:53:06 -06:00
evazion 86a09a322f cloudflare: use new api token auth scheme.
Use Cloudflare's new API token authentication method to talk to
Cloudflare. This lets us use API tokens with minimal privileges set.

https://blog.cloudflare.com/api-tokens-general-availability/
2019-12-02 16:45:32 -06:00
evazion 27a1a90cf3 recommendations: allow filtering recs by tags. 2019-12-02 03:08:01 -06:00