neopets 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Rakefile +1 -0
- data/autotest/discover.rb +1 -0
- data/lib/neopets.rb +5 -0
- data/lib/neopets/pet.rb +48 -0
- data/lib/neopets/user.rb +62 -0
- data/lib/neopets/version.rb +3 -0
- data/neopets.gemspec +25 -0
- data/spec/_samples/userlookup/account_disabled.html +589 -0
- data/spec/_samples/userlookup/dirtside.html +962 -0
- data/spec/_samples/userlookup/not_found.html +731 -0
- data/spec/neopets/pet_spec.rb +43 -0
- data/spec/neopets/user_spec.rb +78 -0
- data/spec/spec_helper.rb +4 -0
- metadata +93 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1 @@
|
|
1
|
+
Autotest.add_discovery { "rspec2" }
|
data/lib/neopets.rb
ADDED
data/lib/neopets/pet.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
module Neopets
|
2
|
+
class Pet
|
3
|
+
attr_accessor :gender, :name
|
4
|
+
attr_reader :image_url
|
5
|
+
|
6
|
+
def initialize(name, options={})
|
7
|
+
@name = name
|
8
|
+
options.each { |key, value| self.send("#{key}=", value) }
|
9
|
+
end
|
10
|
+
|
11
|
+
def cp
|
12
|
+
parse_image_url unless @cp
|
13
|
+
@cp
|
14
|
+
end
|
15
|
+
|
16
|
+
def female?
|
17
|
+
@gender == :female
|
18
|
+
end
|
19
|
+
|
20
|
+
def image_url=(url)
|
21
|
+
@image_url = url
|
22
|
+
|
23
|
+
# Expire the memoized cp and mood, since with this new URL they're no
|
24
|
+
# longer true. By this strategy, we don't run the regex parse unless
|
25
|
+
# we need to, but still always keep the cp/mood values up-to-date.
|
26
|
+
@cp = nil
|
27
|
+
@mood = nil
|
28
|
+
end
|
29
|
+
|
30
|
+
def male?
|
31
|
+
@gender == :male
|
32
|
+
end
|
33
|
+
|
34
|
+
def mood
|
35
|
+
parse_image_url unless @mood
|
36
|
+
@mood
|
37
|
+
end
|
38
|
+
|
39
|
+
protected
|
40
|
+
|
41
|
+
IMAGE_URL_PATTERN = %r{http://pets\.neopets\.com/cp/([a-z0-9]+)/([0-9])/[0-9]\.png}
|
42
|
+
MOODS = {'1' => :happy, '2' => :sad, '4' => :sick}
|
43
|
+
def parse_image_url
|
44
|
+
@cp, mood_code = @image_url.match(IMAGE_URL_PATTERN).captures
|
45
|
+
@mood = MOODS[mood_code]
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/lib/neopets/user.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'open-uri'
|
3
|
+
require 'neopets/pet'
|
4
|
+
|
5
|
+
module Neopets
|
6
|
+
class User
|
7
|
+
class Error < RuntimeError; end
|
8
|
+
class AccountDisabledError < Error; end
|
9
|
+
class ConnectionError < Error; end
|
10
|
+
class NotFoundError < Error; end
|
11
|
+
|
12
|
+
attr_reader :username
|
13
|
+
|
14
|
+
def initialize(username)
|
15
|
+
@username = username
|
16
|
+
end
|
17
|
+
|
18
|
+
def pets
|
19
|
+
load_userlookup unless @pets
|
20
|
+
@pets
|
21
|
+
end
|
22
|
+
|
23
|
+
protected
|
24
|
+
|
25
|
+
def load_userlookup
|
26
|
+
doc = open_doc(userlookup_url)
|
27
|
+
user_node = doc.at('#userneopets')
|
28
|
+
unless user_node
|
29
|
+
if doc.css('#content td.content b').last.content == 'This account has been disabled.'
|
30
|
+
raise AccountDisabledError, "User #{@username.inspect} has been frozen"
|
31
|
+
else
|
32
|
+
raise NotFoundError, "User #{@username.inspect} not found on Neopets.com"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
pet_nodes = user_node.css('td.contentModuleContent td')
|
37
|
+
@pets = pet_nodes.map { |n| pet_from_node(n) }
|
38
|
+
end
|
39
|
+
|
40
|
+
def open_doc(url)
|
41
|
+
begin
|
42
|
+
source = open(url)
|
43
|
+
rescue Exception => e
|
44
|
+
raise ConnectionError, "request to #{url.inspect} raised #{e.class}: #{e.message}"
|
45
|
+
end
|
46
|
+
Nokogiri::HTML(source)
|
47
|
+
end
|
48
|
+
|
49
|
+
def pet_from_node(node)
|
50
|
+
bolds = node.css('b')
|
51
|
+
|
52
|
+
Pet.new(bolds[0].content,
|
53
|
+
:gender => (bolds[1].content == 'Male' ? :male : :female),
|
54
|
+
:image_url => node.at('img')['src']
|
55
|
+
)
|
56
|
+
end
|
57
|
+
|
58
|
+
def userlookup_url
|
59
|
+
"http://www.neopets.com/userlookup.phtml?user=#{username}"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/neopets.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "neopets/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "neopets"
|
7
|
+
s.version = Neopets::VERSION
|
8
|
+
s.authors = ["Matchu"]
|
9
|
+
s.email = ["matchu1993@gmail.com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{access public information on Neopets.com}
|
12
|
+
|
13
|
+
s.files = `git ls-files`.split("\n")
|
14
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
15
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
|
18
|
+
# specify any dependencies here; for example:
|
19
|
+
# s.add_development_dependency "rspec"
|
20
|
+
# s.add_runtime_dependency "rest-client"
|
21
|
+
|
22
|
+
s.add_runtime_dependency "nokogiri", "~> 1.5.2"
|
23
|
+
s.add_development_dependency "rspec", "~> 2.10.0"
|
24
|
+
s.add_development_dependency "webmock", "~> 1.8.7"
|
25
|
+
end
|
@@ -0,0 +1,589 @@
|
|
1
|
+
|
2
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
3
|
+
<!--
|
4
|
+
host - neopets-web-72.811.mtvi.com
|
5
|
+
//-->
|
6
|
+
<html>
|
7
|
+
|
8
|
+
<head>
|
9
|
+
<meta name="description" content="Neopets.Com - Virtual Pet Community! Join up for free games, shops, auctions, chat and more!">
|
10
|
+
<meta name="keywords" content="pets, pet, games, game, virtual, chat, fun, prizes, play, virtual pet, kids">
|
11
|
+
<meta name="robots" content="noodp, index, follow">
|
12
|
+
<meta http-equiv="X-UA-Compatible" content="IE=8">
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
<link rel="stylesheet" type="text/css" href="http://images.neopets.com/css/default.css?v=3">
|
17
|
+
<link rel="stylesheet" type="text/css" href="http://images.neopets.com/css/ad.css?v=3">
|
18
|
+
|
19
|
+
<link rel="stylesheet" type="text/css" href="http://images.neopets.com/css/themes/027_tkg_69097.css?v=4">
|
20
|
+
|
21
|
+
<title>Neopets - User Lookup</title>
|
22
|
+
|
23
|
+
<script id="js-framework" type="text/javascript" language="JavaScript" src="http://images.neopets.com/js/common.js?v=3"></script>
|
24
|
+
<script id="js-browserdetect" type="text/javascript" language="JavaScript" src="http://images.neopets.com/js/getbrowser.js?v=1"></script>
|
25
|
+
<script type="text/javascript" src="http://images.neopets.com/n.js"></script> <script type="text/javascript">
|
26
|
+
<!--
|
27
|
+
var nl = "en";
|
28
|
+
var nh = 8;
|
29
|
+
var nm = 57;
|
30
|
+
var ns = 28;
|
31
|
+
var na = "am";
|
32
|
+
var ncl = new Array(0, 53, 104, 137, 169, 198, 231, 265, 299, 335, 368, 397, 427);
|
33
|
+
|
34
|
+
window.setInterval('nc()', 1000);
|
35
|
+
|
36
|
+
function sh(i) {
|
37
|
+
ol.style.clip = "rect("+ncl[i-1]+" 128 "+ncl[i]+" 0)";
|
38
|
+
ol.style.visibility = "visible";
|
39
|
+
}
|
40
|
+
|
41
|
+
function mo() {
|
42
|
+
ol.style.visibility = "hidden";
|
43
|
+
}
|
44
|
+
|
45
|
+
function search_handle(searchForm) {
|
46
|
+
searchForm.action = "/search.phtml";
|
47
|
+
searchForm.target = "";
|
48
|
+
searchForm.method = "post";
|
49
|
+
searchForm.s.value = searchForm.q.value;
|
50
|
+
searchForm.submit();
|
51
|
+
};
|
52
|
+
//-->
|
53
|
+
</script>
|
54
|
+
<script type="text/javascript">
|
55
|
+
var _gaq = _gaq || [];
|
56
|
+
_gaq.push(['_setAccount', 'UA-1152868-1']);
|
57
|
+
_gaq.push(['_setCustomVar', 1, 'age-gender', 'male-18', 2]);
|
58
|
+
_gaq.push(['_trackPageview', '/userlookup.phtml']);
|
59
|
+
(function() {
|
60
|
+
var ga = document.createElement('script');
|
61
|
+
ga.type = 'text/javascript'; ga.async = true;
|
62
|
+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
63
|
+
var s = document.getElementsByTagName('script')[0];
|
64
|
+
s.parentNode.insertBefore(ga, s);
|
65
|
+
})();
|
66
|
+
|
67
|
+
</script>
|
68
|
+
<script type="text/javascript" src="http://images.neopets.com/js/kids/coda.js"></script>
|
69
|
+
<script type="text/javascript" src="http://images.neopets.com/js/kids/ads.js"></script>
|
70
|
+
<script type="text/javascript">
|
71
|
+
function omnitureTrackPage(advertiser, id) { return sendReportingCall(id, advertiser); }
|
72
|
+
function omnitureTrackClick(advertiser, id) { return sendADLinkCall(advertiser + " - " + id); }
|
73
|
+
</script>
|
74
|
+
<script type="text/javascript">
|
75
|
+
KIDS.ads.config = {"url":"default","text":"default","gameLoaderCap":"0","zone":"","ads":[{"size":"728x90","elementID":"ad-728x90IF","keyValues":"pos=atf;","dartPercent":"0.0","refreshable":"true","refreshRate":"0.5","yahooAds":"false"},{"size":"300x250","elementID":"ad-300x250IF-atf","keyValues":"pos=atf;","dartPercent":"0.0","refreshable":"true","refreshRate":"0.5","yahooAds":"false"},{"size":"300x250","elementID":"ad-300x250IF-btf","keyValues":"pos=btf;","dartPercent":"1.0","refreshable":"false","refreshRate":"1.0","yahooAds":"false"},{"size":"160x600","elementID":"ad-160x600IF","keyValues":"pos=atf;","dartPercent":"0.0","refreshable":"true","refreshRate":"0.5","yahooAds":"false"}],"demo":{"gender":"M","age":18}};
|
76
|
+
</script>
|
77
|
+
</head>
|
78
|
+
<body>
|
79
|
+
<div id="main">
|
80
|
+
|
81
|
+
<div id="ban" ></div>
|
82
|
+
|
83
|
+
<div id="header">
|
84
|
+
<table cellpadding="0" cellspacing="0" border="0">
|
85
|
+
<tr>
|
86
|
+
<td width="156" rowspan="3"><a href="/index.phtml"><img src="http://images.neopets.com/transparent_spacer.gif" width="156" height="77" alt="" border="0"></a></td>
|
87
|
+
<td class="eventIcon sf" xalign="left"> </td>
|
88
|
+
<td class="user medText">
|
89
|
+
Welcome, <a href="/userlookup.phtml?user=matchu1993">matchu1993</a> <span style="font-weight: normal;">|</span> NP: <a id='npanchor' href="/objects.phtml?type=inventory">603,961</a> <span style="font-weight: normal;">|</span> <a href="/logout.phtml"><b>Logout</b></a> </td>
|
90
|
+
</tr>
|
91
|
+
<tr>
|
92
|
+
<td colspan="2" id="navigation">
|
93
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
94
|
+
<tr>
|
95
|
+
<td width="725" align="center">
|
96
|
+
<script type="text/javascript">
|
97
|
+
// Yay for Suckerfish!
|
98
|
+
startList = function() {
|
99
|
+
if (document.all&&document.getElementById) {
|
100
|
+
navRoot = document.getElementById("template_nav");
|
101
|
+
for (i=0; i<navRoot.childNodes.length; i++) {
|
102
|
+
node = navRoot.childNodes[i];
|
103
|
+
if (node.nodeName=="LI") {
|
104
|
+
node.onmouseover=function() {
|
105
|
+
this.className+=" over";
|
106
|
+
}
|
107
|
+
node.onmouseout=function() {
|
108
|
+
this.className=this.className.replace(" over", "");
|
109
|
+
}
|
110
|
+
}
|
111
|
+
}
|
112
|
+
}
|
113
|
+
}
|
114
|
+
window.onload=startList;
|
115
|
+
</script>
|
116
|
+
|
117
|
+
<ul id="template_nav">
|
118
|
+
<li class="nav_image"><a href="/myaccount.phtml"><img src="http://images.neopets.com/themes/027_tkg_69097/navigation/myaccount.png" alt="" border="0" width="119" height="38"></a><ul class="dropdown">
|
119
|
+
<li><a href="/myaccount.phtml">» Control Panel</a></li>
|
120
|
+
<li><a href="/preferences.phtml">» Preferences</a></li>
|
121
|
+
<li><a href="/userinfo.phtml">» Edit Profile</a></li>
|
122
|
+
<li><a href="/neomessages.phtml">» Neomail</a></li>
|
123
|
+
<li><a href="/neofriends.phtml">» Neofriends</a></li>
|
124
|
+
<li><a href="/addpet.phtml">» Create a Neopet</a></li>
|
125
|
+
<li><a href="/space/warehouse/prizecodes.phtml">» Redeem Code</a></li>
|
126
|
+
</ul>
|
127
|
+
|
128
|
+
<li class="nav_image"><a href="/customise/"><img src="http://images.neopets.com/themes/027_tkg_69097/navigation/customise.png" alt="" border="0" width="89" height="38"></a><ul class="dropdown">
|
129
|
+
<li><a href="/customise/">» Customise Neopet</a></li>
|
130
|
+
<li><a href="/objects.phtml?type=inventory">» Inventory</a></li>
|
131
|
+
<li><a href="/closet.phtml">» Closet</a></li>
|
132
|
+
<li><a href="/neohome/"> » Neohomes</a></li>
|
133
|
+
<li><a href="/neohome/shed">» Storage Shed</a></li>
|
134
|
+
<li><a href="/addpet.phtml">» Create a Neopet</a></li>
|
135
|
+
</ul>
|
136
|
+
</li>
|
137
|
+
|
138
|
+
<li class="nav_image"><a href="/games/"><img src="http://images.neopets.com/themes/027_tkg_69097/navigation/games.png" alt="" border="0" width="66" height="38"></a><ul class="dropdown">
|
139
|
+
<li><a href="/games/">» Games Room</a></li>
|
140
|
+
<li><a href="/games/category.phtml?sortby=pop">» Popular</a></li>
|
141
|
+
<li><a href="/games/hiscores.phtml">» High Scores</a></li>
|
142
|
+
<li><a href="/games/favourites.phtml">» Favourites</a></li>
|
143
|
+
<li><a href="/keyquest/">» Key Quest</a></li>
|
144
|
+
<li><a href="/habitarium/">» Habitarium</a></li>
|
145
|
+
</ul>
|
146
|
+
</li>
|
147
|
+
|
148
|
+
<li class="nav_image"><a href="/explore.phtml"><img src="http://images.neopets.com/themes/027_tkg_69097/navigation/explore.png" alt="" border="0" width="75" height="38"></a><ul class="dropdown">
|
149
|
+
<li><a href="/explore.phtml">» Map of Neopia</a></li>
|
150
|
+
<li><a href="/help/tutorial/index.phtml">» Tutorial</a></li>
|
151
|
+
<li><a href="/weather.phtml">» Weather</a></li>
|
152
|
+
<li><a href="/pronounce.phtml">» Pronunciation</a></li>
|
153
|
+
<li><a href="/neopedia.phtml">» Neopedia</a></li>
|
154
|
+
</ul>
|
155
|
+
</li>
|
156
|
+
|
157
|
+
<li class="nav_image"><a href="/nf.phtml"><img src="http://images.neopets.com/themes/027_tkg_69097/navigation/news.png" alt="" border="0" width="58" height="38"></a><ul class="dropdown">
|
158
|
+
<li><a href="/nf.phtml">» New Features</a></li>
|
159
|
+
<li><a href="/comingsoon.phtml">» Coming Soon</a></li>
|
160
|
+
<li><a href="/ntimes/index.phtml">» Neopian Times</a></li><li><a href="/stuff.phtml">» Merch News</a></li> </ul>
|
161
|
+
</li>
|
162
|
+
|
163
|
+
<li class="nav_image"><a href="/petcentral.phtml"><img src="http://images.neopets.com/themes/027_tkg_69097/navigation/petcentral.png" alt="" border="0" width="95" height="38"></a><ul class="dropdown">
|
164
|
+
<li><a href="/petcentral.phtml">» Main</a></li>
|
165
|
+
<li><a href="/calendar.phtml">» Calendar</a></li>
|
166
|
+
<li><a href="/worldevents.phtml">» World Events</a></li>
|
167
|
+
<li><a href="/pound/index.phtml">» Neopian Pound</a></li>
|
168
|
+
</ul>
|
169
|
+
</li>
|
170
|
+
|
171
|
+
<li class="nav_image"><a href="/neoboards/index.phtml"><img src="http://images.neopets.com/themes/027_tkg_69097/navigation/boards.png" alt="" border="0" width="68" height="38"></a><ul class="dropdown">
|
172
|
+
<li><a href="/neoboards/index.phtml">» Neoboard Index</a></li>
|
173
|
+
<li><a href="/neoboards/preferences.phtml">» Preferences</a></li>
|
174
|
+
</ul>
|
175
|
+
</li>
|
176
|
+
|
177
|
+
<li class="nav_image"><a href="/objects.phtml"><img src="http://images.neopets.com/themes/027_tkg_69097/navigation/shops.png" alt="" border="0" width="62" height="38"></a><ul class="dropdown">
|
178
|
+
<li><a href="/objects.phtml">» Neopia Central</a></li>
|
179
|
+
<li><a href="/market.phtml?type=wizard">» Shop Wizard</a></li>
|
180
|
+
<li><a href="/market.phtml?type=your">» Your Shop</a></li>
|
181
|
+
<li><a href="/auctions.phtml">» Auctions</a></li>
|
182
|
+
<li><a href="/island/tradingpost.phtml">» Trading Post</a></li>
|
183
|
+
<li><a href="/bank.phtml">» Bank</a></li>
|
184
|
+
<li><a href="/shopping/index.phtml">» Merchandise</a></li>
|
185
|
+
</ul>
|
186
|
+
</li>
|
187
|
+
|
188
|
+
<style type="text/css">
|
189
|
+
li.nav_image {
|
190
|
+
margin-left: 0px;
|
191
|
+
}
|
192
|
+
</style>
|
193
|
+
<li class="nav_image"><a href="/mall/index.phtml"><img src="http://images.neopets.com/themes/027_tkg_69097/navigation/ncmall.png" alt="" border="0" width="93" height="38"></a><ul class="dropdown">
|
194
|
+
<li><a href="/mall/index.phtml">» Shop</a></li>
|
195
|
+
<li><a href="/mall/index.phtml?page=buy_nc">» Get Neocash</a></li>
|
196
|
+
<li><a href="/mall/index.phtml?type=11">» Neocash Cards</a></li>
|
197
|
+
<li><a href="/mall/index.phtml?page=redeem_nc ">» Redeem Neocash Card</a></li>
|
198
|
+
</ul>
|
199
|
+
</li>
|
200
|
+
</ul>
|
201
|
+
</td>
|
202
|
+
<td id="nst">8:57:28 am NST</td>
|
203
|
+
</tr>
|
204
|
+
</table>
|
205
|
+
</td>
|
206
|
+
</tr>
|
207
|
+
<tr>
|
208
|
+
<td colspan="3" height="3"><img src="http://images.neopets.com/transparent_spacer.gif" width="1" height="3" alt="" border="0"></td>
|
209
|
+
</tr>
|
210
|
+
</table>
|
211
|
+
</div>
|
212
|
+
|
213
|
+
<div id="content">
|
214
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
215
|
+
<tr>
|
216
|
+
<td class="content">
|
217
|
+
|
218
|
+
<div align="center" style="font-size: 10pt;">
|
219
|
+
<b>User Lookup: poop</b> <a href="/s/index.phtml?track_cat_id=50&item_id=492"><img src="http://images.neopets.com/help/question_mark.png" width="13" height="13" alt="" border="0" align="absbottom"></a>
|
220
|
+
</div><br /><b>This account has been disabled.</b>
|
221
|
+
<br clear="all">
|
222
|
+
|
223
|
+
</td>
|
224
|
+
</tr>
|
225
|
+
</table>
|
226
|
+
</div>
|
227
|
+
<div id="footer">
|
228
|
+
<img src="http://images.neopets.com/themes/027_tkg_69097/rotations/7.png" width="200" height="170" alt="" border="0" class="footerNifty">
|
229
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="footer">
|
230
|
+
<tr>
|
231
|
+
<td width="175" align="left"><a href="/index.phtml"><img src="http://images.neopets.com/transparent_spacer.gif" width="156" height="46" alt="Neopets.com" border="0"></a></td>
|
232
|
+
<td align="left"><br>
|
233
|
+
<table cellpadding="0" cellspacing="0" border="0">
|
234
|
+
<tr>
|
235
|
+
<!-- Search -->
|
236
|
+
<td class="sf" valign="middle">
|
237
|
+
<form onSubmit="javascript: search_handle(this);">
|
238
|
+
<table cellpadding="0" cellspacing="0" border="0">
|
239
|
+
<tr>
|
240
|
+
<td class="footerForm sf" valign="middle"><b>Search Neopets:</b> </td>
|
241
|
+
<td valign="middle"><input class="sf" type="text" name="q" size="25" maxlength="255" value="Enter search text..." style="color: #a5a5a5; padding: 2px;" onFocus="this.style.color='#000000'; if( this.value=='Enter search text...' ) { this.value=''; }" onBlur="if( this.value=='' ) { this.style.color='#A5A5A5'; this.value='Enter search text...'; }"> </td>
|
242
|
+
<td valign="middle"><input type="submit" value="Go!" class="sf">
|
243
|
+
<input type="hidden" name="client" value="pub-9208792519293771">
|
244
|
+
<input type="hidden" name="forid" value="1">
|
245
|
+
<input type="hidden" name="ie" value="ISO-8859-1">
|
246
|
+
<input type="hidden" name="oe" value="ISO-8859-1">
|
247
|
+
<input type="hidden" name="safe" value="active">
|
248
|
+
<input type="hidden" name="domains" value="www.neopets.com">
|
249
|
+
<input type="hidden" name="cof" value="GALT:#FFFFFF;GL:1;DIV:#000066;VLC:FFFFFF;AH:center;BGC:FFFFFF;LBGC:000066;ALC:FFFFFF;LC:FFFFFF;T:000000;GFNT:000066;GIMP:000077;FORID:1">
|
250
|
+
<input type="hidden" name="hl" value="en">
|
251
|
+
<input type="hidden" name="s">
|
252
|
+
</td>
|
253
|
+
</tr>
|
254
|
+
</table>
|
255
|
+
</form>
|
256
|
+
</td>
|
257
|
+
<td width="15"> </td>
|
258
|
+
<!-- Language -->
|
259
|
+
<td class="sf" valign="top">
|
260
|
+
<table cellpadding="0" cellspacing="0" border="0">
|
261
|
+
<tr>
|
262
|
+
<td class="footerForm sf" valign="middle"><form method="post"><b>Select Language:</b> </td>
|
263
|
+
<td valign="top">
|
264
|
+
<select name="lang" class="sf"><option value="en" selected>English</option><option value="nl">Nederlands</option><option value="pt">Português</option><option value="de">Deutsch</option><option value="fr">Français</option><option value="it">Italiano</option><option value="es">Español</option><option value="ch">简体中文</option><option value="zh">繁體中文</option><option value="ja">日本語</option><option value="ko">한국어</option></select> </td>
|
265
|
+
<td valign="top"><input type="submit" value="Go!" class="sf"></form></td>
|
266
|
+
</tr>
|
267
|
+
</table>
|
268
|
+
</td>
|
269
|
+
</tr>
|
270
|
+
</table>
|
271
|
+
</td>
|
272
|
+
</tr>
|
273
|
+
<tr>
|
274
|
+
<td colspan="2" class="copyright">
|
275
|
+
|
276
|
+
<a href='/privacy.phtml'><img src='http://images.neopets.com/themes/027_tkg_69097/navigation/privacypolicy.png' width='81' height='18' border='0' alt='privacypolicy'></a>
|
277
|
+
<img src='http://images.neopets.com/themes/027_tkg_69097/navigation/divider.png' width='4' height='16' border='0'>
|
278
|
+
<a href='/safetytips.phtml'><img src='http://images.neopets.com/themes/027_tkg_69097/navigation/safetytips.png' width='61' height='18' border='0' alt='safetytips'></a>
|
279
|
+
<img src='http://images.neopets.com/themes/027_tkg_69097/navigation/divider.png' width='4' height='16' border='0'>
|
280
|
+
<a href='/contact.phtml'><img src='http://images.neopets.com/themes/027_tkg_69097/navigation/contactus.png' width='60' height='18' border='0' alt='contactus'></a>
|
281
|
+
<img src='http://images.neopets.com/themes/027_tkg_69097/navigation/divider.png' width='4' height='16' border='0'>
|
282
|
+
<a href='/aboutus.phtml'><img src='http://images.neopets.com/themes/027_tkg_69097/navigation/aboutus.png' width='50' height='18' border='0' alt='aboutus'></a>
|
283
|
+
<img src='http://images.neopets.com/themes/027_tkg_69097/navigation/divider.png' width='4' height='16' border='0'>
|
284
|
+
<a href='/refer/index.phtml'><img src='http://images.neopets.com/themes/027_tkg_69097/navigation/referral.png' width='98' height='18' border='0' alt='referral'></a>
|
285
|
+
<img src='http://images.neopets.com/themes/027_tkg_69097/navigation/divider.png' width='4' height='16' border='0'>
|
286
|
+
<a href='/help.phtml'><img src='http://images.neopets.com/themes/027_tkg_69097/navigation/help.png' width='25' height='18' border='0' alt='help'></a>
|
287
|
+
<img src='http://images.neopets.com/themes/027_tkg_69097/navigation/divider.png' width='4' height='16' border='0'>
|
288
|
+
<a href='http://srp.mtvn.com/sitefaq.html' target='_blank'><img src='http://images.neopets.com/themes/027_tkg_69097/navigation/ad-choices.png' width='75' height='18' border='0' alt='ad-choices'></a>
|
289
|
+
<script type="text/javascript">
|
290
|
+
function setVisible(obj) {
|
291
|
+
obj = document.getElementById(obj);
|
292
|
+
obj.style.visibility = (obj.style.visibility == 'visible') ? 'hidden' : 'visible';
|
293
|
+
obj.style.zIndex = '9999';
|
294
|
+
document.getElementById('dimBackground').style.visibility = (document.getElementById('dimBackground').style.visibility == 'visible') ? 'hidden' : 'visible';
|
295
|
+
if(document.getElementById('fb-decoy') != null) {
|
296
|
+
document.getElementById('fb-decoy').style.zIndex = (document.getElementById('fb-decoy').style.zIndex == '9999') ? '-1' : '9999';
|
297
|
+
}
|
298
|
+
|
299
|
+
if(document.getElementById('kq-body-content') != null) {
|
300
|
+
document.getElementById('kq-body-content').style.visibility = (document.getElementById('kq-body-content').style.visibility == 'hidden') ? 'visible' : 'hidden';
|
301
|
+
}
|
302
|
+
|
303
|
+
if(document.getElementById('navigation') != null) {
|
304
|
+
document.getElementById('navigation').style.visibility = (document.getElementById('navigation').style.visibility == 'hidden') ? 'visible' : 'hidden';
|
305
|
+
}
|
306
|
+
}
|
307
|
+
if(document.getElementById('fb-decoy') != null) {
|
308
|
+
document.getElementById('fb-decoy').style.zIndex = '9999';
|
309
|
+
}
|
310
|
+
</script>
|
311
|
+
<style type="text/css">
|
312
|
+
.bumper {
|
313
|
+
position: fixed;
|
314
|
+
top:50%;
|
315
|
+
left:50%;
|
316
|
+
right:50%;
|
317
|
+
margin-top:-10%;
|
318
|
+
margin-left:-20%;
|
319
|
+
visibility: hidden;
|
320
|
+
background: url('http://images.neopets.com/help/bumper/bg.png');
|
321
|
+
width: 580px;
|
322
|
+
height: 300px;
|
323
|
+
padding: 20px;
|
324
|
+
font-family: Verdana, Arial, Helvetica, sans-serif;
|
325
|
+
font-size: 9pt;
|
326
|
+
background-repeat: no-repeat;
|
327
|
+
z-index:9200;
|
328
|
+
}
|
329
|
+
|
330
|
+
.bumper p {
|
331
|
+
display:block;
|
332
|
+
position:absolute;
|
333
|
+
left:20px;
|
334
|
+
top:50px;
|
335
|
+
width:385px;
|
336
|
+
font-size:12px;
|
337
|
+
font-family:font-family: Verdana, Arial, Helvetica, sans-serif;
|
338
|
+
margin:0px;
|
339
|
+
padding:0px;
|
340
|
+
}
|
341
|
+
|
342
|
+
.bumper div, .bumper p {
|
343
|
+
color: black;
|
344
|
+
}
|
345
|
+
|
346
|
+
#open {
|
347
|
+
position:absolute;
|
348
|
+
top:118px;
|
349
|
+
background: url('http://images.neopets.com/help/bumper/buttons/yes.png');
|
350
|
+
width: 177px;
|
351
|
+
height: 137px;
|
352
|
+
overflow:hidden;
|
353
|
+
text-align: center;
|
354
|
+
cursor: pointer
|
355
|
+
}
|
356
|
+
|
357
|
+
#close {
|
358
|
+
position:absolute;
|
359
|
+
top:118px;
|
360
|
+
left:220px;
|
361
|
+
background: url('http://images.neopets.com/help/bumper/buttons/no.png');
|
362
|
+
width: 177px;
|
363
|
+
height: 137px;
|
364
|
+
overflow:hidden;
|
365
|
+
cursor: pointer
|
366
|
+
}
|
367
|
+
|
368
|
+
#close:hover {
|
369
|
+
background: url('http://images.neopets.com/help/bumper/buttons/no.png') repeat 0 -137px;
|
370
|
+
}
|
371
|
+
|
372
|
+
#open:hover {
|
373
|
+
background: url('http://images.neopets.com/help/bumper/buttons/yes.png') repeat 0 -137px;
|
374
|
+
}
|
375
|
+
|
376
|
+
#a:hover .close {
|
377
|
+
background: url('http://images.neopets.com/help/bumper/buttons/no.png') repeat 0 -137px;
|
378
|
+
}
|
379
|
+
|
380
|
+
#close-text {
|
381
|
+
position: absolute;
|
382
|
+
top:68px; left:7px;
|
383
|
+
width: 160px;
|
384
|
+
height:75px;
|
385
|
+
text-align: center;
|
386
|
+
font-family: Arial, Helvetica, sans-serif;
|
387
|
+
font-weight: bold;
|
388
|
+
font-size: 8pt;
|
389
|
+
}
|
390
|
+
|
391
|
+
#open-text {
|
392
|
+
position: absolute;
|
393
|
+
top:68px;
|
394
|
+
left:7px;
|
395
|
+
width: 160px;
|
396
|
+
height:75px;
|
397
|
+
text-align: center;
|
398
|
+
font-family: Arial, Helvetica, sans-serif;
|
399
|
+
font-weight: bold;
|
400
|
+
font-size: 8pt;
|
401
|
+
}
|
402
|
+
|
403
|
+
#dimBackground {
|
404
|
+
position:fixed;
|
405
|
+
width: 100%;
|
406
|
+
height: 100%;
|
407
|
+
background: url(http://images.neopets.com/dark-semi-trans.png);
|
408
|
+
left: 0;
|
409
|
+
top: 0;
|
410
|
+
z-index: 998;
|
411
|
+
visibility:hidden;
|
412
|
+
}
|
413
|
+
|
414
|
+
#fb-decoy {
|
415
|
+
display:inline-block;
|
416
|
+
position:relative;
|
417
|
+
right:0px;
|
418
|
+
bottom:21px;
|
419
|
+
height:30px;
|
420
|
+
width:60px;
|
421
|
+
background-color:white;
|
422
|
+
z-index:9;
|
423
|
+
}
|
424
|
+
|
425
|
+
#fb-decoy a {
|
426
|
+
position:absolute;
|
427
|
+
top:0px;
|
428
|
+
left:0px;
|
429
|
+
height:20px;
|
430
|
+
width:45px;
|
431
|
+
background-image:url("http://images.neopets.com/np-facebook-like.png");
|
432
|
+
background-position:0px 0px;
|
433
|
+
background-repeat:no-repeat;
|
434
|
+
z-index:999999;
|
435
|
+
}
|
436
|
+
|
437
|
+
#fb-decoy a:hover {
|
438
|
+
text-align:left;
|
439
|
+
background-position:0px -20px;
|
440
|
+
}
|
441
|
+
|
442
|
+
.layer-msg {
|
443
|
+
display:inline;
|
444
|
+
position:absolute;
|
445
|
+
top:252px;
|
446
|
+
left:27px;
|
447
|
+
width:370px;
|
448
|
+
}
|
449
|
+
|
450
|
+
#facebook_games {
|
451
|
+
position:relative;
|
452
|
+
display:inline-block;
|
453
|
+
top:-21px;
|
454
|
+
left:115px;
|
455
|
+
text-align:right;
|
456
|
+
width:144px;
|
457
|
+
height:15px;
|
458
|
+
}
|
459
|
+
|
460
|
+
.fb_iframe_widget iframe {
|
461
|
+
display:block;
|
462
|
+
left:0px;
|
463
|
+
}
|
464
|
+
|
465
|
+
#facebook_games #fb-decoy {
|
466
|
+
display:inline-block;
|
467
|
+
left:-94px;
|
468
|
+
width:46px;
|
469
|
+
height:21px;
|
470
|
+
}
|
471
|
+
|
472
|
+
@media screen and (-webkit-min-device-pixel-ratio:0){
|
473
|
+
#facebook_games #fb-decoy {
|
474
|
+
bottom:22px;
|
475
|
+
left:-98px;
|
476
|
+
}
|
477
|
+
}
|
478
|
+
|
479
|
+
#hab-main #facebook_games {
|
480
|
+
float:left;
|
481
|
+
text-align:right;
|
482
|
+
height:25px;
|
483
|
+
margin-top:2px;
|
484
|
+
}
|
485
|
+
|
486
|
+
#hab-main #facebook_games $fb-decoy {
|
487
|
+
float:left;
|
488
|
+
left:0px;
|
489
|
+
}
|
490
|
+
|
491
|
+
.fb-like-button #fb-decoy {
|
492
|
+
display:block;
|
493
|
+
height:21px;
|
494
|
+
width:45px;
|
495
|
+
}
|
496
|
+
|
497
|
+
#hab-logo {
|
498
|
+
clear:both;
|
499
|
+
display:block;
|
500
|
+
position:relative;
|
501
|
+
right:2px;
|
502
|
+
bottom:4px;
|
503
|
+
}
|
504
|
+
|
505
|
+
#gamesHeader #facebook_games {
|
506
|
+
margin-left:0px;
|
507
|
+
height:23px;
|
508
|
+
top:2px;
|
509
|
+
}
|
510
|
+
|
511
|
+
#gamesHeader #fb-decoy {
|
512
|
+
top:-35px;
|
513
|
+
left:0px;
|
514
|
+
float:left;
|
515
|
+
height:21px;
|
516
|
+
}
|
517
|
+
|
518
|
+
.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr {
|
519
|
+
display:none;
|
520
|
+
}
|
521
|
+
|
522
|
+
.connect_comment_widget .nub {
|
523
|
+
display:none;
|
524
|
+
}
|
525
|
+
</style>
|
526
|
+
<div id="dimBackground"></div>
|
527
|
+
<div class="bumper" id="layer1">
|
528
|
+
<img src="http://images.neopets.com/help/bumper/headers/leaving-neopia.png" alt="Heads Up! You're about to leave Neopia!" />
|
529
|
+
<br />
|
530
|
+
<p>You've clicked on a link that will take you outside of<BR> Neopets.com. We do not control your destination's website,<BR> so its rules, regulations, and Meepit defense systems will be<BR> different! Are you sure you'd like to continue?</p>
|
531
|
+
<br><br>
|
532
|
+
<div id="open" onclick="window.open('http://www.facebook.com/neopets','Facebook','width =800,height=800, resizable=yes,scrollbars=yes,toolbar=yes');location.href='javascript:setVisible(\'layer1\',true)'">
|
533
|
+
<div id="open-text">
|
534
|
+
It is a journey<BR>I must face...alone.<br>*dramatic music*
|
535
|
+
</div>
|
536
|
+
</div>
|
537
|
+
<div id="close-hover" style="display: hidden;"></div>
|
538
|
+
<div id="close" onclick="location.href='javascript:setVisible(\'layer1\',true)'">
|
539
|
+
<div id="close-text" >
|
540
|
+
I want to stay on Neopets,<BR>where the dangers of<br>Meepit invasion<br> are taken seriously.
|
541
|
+
</div>
|
542
|
+
</div></div><div class="bumper" id="layer2">
|
543
|
+
<img src="http://images.neopets.com/help/bumper/headers/leaving-neopia.png" alt="Heads Up! You're about to leave Neopia!" />
|
544
|
+
<br />
|
545
|
+
<p>You've clicked on a link that will take you outside of<BR> Neopets.com. We do not control your destination's website,<BR> so its rules, regulations, and Meepit defense systems will be<BR> different! Are you sure you'd like to continue?</p>
|
546
|
+
<br><br>
|
547
|
+
<div id="open" onclick="document.getElementById('fb-decoy').style.visibility='hidden';location.href='javascript:setVisible(\'layer2\',true)'">
|
548
|
+
<div id="open-text">
|
549
|
+
It is a journey<BR>I must face...alone.<br>*dramatic music*
|
550
|
+
</div>
|
551
|
+
</div>
|
552
|
+
<div id="close-hover" style="display: hidden;"></div>
|
553
|
+
<div id="close" onclick="location.href='javascript:setVisible(\'layer2\',true)'">
|
554
|
+
<div id="close-text" >
|
555
|
+
I want to stay on Neopets,<BR>where the dangers of<br>Meepit invasion<br> are taken seriously.
|
556
|
+
</div>
|
557
|
+
</div>
|
558
|
+
<div class="layer-msg" style="clear:both;">
|
559
|
+
<img src="http://images.neopets.com/help/bumper/headers/log-in-to-facebook.png" alt="/help/bumper/headers/log-in-to-facebook" />
|
560
|
+
</div></div><div style='position:absolute;right:257px;top:52px;overflow:hidden;'><img src ='http://images.neopets.com/themes/027_tkg_69097/navigation/follow-us-on.png'><a href="http://www.facebook.com/neopets" target="_blank"><img src ='http://images.neopets.com/facebook-icon.png' border=0><a/></div><div style='position:absolute;right:257px;top:82px;overflow:hidden;'><a href="/prefs_fb.phtml"><img src="http://images.neopets.com/template/fb_connect/fb-connect.png" border="0"></a></div> <br>
|
561
|
+
<div class='sf' style='width: 775px;'>
|
562
|
+
<img src='http://images.neopets.com/themes/027_tkg_69097/nvw.png' alt='Nickelodeon Virtual Worlds' title='Nickelodeon Virtual Worlds' align='top' hspace='5' vspace='5' align='left'>
|
563
|
+
<img src='http://images.neopets.com/comscore-gray.gif' vspace='5' width='99' height='32' alt='Nickelodeon Kids and Teens' title='Nickelodeon Kids and Teens'><br>
|
564
|
+
NEOPETS and all related indicia are trademarks of <a href="/aboutus.phtml"><b>Neopets, Inc.</b></a>, © 1999-2012. ® denotes Reg. USPTO. All rights reserved. Use of this site signifies your acceptance of the <a href='/terms.phtml'><b>Terms of Use</b></a>.
|
565
|
+
|
566
|
+
|
567
|
+
</div>
|
568
|
+
</td>
|
569
|
+
</tr>
|
570
|
+
</table>
|
571
|
+
</div>
|
572
|
+
|
573
|
+
|
574
|
+
<script language="JavaScript">
|
575
|
+
function tzCook() {
|
576
|
+
var today = new Date();
|
577
|
+
var expire = new Date();
|
578
|
+
expire.setTime(today.getTime() + 3600000*24*30);
|
579
|
+
var cstr = "_tz="+escape(today.getTimezoneOffset()) + ";expires="+expire.toGMTString() + ";path=/;domain=.neopets.com;";
|
580
|
+
document.cookie = cstr;
|
581
|
+
}
|
582
|
+
tzCook();
|
583
|
+
</script>
|
584
|
+
|
585
|
+
</div>
|
586
|
+
|
587
|
+
</body>
|
588
|
+
</html>
|
589
|
+
|