* Perform backups synchronously inside `distribute_files` instead of
asynchronously in `queue_backup`. Asynchronous backups assumed that
files are stored on the local filesystem, which isn't true in general.
* Remove obsolete backup service classes.
Refactors the upload process to pass around temp files, rather than
passing around file paths and directly writing output to the local
filesystem. This way we can pass the storage manager the preview /
sample / original temp files, so it can deal with storage itself.
* Change Download::File#download! to return a temp file.
* Change DanbooruImageResizer and PixivUgoiraConverter to accept/return
temp files instead of file paths.
* Change Upload#generate_resizes to return temp files for previews and samples.
* Change Upload#generate_resizes to generate ugoira .webm samples
synchronously instead of asynchronously.
* Allow every controller to take the `search[id]` param.
* Parse the `search[id]` param the same way that the `id:<N>` metatag is
parsed. So `search[id]=1,2,3`, `search[id]=<42`, `search[id]=1..10`, for
example, are all accepted.
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.
* Adds a "Tags" field to the post replacement dialog box. The given tags
are added to the post after replacement.
* Prefills the Tags field with certain tags that usually need to be
removed after replacement: replaceme, image_sample, jpeg_artifacts, etc.
* Record "file://#{filename}" as the replacement url when the
replacement comes from an uploaded file.
* Record the actual url downloaded by the upload process otherwise. This
may be different from the url given by the user, since the upload
process may rewrite the url.
Adds a "Final Source" field to the post replacement dialog. If
specified, the post's source field will be changed to this value after
replacement.
This makes fixing the source back to the HTML page after
replacement easier.