170b7fa6f5
can search items with a form-based query instead of text-based
2014-04-02 10:32:13 -05:00
338b9c2b3f
use funny ordering in wardrobe, too
2014-03-27 22:45:34 -05:00
8e93d603fa
list prank colors as fake on the homepage, unless pranks are funny today
2014-03-27 22:44:18 -05:00
2df0133cff
Oops, using item proxies broke closet comparison. Fix.
...
Turns out we need to assign closeted to actual items, not
the item proxies, since that's what we check against. (I
would've thought they're backed by the same instance of
the item anyway, but, whatever. The fix works :P)
2014-02-04 16:29:59 -06:00
62f584e366
triple oops; stop using removed field neopets_username in NeopetsUsers#new
2014-01-20 16:31:15 -06:00
b2fca6b6c1
closet hangers index uses neopets connections dropdown
2014-01-18 22:50:14 -06:00
72b174c9b3
store all neopets usernames for logged-in users, but breaks closet_hangers#index
2014-01-18 21:55:01 -06:00
8288b8a10d
username form, backed by localstorage for guests; not yet backed by db for logged-in users
2014-01-17 11:12:56 -06:00
99b2acd419
attach body id to newest unmodeled item species names
2014-01-10 16:25:03 -05:00
7dd2646dbb
add basic caching - TODO: avoid these computations in the controller
2014-01-10 16:25:02 -05:00
9a4e114964
oh yum, this is really starting to come together :)
2014-01-10 16:25:02 -05:00
7c6e607612
basic neopia api integration
2014-01-10 16:25:02 -05:00
b6247fa22f
prepare partials for closet_hangers#index, too
2013-12-27 21:48:28 -05:00
f07996d762
cache pet images on items#show, in case that's what's being a super-slow jerkface
2013-12-05 15:22:43 -06:00
8bd7ad5a1e
support manually uploaded swf asset images - not the actual uploading, but block them from being reconverted
2013-10-16 15:50:48 -05:00
019303031b
choose list when importing from pets
2013-08-17 12:07:04 -04:00
72c59f0b68
if there's only one item search result, redirect to it
2013-07-09 19:54:22 -07:00
4c208c9ac3
instead of returning an empty item list on contradiction, return an empty proxy collection
2013-07-03 18:17:16 -07:00
b92131b26c
use item proxies in items#index when given item IDs
2013-06-27 00:15:20 -07:00
9e3cac82ec
use proxies for item html, too
...
Some lame benchmarking on my box, dev, cache classes, many items:
No proxies:
Fresh JSON: 175, 90, 90, 93, 82, 88, 158, 150, 85, 167 = 117.8
Cached JSON: (none)
Fresh HTML: 371, 327, 355, 328, 322, 346 = 341.5
Cached HTML: 173, 123, 175, 187, 171, 179 = 168
Proxies:
Fresh JSON: 175, 183, 269, 219, 195, 178 = 203.17
Cached JSON: 88, 70, 89, 162, 80, 77 = 94.3
Fresh HTML: 494, 381, 350, 334, 451, 372 = 397
Cached HTML: 176, 170, 104, 101, 111, 116 = 129.7
So, overhead is significant, but the gains when cached (and that should be
all the time, since we currently have 0 evictions) are definitely worth
it. Worth pushing, and probably putting some future effort into reducing
overhead.
On production (again, lame), items#index was consistently averaging
73-74ms when super healthy, and 82ms when pets#index was being louder
than usual. For reference is all. This will probably perform
significantly worse at first (in JSON, anyway, since HTML is already
mostly cached), so it might be worth briefly warming the cache after
pushing.
2013-06-26 23:50:19 -07:00
e42de795dd
Use item proxies for JSON caching
...
That is, once we get our list of IDs from the search engine, only
fetch records whose JSON we don't already have cached.
It's simpler here to use as_json, but it'd probably be even faster
if I figure out how to serve a plain JSON string from a Rails
controller. In the meantime, requests of entirely cached items
are coming in at about 85ms on average on my box (dev, cache
classes, many items), about 10ms better than the last
iteration.
2013-06-26 23:01:12 -07:00
a7574f0864
Don't add duplicate hangers now that closet import can specify a list
...
Bug report that this resolves:
...However, when I was using the "Import from SDB" tool just a few
minutes ago, it ended up adding EVERY neocash item into the "Not
In A List" section, regardless if I already that item imported
into my "Your Items". So, basically.. I had duplicates of
everything and it would not allow me to move them around into
separate catergories or anything. I know that every other time i've
used the import tool, it would only add NEW items that are not
currently already in my lists yet.
2013-06-25 23:40:02 -07:00
3c91f0cde0
import items to a specific list
2013-04-09 15:50:33 -05:00
f547a75c40
ruby 2.0.0 compatibility... hopefully.
2013-02-25 01:14:45 -05:00
e71530a958
only show item zones on outfits#edit occupies filter helper
2013-02-05 11:52:52 -06:00
4efcdaac49
re-enable item translations, now that i made a corresponding server config change
2013-01-28 13:11:28 -06:00
f7ae45e3e7
temporarily disable item translation
2013-01-28 03:30:43 -06:00
206811a2fb
oops, deal with missing item fields better
2013-01-28 03:01:25 -06:00
895aef86c2
oops: only infer public locales from language header
2013-01-27 00:35:22 -06:00
8bb553701a
remove N+1 queries in contributions#index
2013-01-25 15:23:48 -06:00
dd30fbe0d7
move from with_translations to includes(:translations), since we dont usually care about requiring
2013-01-24 18:26:00 -06:00
b2822d901b
fix n+1 query for translations on items#index
2013-01-24 18:26:00 -06:00
26ac3782ec
move zones to database
2013-01-24 18:26:00 -06:00
ce4e2fd53c
move species to database
2013-01-24 18:25:59 -06:00
965465ca51
move species to database
2013-01-24 18:25:59 -06:00
332a7e67d8
update ItemsController to show new search errors properly
2013-01-24 18:24:35 -06:00
6e09b8bc10
globalized search first draft
...
Confirmed features:
* Output (retrieval, sorting, etc.)
* Name (positive and negative, but new behavior)
* Flags (positive and negative)
Planned features:
* users:owns, user:wants
Known issues:
* Sets are broken
* Don't render properly
* Shouldn't actually be done as joined sets, anyway, since
we actually want (set1_zone1 OR set1_zone2) AND
(set2_zone1 OR set2_zone2), which will require breaking
it into multiple terms queries.
* Name has regressed: ignores phrases, doesn't require *all*
words. While we're breaking sets into multiple queries,
maybe we'll do something similar for name. In fact, we
really kinda have to if we're gonna keep sorting by name,
since "straw hat" returns all hats. Eww.
2013-01-24 18:24:35 -06:00
c9ae7155b1
locale metadata, including hidden locales for item loading and selection
2013-01-24 18:24:34 -06:00
ef2423e87f
globalize3 for items
2013-01-24 18:24:34 -06:00
9c8f7f498f
basic translation infrastructure for items - search is still english-only, and probably will have to be replaced with a legit search engine
2013-01-24 18:24:34 -06:00
b22188fa4a
locale cookie should be long-term, not a session cookie
2013-01-24 18:24:33 -06:00
0f49d3ed02
simple locale dropdown in layouts#application
2013-01-24 18:24:33 -06:00
d96c54f3cc
infer locale from params, then cookies, then Accept-Language header
2013-01-24 18:23:21 -06:00
062f485598
i18n for pets#load flashes
2013-01-24 18:23:21 -06:00
629e5c68a9
i18n for outfits/edit.js userbar message and outfit save errors
2013-01-24 18:23:20 -06:00
029373addd
i18n for outfits#destroy flashes
2013-01-24 18:23:20 -06:00
467fb24c42
i18n for closet_hangers#create, closet_hangers#destroy, closet_hangers#update, closet_hangers#update_quantities (flashes, largely intertwined)
2013-01-24 18:23:20 -06:00
e55d407d63
i18n for neopets_pages#create (flashes - holy snap, that was nasty)
2013-01-24 18:23:19 -06:00
0f52ba5b4e
i18n for neopets_users#create flashes
2013-01-24 18:23:19 -06:00
7bc255e9c8
i18n for users#index, users#update flashes
2013-01-24 18:23:19 -06:00
3c9e37f614
i18n for broken_image_reports#create flashes
2013-01-24 18:23:19 -06:00
ac0490dc1d
i18n for items#show (including javascripts/items/show.js)
2013-01-24 18:23:19 -06:00
5e89e2b947
i18n for items#index (and layouts#items)
2013-01-24 18:23:18 -06:00
132a49d30b
i18n for outfits#new (and layouts#application), including caching
2013-01-24 18:23:18 -06:00
bfd825d98e
attempt to fix new species_support_ids format. sigh.
2013-01-23 00:25:09 -06:00
9701221035
wardrobe now considers item.species_support_ids when deciding compatibility
...
For example, the Meerca Maid Tray is a foreground item, so the SWF is marked
as compatible with all body types, but the item itself is clearly marked as
Meercas-only. items#show reflected this properly, but the swf_assets#index
call that the wardrobe uses ignored item.species_support_ids.
So, /bodies/:body_id/swf_assets.json?item_ids[]=... was deprecated in favor
of /pet_types/:pet_type_id/items/swf_assets.json?item_ids=[]..., which is
much like the former route but, before loading assets, also loads the pet
type and items, then filters the items by compatibility, then only loads
assets for the compatible items.
2013-01-02 23:15:32 -05:00
f56b544963
brought-to-you-by on items#show lists contributors
2012-10-24 22:09:05 -05:00
99669b8e4e
cache homepage latest contribution
2012-08-09 22:59:35 -04:00
f6d34841ec
cache newest items on homepage and items#index
2012-08-09 22:35:30 -04:00
4a69772cd2
remove N+1 queries on current user outfits page
2012-08-09 18:32:33 -04:00
72237f225c
modeling hub
2012-08-06 21:15:31 -04:00
c2a0c5de74
new frontpage layout, yay
2012-08-01 13:34:54 -04:00
374c7e6147
Sharing now fully supports saved outfits, not just shared ones
2012-07-26 23:47:22 -04:00
7b5856ebf9
basic sharing
...
Sharing pane works, everything is great for guests. Logged in
users are on the way, since right now Share Outfit re-saves
anonymously rather than showing sharing data for the existing
outfit.
2012-07-17 12:15:04 -04:00
71da64b47f
create /start/:species_name/:color_name route
2012-06-05 12:44:11 -04:00
e3b0a5e2d7
fix bug on closet_hangers#destroy in html format
2012-04-08 17:04:44 -05:00
f3d64840d6
filter lists on petpage export
2012-04-08 15:59:51 -05:00
7d0edbf23c
closet_hangers#destroy now tied to hanger ID, not item
2012-03-23 16:25:10 -05:00
44156c5b21
can now have the same item in more than one list
2012-03-23 16:25:10 -05:00
abcf70a0c4
fix issue with csrf_param in wardrobe ajax
...
Due to a silly slip-up involving Javascript object literal syntax, we were
sending {csrf_param: "token"} instead of {authenticity_token: "token"} with
wardrobe AJAX requests. This would cause users to be auto-logged-out for
failing to provide a proper token. Oops.
2012-01-14 12:35:05 -06:00
d335c2e677
properly handle search error in rails 3.0.5
2012-01-13 15:10:25 -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
0e56de4148
image mode is now public
2011-08-07 19:52:11 -04:00
7358aae680
report broken images
2011-08-07 18:23:44 -04:00
4c510f91db
search by username
2011-08-05 11:28:11 -04:00
ea4564569b
show own/want on new items
2011-08-04 10:33:35 -04:00
5d3343bd6c
show twice as many new items
2011-08-04 10:30:00 -04:00
d99a1ad792
newest items
2011-08-04 10:01:44 -04:00
2398f34071
import items from pets
2011-08-03 11:35:06 -04:00
513711bf60
import sdb as well as closet
2011-08-02 22:42:56 -04:00
374e85f9d0
drop in redirect image url for urls blocked on petpages
2011-08-02 20:01:48 -04:00
be5bdb1eec
handle search errors better in wardrobe
2011-08-01 00:00:39 -04:00
dacfc99ce7
allow your_items_path to be cached on home
2011-07-31 22:17:59 -04:00
037cb1e95a
your items link on home
2011-07-31 18:45:53 -04:00
30096f6b0a
items petpage export
2011-07-31 02:52:19 -04:00
137aeac8d4
show traders on items#show
2011-07-31 00:19:28 -04:00
b9700e3d7c
show owns/wanted items on somene elses items list
2011-07-30 23:03:43 -04:00
0c92bf5987
set list visibility in closet_lists#edit
2011-07-30 22:34:27 -04:00
0e522fa371
better handle list emptiness for drag-n-drop
2011-07-30 19:47:04 -04:00
75961abc17
privacy for unlisted hangers
2011-07-30 19:45:28 -04:00
d893b0ab41
Your Items autocomplete supports lists
2011-07-29 11:25:17 -04:00
358840076c
closet lists, round one
2011-07-29 10:52:04 -04:00
b86ce67c02
first pass at closet lists, including form
2011-07-26 20:27:23 -04:00
c3279f0512
keep track of the closet page we are importing, even if it errored out
2011-07-25 14:22:26 -04:00
d9f94ae3fa
Your Items page aware of wanting items
2011-07-22 17:55:05 -04:00
b1670b1595
fix bug with adding/removing wanted items
2011-07-22 16:17:13 -04:00
85af53417b
distinguish between owning and wanting an item
2011-07-22 15:35:38 -04:00
01ba06b1b4
closet neopets username
2011-07-22 14:02:04 -04:00
c5103b6557
neomail link on closets
2011-07-20 15:16:22 -04:00
02ef70f749
simplify closet hangers view, replace user_is?(@user) with !public_perspective?
2011-07-20 12:39:18 -04:00
884ad2d5b8
user:owns in item search
2011-07-17 17:24:29 -04:00
e72c9a0092
closet hangers delete gets nifty ajax, too
2011-07-15 23:39:19 -04:00
77818471c5
closet hangers page has nice remove button
2011-07-15 23:14:26 -04:00
eeb3fc3af9
closet hangers page gets serious ajax action
2011-07-15 22:52:53 -04:00
437b1c052d
quantity form on your items page
2011-07-15 17:21:18 -04:00
e6020a5cfe
simplify closeting item
2011-07-15 16:32:05 -04:00
47e3b72937
restructure backend of closet hanger quantity updates
2011-07-15 16:16:40 -04:00
fab612950a
basic hanger interface from item
2011-07-14 13:56:44 -04:00
3a193d534d
closeted icon, all over the place
2011-07-14 13:56:44 -04:00
a33898a393
import closet page
2011-07-14 13:56:20 -04:00
6ebacc99dd
closet page saving backend
2011-07-14 13:56:20 -04:00
d5641dddbb
user closet display
2011-07-14 13:56:20 -04:00
d0dd797cdf
delete outfits from outfit page
2011-07-14 13:14:06 -04:00
443b144f29
image mode
2011-06-27 15:33:34 -04:00
b57043e0d2
Merge branch 'images'
2011-05-22 16:34:31 -04:00
6c9ddac8dd
totally pro wardrobe image adapter, via konami
2011-05-22 16:30:02 -04:00
740693018b
sitemap.xml
2011-05-20 20:49:48 -04:00
3b7f158890
cache just content on items, not action, so we can still use title and canonical
2011-05-20 20:23:37 -04:00
b13fd7ae99
moving toward s3 image storage
2011-05-20 19:19:14 -04:00
648649f5cc
support special colors in the infinite closet
2011-05-02 18:07:56 -04:00
1207e84804
nice page to view current user's outfits
2011-03-23 18:23:01 -04:00
492841d9bc
load happy pets for item db previews
2011-02-22 18:11:12 -05:00
2a7fea11e6
handle timeout errors for pet data, swfs, pet images
2011-02-19 22:49:13 -05:00
ea4ec0f99d
gracefully handle connection errors with neopets servers
2011-02-19 22:09:12 -05:00
fa14232473
allow guests to share outfits
2011-02-10 17:50:47 -05:00
bb1f10c60b
Merge branch 'fixleak'
2011-02-05 10:33:39 -05:00
4b66a560e7
roulette system :)
2011-01-27 16:35:46 -05:00
8c8776ff63
devise implemented, but not remembering
2011-01-26 13:40:15 -05:00
ba43d104db
cache item_zone_sets.json too
2010-12-11 10:36:59 -05:00
f2bcde47ea
cache the constant pet_attributes.json
2010-12-11 10:32:42 -05:00
ca155314fa
home page caching, reset top contributors only when necessary
2010-12-11 09:37:39 -05:00
ca9e1fb0ca
cache item show pages as a first try :)
2010-12-08 20:15:46 -05:00
8447667f62
Merge branch 'bugmash'
2010-11-25 21:33:37 -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
e2d48a67df
sort colors by name on frontpage, in wardrobe
2010-11-24 21:17:24 -05:00
b308c0f0ba
outfit renaming, plus some bug fixes here and there
2010-11-24 20:51:01 -05:00
1f1c219005
fix species:x bug on new arel, start tracking unintended search exceptions
2010-11-16 23:32:53 -05:00
98d908d33c
return nil, not 500, when missing certain swf_assets.json param
2010-11-15 16:04:54 -05:00
41aa9008fc
remove indiscriminate asset caching
2010-11-15 15:58:16 -05:00
d81c08f866
remember me on login
2010-11-13 19:42:56 -05:00
9b0cf8b597
show outfit page
2010-11-13 17:26:27 -05:00
e6b1465355
wardrobe has an 'active outfit' - phew! cloning is hard
2010-11-12 20:58:28 -05:00
6b92c2aa33
loading current user outfit list, deleting outfits, toggling star
2010-11-11 13:43:22 -05:00
1dd2ccb00b
lovely interface for saving outfits. still no reading them yet
2010-11-10 16:59:54 -05:00
1fd98fb191
basic interaction with fake outfits
2010-11-08 20:40:03 -05:00
7db0beec75
points for bulk pet adding
2010-11-06 19:07:15 -04:00
d10ab2615f
actually contributing things, yay
2010-11-06 18:08:45 -04:00
ef004cc6cb
needed objects
2010-11-06 13:07:12 -04:00
446a117ec8
top contributors
2010-11-06 12:15:10 -04:00
3992e57adc
user contribution page
2010-11-06 11:57:22 -04:00
a5b119a9bc
contributions viewing
2010-11-06 11:52:58 -04:00
2d550724f0
bulk add pets
2010-11-05 20:09:03 -04:00
b99916cfdf
terms
2010-11-05 18:55:27 -04:00
c8acdc4e8d
working home page
2010-11-05 18:45:05 -04:00
61b55d418e
ensure that session is initialized before redirecting user
2010-11-05 16:32:00 -04:00
895c6e721e
auth works - yaaay
2010-10-18 17:58:45 -04:00
d984f84445
prep wardrobe js for standalone server use
2010-10-11 18:37:20 -04:00
e40d4601d8
a functioning wardrobe
2010-10-10 22:18:42 -04:00
33711f6fc6
quick pets controller to redirect to wardrobe
2010-10-10 14:33:54 -04:00
4ba6af20ad
item zone sets jsonp controller
2010-06-26 16:29:23 -04:00
a0a1a94e96
send jsonp errors with callbacks so they load
2010-06-26 16:20:51 -04:00
fbba36005e
distribute items as jsonp
2010-06-22 13:00:55 -04:00
9671a02ecc
zones are now a static resource, like species and color. database table remains for compatibility with main PHP app
2010-06-09 23:15:51 -04:00
a7ca99d7d8
cache swf asset JSON
2010-06-08 18:35:54 -04:00
37372544b0
alter item swf asset routes to allow for page caching
2010-06-08 18:26:42 -04:00
df3fcd101f
retain query on item page
2010-06-07 20:02:46 -04:00
5e5032d671
bulk preloading item assets after 5 seconds, to be able to show reds more quickly
2010-06-07 16:33:43 -04:00
40bb495a2b
gracefully handles asset not found, preloads to handle it before it even comes up
2010-05-31 15:45:03 -04:00
743ec4d910
restrict item swf assets by fitting body id
2010-05-20 21:30:12 -04:00
4604a412fd
show biology assets on item preview from pet state
2010-05-20 21:16:43 -04:00
8411d4c64a
swf asset json for pet types
2010-05-20 19:56:08 -04:00
f69f64f18f
pet type model, controller
2010-05-16 15:33:56 -04:00
230026597b
groundwork for preview, swf asset and relationship model
2010-05-16 15:01:38 -04:00
f794d07c2c
basic show page
2010-05-15 20:46:41 -04:00
2f057ca7ca
use flash.now to prevent late flashes
2010-05-15 18:26:27 -04:00
3062dd9376
pagination for results
2010-05-15 14:14:17 -04:00
8519f9131b
item presentation is neat
2010-05-15 14:01:15 -04:00
4d4ded3c11
items controller, basic view
2010-05-15 13:47:46 -04:00
87fc4bdf05
rails 3
2010-05-14 18:12:31 -04:00