impress/lib/tasks/neopets/import.rake
Emi Matchu 59da1fa04d Add more importing to cron
We're gonna try saving a neologin cookie in the environment variables, and see how long-lived it is.
2025-11-02 06:00:50 +00:00

48 lines
1.3 KiB
Ruby

module Neologin
def self.cookie
raise "must run neopets:import:neologin first" if @cookie.nil?
@cookie
end
def self.cookie?
@cookie.present?
end
def self.cookie=(new_cookie)
@cookie = new_cookie
end
end
namespace :neopets do
task :import => [
"neopets:import:neologin",
"neopets:import:nc_mall",
"neopets:import:rainbow_pool",
"neopets:import:styling_studio",
]
namespace :import do
# Gets the neologin cookie, either from ENV['NEOLOGIN_COOKIE'] or by prompting.
# The neologin cookie is required for authenticated Neopets requests (Rainbow Pool,
# Styling Studio). It's generally long-lived (~1 year), so it can be stored in the
# environment and rotated manually when it expires.
#
# To extract the cookie:
# 1. Log into Neopets.com in your browser
# 2. Open browser DevTools > Application/Storage > Cookies
# 3. Find the "neologin" cookie value
# 4. Set NEOLOGIN_COOKIE environment variable to that value
# 5. Update production.env and redeploy when the cookie expires
task :neologin do
unless Neologin.cookie?
# Try environment variable first (for automated cron jobs)
if ENV['NEOLOGIN_COOKIE'].present?
Neologin.cookie = ENV['NEOLOGIN_COOKIE']
else
# Fall back to interactive prompt (for local development)
Neologin.cookie = STDIN.getpass("Neologin cookie: ")
end
end
end
end
end