Remove SWF conversion
We've already swapped out the backend for this stuff to Impress 2020, so the resque task and the broken image report UI aren't actually relevant anymore. Delete them! This helps us delete Resque soon too.
This commit is contained in:
parent
ab67dc361e
commit
9de50deb3c
19 changed files with 97 additions and 343 deletions
3
Gemfile
3
Gemfile
|
@ -25,11 +25,8 @@ gem 'addressable', :require => ['addressable/template', 'addressable/uri']
|
||||||
|
|
||||||
gem 'whenever', '~> 0.7.3', :require => false
|
gem 'whenever', '~> 0.7.3', :require => false
|
||||||
|
|
||||||
gem 'swf_converter', '~> 0.0.3'
|
|
||||||
|
|
||||||
gem 'resque', '~> 1.23.0'
|
gem 'resque', '~> 1.23.0'
|
||||||
gem 'resque-scheduler', '~> 2.0.0.d'
|
gem 'resque-scheduler', '~> 2.0.0.d'
|
||||||
gem 'resque-retry', '~> 0.1.0'
|
|
||||||
|
|
||||||
gem 'right_aws', '~> 2.1.0'
|
gem 'right_aws', '~> 2.1.0'
|
||||||
|
|
||||||
|
|
|
@ -206,9 +206,6 @@ GEM
|
||||||
redis-namespace (~> 1.0)
|
redis-namespace (~> 1.0)
|
||||||
sinatra (>= 0.9.2)
|
sinatra (>= 0.9.2)
|
||||||
vegas (~> 0.1.2)
|
vegas (~> 0.1.2)
|
||||||
resque-retry (0.1.0)
|
|
||||||
resque (>= 1.8.0)
|
|
||||||
resque-scheduler (>= 1.8.0)
|
|
||||||
resque-scheduler (2.0.1)
|
resque-scheduler (2.0.1)
|
||||||
redis (>= 2.0.1)
|
redis (>= 2.0.1)
|
||||||
resque (>= 1.20.0)
|
resque (>= 1.20.0)
|
||||||
|
@ -256,7 +253,6 @@ GEM
|
||||||
sprockets (>= 2.8, < 4.0)
|
sprockets (>= 2.8, < 4.0)
|
||||||
ssrf_filter (1.0.8)
|
ssrf_filter (1.0.8)
|
||||||
subexec (0.2.3)
|
subexec (0.2.3)
|
||||||
swf_converter (0.0.3)
|
|
||||||
temple (0.8.2)
|
temple (0.8.2)
|
||||||
thor (1.2.2)
|
thor (1.2.2)
|
||||||
thread_safe (0.3.6)
|
thread_safe (0.3.6)
|
||||||
|
@ -309,7 +305,6 @@ DEPENDENCIES
|
||||||
rdiscount (~> 1.6.5)
|
rdiscount (~> 1.6.5)
|
||||||
react-rails (~> 2.7, >= 2.7.1)
|
react-rails (~> 2.7, >= 2.7.1)
|
||||||
resque (~> 1.23.0)
|
resque (~> 1.23.0)
|
||||||
resque-retry (~> 0.1.0)
|
|
||||||
resque-scheduler (~> 2.0.0.d)
|
resque-scheduler (~> 2.0.0.d)
|
||||||
rest-client (~> 1.6.7)
|
rest-client (~> 1.6.7)
|
||||||
right_aws (~> 2.1.0)
|
right_aws (~> 2.1.0)
|
||||||
|
@ -317,7 +312,6 @@ DEPENDENCIES
|
||||||
rvm-capistrano (~> 1.5.6)
|
rvm-capistrano (~> 1.5.6)
|
||||||
sanitize (~> 2.0.3)
|
sanitize (~> 2.0.3)
|
||||||
sass-rails (~> 5.0, >= 5.0.7)
|
sass-rails (~> 5.0, >= 5.0.7)
|
||||||
swf_converter (~> 0.0.3)
|
|
||||||
uglifier (~> 4.2)
|
uglifier (~> 4.2)
|
||||||
whenever (~> 0.7.3)
|
whenever (~> 0.7.3)
|
||||||
will_paginate (~> 3.0.pre2)
|
will_paginate (~> 3.0.pre2)
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
|
|
||||||
@import partials/jquery.jgrowl
|
@import partials/jquery.jgrowl
|
||||||
|
|
||||||
@import broken_image_reports/new
|
|
||||||
@import campaigns/show
|
@import campaigns/show
|
||||||
@import closet_hangers/index
|
@import closet_hangers/index
|
||||||
@import closet_hangers/petpage
|
@import closet_hangers/petpage
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
@import partials/assets-list
|
|
||||||
|
|
||||||
body.broken_image_reports-new
|
|
||||||
|
|
||||||
#report-assets
|
|
||||||
+assets-list
|
|
||||||
|
|
||||||
span
|
|
||||||
font-size: 85%
|
|
||||||
|
|
||||||
.manual a
|
|
||||||
display: block
|
|
|
@ -1,22 +0,0 @@
|
||||||
class BrokenImageReportsController < ApplicationController
|
|
||||||
def new
|
|
||||||
@swf_assets = SwfAsset.from_wardrobe_link_params(params[:asset_ids]).where(:has_image => true)
|
|
||||||
end
|
|
||||||
|
|
||||||
def create
|
|
||||||
swf_asset = SwfAsset.where(:type => params[:swf_asset_type]).
|
|
||||||
find_by_remote_id(params[:swf_asset_remote_id])
|
|
||||||
|
|
||||||
if swf_asset.image_manual?
|
|
||||||
flash[:warning] = t('broken_image_reports.create.manual')
|
|
||||||
else
|
|
||||||
# If the asset is already reported as broken, no need to shout about it.
|
|
||||||
# Just don't enqueue it, thank the user, and move on.
|
|
||||||
swf_asset.report_broken
|
|
||||||
flash[:success] = t('broken_image_reports.create.success')
|
|
||||||
end
|
|
||||||
|
|
||||||
redirect_to :back
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
|
@ -48,7 +48,6 @@ class SwfAssetsController < ApplicationController
|
||||||
end
|
end
|
||||||
if @swf_assets
|
if @swf_assets
|
||||||
@swf_assets = @swf_assets.all unless @swf_assets.is_a? Array
|
@swf_assets = @swf_assets.all unless @swf_assets.is_a? Array
|
||||||
@swf_assets.each(&:request_image_conversion!)
|
|
||||||
json = @swf_assets unless json
|
json = @swf_assets unless json
|
||||||
else
|
else
|
||||||
json = nil
|
json = nil
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
module BrokenImageReportsHelper
|
|
||||||
def format_converted_at(converted_at)
|
|
||||||
translate 'broken_image_reports.new.converted_at_html',
|
|
||||||
:converted_at_ago => labeled_time_ago_in_words(converted_at)
|
|
||||||
end
|
|
||||||
|
|
||||||
def format_reported_at(reported_at)
|
|
||||||
translate 'broken_image_reports.new.reported_at_html',
|
|
||||||
:reported_at_ago => labeled_time_ago_in_words(reported_at)
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,35 +0,0 @@
|
||||||
require 'resque-retry'
|
|
||||||
require 'timeout'
|
|
||||||
|
|
||||||
class AssetImageConversionRequest
|
|
||||||
TIMEOUT_IN_SECONDS = 30
|
|
||||||
|
|
||||||
extend Resque::Plugins::Retry
|
|
||||||
|
|
||||||
@retry_limit = 5
|
|
||||||
@retry_delay = 60
|
|
||||||
|
|
||||||
@queue = :requested_asset_images
|
|
||||||
|
|
||||||
def self.perform(asset_id)
|
|
||||||
Timeout::timeout(TIMEOUT_IN_SECONDS) do
|
|
||||||
asset = SwfAsset.find(asset_id)
|
|
||||||
asset.convert_swf_if_not_converted!
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
class OnCreation < AssetImageConversionRequest
|
|
||||||
@retry_limit = 5
|
|
||||||
@retry_delay = 60
|
|
||||||
|
|
||||||
@queue = :requested_asset_images_on_creation
|
|
||||||
end
|
|
||||||
|
|
||||||
class OnBrokenImageReport < AssetImageConversionRequest
|
|
||||||
@retry_limit = 5
|
|
||||||
@retry_delay = 60
|
|
||||||
|
|
||||||
@queue = :reportedly_broken_asset_images
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
|
@ -25,9 +25,6 @@ class SwfAsset < ActiveRecord::Base
|
||||||
:large => [600, 600]
|
:large => [600, 600]
|
||||||
}
|
}
|
||||||
|
|
||||||
include SwfConverter
|
|
||||||
converts_swfs :size => IMAGE_SIZES[:large], :output_sizes => IMAGE_SIZES.values
|
|
||||||
|
|
||||||
belongs_to :zone
|
belongs_to :zone
|
||||||
has_many :parent_swf_asset_relationships
|
has_many :parent_swf_asset_relationships
|
||||||
|
|
||||||
|
@ -105,47 +102,6 @@ class SwfAsset < ActiveRecord::Base
|
||||||
IMAGE_SIZES.values.map { |size| {:size => size, :url => image_url(size)} }
|
IMAGE_SIZES.values.map { |size| {:size => size, :url => image_url(size)} }
|
||||||
end
|
end
|
||||||
|
|
||||||
def convert_swf_if_not_converted!
|
|
||||||
if needs_conversion?
|
|
||||||
convert_swf!
|
|
||||||
true
|
|
||||||
else
|
|
||||||
false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def request_image_conversion!
|
|
||||||
if image_requested?
|
|
||||||
false
|
|
||||||
else
|
|
||||||
Resque.enqueue(AssetImageConversionRequest, self.id)
|
|
||||||
self.image_requested = true
|
|
||||||
save!
|
|
||||||
true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def report_broken
|
|
||||||
if image_pending_repair?
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
Resque.enqueue(AssetImageConversionRequest::OnBrokenImageReport, self.id)
|
|
||||||
self.reported_broken_at = Time.now
|
|
||||||
self.save
|
|
||||||
end
|
|
||||||
|
|
||||||
def needs_conversion?
|
|
||||||
!has_image? || image_pending_repair?
|
|
||||||
end
|
|
||||||
|
|
||||||
REPAIR_PENDING_EXPIRES = 1.hour
|
|
||||||
def image_pending_repair?
|
|
||||||
reported_broken_at &&
|
|
||||||
(converted_at.nil? || reported_broken_at > converted_at) &&
|
|
||||||
reported_broken_at > REPAIR_PENDING_EXPIRES.ago
|
|
||||||
end
|
|
||||||
|
|
||||||
attr_accessor :item
|
attr_accessor :item
|
||||||
|
|
||||||
has_one :contribution, :as => :contributed, :inverse_of => :contributed
|
has_one :contribution, :as => :contributed, :inverse_of => :contributed
|
||||||
|
@ -307,10 +263,6 @@ class SwfAsset < ActiveRecord::Base
|
||||||
self.body_id = 0 if !@body_id_overridden && (!self.body_specific? || (!self.new_record? && self.body_id_changed?))
|
self.body_id = 0 if !@body_id_overridden && (!self.body_specific? || (!self.new_record? && self.body_id_changed?))
|
||||||
end
|
end
|
||||||
|
|
||||||
after_commit :on => :create do
|
|
||||||
Resque.enqueue(AssetImageConversionRequest::OnCreation, self.id)
|
|
||||||
end
|
|
||||||
|
|
||||||
class DownloadError < Exception;end
|
class DownloadError < Exception;end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
- title t('.title')
|
|
||||||
|
|
||||||
%p= t '.explanation_html', :contact_link => mail_to(contact_email)
|
|
||||||
|
|
||||||
%p= t '.call_to_action'
|
|
||||||
|
|
||||||
%ul#report-assets
|
|
||||||
- @swf_assets.each do |swf_asset|
|
|
||||||
%li
|
|
||||||
= link_to image_tag(swf_asset.image_url([150, 150])), swf_asset.url
|
|
||||||
- if swf_asset.image_manual?
|
|
||||||
%span.manual
|
|
||||||
= t '.image_manual.description'
|
|
||||||
= mail_to contact_email, t('.image_manual.contact')
|
|
||||||
- elsif swf_asset.image_pending_repair?
|
|
||||||
%span.reported-broken-at= format_reported_at(swf_asset.reported_broken_at)
|
|
||||||
- else
|
|
||||||
= form_tag(action: :create) do
|
|
||||||
= hidden_field_tag 'swf_asset_remote_id', swf_asset.remote_id
|
|
||||||
= hidden_field_tag 'swf_asset_type', swf_asset.type
|
|
||||||
= submit_tag t('.submit')
|
|
||||||
|
|
||||||
- if swf_asset.converted_at?
|
|
||||||
%span.converted-at= format_converted_at(swf_asset.converted_at)
|
|
|
@ -39,8 +39,6 @@
|
||||||
= link_to t('.preview.download'), 'javascript:void(0)', id: 'preview-mode-download'
|
= link_to t('.preview.download'), 'javascript:void(0)', id: 'preview-mode-download'
|
||||||
= link_to t('.preview.swf_links'), 'javascript:void(0)', id: 'swf-links',
|
= link_to t('.preview.swf_links'), 'javascript:void(0)', id: 'swf-links',
|
||||||
target: '_blank', 'data-base-url' => links_swf_assets_path
|
target: '_blank', 'data-base-url' => links_swf_assets_path
|
||||||
= link_to t('.preview.mode.image.report_broken'), 'javascript:void(0)',
|
|
||||||
:id => 'report-broken-image', :target => '_blank', 'data-base-url' => new_broken_image_report_path
|
|
||||||
#preview-sidebar
|
#preview-sidebar
|
||||||
%nav#preview-sidebar-navbar
|
%nav#preview-sidebar-navbar
|
||||||
#preview-sidebar-navbar-closet= t '.sidebar.nav.closet'
|
#preview-sidebar-navbar-closet= t '.sidebar.nav.closet'
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
require 'resque-retry'
|
|
||||||
require 'resque/failure/redis'
|
|
||||||
|
|
||||||
Resque::Failure::MultipleWithRetrySuppression.classes = [Resque::Failure::Redis]
|
|
||||||
Resque::Failure.backend = Resque::Failure::MultipleWithRetrySuppression
|
|
||||||
|
|
|
@ -45,15 +45,6 @@ en-MEEP:
|
||||||
title_tagline: Neopets customization meep and meepits database
|
title_tagline: Neopets customization meep and meepits database
|
||||||
search: Meep
|
search: Meep
|
||||||
|
|
||||||
broken_image_reports:
|
|
||||||
create:
|
|
||||||
success:
|
|
||||||
Thanks! This image will be remeeped soon. If it looks the same after
|
|
||||||
meeping, please consider sending a bug report.
|
|
||||||
already_reported:
|
|
||||||
This image is already in line for remeeping. We'll get to it soon,
|
|
||||||
don't worry.
|
|
||||||
|
|
||||||
new:
|
new:
|
||||||
title: Meep broken image
|
title: Meep broken image
|
||||||
explanation_html:
|
explanation_html:
|
||||||
|
|
|
@ -37,24 +37,13 @@ en:
|
||||||
contact: Contact
|
contact: Contact
|
||||||
suggestions: Suggestions
|
suggestions: Suggestions
|
||||||
email: Questions, comments, bugs
|
email: Questions, comments, bugs
|
||||||
copyright:
|
copyright: Images © 2000–%{year} Neopets, Inc. All Rights Reserved.
|
||||||
Images © 2000–%{year} Neopets, Inc. All Rights Reserved.
|
|
||||||
Used With Permission
|
Used With Permission
|
||||||
|
|
||||||
items:
|
items:
|
||||||
title_tagline: Neopets customization clothing and wearables database
|
title_tagline: Neopets customization clothing and wearables database
|
||||||
search: Search
|
search: Search
|
||||||
|
|
||||||
broken_image_reports:
|
|
||||||
create:
|
|
||||||
success:
|
|
||||||
Thanks! This image will be reconverted soon. If it looks the same after
|
|
||||||
conversion, please consider sending a bug report.
|
|
||||||
manual:
|
|
||||||
This image was uploaded manually, so we don't want to run the
|
|
||||||
automatic converters on it. If this manual version is broken, let us
|
|
||||||
know at webmaster@openneo.net. Thanks!
|
|
||||||
|
|
||||||
new:
|
new:
|
||||||
title: Report broken image
|
title: Report broken image
|
||||||
explanation_html:
|
explanation_html:
|
||||||
|
@ -62,8 +51,7 @@ en:
|
||||||
don't get things quite right, and sometimes that can be fixed by just
|
don't get things quite right, and sometimes that can be fixed by just
|
||||||
trying the conversion again. If reconversion doesn't seem to solve the
|
trying the conversion again. If reconversion doesn't seem to solve the
|
||||||
issue, consider sending us a bug report at %{contact_link}. Thanks!
|
issue, consider sending us a bug report at %{contact_link}. Thanks!
|
||||||
call_to_action:
|
call_to_action: Which of these images looked broken?
|
||||||
Which of these images looked broken?
|
|
||||||
We'll put it in line for reconversion.
|
We'll put it in line for reconversion.
|
||||||
submit: Report as broken
|
submit: Report as broken
|
||||||
converted_at_html: Converted %{converted_at_ago} ago
|
converted_at_html: Converted %{converted_at_ago} ago
|
||||||
|
@ -80,12 +68,10 @@ en:
|
||||||
create:
|
create:
|
||||||
success:
|
success:
|
||||||
owned:
|
owned:
|
||||||
in_list:
|
in_list: Success! You own %{count} of the %{item_name} in the %{list_name} list.
|
||||||
Success! You own %{count} of the %{item_name} in the %{list_name} list.
|
|
||||||
unlisted: Success! You own %{count} of the %{item_name}.
|
unlisted: Success! You own %{count} of the %{item_name}.
|
||||||
wanted:
|
wanted:
|
||||||
in_list:
|
in_list: Success! You want %{count} of the %{item_name} in the %{list_name} list.
|
||||||
Success! You want %{count} of the %{item_name} in the %{list_name} list.
|
|
||||||
unlisted: Success! You want %{count} of the %{item_name}.
|
unlisted: Success! You want %{count} of the %{item_name}.
|
||||||
invalid:
|
invalid:
|
||||||
owned: "We couldn't save how many %{item_name} you own: %{errors}"
|
owned: "We couldn't save how many %{item_name} you own: %{errors}"
|
||||||
|
@ -109,8 +95,8 @@ en:
|
||||||
send_neomail: Neomail %{neopets_username}
|
send_neomail: Neomail %{neopets_username}
|
||||||
lookup: "%{neopets_username}'s lookup"
|
lookup: "%{neopets_username}'s lookup"
|
||||||
neopets_username:
|
neopets_username:
|
||||||
new: 'Add username…'
|
new: "Add username…"
|
||||||
prompt: 'What Neopets username should we add?'
|
prompt: "What Neopets username should we add?"
|
||||||
submit: Save
|
submit: Save
|
||||||
public_url_label: "Public URL:"
|
public_url_label: "Public URL:"
|
||||||
import_from:
|
import_from:
|
||||||
|
@ -129,15 +115,14 @@ en:
|
||||||
header: (Not in a list)
|
header: (Not in a list)
|
||||||
empty: There aren't any items here.
|
empty: There aren't any items here.
|
||||||
remove_all:
|
remove_all:
|
||||||
confirm: 'Remove all items from this list?'
|
confirm: "Remove all items from this list?"
|
||||||
submit: Remove all
|
submit: Remove all
|
||||||
select_all: Select all
|
select_all: Select all
|
||||||
autocomplete:
|
autocomplete:
|
||||||
add_item_html: Add <strong>%{item_name}</strong>
|
add_item_html: Add <strong>%{item_name}</strong>
|
||||||
add_to_list_html: Add to <strong>%{list_name}</strong>
|
add_to_list_html: Add to <strong>%{list_name}</strong>
|
||||||
add_to_group_html: Add to <strong>%{group_name}</strong>, no list
|
add_to_group_html: Add to <strong>%{group_name}</strong>, no list
|
||||||
already_in_collection_html:
|
already_in_collection_html: It's already in <strong>%{collection_name}</strong>
|
||||||
It's already in <strong>%{collection_name}</strong>
|
|
||||||
|
|
||||||
petpage:
|
petpage:
|
||||||
title: Export to petpage
|
title: Export to petpage
|
||||||
|
@ -149,8 +134,7 @@ en:
|
||||||
have to be. The HTML is flexible, so, if you're the artsy type, you're
|
have to be. The HTML is flexible, so, if you're the artsy type, you're
|
||||||
free to mess with the styles all you want!
|
free to mess with the styles all you want!
|
||||||
instructions:
|
instructions:
|
||||||
main_html:
|
main_html: Copy the HTML from the box below, then paste it into
|
||||||
Copy the HTML from the box below, then paste it into
|
|
||||||
%{edit_petpage_link}. Then head to the Neoboards to show off! Have
|
%{edit_petpage_link}. Then head to the Neoboards to show off! Have
|
||||||
fun!
|
fun!
|
||||||
edit_petpage_link_content: your pet's page
|
edit_petpage_link_content: your pet's page
|
||||||
|
@ -186,14 +170,12 @@ en:
|
||||||
edit: Edit
|
edit: Edit
|
||||||
delete: Delete
|
delete: Delete
|
||||||
delete_confirmation:
|
delete_confirmation:
|
||||||
owned:
|
owned: Are you sure you want to delete "%{list_name}"?
|
||||||
Are you sure you want to delete "%{list_name}"?
|
|
||||||
If you do, we'll move these items into Items You Own, not in a list.
|
If you do, we'll move these items into Items You Own, not in a list.
|
||||||
wanted:
|
wanted: Are you sure you want to delete "%{list_name}"?
|
||||||
Are you sure you want to delete "%{list_name}"?
|
|
||||||
If you do, we'll move these items into Items You Want, not in a list.
|
If you do, we'll move these items into Items You Want, not in a list.
|
||||||
remove_all:
|
remove_all:
|
||||||
confirm: 'Remove all items from this list?'
|
confirm: "Remove all items from this list?"
|
||||||
submit: Remove all
|
submit: Remove all
|
||||||
select_all: Select all
|
select_all: Select all
|
||||||
empty: This list is empty.
|
empty: This list is empty.
|
||||||
|
@ -219,8 +201,7 @@ en:
|
||||||
hint:
|
hint:
|
||||||
Why are these items in the same list? What are your terms for trading?
|
Why are these items in the same list? What are your terms for trading?
|
||||||
Or you can leave this blank.
|
Or you can leave this blank.
|
||||||
markup_hint_html:
|
markup_hint_html: We _<em>support</em>_ **<strong>Markdown</strong>** and some HTML.
|
||||||
We _<em>support</em>_ **<strong>Markdown</strong>** and some HTML.
|
|
||||||
submit: Save list
|
submit: Save list
|
||||||
|
|
||||||
groups:
|
groups:
|
||||||
|
@ -357,11 +338,9 @@ en:
|
||||||
preview:
|
preview:
|
||||||
header: Preview
|
header: Preview
|
||||||
customize_more: Customize more
|
customize_more: Customize more
|
||||||
requirements_not_met:
|
requirements_not_met: Javascript and Flash are required to preview wearables.
|
||||||
Javascript and Flash are required to preview wearables.
|
|
||||||
not_found:
|
not_found:
|
||||||
main_html:
|
main_html: We've never seen the %{item_name} on the %{color_name}
|
||||||
We've never seen the %{item_name} on the %{color_name}
|
|
||||||
%{species_name} before. Have you? If so, please %{modeling_link} and
|
%{species_name} before. Have you? If so, please %{modeling_link} and
|
||||||
we'll update our database instantly. Thanks!
|
we'll update our database instantly. Thanks!
|
||||||
modeling_link_content: model it for us
|
modeling_link_content: model it for us
|
||||||
|
@ -376,8 +355,7 @@ en:
|
||||||
tough on the server. They'll be back soon. Thanks for understanding.
|
tough on the server. They'll be back soon. Thanks for understanding.
|
||||||
not_found:
|
not_found:
|
||||||
label: Filter "%{label}" does not exist. Is it spelled correctly?
|
label: Filter "%{label}" does not exist. Is it spelled correctly?
|
||||||
species:
|
species: Species "%{species_name}" does not exist. Is it spelled correctly?
|
||||||
Species "%{species_name}" does not exist. Is it spelled correctly?
|
|
||||||
zone: Zone "%{zone_name}" does not exist. Is it spelled correctly?
|
zone: Zone "%{zone_name}" does not exist. Is it spelled correctly?
|
||||||
ownership:
|
ownership:
|
||||||
I don't know what user:%{keyword} means. Did you mean user:owns or
|
I don't know what user:%{keyword} means. Did you mean user:owns or
|
||||||
|
@ -385,8 +363,7 @@ en:
|
||||||
pet_type: We have no record of the %{name1} %{name2}.
|
pet_type: We have no record of the %{name1} %{name2}.
|
||||||
It is spelled correctly?
|
It is spelled correctly?
|
||||||
pet_type_id: We have no record of pet type %{id}. Weird.
|
pet_type_id: We have no record of pet type %{id}. Weird.
|
||||||
not_logged_in:
|
not_logged_in: The "user" filters are only available if you're logged in.
|
||||||
The "user" filters are only available if you're logged in.
|
|
||||||
flag_keywords:
|
flag_keywords:
|
||||||
is: is
|
is: is
|
||||||
labels:
|
labels:
|
||||||
|
@ -418,19 +395,15 @@ en:
|
||||||
updated_hangers:
|
updated_hangers:
|
||||||
one: We updated the quantity for 1 of your items.
|
one: We updated the quantity for 1 of your items.
|
||||||
other: We updated the quantity for %{count} of your items.
|
other: We updated the quantity for %{count} of your items.
|
||||||
no_changes:
|
no_changes: We already had this data recorded to your account, so we didn't make any changes.
|
||||||
We already had this data recorded to your account, so we didn't make any changes.
|
|
||||||
no_data: We didn't see any wearables, so we didn't make any changes.
|
no_data: We didn't see any wearables, so we didn't make any changes.
|
||||||
unknown_items:
|
unknown_items:
|
||||||
one:
|
one: "We also found an item we didn't recognize: %{item_names}. Please
|
||||||
"We also found an item we didn't recognize: %{item_names}. Please
|
|
||||||
model it for us and we'll update our database instantly. Thanks!"
|
model it for us and we'll update our database instantly. Thanks!"
|
||||||
other:
|
other: "We also found %{count} items we didn't recognize: %{item_names}.
|
||||||
"We also found %{count} items we didn't recognize: %{item_names}.
|
|
||||||
Please model them for us and we'll update our database instantly.
|
Please model them for us and we'll update our database instantly.
|
||||||
Thanks!"
|
Thanks!"
|
||||||
next_page:
|
next_page: Now the frame should contain page %{next_index}.
|
||||||
Now the frame should contain page %{next_index}.
|
|
||||||
Paste that source code over, too.
|
Paste that source code over, too.
|
||||||
done: That was the last page of your Neopets %{name}.
|
done: That was the last page of your Neopets %{name}.
|
||||||
parse_error:
|
parse_error:
|
||||||
|
@ -457,8 +430,7 @@ en:
|
||||||
works.
|
works.
|
||||||
check_frame:
|
check_frame:
|
||||||
header:
|
header:
|
||||||
main_html:
|
main_html: Check the framed Neopets.com window on the left,
|
||||||
Check the framed Neopets.com window on the left,
|
|
||||||
pointing to %{page_link}.
|
pointing to %{page_link}.
|
||||||
page_link_content: page %{index} of your %{name}
|
page_link_content: page %{index} of your %{name}
|
||||||
check_login:
|
check_login:
|
||||||
|
@ -476,8 +448,7 @@ en:
|
||||||
It's never a good idea to log in inside of a frame, unless
|
It's never a good idea to log in inside of a frame, unless
|
||||||
you're a web programmer pro who can check that the frame does,
|
you're a web programmer pro who can check that the frame does,
|
||||||
in fact, point to Neopets.com. To be safe, %{login_link}.
|
in fact, point to Neopets.com. To be safe, %{login_link}.
|
||||||
login_link_content:
|
login_link_content: pull up another window, check the URL, and log in safely
|
||||||
pull up another window, check the URL, and log in safely
|
|
||||||
check_content:
|
check_content:
|
||||||
summary: Confirm that the page is, in fact, your %{name}.
|
summary: Confirm that the page is, in fact, your %{name}.
|
||||||
details:
|
details:
|
||||||
|
@ -493,16 +464,14 @@ en:
|
||||||
<strong>In Firefox</strong>, right-click the frame, choose
|
<strong>In Firefox</strong>, right-click the frame, choose
|
||||||
<strong>This Frame</strong>, then <strong>View Frame
|
<strong>This Frame</strong>, then <strong>View Frame
|
||||||
Source</strong>.
|
Source</strong>.
|
||||||
other:
|
other: In other browsers, right-click and look for something similar.
|
||||||
In other browsers, right-click and look for something similar.
|
|
||||||
troubleshooting:
|
troubleshooting:
|
||||||
main_html:
|
main_html:
|
||||||
If you're still having trouble, try %{page_link}, right-clicking,
|
If you're still having trouble, try %{page_link}, right-clicking,
|
||||||
and choosing View Source.
|
and choosing View Source.
|
||||||
page_link_content: opening the page in a new window
|
page_link_content: opening the page in a new window
|
||||||
copy_source:
|
copy_source:
|
||||||
header:
|
header: Highlight the entire source code,
|
||||||
Highlight the entire source code,
|
|
||||||
and copy-paste it into the box on the right.
|
and copy-paste it into the box on the right.
|
||||||
shortcuts:
|
shortcuts:
|
||||||
"Some nifty shortcuts: Ctrl-A to select all the text, Ctrl-C to
|
"Some nifty shortcuts: Ctrl-A to select all the text, Ctrl-C to
|
||||||
|
@ -519,13 +488,10 @@ en:
|
||||||
neopets_users:
|
neopets_users:
|
||||||
create:
|
create:
|
||||||
success:
|
success:
|
||||||
zero:
|
zero: Okay. We loaded %{user_name}'s pets, but already had these items
|
||||||
Okay. We loaded %{user_name}'s pets, but already had these items
|
|
||||||
recorded to your account.
|
recorded to your account.
|
||||||
one:
|
one: Success! We loaded %{user_name}'s pets, and added 1 item.
|
||||||
Success! We loaded %{user_name}'s pets, and added 1 item.
|
other: Success! We loaded %{user_name}'s pets, and added %{count} items.
|
||||||
other:
|
|
||||||
Success! We loaded %{user_name}'s pets, and added %{count} items.
|
|
||||||
not_found: Could not find user %{user_name}. Is it spelled correctly?
|
not_found: Could not find user %{user_name}. Is it spelled correctly?
|
||||||
|
|
||||||
new:
|
new:
|
||||||
|
@ -551,8 +517,7 @@ en:
|
||||||
add: Closet
|
add: Closet
|
||||||
remove: Uncloset
|
remove: Uncloset
|
||||||
pet_type:
|
pet_type:
|
||||||
not_found:
|
not_found: We haven't seen that combination before. Have you?
|
||||||
We haven't seen that combination before. Have you?
|
|
||||||
Submit the pet's name if you have!
|
Submit the pet's name if you have!
|
||||||
form:
|
form:
|
||||||
submit: Go
|
submit: Go
|
||||||
|
@ -573,8 +538,7 @@ en:
|
||||||
submit: Save
|
submit: Save
|
||||||
cancel: Cancel
|
cancel: Cancel
|
||||||
preview:
|
preview:
|
||||||
requirements:
|
requirements: Flash and Javascript (but not Java!) are required to preview outfits.
|
||||||
Flash and Javascript (but not Java!) are required to preview outfits.
|
|
||||||
big_picture: Big Picture
|
big_picture: Big Picture
|
||||||
download: Download
|
download: Download
|
||||||
swf_links: SWF Links
|
swf_links: SWF Links
|
||||||
|
@ -670,10 +634,8 @@ en:
|
||||||
login: Log in to use these filters.
|
login: Log in to use these filters.
|
||||||
userbar:
|
userbar:
|
||||||
session_message:
|
session_message:
|
||||||
signed_in:
|
signed_in: You will be logged out, then brought back to this exact outfit.
|
||||||
You will be logged out, then brought back to this exact outfit.
|
not_signed_in: You will be logged in, then brought back to this exact outfit.
|
||||||
not_signed_in:
|
|
||||||
You will be logged in, then brought back to this exact outfit.
|
|
||||||
|
|
||||||
index:
|
index:
|
||||||
title: Your Outfits
|
title: Your Outfits
|
||||||
|
@ -696,8 +658,7 @@ en:
|
||||||
new:
|
new:
|
||||||
tagline: Neopets wearables made easy!
|
tagline: Neopets wearables made easy!
|
||||||
preview:
|
preview:
|
||||||
pet_type_not_found:
|
pet_type_not_found: We haven't seen a %{color_name} %{species_name}. Have you?
|
||||||
We haven't seen a %{color_name} %{species_name}. Have you?
|
|
||||||
pet_not_found: Pet not found.
|
pet_not_found: Pet not found.
|
||||||
submit:
|
submit:
|
||||||
primary: Plan my outfit!
|
primary: Plan my outfit!
|
||||||
|
@ -718,8 +679,7 @@ en:
|
||||||
submit: Go
|
submit: Go
|
||||||
your_items:
|
your_items:
|
||||||
tagline: Track and trade!
|
tagline: Track and trade!
|
||||||
description:
|
description: Make lists of the items you own and want,
|
||||||
Make lists of the items you own and want,
|
|
||||||
and share them with the world.
|
and share them with the world.
|
||||||
user_search:
|
user_search:
|
||||||
placeholder: find a user…
|
placeholder: find a user…
|
||||||
|
@ -740,8 +700,7 @@ en:
|
||||||
submit: submit
|
submit: submit
|
||||||
latest_contribution:
|
latest_contribution:
|
||||||
header: Contributions
|
header: Contributions
|
||||||
description_html:
|
description_html: "%{user_link} showed us %{contributed_description}.
|
||||||
"%{user_link} showed us %{contributed_description}.
|
|
||||||
Thanks, %{user_link}!"
|
Thanks, %{user_link}!"
|
||||||
blog:
|
blog:
|
||||||
link: OpenNeo Blog
|
link: OpenNeo Blog
|
||||||
|
@ -754,9 +713,9 @@ en:
|
||||||
other: Or maybe the %{color} %{species_list}?
|
other: Or maybe the %{color} %{species_list}?
|
||||||
call_to_action: If so, please model it above! Thanks!
|
call_to_action: If so, please model it above! Thanks!
|
||||||
species_list:
|
species_list:
|
||||||
words_connector: ', '
|
words_connector: ", "
|
||||||
two_words_connector: ' or '
|
two_words_connector: " or "
|
||||||
last_word_connector: ', or '
|
last_word_connector: ", or "
|
||||||
modeled:
|
modeled:
|
||||||
header: These items have already been modeled—thanks for your help!
|
header: These items have already been modeled—thanks for your help!
|
||||||
body_title: You just finished modeling this—thanks so much!
|
body_title: You just finished modeling this—thanks so much!
|
||||||
|
@ -770,15 +729,13 @@ en:
|
||||||
error: Couldn't load. Try again?
|
error: Couldn't load. Try again?
|
||||||
title: Submit %{pet} as a model, especially if they're wearing the %{item}!
|
title: Submit %{pet} as a model, especially if they're wearing the %{item}!
|
||||||
pet_query:
|
pet_query:
|
||||||
notice_html:
|
notice_html: Thanks for showing us <strong>%{pet_name}</strong>.
|
||||||
Thanks for showing us <strong>%{pet_name}</strong>.
|
|
||||||
Keep up the good work!
|
Keep up the good work!
|
||||||
|
|
||||||
outfit:
|
outfit:
|
||||||
edit: edit
|
edit: edit
|
||||||
delete: delete
|
delete: delete
|
||||||
delete_confirmation:
|
delete_confirmation: Are you sure you want to delete the outfit %{outfit_name}?
|
||||||
Are you sure you want to delete the outfit %{outfit_name}?
|
|
||||||
|
|
||||||
show:
|
show:
|
||||||
default_outfit_name: Shared outfit
|
default_outfit_name: Shared outfit
|
||||||
|
@ -840,7 +797,7 @@ en:
|
||||||
pet_download_error:
|
pet_download_error:
|
||||||
We couldn't connect to Neopets to look up the pet. Maybe they're down.
|
We couldn't connect to Neopets to look up the pet. Maybe they're down.
|
||||||
Please try again later!
|
Please try again later!
|
||||||
neopia_error: "We couldn't load that pet: \"%{message}\". Try again later?"
|
neopia_error: 'We couldn''t load that pet: "%{message}". Try again later?'
|
||||||
|
|
||||||
swf_assets:
|
swf_assets:
|
||||||
links:
|
links:
|
||||||
|
|
|
@ -33,17 +33,6 @@ es:
|
||||||
items:
|
items:
|
||||||
title_tagline: Base de datos de Neopets personalizados y ropa Apta Para Usar
|
title_tagline: Base de datos de Neopets personalizados y ropa Apta Para Usar
|
||||||
search: Buscar
|
search: Buscar
|
||||||
broken_image_reports:
|
|
||||||
create:
|
|
||||||
success: ¡Muchas gracias! Esta imagen será transformada pronto. Si ves la misma imagen tras la transformación, por favor notifícanos con un reporte de error.
|
|
||||||
already_reported: Está imagen ya está siendo transformada. Pronto se pondrá bien, no te preocupes.
|
|
||||||
new:
|
|
||||||
title: Reportar el error de una imagen
|
|
||||||
explanation_html: ¡Gracias por ayudarnos a encontrar errores en las imágenes! Algunas veces las transformaciones no funcionan correctamente y otras muchas el error se puede arreglar transformando la imagen de nuevo. Si vuelves a transformar la imagen y no se arregla, por favor envíanos un reporte de error a %{contact_link}. ¡Muchas gracias!
|
|
||||||
call_to_action: ¿Cuál de estas imágenes tiene algún tipo de error?
|
|
||||||
submit: Reportar como dañada
|
|
||||||
converted_at_html: Transformada hace %{converted_at_ago}
|
|
||||||
reported_at_html: Reportada hace %{reported_at_ago}
|
|
||||||
closet_hangers:
|
closet_hangers:
|
||||||
closet_hanger:
|
closet_hanger:
|
||||||
submit: Guardar
|
submit: Guardar
|
||||||
|
@ -92,7 +81,7 @@ es:
|
||||||
add_item_html: Añadir <strong>%{item_name}</strong>
|
add_item_html: Añadir <strong>%{item_name}</strong>
|
||||||
add_to_list_html: Añadir a <strong>%{list_name}</strong>
|
add_to_list_html: Añadir a <strong>%{list_name}</strong>
|
||||||
add_to_group_html: Añadir a <strong>%{group_name}</strong>, no listado
|
add_to_group_html: Añadir a <strong>%{group_name}</strong>, no listado
|
||||||
already_in_collection_html: 'Ya tienes este objeto en <strong>%{collection_name}</strong> '
|
already_in_collection_html: "Ya tienes este objeto en <strong>%{collection_name}</strong> "
|
||||||
petpage:
|
petpage:
|
||||||
title: Exportar para petpage
|
title: Exportar para petpage
|
||||||
your_items_link: Volver a Tus Objetos
|
your_items_link: Volver a Tus Objetos
|
||||||
|
@ -315,7 +304,7 @@ es:
|
||||||
submit: Importar objetos
|
submit: Importar objetos
|
||||||
help:
|
help:
|
||||||
welcome: ¡Bienvenido al importador de tu %{name} !
|
welcome: ¡Bienvenido al importador de tu %{name} !
|
||||||
intro: 'Vamos a hacer de la forma más fácil posible el poder importar los datos de tu %{name} en Neopets.com hacia tu lista de objetos en Dress to Impress. Así es cómo funciona:'
|
intro: "Vamos a hacer de la forma más fácil posible el poder importar los datos de tu %{name} en Neopets.com hacia tu lista de objetos en Dress to Impress. Así es cómo funciona:"
|
||||||
check_frame:
|
check_frame:
|
||||||
header:
|
header:
|
||||||
main_html: Mira arriba a la izquierda la ventanita que muestra la página de Neopets.com, verás que está en la %{page_link}.
|
main_html: Mira arriba a la izquierda la ventanita que muestra la página de Neopets.com, verás que está en la %{page_link}.
|
||||||
|
@ -543,9 +532,9 @@ es:
|
||||||
item_owned: Tú tienes este objeto
|
item_owned: Tú tienes este objeto
|
||||||
bulk_pets:
|
bulk_pets:
|
||||||
header: Hacer que desfilen varios pets a la vez
|
header: Hacer que desfilen varios pets a la vez
|
||||||
explanation: '¿Tienes muchos pets para que desfilen?
|
explanation: "¿Tienes muchos pets para que desfilen?
|
||||||
|
|
||||||
Escribe o pega una lista de pets, recuerda añadir un nombre por línea :P ¡Muchas gracias por tu ayuda!'
|
Escribe o pega una lista de pets, recuerda añadir un nombre por línea :P ¡Muchas gracias por tu ayuda!"
|
||||||
submit: Cargar pet
|
submit: Cargar pet
|
||||||
add: Añadir
|
add: Añadir
|
||||||
clear: Limpiar
|
clear: Limpiar
|
||||||
|
|
|
@ -33,17 +33,6 @@ pt:
|
||||||
items:
|
items:
|
||||||
title_tagline: Banco de dados de roupas e artigos aplicáveis de Neopets
|
title_tagline: Banco de dados de roupas e artigos aplicáveis de Neopets
|
||||||
search: Pesquisa
|
search: Pesquisa
|
||||||
broken_image_reports:
|
|
||||||
create:
|
|
||||||
success: Obrigado! Esta imagem será reconvertida em breve. Se parecer o mesmo após a conversão, por favor, considere o envio de um relatório de bug.
|
|
||||||
already_reported: Esta imagem já na nossa lista de reconversão. Nós vamos reconverte-la em breve, não se preocupe.
|
|
||||||
new:
|
|
||||||
title: Reportar imagem quebrada
|
|
||||||
explanation_html: Obrigado por nos ajudar a encontrar imagens quebradas! Às vezes, os conversores não fazem as coisas muito bem e, às vezes, isso pode ser corrigido apenas tentando a conversão novamente. Se a reconversão não resolver o problema, considere enviar-nos um relatório de bug em %{contact_link}. Obrigado!
|
|
||||||
call_to_action: 'Algumas dessas imagens parecem quebradas? Nós vamos coloca-la na nossa linha de reconversão. '
|
|
||||||
submit: Reportar imagem
|
|
||||||
converted_at_html: Convertido %{converted_at_ago} atrás
|
|
||||||
reported_at_html: Reportado %{reported_at_ago} atrás
|
|
||||||
closet_hangers:
|
closet_hangers:
|
||||||
closet_hanger:
|
closet_hanger:
|
||||||
submit: Salvar
|
submit: Salvar
|
||||||
|
@ -143,7 +132,7 @@ pt:
|
||||||
visibility:
|
visibility:
|
||||||
label: Quem pode ver essa lista?
|
label: Quem pode ver essa lista?
|
||||||
description:
|
description:
|
||||||
hint: 'Por que esses itens estão nessa lista? Quais são seus termos para troca? Ou você pode deixar isso em branco '
|
hint: "Por que esses itens estão nessa lista? Quais são seus termos para troca? Ou você pode deixar isso em branco "
|
||||||
markup_hint_html: We _<em>support</em>_ **<strong>Markdown</strong>** and some HTML.
|
markup_hint_html: We _<em>support</em>_ **<strong>Markdown</strong>** and some HTML.
|
||||||
submit: Salvar Lista
|
submit: Salvar Lista
|
||||||
groups:
|
groups:
|
||||||
|
@ -355,9 +344,9 @@ pt:
|
||||||
other: Sucesso! Nós carregamos o pet de %{user_name} e adicionamos %{count} itens.
|
other: Sucesso! Nós carregamos o pet de %{user_name} e adicionamos %{count} itens.
|
||||||
not_found: Não encontramos o usuário %{user_name}. Está escrito corretamente?
|
not_found: Não encontramos o usuário %{user_name}. Está escrito corretamente?
|
||||||
new:
|
new:
|
||||||
title: 'Importar dos pets '
|
title: "Importar dos pets "
|
||||||
your_items_link: Voltar para "Seus Items"
|
your_items_link: Voltar para "Seus Items"
|
||||||
explanation: 'Digite seu nome de usuário de Neopets abaixo e nós importaremos todos os aplicáveis de todos seus pets. É fácil! '
|
explanation: "Digite seu nome de usuário de Neopets abaixo e nós importaremos todos os aplicáveis de todos seus pets. É fácil! "
|
||||||
username_label: Nome de Usuário de Neopets
|
username_label: Nome de Usuário de Neopets
|
||||||
submit: Importar todos os Pets
|
submit: Importar todos os Pets
|
||||||
outfits:
|
outfits:
|
||||||
|
|
|
@ -23,7 +23,6 @@ OpenneoImpressItems::Application.routes.draw do
|
||||||
|
|
||||||
get '/roulette' => 'roulettes#new', :as => :roulette
|
get '/roulette' => 'roulettes#new', :as => :roulette
|
||||||
|
|
||||||
resources :broken_image_reports, :only => [:new, :create]
|
|
||||||
resources :contributions, :only => [:index]
|
resources :contributions, :only => [:index]
|
||||||
resources :items, :only => [:index, :show] do
|
resources :items, :only => [:index, :show] do
|
||||||
collection do
|
collection do
|
||||||
|
|
BIN
vendor/cache/resque-retry-0.1.0.gem
vendored
BIN
vendor/cache/resque-retry-0.1.0.gem
vendored
Binary file not shown.
BIN
vendor/cache/swf_converter-0.0.3.gem
vendored
BIN
vendor/cache/swf_converter-0.0.3.gem
vendored
Binary file not shown.
Loading…
Reference in a new issue