Commit Graph
100 Commits
Author SHA1 Message Date
evazion 01eda51020 tests: add webm/mp4 upload tests. 2018-04-06 19:56:17 -05:00
evazion e7eee185f7 Fix #3607: Webm / mp4 uploads broken. 2018-04-06 19:55:26 -05:00
evazion a03270dbf1 Add about:userscripts to site map. 2018-04-05 16:52:46 -05:00
evazion 9b62b78183 Fix #3601: Broken URLs in /posts.atom feed. 2018-04-05 16:46:23 -05:00
evazion a432980f85 Fix "wrong number of arguments (given 3, expected 2)" in Post#file_url. 2018-04-05 15:33:47 -05:00
evazion 8e457c7331 Disable user:<name> blacklists (temp fix for #3596). 2018-04-05 14:38:44 -05:00
evazion 084fcd91ed Only generate tagged filenames for URLs on post show pages (#3597).
Don't generate tagged filenames for urls in the data attributes on
thumbnails, or in the /posts.json api.
2018-04-05 14:20:37 -05:00
evazion 14977397fb Fix "ArgumentError - wrong number of arguments" during tagging. 2018-04-05 13:27:37 -05:00
evazion c19a1b83a9 Fix #3573: commentary: add source citation when fetching cross-site. 2018-03-31 17:20:20 -05:00
evazion f15f2cbb81 Fix #3581: Mod Dashboard: exclude or mark deleted comments. 2018-03-31 13:14:41 -05:00
evazion 8fd9d374ca Fix #3583: Copying notes should copy tags to destination. 2018-03-31 12:58:56 -05:00
evazion 8e7ad9eb97 Post#copy_notes_to: wrap in transaction. 2018-03-31 11:44:49 -05:00
evazion 04ecca6a06 Fix #3591: DeviantArt commentaries: strip embedded image/text thumbs. 2018-03-31 11:27:14 -05:00
evazion 75cc1421a3 Fix #3590: Superfluous space added on certain autocompletions.
Bug: searching for /wiki_pages?search[title]=touhou%20 didn't find the
'touhou' wiki. The space wasn't stripped when the title was normalized.
2018-03-30 22:24:34 -05:00
evazion 80219a0ccf commentaries: replace <img> tags with dtext links (#3586)
Replace <img> tags with dtext links, unless the <img> tag is already
inside an <a> tag.

Also strip Unicode spaces from DeviantArt commentaries.
2018-03-30 21:42:51 -05:00
evazion b185efbb5f tumblr commentaries: include asker's name in ask posts (#3586). 2018-03-30 21:42:51 -05:00
evazion 74d46708c7 INSTALL.debian: bump ruby version to 2.5.1 (4ff5af626). 2018-03-30 18:58:18 -05:00
evazion fd055a894b DanbooruImageResizer: workaround libvips-8.4 incompatibility. 2018-03-29 21:41:22 -05:00
evazion c0c41dd369 uploads: add limits on max image dimensions. 2018-03-29 19:24:41 -05:00
evazion be0c2cfcfa posts: fix incorrect large_file_url for animated_gifs.
For animated_gif posts, large_file_url was returning
"/data/sample-$md5.jpg" instead of "/data/$md5.gif".
2018-03-28 19:17:15 -05:00
evazion dc9b7e5bda Fix #3582: Switch from ImageMagick to libvips 2018-03-28 17:15:57 -05:00
evazion 619a2055fe tests: add storage manager tests. 2018-03-20 19:49:58 -05:00
evazion d089be9f8a tests: fix upload tests. 2018-03-20 19:49:58 -05:00
evazion 41a4ff15cd posts: remove unused file path / url methods.
* Remove file_path_for, cropped_file_url (dead code)
* Remove complete_preview_file_url (preview_file_url now returns absolute links)
* Remove `file_name` (only used for Download link in sidebar)
2018-03-20 19:49:55 -05:00
evazion b7f7187f63 posts: use storage manager to delete files. 2018-03-20 19:49:06 -05:00
evazion f0bf1bc66e posts: use storage manager to backup files.
* 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.
2018-03-20 19:49:06 -05:00
evazion 6d0d1a3ce9 posts: use storage manager to build file urls. 2018-03-20 19:49:06 -05:00
evazion c76463f34d uploads: use storage manager to distribute files.
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.
2018-03-20 19:49:06 -05:00
evazion 60dcfbfbdd uploads: autotag animated_gif/png during upload.
Move animated_gif / animated_png autotagging to take place during
uploading, instead of during tag editing. We can't generally assume the
file will be present on the local filesystem after uploading.
2018-03-20 19:49:06 -05:00
evazion 2286ccfca8 uploads: clean up process_upload.
* Remove `initialize_status` (status already defaults to pending in database)
* Remove `has_dimensions?` (always returns true)
* Remove `async_conversion?` (dead code)
* Remove `validate_file_exists` (unneeded checks)
* Simplify `calculate_dimensions`
* Merge `file_header_to_content_type` with `content_type_to_file_ext` (content type isn't used elsewhere)
2018-03-20 19:49:06 -05:00
evazion b0c7d9c185 Add storage managers (local, sftp, s3, hybrid). 2018-03-20 19:49:06 -05:00
evazion 8a012d4c91 Remove unused mobile mode code (#3206).
Mobile mode was removed in 31e36cf.
2018-03-20 02:29:06 -05:00
evazion 44c604521e Fix #3572: Install script installs wrong ruby version. 2018-03-20 02:21:43 -05:00
evazion 5113aec937 artist finder: fix bogus matches for nijie. 2018-03-03 11:26:15 -06:00
evazion feaad0bbd0 nginx.conf: fix inconsistent client_max_body_size. 2018-02-27 18:22:37 -06:00
evazion 5ad06a4034 Fix #3552: Upload filesize limits can be bypassed.
* Change `http_get_streaming` to write the output file directly,
  instead of taking a callback.

* Track the filesize as the download progresses and abort when it
  exceeds the limit.

* Don't save the Content-Type (it's not used anywhere).
2018-02-27 18:22:34 -06:00
evazion 9b89f0f54c Fix #3518: Don't prune mod actions. 2018-02-27 18:15:53 -06:00
evazion 78aba1c5b1 Fix #3554: approving BUR with nil forum_post_id doesn't update forum.
Wrap `approve!` and `reject!` in transactions so that if there's an
error in approving or rejecting a BUR, it leaves the BUR's status
unchanged instead of updating the BUR but not updating the forum.
2018-02-24 15:04:57 -06:00
evazion 2b8767d7f4 BulkUpdateRequest#approve!: don't swallow exceptions.
Rescue `AliasAndImplicationImporter::Error` instead of `Exception`.
2018-02-24 14:37:02 -06:00
evazion c9eee7e4d4 Fix #3528: Prevent CloudFlare from altering images. 2018-02-24 13:42:00 -06:00
evazion b859a1f714 downloads: add tests for untested sites. 2018-02-24 13:42:00 -06:00
evazion e48b75c261 downloads: rewrite url in download!, not http_get_streaming.
Refactor Downloads::File#http_get_streaming to just download the given
url, not rewrite it.

Don't clobber @source or @data in `#size` either.
2018-02-24 11:23:27 -06:00
evazion 7157251657 Upgrade to jquery-2.2.4 (#3548). 2018-02-24 10:43:12 -06:00
evazion 3fefb73e90 Fix #3561: Tumblr: support answer posts. 2018-02-24 10:31:59 -06:00
evazion c482175050 Fix #3558: Autocomplete: negated metatags aren't completed.
Fix Danbooru.Autocomplete.parse_query to strip prefixes off of
metatags.
2018-02-19 23:57:46 -06:00
evazion d8e195d168 autocomplete: unify autocomplete options.
Use a single set of default options so that autocomplete behaves
the same way everywhere.
2018-02-18 19:22:46 -06:00
evazion 4754daf594 autocomplete: unify menu item rendering.
* Use `Danbooru.Autocomplete.render_item` for all menu item rendering.
  Fixes usernames not being colorized when completing mentions, and post
  counts not being shown when completing pools on the /pools page.

* Make the /pools page autocomplete pool names the same way that the
  pool:<name> metatag does. Previously autocomplete on the /pools page
  listed most recently updated pools first; now it lists largest pools first.
2018-02-18 19:22:46 -06:00
evazion 962842815d autocomplete: move artist/pool/wiki autocompletion to autocomplete.js.
* Move all autocomplete code to autocomplete.js.

* Mark autocompleted fields with `data-autocomplete="<type>"` attributes,
  instead of hardcoding input field IDs in the javascript.
2018-02-18 19:22:17 -06:00
evazion a058a77c07 ApplicationHelper#search_field: accept html attributes on <input> field.
Rewrite `search_field` to allow setting `data-*` attributes on the <input> field.
2018-02-18 18:34:18 -06:00
evazion 4bc5cc8ccd bulk update requests: allow admins to edit forum topic/post ids (#3554). 2018-02-18 13:08:53 -06:00
evazion f07aa1b170 bulk update requests: convert to strong params. 2018-02-18 12:12:12 -06:00
evazion 263fd0eef1 Fix #3528: Prevent CloudFlare from altering images. 2018-02-17 11:43:27 -06:00
evazion 1eff41a6f9 downloads: rewrite url in download!, not http_get_streaming.
Refactor Downloads::File#http_get_streaming to just download the given
url, not rewrite it.

Don't clobber @source or @data in `#size` either.
2018-02-17 11:11:50 -06:00
evazion 9aa0af82ba Upgrade to jquery-1.12.4; add jquery-migrate plugin (#3548). 2018-02-15 21:38:16 -06:00
evazion 0e259bd4f6 autocomplete: fix issues with Enter key.
* Disable autoFocus. This means that the first item in the autocomplete
  menu isn't automatically selected.

* Add Tab keybinding, to make the Tab key work as normal with autoFocus disabled.

* Fix the Enter key to 1) insert the selected tag when inside the
  autocomplete menu, and 2) submit the search as normal when not inside
  the autocomplete menu.
2018-02-14 22:09:14 -06:00
evazion b877c037b2 autocomplete: factor out insert_completion function. 2018-02-14 20:23:37 -06:00
evazion f0754c21f5 autocomplete: make enter key submit on exact match. 2018-02-13 10:52:43 -06:00
evazion ab86c2049f autocomplete: factor out parse_query function. 2018-02-13 10:36:20 -06:00
evazion e8ab5cdc4c Fix pool version ordering.
Pool version IDs aren't in the right order; order by updated_at instead.
2018-02-08 16:53:02 -06:00
evazion 84a0a89f4b Fix #3539: Open redirect vulnerabilities. 2018-02-07 19:52:52 -06:00
evazion 583520b97c pagination helpers: convert to strong params. 2018-02-07 18:07:45 -06:00
evazion cf27de2ec9 Fix #3532: Make Enter key accept current tag during autocomplete.
Previously we patched the jqueryui-autocomplete library in order to
customize how the Tab and Enter keys behaved. Specifically, we wanted to
prevent the Tab key from moving the focus out of the tag input box, and
we wanted to prevent the Enter key from submitting the page when editing tags.

These things can achieved without patching the library by using
`event.preventDefault` and `event.stopImmediatePropagation` to prevent
other event handlers from running after these keys trigger the
`autocompleteselect` event.
2018-02-06 19:11:01 -06:00
evazion f2a7d3c41a /janitor_trials, /ip_bans: fix default ordering. 2018-02-04 16:48:35 -06:00
evazion dac095f318 /user_feedbacks: change default order to created_at.
Order by created_at instead of by id because old feedbacks aren't in id order.
2018-02-04 16:43:00 -06:00
evazion d4298ea493 Fix #3527: Bookmarklet timeouts for Members. 2018-02-01 17:35:20 -06:00
evazion 5ea61c6921 /bans: fix undefined ordering when no params are passed.
Fixes the /bans listing being ordered randomly by default.
2018-01-28 15:38:12 -06:00
evazion 100c1d2828 Fix #3523: Feedback notification dmails should include the text of the feedback. 2018-01-28 14:32:38 -06:00
evazion 64186c004f Add pbs.twimg.com to artist finder blacklist.
ref: https://danbooru.donmai.us/forum_topics/14938.
2018-01-26 18:30:18 -06:00
evazion f8a5620768 Partial fix for #3514: Handle https://twitter.com/i/web/status/:id URL. 2018-01-23 23:07:21 -06:00
evazion 2833239fa0 Fix #3513: Missing rating error causes weird behavior in tag list on upload page.
Fix bug in the double submit prevention from #2789. Rather than
unbinding the enter key on submit, have the enter key click the submit
button instead. This avoids form submission when the submit button is disabled.
2018-01-21 11:55:24 -06:00
evazion 46b0f9e6d6 Update dotenv.
dotenv-2.2.1 no longer loads .env.local in the test environment. Load it
manually for backwards compatibility.
2018-01-20 19:04:48 -06:00
evazion 074a4be38f Update gems. 2018-01-20 19:04:48 -06:00
evazion a923a64220 tests: fix pixiv profile image test. 2018-01-20 14:51:05 -06:00
evazion 53f7207716 tests: remove bad_id pixiv test. 2018-01-20 14:50:44 -06:00
evazion 57c4d2a54f related tag calculator: fix unstable sorting of related tags.
Fix this test failure:

    1) Failure:
    RelatedTagCalculatorTest#test_: A related tag calculator should convert a hash into string format.
    [test/unit/related_tag_calculator_test.rb:65]:
    Expected: "aaa 3 bbb 3 ccc 2 ddd 1"
      Actual: "bbb 3 aaa 3 ccc 2 ddd 1"

The related tag string didn't use a stable sort. Sort first by tag
count, then by tag name.
2018-01-20 14:33:36 -06:00
evazion e596a7fd0f tests: fix <char>_(cosplay) alias test. 2018-01-20 14:26:16 -06:00
evazion 83ab90d495 tests: fix tag removal warning tests. 2018-01-20 13:59:21 -06:00
evazion 2deefcc090 Fix exception when viewing /favorite_groups while logged out.
Also fixes a test failure in the favgroups controller tests.
2018-01-20 13:47:41 -06:00
evazion e47c983cfd tests: fix pawoo tags test. 2018-01-20 13:25:13 -06:00
evazion c29785268d tests: fix iqdb controller test (#3479). 2018-01-20 13:22:05 -06:00
evazion ce06736374 tests: fix timestamp comparison in artist notes saving test.
Equality test failed due to microsecond level differences. Truncate to
seconds to avoid this.
2018-01-20 13:08:40 -06:00
evazion 3d09ce5e55 tests: fix status:active test for #3472. 2018-01-20 12:50:30 -06:00
evazion 989854b3dd Fix #3507: Include ban length in feedback. 2018-01-17 19:53:49 -06:00
evazion 7a0fb0f5d3 Fix #3500: Redirect API endpoints with md5 query param to correct format. 2018-01-14 20:36:57 -06:00
evazion 88f4a56890 Fix #3497: Invalid DText denial of service attack. 2018-01-14 16:14:18 -06:00
evazion 4f543671a2 tests: move test/helpers to test/test_helpers.
The Rails convention is for test/helpers to be used for testing the view
helpers in app/helpers. We were using it to store certain utility
methods instead. Move these to test/test_helpers so that test/helpers
can be used for its intended purpose.
2018-01-14 16:11:15 -06:00
evazion 7c8cfc1e31 Fix #3492: Add corrupted_image to list of default removed tags for replacements. 2018-01-03 17:44:59 -06:00
evazion f710710cbb PostSets::Post#hide_from_crawler?: hide all metatag searches from crawlers. 2017-12-31 12:27:05 -06:00
evazion f9ffa2b47a Fix #3484: /posts: don't show wiki tab for metatags. 2017-12-31 12:25:17 -06:00
evazion 89b523bdae Fix #3480: NoMethodError error when adding artist tag to post. 2017-12-30 16:07:52 -06:00
evazion 3e936748c0 Fix #3468: Approval queue should not show one's own uploads or previous approvals. 2017-12-28 19:36:37 -06:00
evazion 1ca2497015 Fix #3474: Spurious email notifications. 2017-12-28 18:50:08 -06:00
evazion 857fa24697 Fix #3473: Validation warnings for no artist/copyright are still shown on upload failure. 2017-12-28 18:19:28 -06:00
evazion d8eef6ef2b Fix #1563: Warn users attempting to upload with very few tags. 2017-12-27 15:04:00 -06:00
evazion ad74d9e75a Fix #3464: CurrentUser.ip_addr isn't set for anonymous users. 2017-12-27 13:34:20 -06:00
evazion 1fc2284874 /users/new: show error message when account signup fails. 2017-12-27 13:34:20 -06:00
evazion 32ac09ee48 Add test for registering sock puppet accounts. 2017-12-27 13:33:57 -06:00
evazion 48b67967b5 Fix #3457: Timeout when fetching source data from NicoSeiga. 2017-12-27 13:08:14 -06:00
evazion e34754c65c Possible fix for #3460: Timeout in update_last_ip_addr.
Set the user's statement timeout as soon as possible, before updating
anything in the database.
2017-12-27 12:42:11 -06:00
evazion 952b5f9245 Fix bogus artist finder matches for http://www.nicovideo.jp/user/1234. 2017-12-26 14:31:42 -06:00