Commit graph

40 commits

Author SHA1 Message Date
3398439bae Fix more modeling bugs
Just find_all_by's that I never cleaned up

Oddly enough, I still got a "neopets seems down" message out of this, idk if that's an actual bug or just sluggishness rn
2023-10-23 19:05:09 -07:00
1e690d9f6c Fix old find_or_initialize_by methods
I missed this in the Rails upgrades, oops!
2023-10-23 19:05:09 -07:00
eb5e9d53cb Oops, fix anonymous outfits
These are some old issues I just never tested for I think
2023-10-23 19:05:07 -07:00
d97c32b5da Upgrade to Rails 5.2.8.1
Some important little upgrades but mostly straightforward!

Note that there's still a known issue where item searches crash, I was hoping that this was a bug in Rails 4.2 that would be fixed on upgading to 5, but nope, oh well!

Also uhh I just got a bit silly and didn't actually mean to go all the way to 5.2 in one go, I had meant to start at 5.0… but tbh the 5.1 and 5.2 changes seem small, and this seems to be working, so. Yeah ok let's roll!
2023-10-23 19:05:05 -07:00
a15cbeb307 Remove pet state labeling & Neopets gem
This labeling technique hasn't worked in a long time bc it requires being logged in. These days we just manually label them with the 2020 support tools I think!

Clearing out the Neopets gem should help us manage some gem dep conflicts in the 4.2 upgrade too (I think the nokogiri one gets tricky?)
2023-10-23 19:05:05 -07:00
Matchu
a29e016555 Update to new scope syntax
Ohh ok, without this change all of our `scope`s were just immediately evaluating the argument and fetching _all_ such matching records immediately, instead of waiting to actually be called. This led to bugs like `pet_type.as_json` returning ALL pet states in the whole db, because the `PetState.emotion_order` scope was being treated as a single predefined query, rather than a query fragment to merge into the current context.

This also explains what happened in 724ed83: that's why things before the scope in the query were being ignored.
2023-10-23 19:05:03 -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
f9fa3eb596 prank color artist credit 2014-03-31 21:05:28 -05:00
32bab89ed4 add prank messages to outfits#show 2014-03-28 15:15:04 -05:00
7c6e607612 basic neopia api integration 2014-01-10 16:25:02 -05:00
2b870cf91b add pet state replacement task 2013-11-30 20:33:48 -05:00
2501cb5667 fix null zone ID bug
TNT has started serving half-removed Corridor of Chance effects:
it has the asset ID and URL and all, but the zone ID is blank.
RocketAMF has patched the empty key bug, and now we ignore assets
associated with empty keys.
2013-05-23 18:48:19 -07:00
bf528b06d2 label pet states as glitched, send to bottom of emotion order 2013-04-27 10:21:51 -05:00
a80f70bb88 phew, fixed some issues with contribution saving in rails 3.2 2013-03-05 20:51:24 -06:00
7f2ce2839b appearance dropdown - wow, that was easy 2013-01-31 19:46:34 -06:00
5985e234da pet states know their localized description 2013-01-31 19:11:15 -06:00
0b32e8ba59 cut down on pets#load zone queries 2013-01-28 02:19:37 -06:00
644fac99da improve gender/mood sorting using new labels 2012-06-20 16:10:53 -04:00
6cdf1567f8 fix error loading lookups when given pet name has trailing spaces 2012-06-05 13:28:59 -04:00
b25b6e55b3 ignore errors loading gender/mood data
For example, the site was throwing a 500 error when loading pets
belonging to frozen users. Instead, we'll now rescue that
Neopets::User::AccountDisabledError and ignore it, since it's not
*vital* that we load gender/mood data from this pet; we can still
proceed to load its customization data without it.
2012-06-05 13:02:49 -04:00
c2c6a800f2 track pet state gender/mood 2012-05-23 20:00:38 -04:00
7795119a8c fix gender/emotion states with corridor of chance effects sorting to the front
So it turns out this was just one of those things I forgot to fix
the big database restructure came along: we were comparing
swf_asset.remote_id against parents_swf_assets.swf_asset_id, which
are two different identifiers entirely. Now using swf_asset.id,
so fixed :)
2012-03-15 17:01:21 -05:00
baae0c9954 fix bug where some pet states would also show many items on top of them
At first I thought this was an error in the data migration process when moving SWF assets
to having their own unique IDs, but then realized that the query for a pet state's SWFs
didn't include the (parent_type = 'Item') condition. Oops. Turns out, I only connected the
items to parent_swf_asset_relationships polymorphically. Pet states were still doing it the
hackish way. Set the pet states to use the lovely polymorphic relationship and we're good
to go.
2012-02-21 13:25:11 -06:00
4566bca906 another attempt to fix pet state rel autosave 2012-01-13 16:11:44 -06:00
bcb5644b12 stop autosaving biology swf rels 2012-01-13 16:02:14 -06:00
9c0c7b78cf another oops, better fix 2012-01-12 22:02:12 -06:00
c2c0fe92e8 oops, be consistent in using remote ID when loading pets 2012-01-12 21:47:17 -06:00
696b2aedaf give SWFs real, unique ID numbers
Lots of scary bugs were being caused by the fact that the possibly-duplicate Neopets ID
was being treated as an SWF's real primary key, meaning that a save meant for object swf
number 123 could be saved to biology swf number 123. Which is awful.

This update gives SWFs their own unique internal ID numbers. All external lookups still use
the remote ID and the type, meaning that the client side remains totally unchanged (phew).
However, all database relationships with SWFs use the new ID numbers, making everything
cleaner. Yay.

There are probably a few places where it would be appropriate to optimize certain lookups
that still depend on remote ID and type. Whatever. Today's goal was to remove crazy
glitches that have been floating around like mad. And I think that goal has been met.
2012-01-12 17:17:59 -06:00
cc23f7435b automatically rezone bio 2011-10-31 16:22:24 -05:00
714f2fddf5 sort unconverted to the end, too 2011-06-21 22:56:42 -04:00
99a23fc2cb sort effects to the end of the gender/emotion list 2011-06-21 20:42:41 -04:00
8ff6c5ad9c pet state order fix, and maybe some contribution fixes 2011-02-22 17:54:20 -05:00
1e8ec13bfe move to unstable rocketamf so that it builds hashes from registries, not arrays 2011-01-13 17:22:07 -05:00
99fb6b984f ensure that we're only returning item assets for items and biology assets for pet states 2010-11-25 21:33:34 -05:00
63ae4558b1 ensure that we're looking only at biology assets when saving new pet states 2010-11-20 10:35:59 -05:00
e92e9947b8 rake task to, hopefully, repair duplicate pet state ids cleanly 2010-11-15 21:15:33 -05:00
d10ab2615f actually contributing things, yay 2010-11-06 18:08:45 -04:00
e40d4601d8 a functioning wardrobe 2010-10-10 22:18:42 -04:00
bb233359d8 core of pet loading, still needs get image hash, download assets 2010-10-07 10:46:23 -04:00
7fc59745e5 pet state models now own assets, not pet types 2010-05-20 21:11:08 -04:00