Commit Graph
100 Commits
Author SHA1 Message Date
evazion f00641b3ac Fix #3998: Some artist histories throw exceptions. 2018-12-02 11:45:57 -06:00
evazion 811bad5a86 /source.json: include raw api responses in output (#3940). 2018-11-30 00:19:00 -06:00
evazion e8c3d92696 Fix #3977: DeviantArt: Support new wixmp.com urls. 2018-11-30 00:10:59 -06:00
evazion 8da3474a8b Fix #3994: Some deviantart images mistakenly choosing preview image. 2018-11-29 23:01:08 -06:00
evazion 600b17cd9f Fix #3961: Tags in dialog boxes sometimes colored incorrectly
Fix rules so that the `.ui-widget-content .category-0 a` rule for tags
overrides the `.ui-widget-content a` rule for normal links.
2018-11-24 10:55:38 -06:00
evazion d82418ed43 Fix #3988: ordpool:<name> fails for large pools.
Also fixes ordpool:<name> not returning all posts in the correct order
when searching for series pools that contain duplicate posts.
2018-11-16 22:48:17 -06:00
evazion 41ff05c121 artists: convert other_names to array (#3987). 2018-11-15 14:31:16 -06:00
evazion 29fdfc42a4 pools/gallery: allow searching for collection pools (#3992).
Default to showing only series pools when not doing a search. Otherwise,
when doing a search, show both series and collection pools.
2018-11-15 12:22:51 -06:00
evazion 4fcb82f2e6 Fix #3991: Loading post #1604318 is broken.
Fix exception in Pool#previous_post_id when the post id is not contained
in the pool.

This can happen when a post's pool_string lists the post as being in a
certain pool, but the post is not included in the pool's post_ids. Such
pool_string / post_ids inconsistencies exist because of past bugs.
2018-11-15 10:28:20 -06:00
evazion 741462ae68 artist versions: convert other_names, url_string to arrays (#3987). 2018-11-14 14:25:02 -06:00
evazion fe2698a011 tag implications: convert descendant_names to array (#3987). 2018-11-14 12:51:18 -06:00
evazion 308a5021b4 wiki pages: convert other_names to array (#3987). 2018-11-13 19:18:11 -06:00
evazion b660aeefd7 application record: add array_attribute method.
Add `array_attribute` method that defines helper methods for converting
array attributes to or from strings.
2018-11-13 19:18:11 -06:00
evazion bea8c2a4b8 nijie: fix failure to handle certain image urls.
Fix IMAGE_URL regex not matching urls of this form:

* https://pic04.nijie.info/nijie_picture/diff/main/287736_161475_20181112032855_1.png

This caused the illust id to not be parsed from the url, which led to `#image_url`
returning nil, which led to uploads failing because the url to download was missing.
2018-11-12 18:04:07 -06:00
evazion 8f6c710c6b tests: fix translated tags test failures. 2018-11-12 18:04:07 -06:00
evazion 7524d52276 Fix #3985: Uploads: 405 Method Not Allowed. 2018-11-11 20:18:21 -06:00
evazion 6a7cd6ce8e Fix #3984: Twitter: undefined method `first' for nil:NilClass.
Fix Sources::Strategies::Twitter#image_urls to return an empty array
instead of nil when the tweet doesn't contain any images.
2018-11-11 17:41:32 -06:00
evazion a20eba9ef7 Fix #3983: Uploads: NoMethodError - undefined method `>=' for nil:NilClass
* Rename Upload#download_for_upload to #get_file_for_upload.

* Fix #get_file_for_upload to raise error if no file or source url was given.

* Fix javascript upload validation to disallow submitting form if file is
  not present and the source is not an url.
2018-11-11 17:12:39 -06:00
evazion e10c6c6a30 Fix #3982: Uploads: URI::InvalidURIError - URI must be ascii only. 2018-11-11 12:17:58 -06:00
evazion eade33fa7c Fix #3981: Inconsistency between posts and pools. 2018-11-10 12:37:08 -06:00
evazion e69cbe7f81 pools: post_count fixups. 2018-11-08 19:35:17 -06:00
evazion fb7d83c54f pools: drop post_count column (fix #3667) 2018-11-08 15:35:41 -06:00
evazion 115ed16a96 pools: store post_ids as array instead of string (fix #3979) 2018-11-08 15:09:31 -06:00
evazion 572645d888 pools: cleanup unneeded code.
* create_mod_action_for_destroy didn't exist (pools are never destroyed).

* is_active and is_deleted are already initialized via database defaults.

* creator_name is already defined by belongs_to_creator.

* Returning true/false in validations does nothing.
2018-11-07 16:10:36 -06:00
evazion 1281481548 Fix #3978: Pool name/category validations not being enforced. 2018-11-07 16:10:16 -06:00
evazion a6aa75873d Fix #3976: DText external links appear broken. 2018-11-06 20:17:45 -06:00
evazion ed47db0e48 upload tags report: add controller test (#3975). 2018-11-06 18:29:27 -06:00
evazion 5c4a310589 Fix #3975: Upload tags report is broken. 2018-11-06 18:18:18 -06:00
evazion bd0bb658b8 Fix #3974: Pool galleries: link thumbnails to pools instead of posts. 2018-11-06 14:33:04 -06:00
evazion 841104f09a post presenter: fixup typo in 26c1eadf. 2018-11-06 13:15:09 -06:00
evazion ff9ce25b01 Fix #3973: Pool gallery is broken. 2018-11-06 13:11:11 -06:00
evazion 26c1eadf6a modqueue: move score highlighting from js to presenter.
The 'post-has-children' class was dropped because it was unused
('post-status-has-children' is already added elsewhere).
2018-11-06 10:42:48 -06:00
evazion 2eb284f31e modqueue: simplify detailed rejection dialog js. 2018-11-06 10:42:48 -06:00
evazion b730a86870 modqueue: clear detailed rejection form before each use.
Bug: in the modqueue, if a user does a detailed rejection of one post,
then tries to do a detailed rejection of another post, the form will
still be filled in with the rejection message from the previous post.
2018-11-06 10:42:48 -06:00
evazion 00f36605c4 modqueue: fix typo in 1d3eb584c 2018-11-05 17:27:33 -06:00
evazion 1cba439589 Fix #3971: Keyboard navigation inside pools is broken. 2018-11-05 13:04:21 -06:00
evazion 5b3f3253a4 related tags: fix broken translated tag names
ref: https://danbooru.donmai.us/forum_topics/9127?page=261#forum_post_152040
2018-11-05 12:54:53 -06:00
evazion 98cffc310b Fix pool elements controller tests. 2018-11-04 21:25:25 -06:00
evazion 29b6121a07 pools: refactor #neighbors + fix broken #neighbors tests. 2018-11-04 19:40:57 -06:00
evazion 628341f7f0 Fix #3969: Translated tags should ignore artist tags. 2018-11-04 17:07:35 -06:00
evazion 19b92acabc Fix #3970: Make "Copy all notes" not builder exclusive. 2018-11-04 16:42:55 -06:00
evazion 0152cbe39e moebooru: fix delegation to nil strategy (fixup for 5cf6a43). 2018-11-04 15:24:22 -06:00
evazion c7e6c2a44a posts: fix pixiv id parsing (fixup for 5cf6a43) 2018-11-04 14:22:29 -06:00
evazion 5cf6a43918 sources: fix sources sometimes choosing wrong strategy (fix #3968)
Fix sources choosing the wrong strategy when the referer belongs to a
different site (for example, when uploading a twitter post with a pixiv
referer).

* Fix `match?` to only consider the main url, not the referer.

* Change `match?` to match against a list of domains given by the `domains` method.

* Change `match?` to an instance method.
2018-11-04 13:00:17 -06:00
evazion f5012464ab Fix #3965: Extraneous API attributes.
Remove the updater_id/updater_ip_addr virtual attributes from
pools/notes. Juss pass them in as params to create_version instead.
2018-10-30 15:41:17 -05:00
evazion 39374a70d3 posts/show: rename tags params to q in various places.
Fixup for 011a6f1f7.
2018-10-30 11:32:07 -05:00
evazion 77a576d5ed related tags: strip http:// from artist urls. 2018-10-25 23:38:24 -05:00
evazion 705217d337 Fix new dtext shortlinks redirecting to nonexistent pages.
Fix the following dtext shortlinks redirecting to nonexistent pages:

* flag #1
* appeal #1
* mod action #1
* bur #1
2018-10-25 23:00:43 -05:00
evazion a2186c19dc Fix positioning of tag edit dialog box.
Bug: if you open the tag edit dialog with shift+e, close it, then open
it again, it won't be vertically centered when it opens the second time.

Fix: hide the related tags section *before* opening the dialog, not after.
Hiding it afterwards shifts the layout, which uncenters the dialog.
2018-10-25 22:39:29 -05:00
evazion 6148cb39a2 Fix nested blank search params not being stripped from searches.
From https://danbooru.donmai.us/forum_topics/9127?page=258#forum_post_151308:

    When you do a user search (from https://danbooru.donmai.us/users/search)
    the results only include those with someone in the inviter field.

The bug was that nested blank search params (/users?search[inviter][name_matches]=)
didn't get stripped from the search.
2018-10-17 16:11:44 -05:00
evazion 6d293dfde2 related tags: fix style issues. 2018-10-16 13:09:22 -05:00
evazion b166c8116a related tags: fix unnecessary .erb extensions, remove unused ids. 2018-10-15 18:42:04 -05:00
evazion 33ca028927 related tags: fix initialization logic for recent/frequent/translated/artist columns.
Initialize the recent tags, frequent tags, translated tags, and artist
tags columns only once, when the related tags section is first shown.

The related tags section is shown automatically when the 'Edit' tab is
opened, or by default on the uploads page.

This fixes the /related_tags.js and /source.js calls being triggered
every time the tag edit dialog box or the 'Edit' tab was opened.
2018-10-15 18:42:04 -05:00
evazion 6223f89a99 related tags: refactor /related_tags.js to avoid updating unchanged columns.
Refactor the /related_tags.js call so that when the "Related tags"
button is clicked, it only replaces the columns that actually changed,
not the entire related tags section.

This avoids rebuilding the Recent / Frequent / Translated Tags / Artist
columns every time the "Related tags" button is clicked.
2018-10-15 18:41:32 -05:00
evazion d536f75505 related tags: eliminate recent_tags cookie (#3955). 2018-10-12 21:20:06 -05:00
evazion ae52b487e8 related tags: eliminate favorite_tags cookie (#3955). 2018-10-12 21:18:15 -05:00
evazion 4e2944ee06 related tags: build html server-side instead of client-side. 2018-10-12 21:18:15 -05:00
evazion 5a05961bde related tags: factor partials out from post, upload edit forms. 2018-10-12 21:18:15 -05:00
evazion e329764276 Fix #3952: Adding animated_gif tag to a ugoira post breaks the player. 2018-10-10 23:50:36 -05:00
evazion 60ea46e1e7 Add sample newrelic config. 2018-10-09 20:11:44 -05:00
evazion 5e57cccd18 maintenance: log errors to rails log and newrelic. 2018-10-09 20:11:42 -05:00
evazion 6e54c37b04 maintenance: add rake tasks for maintenance jobs. 2018-10-09 20:11:24 -05:00
evazion 5201954413 maintenance: consolidate maintenance tasks in logical/maintenance.rb. 2018-10-09 20:11:23 -05:00
evazion 53a51310a3 tumblr: add canonical url tests (#3385). 2018-10-09 12:55:48 -05:00
evazion 16b1b72da5 tumblr: fix video urls not being recognized. 2018-10-09 12:44:59 -05:00
evazion 184a5ebf3e tumblr: fix _640 images not being recognized (#3944).
Fixes _640 images not being matched by the IMAGE regex and therefore not
being rewritten to the largest size.
2018-10-09 12:44:59 -05:00
evazion d874c68419 tumblr: fix image_urls when api data is unavailable. 2018-10-09 12:44:59 -05:00
evazion b0d7d90103 tumblr: extract info from url when api data is unavailable.
Derive the artist name / profile url / page url from the source URLs when
the API response is unavailable because the Tumblr post was deleted.

This fixes the artist finder to work on bad_tumblr_id posts.
2018-10-09 12:44:59 -05:00
evazion 0c31a5d6a9 tumblr: don't fail when api data is unavailable (#3948).
The api data is unavailable when the work is deleted (bad_tumblr_id), or
when the source is a direct image url with no page referer.
2018-10-09 12:44:59 -05:00
evazion 4c55c809b0 tumblr: don't fail when api key isn't configured. 2018-10-09 12:44:59 -05:00
evazion 8aed1e19b9 tumblr: remove obsolete cdn rewrite rule.
This cdn is no longer used by tumblr.
2018-10-09 12:44:59 -05:00
evazion 5d77f1db08 daily maintenance: remove dead tag pruner code. 2018-10-06 14:27:53 -05:00
evazion c8d538f618 moebooru: delegate to substrategy based on post source (#3911).
If the yande.re or konachan.com post has a source from a supported site,
for example Pixiv or Twitter, then delegate the artist and commentary
lookup to that substrategy.

Only do this for sources from recognized sites, not the null strategy.
2018-10-06 14:27:49 -05:00
evazion e5a4193dd4 moebooru: support batch bookmarklet previews (#3911). 2018-10-06 00:58:22 -05:00
evazion fdb6e4ecee moebooru: rewrite konachan urls for Post#normalized_source (#3911). 2018-10-06 00:58:22 -05:00
evazion 864349dc7b moebooru: fetch tags (#3911). 2018-10-06 00:58:22 -05:00
evazion 7eee77d520 moebooru: proxy images to avoid hotlink protection (#3911).
Fix image previews being broken on the upload page due to yande.re not
allowing hotlinking of images.
2018-10-06 00:58:22 -05:00
evazion 9301bf2f11 tests: fix post expungement test.
Delay jobs so the uploaded file isn't deleted immediately (see f6c928e660).
2018-10-06 00:58:22 -05:00
evazion 1e710e1ae0 tests: fix typo in artist controller test. 2018-10-04 21:55:17 -05:00
evazion f6c928e660 tests: fix upload service tests.
Fix regression in a45bd52e9. Delay jobs so that that the dead upload
pruner doesn't immediately prune new uploads.
2018-10-04 21:52:18 -05:00
evazion bb5f291112 artists: don't create new version when nothing changed.
Fix an issue where saving an artist entry without changing anything
would create a new artist version.
2018-10-04 20:01:38 -05:00
evazion 03cc3dfa50 artists: fix editing invalid urls in artist entries (fix #3720, #3927, #3781)
Convert to an autosave association on urls. This ensures that when we
save the artist we only validate the added urls, not bad urls that we're
trying to remove, and that url validation errors are propagated up to
the artist object.

This also fixes invalid urls being saved in the artist history despite
validation failing (#3720).
2018-10-04 19:49:16 -05:00
evazion c78dece411 tag corrections: remove distributed cache logic (#3943).
Remove logic for displaying the state of the tag category cache on both
servers.
2018-10-04 13:46:10 -05:00
evazion 4ab97a01bd Fix #3943: Eliminate legacy code for distributed memcached servers. 2018-10-04 13:22:49 -05:00
evazion 060112293b /users: add more search params. 2018-10-04 13:03:18 -05:00
evazion 0966a290e4 Fix #3941: Add ability to search users by inviter. 2018-10-04 12:44:59 -05:00
evazion 4fd949ca8d news updates: fix news updates not staying hidden.
ref: https://danbooru.donmai.us/forum_posts/151011

Bug: `Cookie.get("news-ticker") === key` always returned false because
the cookie was a string but the key was an integer.

Regressed in f72b32b27b after switching from `==` to `===`.
2018-10-02 13:28:41 -05:00
evazion d727e0e34c Fix #3939: Quoting a post with apostrophes replaces them with &#39;. 2018-10-01 20:24:00 -05:00
evazion bd3fb7d70e Post#normalized_source: fix for yande.re urls.
Fix regex for yande.re urls like this:

    https://files.yande.re/image/b66909b940e8d77accab7c9b25aa4dc3/yande.re%20377828.png
2018-10-01 20:03:21 -05:00
evazion 0c5452cdc3 Fix #3937: Blank lines in tagbox if certain taggroups are absent 2018-10-01 19:47:39 -05:00
evazion eeadd1ef11 artists/tags subnav: prefer direct tag count over Post#fast_count. 2018-10-01 17:51:48 -05:00
evazion 35eaf28822 Post#fast_count: lower timeout to 1 second. 2018-10-01 12:55:57 -05:00
evazion ccb57e802c Fix #3934: Post#fast_count has very slow worst case behavior. 2018-10-01 12:55:57 -05:00
evazion 215591403e uploads: fix 'rating:safe' not assigning the rating (#3929). 2018-10-01 11:09:00 -05:00
evazion 2ae7ec42df Post#fast_count: raise min cache lifetime to 3 minutes (#3925). 2018-10-01 10:38:15 -05:00
evazion 4425150298 Post#fast_count: fix cache expiry not being set (#3925). 2018-10-01 10:38:15 -05:00
evazion 151fa00933 tests: fix tests for /comments/new, /post_flags/new. 2018-10-01 10:38:15 -05:00
evazion 88a177e1d5 TagSetPresenter: refactor humanized_essential_tag_string.
Move Post#humanized_essential_tag_string to TagSetPresenter#humanized_essential_tag_string.

This allows humanized_essential_tag_string to reuse the same set of tags
already fetched by the tag set presenter for the sidebar.

This avoids fetching the tag categories from memcache again (via
Post#typed_tags) when we're already fetched the tags once before.

This also means it's no longer necessary to cache humanized_essential_tag_string
itself in memcache, since it can be generated as quickly as the sidebar taglist.
2018-09-30 21:52:24 -05:00
evazion 739bb1270c TagSetPresenter: refactor tag string for post edit form.
Move PostPresenter#categorized_tag_groups to TagSetPresenter#split_tag_list_text.

This allows split_tag_list_text to reuse the same set of tags already
fetched by the tag set presenter for the sidebar.

This avoids a memcache call to get the tag categories when rendering the
tag string for the post edit form.
2018-09-30 21:52:24 -05:00
evazion b1f2096d72 TagSetPresenter: refactor *_tag_list_html to avoid memcache calls.
Refactor the tag set presenter to get both the tag categories and the
tag counts in the same call to the database, instead of getting the
counts from the db and the categories from memcache.
2018-09-30 21:52:24 -05:00