Fixup for a bug in 134958d1. `Post.fast_count("pool:1537")` still
returned zero because `Tag.is_simple_tag?` incorrectly parsed
"pool:1537" as a simple tag, so Post.fast_count still looked for it in
the tags table and found the empty "pool:1537" tag.
Fixes Post#get_count_from_cache to only lookup the count in the tags
table when the search is for a single "simple" tag.
Check memcache when the search is not a simple tag:
* multi-tag searches (touhou rating:s)
* single metatag searches (rating:s, source:"foo bar")
* negated tags (-touhou)
* wildcard tags (*touhou*)
* or searches (~touhou)
Purges gentags with invalid names from the tags table. Addresses #3390
(Searching certain metatags results in an empty paginator) by removing
metatags from the tags table.
Fixes a bug from 9a3824a. When an artist entry is saved, `ArtistUrl.normalize`
is called on every URL, which calls `Sources::Site.new(url)`. This
raised NoStrategyError when an artist entry contained URLs that weren't
recognized by any strategy.
This also caused `Fetch source data` to fail in certain cases when it
attempted to find the artist.
Due to missing || operators, for Pawoo/Tumblr/Artstation uploads the
source wasn't changed from the direct image URL to the html page URL
after upload.
Fixes an `undefined method `gsub' for nil:NilClass` exception when fetching source
data for this url:
* /uploads/new?url=https%3A%2F%2Fuiti-ukumo.tumblr.com%2Fpost%2F156157443158%2F2016-12
Bug introduced in 3c524aa5: `url` wasn't initialized due to `@url = url`
being removed from Sources::Site#initialize.
`forum_post_id` failed to save due to mass-assignment protection.
This caused alias approval messages ("The tag alias foo -> bar (forum #1234) has been approved.")
to not include the "(forum #1234)" bit because the forum id was nil.
On the uploads page, trigger `Fetch source data` automatically when the
user pastes an URL into the source field. Silently ignore invalid URLs
so that we don't trigger spurious errors when the user types in a source
manually.
On the uploads page, don't call /artist/finder.json to find the artist
on page load. Instead have `Fetch source data` fill in the artist using
the `artists` data returned by the `/source.json` call.
* In the `Fetch source data` box, list the Danbooru artist tag(s) that
were found beside the artist name.
* Unify `Fetch source data` code that was duplicated between the
uploads page and the post show page.
* Allow mousing over the upload limit on profile pages to show the full
formula for the upload limit calculation. In particular, show how the
upload limit multiplier is derived from the deletion confidence.
* Refactor to avoid duplicating upload limit calculations in the
presenter, as much as possible.
Bug: if the url_string had leading spaces, when it was split the
resulting array contained the empty string, which led to a validation
error when trying to save the urls.
Fixup for #3247.
When replacing a post with the same file, don't queue a deletion and
don't leave a comment or modaction. There's no need to do these things
when we're restoring a missing or corrupted image with the original file.
* Set parent IDs with `update` instead of `update_column` /
`update_all` when reparenting children. This fixes it so that new post
versions are saved and the has_children flag is set on the new parent.
* Slightly simplify logic of update_children_on_destroy: the single
child case is subsumed by the multi-child case.
Don't silently ignore attempts to remove posts from deleted pools.
Remove the restriction on removing posts from deleted pools instead (ref: #1109).
Fixes failure to remove posts from deleted pools during expungement.
* Change Post#pools to return all pools, including deleted pools. This
fixes remove_all_from_pools to remove the post from deleted pools too.
* Change other users of Post#pools to explicitly select undeleted pools.
Bug: resizing the tag edit dialog then expanding the related tags
section doesn't resize the dialog to fit the expanded related tags
section. Instead a scrollbar appears.
Fixes this by expanding the dialog's height when the related tags are
shown.
Fixes these issues with the detachable tag edit dialog:
* Moving the edit dialog then expanding the related tags causes the
related tags to overflow outside the dialog.
* Expanding the related tags, moving the edit dialog, then collapsing
the tags causes the dialog to not resize back to its minimized size.