Commit graph

897 commits

Author SHA1 Message Date
aceffc56ab
Fix SWF downloading for HTTPS URLs
TNT started using HTTPS URLs! And our old Ruby version (lol 😬) still requires explicit invocation to perform SSL during a request, so requests were failing!

Now, we explicitly build the `Net::HTTPS` object, and turn on `use_ssl` if it's an HTTPS URL! (The shorthand invocation didn't seem to have an option for this, that I could find!)
2021-06-12 02:23:18 -07:00
8d29f50392
Stop saving outfit images, use new URLs everywhere
Here, we turn off the hooks that enqueue outfit image updates, and we disconnect the `OutfitImageUploader` that manages uploaded S3 URLs, instead replacing it with an `image` method that simulates the same basic API.

This should cause _all_ views on Classic DTI to use the new outfit URLs. Some notable examples:
- The user's Outfits page
- The donations page
- The outfit page, and its sharing metadata

I hope I didn't miss anything in the views that will make this crash stuff! I tested the new model code in the Rails console, and checked it against invocations that I noticed when searching the codebase for `outfit.image` 🤞
2021-05-24 20:05:25 -07:00
3e8020cc73
Use impress-outfit-images.openneo.net outfit URLs
Oops, right, I meant to use the new `impress-outfit-images.openneo.net` host for this! It works just fine from `impress-2020.openneo.net` as the backing source right now, but I want these semi-permanent URLs to be a bit more decoupled.
2021-05-20 20:56:21 -07:00
b31a22d4a1
Start serving outfit images via Impress 2020
As part of our project to get off S3 and dramatically reduce costs, we're gonna start serving outfit images that Impress 2020 generates, fronted by Vercel's CDN cache! This should hopefully be just as fast in practice, without requiring an S3 storage cost. (Outfits whose thumbnails are pretty much unused will be evicted from the cache, or never stored in the first place—and regenerated back into the cache on-demand if needed.)

One important note is that the image at the URL will no longer be guaranteed to auto-update to reflect the changes to the outfit, because we're including `updated_at` in the URL for caching. (It also isn't guaranteed to _not_ auto-update, though 😅) Our hope is that people aren't using it for that use case so much! If so, though, we have some ways we could build live URLs without putting too much pressure on image generation, e.g. redirects 🤔

This change does _not_ disable actual outfit generation, because I want to keep that running until we see these new URLs succeed for folks. Gonna wait a bit and see if we get bug reports on them! Then, if all goes well, we'll stop enqueueing outfit image jobs altogether, and maybe wind down some of the infrastructure accordingly.
2021-05-20 20:52:19 -07:00
238a458131
Fix body ID bug saving SwfAsset outside modeling
Oops, if you saved `SwfAsset` outside of modeling code, the `item` field would be empty, and so `item.body_specific?` wouldn't happen.

This would trigger when you even just report a broken image!

Now, we always run the SQL query to check for that flag.
2021-03-16 10:40:01 -07:00
Matt Dunn-Rankin
6697b15413 More generously catch errors on userlookup
Okay so, userlookup stuff hasn't worked in years, because it requires a login now.

But apparently, somewhere recently, the code inside our `neopets` gem started hard crashing, because of assumptions we made about the document we'd get back.

I'm not sure why it only recently started crashing? or if I'm even necessarily right about that?

But anyway, I'm just doing the easiest safest (🤞🏻) change possible: being more generous with the errors we swallow.

Test Plan:
Deploy and cross fingers.
2019-10-27 14:24:21 -07:00
Matt Dunn-Rankin
c7d60e3e41 Add db field to override special color
Okay, fine, finally making this controllable from the db without requiring a deploy :P Setting this new field will cause `item.special_color` to return the corresponding color. This mainly affects what we show on the item page, and what colors we request for modeling on the homepage.
2018-05-09 14:10:20 -07:00
Matt Dunn-Rankin
7707580ed5
Update Neopia URLs to use HTTPS
We recently flipped the switch for various hosts to force HTTPS, yay! This includes `neopia.openneo.net`.

However, I forgot to change the URL scheme in this file. This meant that the form submit from the homepage would go to `http://neopia.openneo.net/`, then redirect to `https://neopia.openneo.net/`, but only preserve the form data in certain browsers. This change should fix that!

Note: This probably breaks the dev environment, where we don't have a cert for `https://neopia.dev.openneo.net`. I'll fix that some other time!
2018-04-16 20:36:50 -07:00
Matt Dunn-Rankin
711aca0008 hardcode more baby IDs :P
Interestingly, these items *are* correctly detecting their special
color on the homepage for model progress. So, we *do* have the ability
to detect this. But I don't have good item data locally, so it would
be hard to test this, so I'm just gonna go with the cheap solution
again, sorry XP
2018-02-25 14:45:13 -08:00
Matt Dunn-Rankin
9771ec834d whoops, accept 1-digit donation amounts! 2018-01-20 17:55:21 -08:00
Matt Dunn-Rankin
55477baa15 new donate layout for post-2017 campaign 2018-01-18 17:14:02 -08:00
Matt Dunn-Rankin
5cae876c46 ugh, one more bug fix? 2017-10-29 15:18:53 -07:00
Matt Dunn-Rankin
80e74da84f whoops, re-add check for explicitly_body_specific?
In bfd825d, we refactored the "is item body-specific?" check. In the process, we dropped the check for the manual override flag, `explicitly_body_specific?`. Not sure if it was an accident or if I was just _so_ confident that it was gonna work :P In any case, re-add the check!
2017-10-29 15:08:22 -07:00
Matt Dunn-Rankin
bd3b75c675 hardcode some color-specific items 😬 2017-10-21 13:32:01 -07:00
Matt Dunn-Rankin
d6ab0e71b3 new JN items URL format 2017-06-17 12:28:07 -07:00
Matt Dunn-Rankin
daa831e2b0 show gear image when no thumbnail URL present
Okay, surprise, the bug was unrelated to Camo config (though I'm glad I cleaned
that up anyway :P). We now, at a low level, serve a placeholder image for item
thumbnail URL if, for some reason, we don't have a good thumbnail URL on hand.
2017-04-01 10:29:12 -07:00
Matt Dunn-Rankin
f54683464f stop appending ?NO_CAMO_CONFIG when image proxying is disabled
One time I did a thing called Camo to try to get our HTTPS pages working,
because images.neopets.com not supporting HTTPS is crazy >_> I've diasbled it
these days, but it had debug behavior to append `?NO_CAMO_CONFIG` to all
proxied URLs when Camo was not configured.

When an item had no thumbnail URL for some reason (mall spider needs fixing,
maybe?), this caused Rails to try to map that empty string into the path
`/assets/?NO_CAMO_CONFIG`, which made Rails complain that it was trying to load
an asset that doesn't exist. This is probably a sign that using `image_tag` for
URLs that *should* be external URLs, but aren't strictly *guaranteed* to be, is
unwise - but, for now, I've just disabled that behavior. I hope Rails has a
better escape hatch for the empty string :P
2017-04-01 10:04:54 -07:00
Matt Dunn-Rankin
512b64a104 update campaign final stretch copy 2017-01-09 11:35:55 -08:00
Matt Dunn-Rankin
17f289f68f whoops, dont trigger autofilter checkbox if we *only* collapsed spaces 2017-01-09 11:16:42 -08:00
Matt Dunn-Rankin
0679d60c82 quote the "fits" filter string if the color/species contains spaces 2017-01-08 12:14:38 -08:00
Matt Dunn-Rankin
dc582e5980 donation error handling 2017-01-07 19:19:44 -08:00
Matt Dunn-Rankin
3b609052d5 donate form visual nits 2017-01-05 20:46:02 -08:00
Matt Dunn-Rankin
c1c2b11a40 ooof, got the amount wrong D: 2017-01-05 18:52:08 -08:00
Matt Dunn-Rankin
6b81da82b1 new donate form :) new colors and new amount chooser 2017-01-05 15:47:12 -08:00
Matt Dunn-Rankin
f5fb8711fc improved donation campaign nav 2017-01-05 13:06:50 -08:00
Matt Dunn-Rankin
6a331bf79b whoops, fix typo in donation fine print 2017-01-05 15:38:17 -05:00
Matchu
b5442d0f3f news posts read from the database, with a campaign-supplement classname option :) 2015-09-26 20:37:03 -07:00
Matchu
49cd93087a get STUCK, actions bar! get. stuck. 2015-09-26 20:09:13 -07:00
Matchu
40f508247d hint at the select all button 2015-09-26 19:59:16 -07:00
Matchu
e4757b0ee4 deselect all 2015-09-26 19:58:31 -07:00
Matchu
e6a2b978f1 oh huh. looks like remove/move are ready. 2015-09-26 19:55:09 -07:00
Matchu
6bba2ae288 bulk action bar renders, but does nothing 2015-09-26 15:31:55 -07:00
Matchu
776b2e864a fun hacks to persist checkboxes after all hangers update 2015-09-26 15:04:59 -07:00
Matchu
48185fd5b8 bulk actions toolbar, with selected items count
TODO: adding an item resets the checked state of everything, boooo.
this is why react is better :'(
2015-09-26 15:00:31 -07:00
Matchu
621c768921 Select All + visual feedback 2015-09-26 14:22:11 -07:00
Matchu
0aca529e27 checkbox for closet management
drop the remove link (just use quantity: 0)
to create a bigger checkbox label target
2015-09-26 13:56:25 -07:00
Matchu
9108703dd0 womp womp, our source link was broken. thanks, dice. 2015-09-26 13:18:58 -07:00
Matchu
b953e572a3 hide desc on complete campaign; add toggle link 2015-09-26 13:17:38 -07:00
Matchu
4ae43f61ea good-enough zeroclipboard implementation 2015-09-24 20:50:27 -07:00
Matchu
bbd11adefa collapse search on empty string 2015-09-24 20:18:15 -07:00
Matchu
c8b9833dee fix the necklace/collar advanced search bug!
Ooh, this one was nasty, and only one symptom ever got noticed:

1. Pick "Occupies: Collar" in Advanced Search.
   You get the text query "occupies:necklace".
2. And, if you try to do "occupies:collar" even in text-based search,
   you *also* get the results from "occupies:necklace" mixed in with
   the correct results.

The trick is that, in Spanish, zone 24 (necklace) is named "collar",
as is zone 27 (collar). Not sure what to do for Spanish, but this
issue also leaked into English: we really don't want English to return
results for Spanish-named zones.

This is a tricky problem, though, because it'd be nice for es users
to be able to type "occupies:hat". I think we'll have to do the quick
fix for now, though, and just only interpret the query in the current
locale.
2015-09-24 19:51:45 -07:00
Matchu
973bbbcb0a even better campaign copy: complete text + ceil to $5 for the finish-up pitch 2015-09-24 19:39:49 -07:00
Matchu
90ac52dc74 tweak the fine print phrasing again ;P 2015-09-22 22:41:00 -07:00
Matchu
2ca784c3a2 thank-you message automatically deploys on campaign success 2015-09-22 22:40:51 -07:00
Matchu
5466cc9301 when remaining costs < $200, pitch harder 2015-09-22 22:19:43 -07:00
d8038f2fbf prefer scraped rainbow pool images over pet images 2015-09-05 18:48:41 +00:00
7b17f70635 show campaign on trade lists
Turns out ~22% of our users initially land on a trade list.
We like to keep the campaign off the pages where space is at a
premium, so we try to whitelist it to major landing pages in order
to avoid accidentally creating a bad experience on some page :)
2015-09-05 17:53:15 +00:00
Matchu
a4079d2e0c campaign 2015 copy updates 2015-08-30 16:49:46 -07:00
Matchu
4a539f32db hope I did this swfimages fix right xD 2015-08-05 20:22:23 -04:00
Matchu
b11d7a8c9c oh dang, did we just fix most of the mixed content? 2015-08-05 20:11:08 -04:00
Matchu
4a18f22571 camo the emotes on the campaign show page 2015-08-05 19:41:42 -04:00
Matchu
5d2c226357 yum, new campaigns 2015-08-05 19:26:12 -04:00
Matchu
6682bf2d3b same-protocol Neopia requests 2015-08-05 18:57:08 -04:00
Matchu
0d88a6dd6f use same-protocol URLs for javascript libraries, so HTTPS is happy 2015-08-05 18:36:28 -04:00
Matchu
eeb00e0ccf Merge branch 'import_gallery' 2015-07-28 15:06:18 -04:00
Matchu
b9a9ce3890 import from gallery
some of the stuff to support single-pageiness feels a bit hacky. ah, well :P
2015-07-28 15:05:40 -04:00
Matchu
954866a3d3 update NeopetsUser TODOs 2015-07-27 19:37:29 -04:00
Matchu
bce2634d2a remove old safety deposit class 2015-07-27 19:36:24 -04:00
Matchu
dfb3aeb9de 404 on bad page type name 2015-07-27 19:36:13 -04:00
Matchu
b9e3d7bff5 ta da, proper importing refactor 2015-07-27 19:32:59 -04:00
Matchu
8a61280320 whoops; Neopia uses ImpressUser, so make sure it can access it 2015-07-27 13:33:15 -04:00
Matchu
deb0aa90f0 refactor importing 2015-07-27 13:25:24 -04:00
Matchu
c5c587fab1 stop crashing when trying to translate item names 2015-07-27 13:23:46 -04:00
Matchu
dcf254a78d finally let people remove all items from the list at once.
I've been doing this manually via email for a long time,
since building new stuff in the logged-in world was a pain in the old env.

But now here we are! Finally, finally :)
2015-07-19 12:35:49 -04:00
Matchu
1070778398 allow pet data submissions from private-block IPs, not just 127.0.0.1 2015-07-18 01:04:53 -04:00
Matchu
8e83adabbd whoops, we broke start from scratch previews when neopia is online xP
(I wonder why nobody noticed ;P)
2015-07-16 22:37:09 -04:00
Matchu
b639453f61 on a fresh copy of the site, hide the latest contribution section 2015-07-16 18:39:43 -04:00
Matchu
e9449b70f2 update impress repository URL :) 2015-07-16 14:21:35 -04:00
093ae27ae8 get upset when we neopets.com bans us :P 2015-07-15 00:09:17 -04:00
169c587e42 1-second timeout on bulk modeling 2015-07-07 12:27:13 -04:00
eb665f10a4 use MobileService for loading the pets for a username 2015-05-28 17:12:39 -05:00
b0cc4c2396 swf links 2015-05-03 16:57:42 -05:00
bf9f9ed82e download links for each image size 2015-05-03 16:37:24 -05:00
caaf524060 download link in left sidebar 2015-05-03 16:01:08 -05:00
9ca68b02b2 parse "fits:8-bit-chomby" as "fits 8-bit chomby" rather than "fits 8 bit"
The "fits:8-bit-chomby" search filter was being read as color=8, species=bit.
Now, we split from the right-hand side of the filter instead.

Still a problem for anyone who explicitly types the Spanish/Portuguese
ordering of "fits:chomby-8-bits", but I'm okay with this cheap fix, since
I bet literally nobody has done that in the past month, if ever :P
2015-04-07 23:13:22 -05:00
0e6f823154 toggle whether a donation campaign is advertised 2015-02-25 13:49:18 -06:00
a11140f9e1 stop breaking on donations that delete their outfit 2015-02-25 13:42:35 -06:00
a3c31f7042 yum, we accept bitcoin! 2014-12-23 23:22:15 -05:00
6f92df17a4 remove the image mode faq link, because it is now super outdated :/ 2014-12-22 12:26:37 -05:00
9c6399a23d Baby Raindorf Hoodie Robe is annoying. special case it as baby-fitting in the worst hack possible ;P 2014-12-17 00:54:55 -06:00
026bdbbc0c warn users with trading lists but no neomail address 2014-12-02 10:05:11 -06:00
f11d95c273 drop dat donation banner, yo 2014-11-20 14:27:16 -06:00
4d0c72f3b1 Stop freaking out if we try to remove a closet hanger but it's already dropped from search 2014-11-10 13:22:00 -06:00
b98021d704 fix type in meta query; chrome likes it, but firefox doesnt 2014-10-19 15:44:54 -05:00
41da9d0629 swap the homepage forms back in anticipation of Neopets.com uptime 2014-09-19 07:26:30 -05:00
8e3a2f59e9 swap the new outfit forms because downtime 2014-09-17 22:48:48 -05:00
29c58cf1a3 thank you note, future donations explanation 2014-09-17 14:28:50 -05:00
e2f4ff383f further notes on payment and precise currency 2014-09-13 22:59:44 -05:00
cf2550c7bc for large donations, show a banner instead of their placeholder outfits 2014-09-13 20:54:39 -05:00
51700a7386 better donation feature outfit validation
In particular, outfit_id == 0 would cause outfit_id? to
return false, so it wouldn't run the outfit presence
validation, so /donations/features would try to load
outfit #0 and fail.

Also, flash[:alert] instead of flash[:error] when outfit_id
is bad.
2014-09-13 14:16:50 -05:00
485a679f5e better fit longer names in donated outfit footer 2014-09-12 16:37:49 -05:00
d179ffd9b6 whoops; get the To address right for donation notifications 2014-09-12 14:29:20 -05:00
75e9fcbe5a when there are no donors yet, draw less attention to that fact :P 2014-09-11 20:58:43 -05:00
be87039cba copy edits 2014-09-11 20:43:40 -05:00
94d9aab547 campaign bar in infinite closet 2014-09-11 20:12:43 -05:00
8f0f37b4c8 campaign for outfit pages 2014-09-11 20:10:48 -05:00
eb2a42b1d1 better campaign bar layout, on donate page and in general 2014-09-11 20:10:32 -05:00
8775bfb9fd but don't freak out on the homepage if there's no active campaign 2014-09-11 18:12:07 -05:00
d588253c4c campaign banner on homepage is pretty 2014-09-11 18:09:00 -05:00
2e08a1261b don't overflow the progress bar 2014-09-11 17:47:42 -05:00
8e22c271a4 track campaign progress 2014-09-11 17:40:37 -05:00
04a328e6ee homepage outfit features 2014-09-10 15:38:26 -05:00
f11f6374da donation mailer 2014-09-10 14:32:54 -05:00
90b45dcecd edit featured outfits on donation page 2014-09-09 23:16:02 -05:00
59d5e99312 donation show form and basic name updating 2014-09-09 22:04:17 -05:00
595b1c2fc5 charge and record donations 2014-09-09 21:11:55 -05:00
2a1a3c61fa stripe checkout image; breaks in development because dev copy of image is not public :P 2014-09-09 20:41:58 -05:00
0afc8ddb2b stripe checkout; tokens not yet passed anywhere 2014-09-09 20:24:27 -05:00
1d7ca7cec2 new donations page mockup; temporary outfits and old campaign as placeholders 2014-09-09 18:02:49 -05:00
fffd3ac2e6 typo in CSS selector: chrome interprets the intent, but firefox errors out 2014-08-25 21:16:53 -05:00
05841d091b update terms 2014-08-25 20:57:07 -05:00
2594497434 whoops; if page 2 of a search had 1 item, we jumped right to it, as if it
were the *only* result. now only do that redirect if *total* results == 1.

Mad props to diceroll123. Welcome to the commit log, bro.
2014-06-15 17:35:08 -07:00
5644ecd67b fall back to image if flash unsupported in outfits#show (e.g. mobile) 2014-05-29 23:00:03 -07:00
e0ddf543ee increase outfits#show preview size to 600x600 2014-05-29 22:59:36 -07:00
79a96b7670 lookup link alongside neomail 2014-05-15 22:34:00 -07:00
ebb0a75b72 whoops; if no contact neopets username, return nil 2014-04-25 23:04:59 -05:00
dd0a3cd350 dont allow blank name submissions in modeling hub small form 2014-04-16 11:11:15 -05:00
b429c30d3b if user submits outfits#new name form with no name, use the fallback job 2014-04-16 11:02:44 -05:00
eda80a8dc7 double whoops; the actual problem was that i hadnt restarted the background workers :P 2014-04-05 23:52:24 -05:00
9fe19e00c7 whoops; now that we index by item fit, update item after asset save 2014-04-05 23:48:36 -05:00
4338ae8b15 default fits checkbox to on 2014-04-05 20:02:24 -05:00
a8a02cca01 also strip autofilter from query on page reload 2014-04-05 18:57:03 -05:00
44ff466a64 advanced search by pet type fit :) 2014-04-05 18:48:20 -05:00
e5771e6f1d double yum, autofiltering in basic searches! not yet in advanced 2014-04-05 18:13:42 -05:00
0310598403 whoops; body_id=0 also fits everyone 2014-04-05 17:58:05 -05:00
0fe31ee79a basic fits functionality in search 2014-04-05 17:43:54 -05:00
acbec2ad5e design mockup for autofilter; no new behavior yet 2014-04-05 17:16:35 -05:00
a375707e40 handle errors from neopia, finally! 2014-04-04 15:53:53 -05:00
d25d2b3398 big picture mode 2014-04-04 14:36:35 -05:00
868bbcdd41 yank tips in favor of border and autofocus for item search 2014-04-04 14:17:57 -05:00
3650525671 make those tips big font now that theres no image in the way 2014-04-02 23:53:43 -05:00
83e5e5eb5a move tip navigator to upper right 2014-04-02 23:48:26 -05:00
131b6a9ce9 ya know what? the module and image draw too much attention.
tips on plain white look much nicer.
2014-04-02 23:45:59 -05:00
cc786c4241 navigate tips 2014-04-02 23:37:19 -05:00
f00a8f5d3b yum, tip styling 2014-04-02 23:26:51 -05:00
8fc156833f basic tip functionality 2014-04-02 23:00:50 -05:00
7e73313d43 remove Go button from locale form on noscript
primarily because it's confusing for advanced search and looks like
the form's submit button - at least according to lavelle ;P
2014-04-02 22:15:15 -05:00
ad1aa8e42c advanced search i18n 2014-04-02 22:06:45 -05:00
250af4487c remove search.examples i18n 2014-04-02 21:35:08 -05:00
77497cd471 lol, turns out i was smart about return_to links before. remove todo 2014-04-02 21:32:43 -05:00
7c0983ed45 separate np/nc and current species a bit from the elements below 2014-04-02 21:28:14 -05:00
ecacb44153 update current species name 2014-04-02 21:14:58 -05:00
d4b65ecf62 remove some todos 2014-04-02 21:09:15 -05:00
d557daadf4 filter by user owns/wants 2014-04-02 21:08:35 -05:00
afface7fa7 filter by current species 2014-04-02 21:01:12 -05:00
3c36cd6aef assign biology assets to restricts and item assets to occupies 2014-04-02 20:56:42 -05:00
fc76e7cfe3 yank console.log 2014-04-02 20:43:13 -05:00
d47ec7a0cd when advanced query is empty, go blank instead of saying no results 2014-04-02 20:42:49 -05:00
d7af6cfd4a populate occupies/restricts selects 2014-04-02 20:26:53 -05:00
769f5d19e2 advanced nc filter 2014-04-02 20:11:17 -05:00