mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-03-21 17:50:29 -05:00
Improve directory indexes and 404 pages
Some checks failed
Node.js CI / build (22.x) (push) Has been cancelled
Some checks failed
Node.js CI / build (22.x) (push) Has been cancelled
We now have a custom look for directory indexes, so you can go dig through PS's back closets in style: https://play.pokemonshowdown.com/sprites/ Additionally, the 404 page everywhere is now as nice as the custom 404 page in Replays. https://pokemonshowdown.com/404
This commit is contained in:
parent
7cab679501
commit
2d7a9c81d4
|
|
@ -62,6 +62,8 @@ RewriteRule ^formatsuggestions/?$ https://pokemonshowdown.com/pages/formatsugges
|
|||
RewriteRule ^sprites\/xyani(.*)?$ sprites/ani$1 [L,QSA]
|
||||
RewriteRule ^sprites\/xydex(.*)?$ sprites/dex$1 [L,QSA]
|
||||
RewriteRule ^sprites\/smicons(.*)?$ sprites/pokemonicons$1 [L,QSA]
|
||||
RewriteRule ^sprites\/trainers\/latest\/?$ /sprites/trainers/?filter=recent [R=302,L,QSA]
|
||||
RewriteRule ^sprites\/trainers\/credits\/?$ /sprites/trainers/?filter=credited [R=302,L,QSA]
|
||||
|
||||
RewriteRule ^sprites\/rby(.*)?$ sprites/gen1$1 [L,QSA]
|
||||
RewriteRule ^sprites\/gsc(.*)?$ sprites/gen2$1 [L,QSA]
|
||||
|
|
@ -149,12 +151,8 @@ RewriteRule ^~~([^:/]*):([0-9]*)(/.*)?$ http://$1-$2.psim.us$3 [R=301,L]
|
|||
|
||||
RewriteRule ^backup/ - [F]
|
||||
RewriteRule ^\.git/ - [F]
|
||||
RewriteRule ^data/Pokemon-Showdown/ - [F]
|
||||
RewriteRule ^lib/ - [F]
|
||||
RewriteRule ^githooks/ - [F]
|
||||
|
||||
RewriteRule ^\.gitignore$ - [F]
|
||||
RewriteRule ^README\.md$ - [F]
|
||||
RewriteRule ^index\.template\.html$ - [F]
|
||||
RewriteRule ^preactalpha\.template\.html$ - [F]
|
||||
RewriteRule ^testclient\.html$ - [F]
|
||||
|
|
@ -164,3 +162,6 @@ RewriteCond %{REQUEST_FILENAME} !-f
|
|||
RewriteRule ^(apple-touch-icon-precomposed\.png)$ - [R=404,L]
|
||||
|
||||
</IfModule>
|
||||
|
||||
DirectoryIndex index.php index.html /dirindex/dirindex.php
|
||||
ErrorDocument 404 /dirindex/404.html
|
||||
|
|
|
|||
81
play.pokemonshowdown.com/dirindex/404.html
Normal file
81
play.pokemonshowdown.com/dirindex/404.html
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
|
||||
<title>Not Found - Pokémon Showdown!</title>
|
||||
|
||||
<link rel="stylesheet" href="//pokemonshowdown.com/style/global.css?v15" />
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-26211653-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-26211653-1');
|
||||
</script>
|
||||
<!-- End Google Analytics -->
|
||||
|
||||
<style>
|
||||
a {
|
||||
color: #0073aa;
|
||||
}
|
||||
a:visited {
|
||||
color: #8000aa;
|
||||
}
|
||||
.dark a {
|
||||
color: #86cbeb;
|
||||
}
|
||||
.dark a:visited {
|
||||
color: #d4a2e5;
|
||||
}
|
||||
.nav a:visited {
|
||||
color: white;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="body">
|
||||
|
||||
<header>
|
||||
<div class="nav-wrapper"><ul class="nav">
|
||||
<li><a class="button nav-first" href="//pokemonshowdown.com/"><img src="//pokemonshowdown.com/images/pokemonshowdownbeta.png" srcset="//pokemonshowdown.com/images/pokemonshowdownbeta.png 1x, //pokemonshowdown.com/images/pokemonshowdownbeta@2x.png 2x" alt="Pokémon Showdown" width="146" height="44" /> Home</a></li>
|
||||
<li><a class="button" href="//pokemonshowdown.com/dex/">Pokédex</a></li>
|
||||
<li><a class="button" href="//replay.pokemonshowdown.com/">Replays</a></li>
|
||||
<li><a class="button" href="//pokemonshowdown.com/ladder/">Ladder</a></li>
|
||||
<li><a class="button nav-last" href="//pokemonshowdown.com/forums/">Forum</a></li>
|
||||
<li><a class="button greenbutton nav-first nav-last" href="//play.pokemonshowdown.com/">Play</a></li>
|
||||
</ul></div>
|
||||
</header>
|
||||
|
||||
<div class="main">
|
||||
|
||||
<section class="section" style="max-width:200px;margin:20px auto">
|
||||
<div style="text-align:center">
|
||||
<img src="//play.pokemonshowdown.com/sprites/gen5ani/unown-e.gif" alt="" style="image-rendering: pixelated"
|
||||
/><img src="//play.pokemonshowdown.com/sprites/gen5ani/unown-r.gif" alt="" style="image-rendering: pixelated;margin:0 8px"
|
||||
/><img src="//play.pokemonshowdown.com/sprites/gen5ani/unown-r.gif" alt="" style="image-rendering: pixelated"
|
||||
/><img src="//play.pokemonshowdown.com/sprites/gen5ani/unown-o.gif" alt="" style="image-rendering: pixelated"
|
||||
/><img src="//play.pokemonshowdown.com/sprites/gen5ani/unown-r.gif" alt="" style="image-rendering: pixelated" />
|
||||
</div>
|
||||
</section><section class="section">
|
||||
<h1>Error 404: Not Found</h1>
|
||||
<p>
|
||||
We don't recognize this URL. Did you misspell something? If it's our fault, <a href="//psim.us/bugs">ask in Bug Reports</a>.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
if (window.matchMedia) {
|
||||
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
document.documentElement.className = 'dark';
|
||||
}
|
||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function (event) {
|
||||
document.documentElement.className = event.matches ? "dark" : "";
|
||||
});
|
||||
}
|
||||
</script>
|
||||
BIN
play.pokemonshowdown.com/dirindex/FontAwesome.otf
Normal file
BIN
play.pokemonshowdown.com/dirindex/FontAwesome.otf
Normal file
Binary file not shown.
550
play.pokemonshowdown.com/dirindex/dirindex.php
Normal file
550
play.pokemonshowdown.com/dirindex/dirindex.php
Normal file
|
|
@ -0,0 +1,550 @@
|
|||
<?php
|
||||
|
||||
$rel_dir = explode('?', $_SERVER['REQUEST_URI'])[0];
|
||||
$slash_pos = strrpos($rel_dir, '/');
|
||||
if ($slash_pos !== false) $rel_dir = substr($rel_dir, 0, $slash_pos + 1);
|
||||
|
||||
$dir = $_SERVER['DOCUMENT_ROOT'] . $rel_dir;
|
||||
$dirname = basename($dir);
|
||||
$files = scandir($dir);
|
||||
$fileinfo = [];
|
||||
|
||||
$at_root = ($rel_dir === '/');
|
||||
$up = null;
|
||||
|
||||
function get_icon($file, $is_dir) {
|
||||
if ($is_dir) {
|
||||
return 'folder-open';
|
||||
} else {
|
||||
$info = pathinfo($file);
|
||||
$ext = strtolower($info['extension'] ?? '.');
|
||||
if ($ext === 'jpg' || $ext === 'jpeg' || $ext === 'png' || $ext === 'gif' || $ext === 'bmp' || $ext === 'webp' || $ext === 'svg') {
|
||||
return 'picture-o';
|
||||
} else if ($ext === 'mp4' || $ext === 'webm' || $ext === 'mkv' || $ext === 'avi' || $ext === 'mov') {
|
||||
return 'video-camera';
|
||||
} else if ($ext === 'mp3' || $ext === 'ogg' || $ext === 'wav' || $ext === 'flac' || $ext === 'aac') {
|
||||
return 'volume-up';
|
||||
} else if ($ext === 'zip' || $ext === 'tar' || $ext === 'gz') {
|
||||
return 'file-archive-o';
|
||||
} else if ($ext === 'txt' || $ext === 'md') {
|
||||
return 'file-text-o';
|
||||
} else if ($ext === 'html' || $ext === 'php') {
|
||||
return 'file-code-o';
|
||||
} else if ($ext === 'c' || $ext === 'cpp' || $ext === 'h' || $ext === 'hpp' || $ext === 'py' || $ext === 'js' || $ext === 'ts' || $ext === 'jsx' || $ext === 'tsx' || $ext === 'json' || $ext === 'xml' || $ext === 'css' || $ext === 'java' || $ext === 'rb' || $ext === 'go' || $ext === 'swift' || $ext === 'rs' || $ext === 'map') {
|
||||
return 'code';
|
||||
} else if ($ext === 'woff' || $ext === 'woff2' || $ext === 'ttf' || $ext === 'otf' || $ext === 'eot') {
|
||||
return 'font';
|
||||
} else if ($ext === 'pdf') {
|
||||
return 'file-pdf-o';
|
||||
} else if ($ext === 'doc' || $ext === 'docx' || $ext === 'odt') {
|
||||
return 'file-word-o';
|
||||
} else if ($ext === 'xls' || $ext === 'xlsx' || $ext === 'ods') {
|
||||
return 'file-excel-o';
|
||||
} else if ($ext === 'ppt' || $ext === 'pptx' || $ext === 'odp') {
|
||||
return 'file-powerpoint-o';
|
||||
}
|
||||
}
|
||||
return 'file-o';
|
||||
}
|
||||
|
||||
foreach ($files as $file) {
|
||||
if ($file === '.') {
|
||||
continue;
|
||||
}
|
||||
$path = $dir . '/' . $file;
|
||||
|
||||
$is_dir = is_dir($path);
|
||||
$ext = '';
|
||||
$type = get_icon($file, $is_dir);
|
||||
if ($file === '..') {
|
||||
$type = 'arrow-circle-o-up';
|
||||
} else if (!$is_dir) {
|
||||
$info = pathinfo($file);
|
||||
$ext = strtolower($info['extension'] ?? '.');
|
||||
}
|
||||
|
||||
$size = $is_dir ? 0 : filesize($path);
|
||||
$size_text = '';
|
||||
if ($is_dir) {
|
||||
$size_text = '';
|
||||
} else if ($size > 1024 * 1024 * 1024) {
|
||||
$size_text = round($size / (1024 * 1024 * 1024), 2) . ' GiB';
|
||||
} else if ($size > 1024 * 1024) {
|
||||
$size_text = round($size / (1024 * 1024), 2) . ' MiB';
|
||||
} else if ($size > 1024) {
|
||||
$size_text = round($size / 1024, 2) . ' KiB';
|
||||
} else {
|
||||
$size_text = $size . ' bytes';
|
||||
}
|
||||
|
||||
$next = [
|
||||
'name' => htmlentities($file),
|
||||
'mtime' => date('Y-m-d H:i:s', filemtime($path)),
|
||||
'type' => $type,
|
||||
'size' => $size,
|
||||
'ext' => $ext,
|
||||
'size_text' => $size_text,
|
||||
];
|
||||
if ($file === '..') {
|
||||
$up = $next;
|
||||
} else {
|
||||
$fileinfo[] = $next;
|
||||
}
|
||||
}
|
||||
|
||||
$sort_by = $_GET['sort'] ?? $_GET['C'] ?? 'dir';
|
||||
$sort_order = $_GET['order'] ?? $_GET['A'] ?? 'asc';
|
||||
if ($sort_order === 'A') $sort_order = 'asc';
|
||||
function sort_icon($col) {
|
||||
global $sort_by, $sort_order;
|
||||
if ($col === $sort_by) {
|
||||
return ' <i class="fa fa-caret-square-o-' . ($sort_order === 'asc' ? 'up' : 'down') . '"></i>';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
function sort_link($col) {
|
||||
global $sort_by, $sort_order;
|
||||
if ($col === $sort_by && $sort_order === 'asc') {
|
||||
return './?sort=' . $col . '&order=desc';
|
||||
}
|
||||
if ($col === $sort_by && $sort_order === 'desc') {
|
||||
return './';
|
||||
}
|
||||
return './?sort=' . $col;
|
||||
}
|
||||
|
||||
if ($sort_by === 'name' || $sort_by === 'N') {
|
||||
usort($fileinfo, fn($a, $b) => strcmp($a['name'], $b['name']) * ($sort_order === 'asc' ? 1 : -1));
|
||||
} else if ($sort_by === 'size' || $sort_by === 'S') {
|
||||
usort($fileinfo, fn($a, $b) => ($a['size'] <=> $b['size']) * ($sort_order === 'asc' ? 1 : -1));
|
||||
} else if ($sort_by === 'mtime' || $sort_by === 'M') {
|
||||
usort($fileinfo, fn($a, $b) => $a['mtime'] <=> $b['mtime']) * ($sort_order === 'asc' ? 1 : -1);
|
||||
} else if ($sort_by === 'type') {
|
||||
usort($fileinfo, fn($a, $b) => $a['ext'] <=> $b['ext']) * ($sort_order === 'asc' ? 1 : -1);
|
||||
} else { // name, dirs-first
|
||||
usort($fileinfo, fn($a, $b) => !!$a['ext'] <=> !!$b['ext']) * ($sort_order === 'asc' ? 1 : -1);
|
||||
}
|
||||
|
||||
if ($up !== null && !$at_root) array_unshift($fileinfo, $up);
|
||||
|
||||
$title = 'Index of ' . $rel_dir;
|
||||
|
||||
?><!DOCTYPE html>
|
||||
<html lang="en"><head>
|
||||
|
||||
<meta charset="UTF-8" />
|
||||
|
||||
<title><?= htmlentities($title) ?></title>
|
||||
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="stylesheet" href="/dirindex/font-awesome.min.css" />
|
||||
|
||||
<style>
|
||||
/*********************************************************
|
||||
* Layout
|
||||
*********************************************************/
|
||||
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
html {
|
||||
color: white;
|
||||
font-family: Verdana,Helvetica,sans-serif;
|
||||
font-size: 11pt;
|
||||
background: #f0f0f0;
|
||||
color: #333333;
|
||||
}
|
||||
body {
|
||||
background: linear-gradient(to bottom, rgba(77, 93, 140, 0.6), rgba(77, 93, 140, 0.2) 80px, transparent 160px, transparent);
|
||||
}
|
||||
|
||||
header {
|
||||
margin: 0;
|
||||
padding: 2px;
|
||||
/* background: rgba(255, 255, 255, .2);
|
||||
border-bottom: 1px solid rgba(255, 255, 255, .6); */
|
||||
text-align: center;
|
||||
height: 60px;
|
||||
}
|
||||
.nav-wrapper {
|
||||
width: 700px;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
}
|
||||
.nav {
|
||||
padding-left: 140px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
.nav li {
|
||||
float: left;
|
||||
list-style-type: none;
|
||||
}
|
||||
.nav img {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.nav a, .nav a:visited {
|
||||
color: white;
|
||||
background: #3a4f88;
|
||||
background: linear-gradient(to bottom, #4c63a3, #273661);
|
||||
box-shadow: 0.5px 1px 2px rgba(255, 255, 255, 0.45), inset 0.5px 1px 1px rgba(255, 255, 255, 0.5);
|
||||
border: 1px solid #222c4a;
|
||||
text-shadow: black 0px -1px 0;
|
||||
padding: 8px 15px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
border-radius: 0;
|
||||
margin-left: -1px;
|
||||
font-size: 11pt;
|
||||
}
|
||||
.dark .nav a, .dark .nav a:visited {
|
||||
/* make sure other styling doesn't override */
|
||||
color: white;
|
||||
background: #3a4f88;
|
||||
background: linear-gradient(to bottom, #4c63a3, #273661);
|
||||
border: 1px solid #222c4a;
|
||||
box-shadow: 0.5px 1px 2px rgba(255, 255, 255, 0.45), inset 0.5px 1px 1px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.nav a:hover, .dark .nav a:hover {
|
||||
background: linear-gradient(to bottom, #5a77c7, #2f447f);
|
||||
border: 1px solid #222c4a;
|
||||
}
|
||||
.nav a:active, .dark .nav a:active {
|
||||
background: linear-gradient(to bottom, #273661, #4c63a3);
|
||||
box-shadow: 0.5px 1px 2px rgba(255, 255, 255, 0.45), inset 0.5px 1px -1px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.nav a.cur, .nav a.cur:hover, .nav a.cur:active,
|
||||
.dark .nav a.cur, .dark .nav a.cur:hover, .dark .nav a.cur:active {
|
||||
color: #CCCCCC;
|
||||
background: rgba(79, 109, 148, 0.7);
|
||||
box-shadow: 0.5px 1px 2px rgba(255, 255, 255, 0.45);
|
||||
border: 1px solid #222c4a;
|
||||
}
|
||||
.nav a.nav-first {
|
||||
margin-left: 10px;
|
||||
border-top-left-radius: 8px;
|
||||
border-bottom-left-radius: 8px;
|
||||
}
|
||||
.nav a.nav-last {
|
||||
border-top-right-radius: 8px;
|
||||
border-bottom-right-radius: 8px;
|
||||
}
|
||||
.nav a.greenbutton {
|
||||
background: linear-gradient(to bottom, #4ca363, #276136);
|
||||
}
|
||||
.nav a.greenbutton:hover {
|
||||
background: linear-gradient(to bottom, #5ac777, #2f7f44);
|
||||
}
|
||||
.nav a.greenbutton:active {
|
||||
background: linear-gradient(to bottom, #276136, #4ca363);
|
||||
box-shadow: 0 1px 2px rgba(255, 255, 255, 0.45), inset 0.5px 1px -1px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
@media (max-width:700px) {
|
||||
.nav-wrapper {
|
||||
width: auto;
|
||||
display: inline-block;
|
||||
}
|
||||
.nav {
|
||||
padding-left: 135px;
|
||||
}
|
||||
.nav a {
|
||||
font-weight: normal;
|
||||
padding: 8px 7px;
|
||||
}
|
||||
.nav img {
|
||||
top: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width:554px) {
|
||||
header {
|
||||
height: 100px;
|
||||
}
|
||||
.nav {
|
||||
padding-left: 0;
|
||||
padding-top: 50px;
|
||||
}
|
||||
.nav img {
|
||||
top: 10px;
|
||||
}
|
||||
.nav a {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
.nav a.nav-first {
|
||||
margin-left: 0;
|
||||
}
|
||||
.nav a.greenbutton {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
@media (max-width:419px) {
|
||||
.nav a {
|
||||
padding: 8px 7px;
|
||||
}
|
||||
}
|
||||
@media (max-width:359px) {
|
||||
.nav-wrapper {
|
||||
padding-left: 5px;
|
||||
}
|
||||
.nav a {
|
||||
padding: 8px 4px;
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
clear: both;
|
||||
text-align: center;
|
||||
color: #888888;
|
||||
padding: 10px 0 10px 0;
|
||||
}
|
||||
footer p {
|
||||
margin: 10px 0;
|
||||
}
|
||||
footer a {
|
||||
color: #AAAAAA;
|
||||
}
|
||||
footer a:hover {
|
||||
color: #6688AA;
|
||||
}
|
||||
footer a.cur, footer a.cur:hover {
|
||||
color: #888888;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/*********************************************************
|
||||
* Main
|
||||
*********************************************************/
|
||||
.button {
|
||||
color: white;
|
||||
background: #3a4f88;
|
||||
background: linear-gradient(to bottom, #4c63a3, #273661);
|
||||
box-shadow: 0.5px 1px 2px rgba(255, 255, 255, 0.45), inset 0.5px 1px 1px rgba(255, 255, 255, 0.5);
|
||||
border: 1px solid #222c4a;
|
||||
padding: 3px 10px;
|
||||
text-shadow: black 0px -1px 0;
|
||||
border-radius: 10px;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
font-family: Verdana,Helvetica,sans-serif;
|
||||
font-size: 11pt;
|
||||
cursor: pointer;
|
||||
}
|
||||
main {
|
||||
margin: 0 auto;
|
||||
padding: 0 15px 15px 15px;
|
||||
max-width: 800px;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
a {
|
||||
color: #0073aa;
|
||||
}
|
||||
a:visited {
|
||||
color: #8000aa;
|
||||
}
|
||||
h1 {
|
||||
font-size: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.parentlink {
|
||||
padding: 0 0 12px 0;
|
||||
}
|
||||
.parentlink a {
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
border: 1px solid transparent;
|
||||
padding: 4px 8px 4px 40px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.parentlink a:hover {
|
||||
background: #e7ebee;
|
||||
border-color: #5f8a9e;
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
html {
|
||||
background: #000;
|
||||
color: #ddd;
|
||||
}
|
||||
a {
|
||||
color:rgb(99, 174, 209);
|
||||
}
|
||||
a:visited {
|
||||
color:rgb(177, 123, 195);
|
||||
}
|
||||
.parentlink a:hover {
|
||||
background: #181818;
|
||||
border-color: #444;
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************
|
||||
* Dirlist
|
||||
*********************************************************/
|
||||
h1 a {
|
||||
font-weight: normal;
|
||||
text-decoration: none;
|
||||
}
|
||||
h1 a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.dirlist {
|
||||
font-size: 14px;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
.header {
|
||||
padding: 0 7px 0 39px;
|
||||
border-bottom: 1px solid #888888;
|
||||
background: #f0f0f0;
|
||||
}
|
||||
.parentlink {
|
||||
padding: 0 0 12px 0;
|
||||
}
|
||||
|
||||
.header a, .header a:visited {
|
||||
text-decoration: none;
|
||||
padding: 5px 0;
|
||||
color: inherit;
|
||||
}
|
||||
.header a:hover {
|
||||
background: #dddddd;
|
||||
}
|
||||
a.row {
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
border: 1px solid transparent;
|
||||
padding: 4px 8px 4px 40px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
a.row:hover {
|
||||
background:#e7ebee;
|
||||
border-color:#5f8a9e;
|
||||
}
|
||||
a.row * {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.icon {
|
||||
display: inline-block;
|
||||
width: 32px;
|
||||
margin-left: -32px;
|
||||
font-size: 20px;
|
||||
text-align: center;
|
||||
color: #555;
|
||||
}
|
||||
.icon.fa-arrow-circle-o-up, .icon.fa-folder-open {
|
||||
color: #3798c5;
|
||||
}
|
||||
.filename {
|
||||
display: inline-block;
|
||||
width: 50%;
|
||||
min-width: 260px;
|
||||
font-family: monospace;
|
||||
}
|
||||
.parentlink .filename {
|
||||
font-family: inherit;
|
||||
font-style: italic;
|
||||
}
|
||||
.filesize {
|
||||
display: inline-block;
|
||||
width: 20%;
|
||||
min-width: 80px;
|
||||
color: #666666;
|
||||
}
|
||||
.filemtime {
|
||||
display: inline-block;
|
||||
color: #666666;
|
||||
font-size: 0.9em;
|
||||
min-width: 150px;
|
||||
}
|
||||
.header .icon, .header .filename, .header .filesize, .header .filemtime {
|
||||
font-style: normal;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.header {
|
||||
background: #000;
|
||||
}
|
||||
.header a:hover {
|
||||
background: #333;
|
||||
}
|
||||
.icon {
|
||||
color: #888;
|
||||
}
|
||||
a.row:hover {
|
||||
background: #181818;
|
||||
border-color: #444;
|
||||
}
|
||||
.filesize, .filemtime {
|
||||
color: #888;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
|
||||
<header>
|
||||
<div class="nav-wrapper"><ul class="nav">
|
||||
<li><a class="button nav-first" href="//pokemonshowdown.com/"><img src="//play.pokemonshowdown.com/pokemonshowdownbeta.png" srcset="//play.pokemonshowdown.com/pokemonshowdownbeta.png 1x, //play.pokemonshowdown.com/pokemonshowdownbeta@2x.png 2x" alt="Pokémon Showdown" width="146" height="44" /> Home</a></li>
|
||||
<li><a class="button" href="//pokemonshowdown.com/dex/">Pokédex</a></li>
|
||||
<li><a class="button" href="//replay.pokemonshowdown.com/">Replays</a></li>
|
||||
<li><a class="button" href="//pokemonshowdown.com/ladder/">Ladder</a></li>
|
||||
<li><a class="button nav-last" href="//pokemonshowdown.com/forums/">Forum</a></li>
|
||||
<li><a class="button greenbutton nav-first nav-last" href="//play.pokemonshowdown.com/">Play</a></li>
|
||||
</ul></div>
|
||||
</header>
|
||||
|
||||
<main><h1>
|
||||
Index of
|
||||
<a href="/"><?= htmlentities($_SERVER['SERVER_NAME']) ?></a><?php
|
||||
|
||||
$path = '';
|
||||
$pathparts = array_slice(explode('/', $rel_dir), 1, -1);
|
||||
$lastpart = array_pop($pathparts);
|
||||
foreach ($pathparts as $cur_dir) {
|
||||
$path .= '/' . $cur_dir;
|
||||
echo '<wbr />/';
|
||||
echo '<a href="' . htmlentities($path) . '/">' . htmlentities($cur_dir) . '</a>';
|
||||
}
|
||||
echo '<wbr />/' . htmlentities($lastpart) . '/';
|
||||
|
||||
?>
|
||||
|
||||
</h1>
|
||||
|
||||
<ul class="dirlist">
|
||||
<li class="header">
|
||||
<a class="icon" href="<?= sort_link('type') ?>"> <?= sort_icon('type') ?>
|
||||
|
||||
</a><a class="filename" href="<?= sort_link('name') ?>">Name<?= sort_icon('name') ?>
|
||||
|
||||
</a><a class="filesize" href="<?= sort_link('size') ?>">Size<?= sort_icon('size') ?>
|
||||
|
||||
</a><a class="filemtime" href="<?= sort_link('mtime') ?>">Last Modified<?= sort_icon('mtime') ?></a>
|
||||
</li>
|
||||
<?php foreach ($fileinfo as $file) : ?>
|
||||
<li<?= $file['name'] === '..' ? ' class="parentlink"' : '' ?>>
|
||||
<a class="row" href="./<?= htmlentities($file['name']) ?>">
|
||||
<i class="icon fa fa-<?= $file['type'] ?>">
|
||||
</i><code class="filename"><?= $file['name'] === '..' ? '(Parent directory)' : htmlentities($file['name']) ?>
|
||||
|
||||
</code><em class="filesize"><?= $file['size_text'] ?>
|
||||
|
||||
</em><small class="filemtime"><?= $file['mtime'] ?></small>
|
||||
</a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
||||
</main>
|
||||
|
||||
</body>
|
||||
6
play.pokemonshowdown.com/dirindex/font-awesome.min.css
vendored
Normal file
6
play.pokemonshowdown.com/dirindex/font-awesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
play.pokemonshowdown.com/dirindex/fontawesome-webfont.eot
Normal file
BIN
play.pokemonshowdown.com/dirindex/fontawesome-webfont.eot
Normal file
Binary file not shown.
2671
play.pokemonshowdown.com/dirindex/fontawesome-webfont.svg
Normal file
2671
play.pokemonshowdown.com/dirindex/fontawesome-webfont.svg
Normal file
File diff suppressed because it is too large
Load Diff
|
After Width: | Height: | Size: 434 KiB |
BIN
play.pokemonshowdown.com/dirindex/fontawesome-webfont.ttf
Normal file
BIN
play.pokemonshowdown.com/dirindex/fontawesome-webfont.ttf
Normal file
Binary file not shown.
BIN
play.pokemonshowdown.com/dirindex/fontawesome-webfont.woff
Normal file
BIN
play.pokemonshowdown.com/dirindex/fontawesome-webfont.woff
Normal file
Binary file not shown.
BIN
play.pokemonshowdown.com/dirindex/fontawesome-webfont.woff2
Normal file
BIN
play.pokemonshowdown.com/dirindex/fontawesome-webfont.woff2
Normal file
Binary file not shown.
499
play.pokemonshowdown.com/dirindex/spriteindex.inc.php
Normal file
499
play.pokemonshowdown.com/dirindex/spriteindex.inc.php
Normal file
|
|
@ -0,0 +1,499 @@
|
|||
<?php
|
||||
function showSpriteStyle() {
|
||||
?>
|
||||
<meta charset="UTF-8" />
|
||||
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="stylesheet" href="/dirindex/font-awesome.min.css" />
|
||||
|
||||
<style>
|
||||
/*********************************************************
|
||||
* Layout
|
||||
*********************************************************/
|
||||
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
html {
|
||||
color: white;
|
||||
font-family: Verdana,Helvetica,sans-serif;
|
||||
font-size: 11pt;
|
||||
background: #f0f0f0;
|
||||
color: #333333;
|
||||
}
|
||||
body {
|
||||
background: linear-gradient(to bottom, rgba(77, 93, 140, 0.6), rgba(77, 93, 140, 0.2) 80px, transparent 160px, transparent);
|
||||
}
|
||||
|
||||
header {
|
||||
margin: 0;
|
||||
padding: 2px;
|
||||
/* background: rgba(255, 255, 255, .2);
|
||||
border-bottom: 1px solid rgba(255, 255, 255, .6); */
|
||||
text-align: center;
|
||||
height: 60px;
|
||||
}
|
||||
.nav-wrapper {
|
||||
width: 700px;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
}
|
||||
.nav {
|
||||
padding: 0;
|
||||
}
|
||||
.nav-wrapper .nav {
|
||||
padding-left: 140px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
.nav li {
|
||||
float: left;
|
||||
list-style-type: none;
|
||||
}
|
||||
.nav img {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.nav a, .nav a:visited {
|
||||
color: white;
|
||||
background: #3a4f88;
|
||||
background: linear-gradient(to bottom, #4c63a3, #273661);
|
||||
box-shadow: 0.5px 1px 2px rgba(255, 255, 255, 0.45), inset 0.5px 1px 1px rgba(255, 255, 255, 0.5);
|
||||
border: 1px solid #222c4a;
|
||||
text-shadow: black 0px -1px 0;
|
||||
padding: 8px 15px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
border-radius: 0;
|
||||
margin-left: -1px;
|
||||
font-size: 11pt;
|
||||
}
|
||||
.dark .nav a, .dark .nav a:visited {
|
||||
/* make sure other styling doesn't override */
|
||||
color: white;
|
||||
background: #3a4f88;
|
||||
background: linear-gradient(to bottom, #4c63a3, #273661);
|
||||
border: 1px solid #222c4a;
|
||||
box-shadow: 0.5px 1px 2px rgba(255, 255, 255, 0.45), inset 0.5px 1px 1px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.nav a:hover, .dark .nav a:hover {
|
||||
background: linear-gradient(to bottom, #5a77c7, #2f447f);
|
||||
border: 1px solid #222c4a;
|
||||
}
|
||||
.nav a:active, .dark .nav a:active {
|
||||
background: linear-gradient(to bottom, #273661, #4c63a3);
|
||||
box-shadow: 0.5px 1px 2px rgba(255, 255, 255, 0.45), inset 0.5px 1px -1px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.nav a.cur, .nav a.cur:hover, .nav a.cur:active,
|
||||
.dark .nav a.cur, .dark .nav a.cur:hover, .dark .nav a.cur:active {
|
||||
color: #CCCCCC;
|
||||
background: rgba(79, 109, 148, 0.7);
|
||||
box-shadow: 0.5px 1px 2px rgba(255, 255, 255, 0.45);
|
||||
border: 1px solid #222c4a;
|
||||
}
|
||||
.nav a.nav-first {
|
||||
margin-left: 10px;
|
||||
border-top-left-radius: 8px;
|
||||
border-bottom-left-radius: 8px;
|
||||
}
|
||||
.nav a.nav-last {
|
||||
border-top-right-radius: 8px;
|
||||
border-bottom-right-radius: 8px;
|
||||
}
|
||||
.nav a.greenbutton {
|
||||
background: linear-gradient(to bottom, #4ca363, #276136);
|
||||
}
|
||||
.nav a.greenbutton:hover {
|
||||
background: linear-gradient(to bottom, #5ac777, #2f7f44);
|
||||
}
|
||||
.nav a.greenbutton:active {
|
||||
background: linear-gradient(to bottom, #276136, #4ca363);
|
||||
box-shadow: 0 1px 2px rgba(255, 255, 255, 0.45), inset 0.5px 1px -1px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
@media (max-width:700px) {
|
||||
.nav-wrapper {
|
||||
width: auto;
|
||||
display: inline-block;
|
||||
}
|
||||
.nav-wrapper .nav {
|
||||
padding-left: 135px;
|
||||
}
|
||||
.nav a {
|
||||
font-weight: normal;
|
||||
padding: 8px 7px;
|
||||
}
|
||||
.nav img {
|
||||
top: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width:554px) {
|
||||
header {
|
||||
height: 100px;
|
||||
}
|
||||
.nav-wrapper .nav {
|
||||
padding-left: 0;
|
||||
padding-top: 50px;
|
||||
}
|
||||
.nav img {
|
||||
top: 10px;
|
||||
}
|
||||
.nav a {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
.nav a.nav-first {
|
||||
margin-left: 0;
|
||||
}
|
||||
.nav a.greenbutton {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
@media (max-width:419px) {
|
||||
.nav a {
|
||||
padding: 8px 7px;
|
||||
}
|
||||
}
|
||||
@media (max-width:359px) {
|
||||
.nav-wrapper {
|
||||
padding-left: 5px;
|
||||
}
|
||||
.nav a {
|
||||
padding: 8px 4px;
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
clear: both;
|
||||
text-align: center;
|
||||
color: #888888;
|
||||
padding: 10px 0 10px 0;
|
||||
}
|
||||
footer p {
|
||||
margin: 10px 0;
|
||||
}
|
||||
footer a {
|
||||
color: #AAAAAA;
|
||||
}
|
||||
footer a:hover {
|
||||
color: #6688AA;
|
||||
}
|
||||
footer a.cur, footer a.cur:hover {
|
||||
color: #888888;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/*********************************************************
|
||||
* Main
|
||||
*********************************************************/
|
||||
.button {
|
||||
color: white;
|
||||
background: #3a4f88;
|
||||
background: linear-gradient(to bottom, #4c63a3, #273661);
|
||||
box-shadow: 0.5px 1px 2px rgba(255, 255, 255, 0.45), inset 0.5px 1px 1px rgba(255, 255, 255, 0.5);
|
||||
border: 1px solid #222c4a;
|
||||
padding: 3px 10px;
|
||||
text-shadow: black 0px -1px 0;
|
||||
border-radius: 10px;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
font-family: Verdana,Helvetica,sans-serif;
|
||||
font-size: 11pt;
|
||||
cursor: pointer;
|
||||
}
|
||||
.button:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
main {
|
||||
margin: 0 auto;
|
||||
padding: 0 15px 15px 15px;
|
||||
max-width: 800px;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
a {
|
||||
color: #0073aa;
|
||||
}
|
||||
a:visited {
|
||||
color: #8000aa;
|
||||
}
|
||||
h1 {
|
||||
font-size: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.parentlink {
|
||||
padding: 0 0 12px 0;
|
||||
}
|
||||
.parentlink a {
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
border: 1px solid transparent;
|
||||
padding: 4px 8px 4px 40px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.parentlink a:hover {
|
||||
text-decoration: none;
|
||||
background: #e7ebee;
|
||||
border-color: #5f8a9e;
|
||||
}
|
||||
.parentlink i, .parentlink em {
|
||||
vertical-align: middle;
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
html {
|
||||
background: #000;
|
||||
color: #ddd;
|
||||
}
|
||||
a {
|
||||
color: #63aed1;
|
||||
}
|
||||
a:visited {
|
||||
color: #b17bc3;
|
||||
}
|
||||
.parentlink a:hover {
|
||||
background: #181818;
|
||||
border-color: #444;
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************
|
||||
* Dirlist
|
||||
*********************************************************/
|
||||
h1 a {
|
||||
font-weight: normal;
|
||||
text-decoration: none;
|
||||
}
|
||||
h1 a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.dirlist {
|
||||
font-size: 14px;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
.header {
|
||||
padding: 0 7px 0 39px;
|
||||
border-bottom: 1px solid #888888;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background: #f0f0f0;
|
||||
}
|
||||
.parentlink {
|
||||
padding: 0 0 12px 0;
|
||||
}
|
||||
|
||||
.header a, .header a:visited {
|
||||
text-decoration: none;
|
||||
padding: 5px 0;
|
||||
color: inherit;
|
||||
}
|
||||
.header a:hover {
|
||||
background: #dddddd;
|
||||
}
|
||||
a.row {
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
border: 1px solid transparent;
|
||||
padding: 4px 8px 4px 40px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
a.row:hover {
|
||||
background:#e7ebee;
|
||||
border-color:#5f8a9e;
|
||||
}
|
||||
a.row * {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.icon {
|
||||
display: inline-block;
|
||||
width: 32px;
|
||||
margin-left: -32px;
|
||||
font-size: 20px;
|
||||
text-align: center;
|
||||
color: #555;
|
||||
}
|
||||
.filename {
|
||||
display: inline-block;
|
||||
width: 50%;
|
||||
min-width: 260px;
|
||||
font-family: monospace;
|
||||
}
|
||||
.parentlink .filename {
|
||||
font-family: inherit;
|
||||
font-style: italic;
|
||||
}
|
||||
.filesize {
|
||||
display: inline-block;
|
||||
width: 20%;
|
||||
min-width: 80px;
|
||||
color: #666666;
|
||||
}
|
||||
.filemtime {
|
||||
display: inline-block;
|
||||
color: #666666;
|
||||
font-size: 0.9em;
|
||||
min-width: 150px;
|
||||
}
|
||||
.header .icon, .header .filename, .header .filesize, .header .filemtime {
|
||||
font-style: normal;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.header {
|
||||
background: #000;
|
||||
}
|
||||
.header a:hover {
|
||||
background: #333;
|
||||
}
|
||||
.icon {
|
||||
color: #888;
|
||||
}
|
||||
a.row:hover {
|
||||
background: #181818;
|
||||
border-color: #444;
|
||||
}
|
||||
.filesize, .filemtime {
|
||||
color: #888;
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************
|
||||
* Spriteindex
|
||||
*********************************************************/
|
||||
|
||||
figure {
|
||||
width: 96px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
text-align: center;
|
||||
margin: 0.5em 10px;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
figure img {
|
||||
image-rendering: pixelated;
|
||||
}
|
||||
figure figcaption {
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-26211653-1']);
|
||||
_gaq.push(['_setDomainName', 'pokemonshowdown.com']);
|
||||
_gaq.push(['_setAllowLinker', true]);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
function showHeader($title) {
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<title><?= htmlentities($title) ?> - Showdown!</title>
|
||||
<?php
|
||||
showSpriteStyle();
|
||||
?>
|
||||
<header>
|
||||
<div class="nav-wrapper"><ul class="nav">
|
||||
<li><a class="button nav-first" href="//pokemonshowdown.com/"><img src="/pokemonshowdownbeta.png" srcset="/pokemonshowdownbeta.png 1x, /pokemonshowdownbeta@2x.png 2x" alt="Pokémon Showdown" width="146" height="44" /> Home</a></li>
|
||||
<li><a class="button" href="//pokemonshowdown.com/dex/">Pokédex</a></li>
|
||||
<li><a class="button" href="//replay.pokemonshowdown.com/">Replays</a></li>
|
||||
<li><a class="button" href="//pokemonshowdown.com/ladder/">Ladder</a></li>
|
||||
<li><a class="button nav-last" href="//pokemonshowdown.com/forums/">Forum</a></li>
|
||||
<li><a class="button greenbutton nav-first nav-last" href="//play.pokemonshowdown.com/">Play</a></li>
|
||||
</ul></div>
|
||||
</header>
|
||||
|
||||
<main><h1>
|
||||
Index of
|
||||
<a href="/"><?= htmlentities($_SERVER['SERVER_NAME']) ?></a><?php
|
||||
|
||||
$rel_dir = explode('?', $_SERVER['REQUEST_URI'])[0];
|
||||
$path = '';
|
||||
$pathparts = array_slice(explode('/', $rel_dir), 1, -1);
|
||||
$lastpart = array_pop($pathparts);
|
||||
foreach ($pathparts as $cur_dir) {
|
||||
$path .= '/' . $cur_dir;
|
||||
echo '<wbr />/';
|
||||
echo '<a href="' . htmlentities($path) . '/">' . htmlentities($cur_dir) . '</a>';
|
||||
}
|
||||
echo '<wbr />/' . htmlentities($lastpart) . '/';
|
||||
|
||||
?>
|
||||
|
||||
</h1>
|
||||
<p class="parentlink"><a href="..">
|
||||
<i class="icon fa fa-arrow-circle-o-up"></i><em>(Parent directory)</em>
|
||||
</a></p>
|
||||
<?php
|
||||
}
|
||||
function showSpriteIndex($path) {
|
||||
global $sprite_notes;
|
||||
$filter = $_GET['filter'] ?? '';
|
||||
if ($filter === 'recent') $filter = 'latest';
|
||||
?>
|
||||
<div>Filter: <ul class="nav" style="display:inline-block;vertical-align:middle;margin:0">
|
||||
<li><a class="button nav-first<?= $filter === '' ? ' cur' : '' ?>" href="./">All</a></li>
|
||||
<li><a class="button<?= $sprite_notes ? '' : ' nav-last' ?><?= $filter === 'latest' ? ' cur' : '' ?>" href="./?filter=recent">Recent</a></li>
|
||||
<?php if ($sprite_notes) { ?>
|
||||
<li><a class="button nav-last<?= $filter === 'credited' ? ' cur' : '' ?>" href="./?filter=credited">Credited</a></li>
|
||||
<?php } ?>
|
||||
</ul></div>
|
||||
</main>
|
||||
<?php
|
||||
$files = glob($path);
|
||||
if ($filter === 'latest') {
|
||||
usort($files, fn($a, $b) => (filemtime($a) <=> filemtime($b)) * -1);
|
||||
} else if ($filter === 'credited') {
|
||||
usort($files, fn($a, $b) => (($sprite_notes[$a] ?? '') <=> ($sprite_notes[$b] ?? '')));
|
||||
}
|
||||
$section = null;
|
||||
foreach ($files as $file) {
|
||||
$credit = ($sprite_notes[$file] ?? null);
|
||||
if ($filter === 'credited') {
|
||||
if (!$credit) continue;
|
||||
if ($credit !== $section) {
|
||||
$section = $credit;
|
||||
echo '<h3 style="margin:1em;border-bottom:1px solid #999;padding-bottom:2px">By ' . $credit . '</h3>';
|
||||
}
|
||||
} else if ($filter === 'latest') {
|
||||
$year = date('Y-m', filemtime($file));
|
||||
if ($year !== $section) {
|
||||
if (intval($year) < 2024) break;
|
||||
$section = $year;
|
||||
echo '<h3 style="margin:1em;border-bottom:1px solid #999;padding-bottom:2px">New in ' . $year . '</h3>';
|
||||
}
|
||||
}
|
||||
$escaped_file = htmlentities($file);
|
||||
?>
|
||||
<figure id="<?php echo $escaped_file ?>">
|
||||
<img loading="lazy" src="<?php echo $escaped_file ?>" alt="<?php echo $escaped_file ?>" title="<?php echo $escaped_file ?>" />
|
||||
<figcaption><a href="<?php echo $escaped_file ?>"><?php echo substr($escaped_file, 0, -4) ?></a><?php if ($credit) echo '<br />by ' . htmlentities($credit) ?></figcaption>
|
||||
</figure>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($sprite_notes)) $sprite_notes = null;
|
||||
9
play.pokemonshowdown.com/sprites/afd-back/index.php
Normal file
9
play.pokemonshowdown.com/sprites/afd-back/index.php
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
require_once '../../dirindex/spriteindex.inc.php';
|
||||
|
||||
showHeader("April Fool's back sprites");
|
||||
?>
|
||||
<h1 style="font-size: 12pt;">April Fool's back sprites</h1>
|
||||
<p>These are the back sprites. You can also <a href="../afd/">view the front sprites</a>.</p>
|
||||
<?php
|
||||
showSpriteIndex('*.png');
|
||||
10
play.pokemonshowdown.com/sprites/afd/index.php
Normal file
10
play.pokemonshowdown.com/sprites/afd/index.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
require_once '../../dirindex/spriteindex.inc.php';
|
||||
|
||||
showHeader("April Fool's front sprites");
|
||||
?>
|
||||
<h1 style="font-size: 12pt;">April Fool's front sprites</h1>
|
||||
<p>These are the front sprites. You can also <a href="../afd-back/">view the back sprites</a>.</p>
|
||||
<p>» <a href="//www.pokemonshowdown.com/files/pokemon-showdown-afd-2020.zip"><strong>pokemon-showdown-afd-2020.zip</strong></a></p>
|
||||
<?php
|
||||
showSpriteIndex('*.png');
|
||||
12
play.pokemonshowdown.com/sprites/trainers-custom/index.php
Normal file
12
play.pokemonshowdown.com/sprites/trainers-custom/index.php
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
require_once '../../dirindex/spriteindex.inc.php';
|
||||
|
||||
showHeader("Custom avatars");
|
||||
?>
|
||||
<p>
|
||||
Did you want to see a list of all custom avatars? Sorry, that's private.
|
||||
</p>
|
||||
<p>
|
||||
Your avatar can be changed using the Options menu (it looks like <i class="fa fa-cog"></i>) in the upper right of Pokemon Showdown.
|
||||
</p>
|
||||
</main>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
require_once 'spriteindex.inc.php';
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<title>Team Tour Avatars - Pokemon Showdown!</title>
|
||||
<?php showSpriteStyle() ?>
|
||||
<h1><a href="http://www.pokemonshowdown.com">Pokémon Showdown</a></h1>
|
||||
<h2>Team Tour Avatars</h2>
|
||||
<?php
|
||||
showSpriteIndex('*.png');
|
||||
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
function showSpriteStyle() {
|
||||
?>
|
||||
<meta charset="utf-8" />
|
||||
<style type="text/css">
|
||||
html {
|
||||
background: #CCC;
|
||||
font: 12pt Verdana, sans-serif;
|
||||
}
|
||||
h1, h2, p {
|
||||
max-width: 800px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
figure {
|
||||
width: 96px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
text-align: center;
|
||||
margin: 0.5em 10px;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
figure figcaption {
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #00A;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-26211653-1']);
|
||||
_gaq.push(['_setDomainName', 'pokemonshowdown.com']);
|
||||
_gaq.push(['_setAllowLinker', true]);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
function showSpriteIndex($path) {
|
||||
?>
|
||||
<?php
|
||||
$files = glob($path);
|
||||
foreach ($files as &$i) {
|
||||
$i = htmlentities($i);
|
||||
?>
|
||||
<figure id="<?php echo $i ?>">
|
||||
<img src="<?php echo $i ?>" alt="<?php echo $i ?>" title="<?php echo $i ?>" />
|
||||
<figcaption><a href="<?php echo $i ?>"><?php echo substr($i, 0, -4) ?></a></figcaption>
|
||||
</figure>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
775
play.pokemonshowdown.com/sprites/trainers/index.php
Normal file
775
play.pokemonshowdown.com/sprites/trainers/index.php
Normal file
|
|
@ -0,0 +1,775 @@
|
|||
<?php
|
||||
require_once '../../dirindex/spriteindex.inc.php';
|
||||
|
||||
showHeader("Trainer sprites");
|
||||
?>
|
||||
<h2>Trainer sprites</h2>
|
||||
<h4>Many of these sprites are not from the games. Credit must be given to the <a href="./?filter=credited">appropriate artist</a> if used elsewhere. DO NOT EDIT without permission.</h4>
|
||||
<?php
|
||||
$sprite_notes = [
|
||||
"acerola.png" => "Beliot419",
|
||||
"aetheremployee.png" => "Beliot419",
|
||||
"aetheremployeef.png" => "Beliot419",
|
||||
"aetherfoundation.png" => "Beliot419",
|
||||
"aetherfoundationf.png" => "Beliot419",
|
||||
"anabel-gen7.png" => "Beliot419",
|
||||
"beauty-gen7.png" => "Beliot419",
|
||||
"blue-gen7.png" => "Beliot419",
|
||||
"burnet.png" => "Beliot419",
|
||||
"colress-gen7.png" => "Beliot419",
|
||||
"dexio.png" => "Beliot419",
|
||||
"elio.png" => "Beliot419",
|
||||
"faba.png" => "Beliot419",
|
||||
"gladion-stance.png" => "Beliot419",
|
||||
"gladion.png" => "Beliot419",
|
||||
"grimsley-gen7.png" => "Beliot419",
|
||||
"hapu.png" => "Beliot419",
|
||||
"hau-stance.png" => "Beliot419",
|
||||
"hau.png" => "Beliot419",
|
||||
"hiker-gen7.png" => "Beliot419",
|
||||
"ilima.png" => "Beliot419",
|
||||
"kahili.png" => "Beliot419",
|
||||
"kiawe.png" => "Beliot419",
|
||||
"kukui-stand.png" => "Beliot419",
|
||||
"kukui.png" => "Beliot419",
|
||||
"lana.png" => "Beliot419",
|
||||
"lass-gen7.png" => "Beliot419",
|
||||
"lillie-z.png" => "Beliot419",
|
||||
"lillie.png" => "Beliot419",
|
||||
"lusamine-nihilego.png" => "Beliot419",
|
||||
"lusamine.png" => "Beliot419",
|
||||
"mallow.png" => "Beliot419",
|
||||
"mina.png" => "Beliot419",
|
||||
"molayne.png" => "Beliot419",
|
||||
"nanu.png" => "Beliot419",
|
||||
"officeworker.png" => "Beliot419",
|
||||
"olivia.png" => "Beliot419",
|
||||
"plumeria.png" => "Beliot419",
|
||||
"pokemonbreeder-gen7.png" => "Beliot419",
|
||||
"pokemonbreederf-gen7.png" => "Beliot419",
|
||||
"preschoolers.png" => "Beliot419",
|
||||
"red-gen7.png" => "Beliot419",
|
||||
"risingstar.png" => "Beliot419",
|
||||
"risingstarf.png" => "Beliot419",
|
||||
"ryuki.png" => "Beliot419",
|
||||
"samsonoak.png" => "Beliot419",
|
||||
"selene.png" => "Beliot419",
|
||||
"sightseerf.png" => "Beliot419",
|
||||
"sina.png" => "Beliot419",
|
||||
"sophocles.png" => "Beliot419",
|
||||
"teacher-gen7.png" => "Beliot419",
|
||||
"theroyal.png" => "Beliot419",
|
||||
"wally.png" => "Beliot419",
|
||||
"wicke.png" => "Beliot419",
|
||||
"youngathlete.png" => "Beliot419",
|
||||
"youngathletef.png" => "Beliot419",
|
||||
"youngster-gen7.png" => "Beliot419",
|
||||
"adaman.png" => "Brumirage",
|
||||
"agatha-lgpe.png" => "Brumirage",
|
||||
"akari.png" => "Brumirage",
|
||||
"allister.png" => "Brumirage",
|
||||
"archie-gen6.png" => "Brumirage",
|
||||
"arezu.png" => "Brumirage",
|
||||
"avery.png" => "Brumirage",
|
||||
"ballguy.png" => "Brumirage",
|
||||
"bea.png" => "Brumirage",
|
||||
"bede-leader.png" => "Brumirage",
|
||||
"bede.png" => "Brumirage",
|
||||
"brendan-contest.png" => "Brumirage",
|
||||
"burnet-radar.png" => "Brumirage",
|
||||
"calaba.png" => "Brumirage",
|
||||
"calem.png" => "Brumirage",
|
||||
"chase.png" => "Brumirage",
|
||||
"cogita.png" => "Brumirage",
|
||||
"cynthia-gen7.png" => "Brumirage",
|
||||
"cynthia-masters.png" => "Brumirage",
|
||||
"diantha.png" => "Brumirage",
|
||||
"doctor-gen8.png" => "Brumirage",
|
||||
"elaine.png" => "Brumirage",
|
||||
"gloria.png" => "Brumirage",
|
||||
"gordie.png" => "Brumirage",
|
||||
"hilda-masters2.png" => "Brumirage",
|
||||
"hop.png" => "Brumirage",
|
||||
"irida.png" => "Brumirage",
|
||||
"kabu.png" => "Brumirage",
|
||||
"klara.png" => "Brumirage",
|
||||
"koga-lgpe.png" => "Brumirage",
|
||||
"leon-tower.png" => "Brumirage",
|
||||
"leon.png" => "Brumirage",
|
||||
"lian.png" => "Brumirage",
|
||||
"lisia.png" => "Brumirage",
|
||||
"lorelei-lgpe.png" => "Brumirage",
|
||||
"magnolia.png" => "Brumirage",
|
||||
"mai.png" => "Brumirage",
|
||||
"marnie.png" => "Brumirage",
|
||||
"may-contest.png" => "Brumirage",
|
||||
"melony.png" => "Brumirage",
|
||||
"miku-flying.png" => "Brumirage",
|
||||
"miku-ground.png" => "Brumirage",
|
||||
"milo.png" => "Brumirage",
|
||||
"mina-lgpe.png" => "Brumirage",
|
||||
"mustard-master.png" => "Brumirage",
|
||||
"mustard.png" => "Brumirage",
|
||||
"nessa.png" => "Brumirage",
|
||||
"oleana.png" => "Brumirage",
|
||||
"opal.png" => "Brumirage",
|
||||
"peony.png" => "Brumirage",
|
||||
"pesselle.png" => "Brumirage",
|
||||
"phoebe-gen6.png" => "Brumirage",
|
||||
"piers.png" => "Brumirage",
|
||||
"raihan.png" => "Brumirage",
|
||||
"rei.png" => "Brumirage",
|
||||
"rose.png" => "Brumirage",
|
||||
"sabi.png" => "Brumirage",
|
||||
"sada-ai.png" => "Brumirage",
|
||||
"sanqua.png" => "Brumirage",
|
||||
"shielbert.png" => "Brumirage",
|
||||
"sonia-professor.png" => "Brumirage",
|
||||
"sonia.png" => "Brumirage",
|
||||
"sordward-shielbert.png" => "Brumirage",
|
||||
"sordward.png" => "Brumirage",
|
||||
"tateandliza-gen6.png" => "Brumirage",
|
||||
"turo-ai.png" => "Brumirage",
|
||||
"victor-dojo.png" => "Brumirage",
|
||||
"victor.png" => "Brumirage",
|
||||
"volo.png" => "Brumirage",
|
||||
"yellgrunt.png" => "Brumirage",
|
||||
"yellgruntf.png" => "Brumirage",
|
||||
"zisu.png" => "Brumirage",
|
||||
"rose-zerosuit.png" => "Fifty Shades of Rez",
|
||||
"az.png" => "Gnomowladny",
|
||||
"brawly-gen6.png" => "Gnomowladny",
|
||||
"bryony.png" => "Gnomowladny",
|
||||
"drasna.png" => "Gnomowladny",
|
||||
"evelyn.png" => "Gnomowladny",
|
||||
"furisodegirl-black.png" => "Gnomowladny",
|
||||
"furisodegirl-pink.png" => "Gnomowladny",
|
||||
"guzma.png" => "Gnomowladny",
|
||||
"hala.png" => "Gnomowladny",
|
||||
"korrina.png" => "Gnomowladny",
|
||||
"malva.png" => "Gnomowladny",
|
||||
"nita.png" => "Gnomowladny",
|
||||
"olympia.png" => "Gnomowladny",
|
||||
"ramos.png" => "Gnomowladny",
|
||||
"shelly.png" => "Gnomowladny",
|
||||
"sidney.png" => "Gnomowladny",
|
||||
"siebold.png" => "Gnomowladny",
|
||||
"tierno.png" => "Gnomowladny",
|
||||
"valerie.png" => "Gnomowladny",
|
||||
"viola.png" => "Gnomowladny",
|
||||
"wallace-gen6.png" => "Gnomowladny",
|
||||
"wikstrom.png" => "Gnomowladny",
|
||||
"winona-gen6.png" => "Gnomowladny",
|
||||
"wulfric.png" => "Gnomowladny",
|
||||
"xerosic.png" => "Gnomowladny",
|
||||
"youngn.png" => "Gnomowladny",
|
||||
"zinnia.png" => "Gnomowladny",
|
||||
"glacia.png" => "Grapo",
|
||||
"peonia.png" => "Grapo",
|
||||
"phoebe-masters.png" => "Grapo",
|
||||
"rosa-masters3.png" => "Grapo",
|
||||
"scottie-masters.png" => "Grapo",
|
||||
"skyla-masters2.png" => "Grapo",
|
||||
"volo-ginkgo.png" => "Grapo",
|
||||
"florian-bb.png" => "Horo",
|
||||
"juliana-bb.png" => "Horo",
|
||||
"liko.png" => "Horo",
|
||||
"red-lgpe.png" => "Horo",
|
||||
"roy.png" => "Horo",
|
||||
"kris.png" => "Selena",
|
||||
"alain.png" => "ZacWeavile",
|
||||
"arven-v.png" => "ZacWeavile",
|
||||
"atticus.png" => "ZacWeavile",
|
||||
"charm.png" => "ZacWeavile",
|
||||
"coin.png" => "ZacWeavile",
|
||||
"courtney.png" => "ZacWeavile",
|
||||
"dexio-gen6.png" => "ZacWeavile",
|
||||
"dulse.png" => "ZacWeavile",
|
||||
"elio-usum.png" => "ZacWeavile",
|
||||
"emma.png" => "ZacWeavile",
|
||||
"eri.png" => "ZacWeavile",
|
||||
"essentia.png" => "ZacWeavile",
|
||||
"flannery-gen6.png" => "ZacWeavile",
|
||||
"giacomo.png" => "ZacWeavile",
|
||||
"ginchiyo-conquest.png" => "ZacWeavile",
|
||||
"gloria-dojo.png" => "ZacWeavile",
|
||||
"green.png" => "ZacWeavile",
|
||||
"grusha.png" => "ZacWeavile",
|
||||
"hanbei-conquest.png" => "ZacWeavile",
|
||||
"hero-conquest.png" => "ZacWeavile",
|
||||
"hero2-conquest.png" => "ZacWeavile",
|
||||
"heroine-conquest.png" => "ZacWeavile",
|
||||
"heroine2-conquest.png" => "ZacWeavile",
|
||||
"kunoichi-conquest.png" => "ZacWeavile",
|
||||
"kunoichi2-conquest.png" => "ZacWeavile",
|
||||
"magmagrunt.png" => "ZacWeavile",
|
||||
"magmagruntf.png" => "ZacWeavile",
|
||||
"marnie-league.png" => "ZacWeavile",
|
||||
"masamune-conquest.png" => "ZacWeavile",
|
||||
"mela.png" => "ZacWeavile",
|
||||
"morgan.png" => "ZacWeavile",
|
||||
"nobunaga-conquest.png" => "ZacWeavile",
|
||||
"norman-gen6.png" => "ZacWeavile",
|
||||
"oichi-conquest.png" => "ZacWeavile",
|
||||
"ortega.png" => "ZacWeavile",
|
||||
"penny.png" => "ZacWeavile",
|
||||
"phyco.png" => "ZacWeavile",
|
||||
"ranmaru-conquest.png" => "ZacWeavile",
|
||||
"selene-usum.png" => "ZacWeavile",
|
||||
"serena-anime.png" => "ZacWeavile",
|
||||
"shauna.png" => "ZacWeavile",
|
||||
"sina-gen6.png" => "ZacWeavile",
|
||||
"skullgrunt.png" => "ZacWeavile",
|
||||
"skullgruntf.png" => "ZacWeavile",
|
||||
"soliera.png" => "ZacWeavile",
|
||||
"steven-gen6.png" => "ZacWeavile",
|
||||
"zossie.png" => "ZacWeavile",
|
||||
"brendan-e.png" => "hyo-oppa",
|
||||
"brendan.png" => "hyo-oppa",
|
||||
"maxie-gen6.png" => "hyo-oppa",
|
||||
"may.png" => "hyo-oppa",
|
||||
"aarune.png" => "kyledove",
|
||||
"acerola-masters.png" => "kyledove",
|
||||
"acerola-masters2.png" => "kyledove",
|
||||
"acerola-masters3.png" => "kyledove",
|
||||
"acetrainer-gen6.png" => "kyledove",
|
||||
"acetrainer-gen6xy.png" => "kyledove",
|
||||
"acetrainer-gen7.png" => "kyledove",
|
||||
"acetrainerf-gen6.png" => "kyledove",
|
||||
"acetrainerf-gen6xy.png" => "kyledove",
|
||||
"acetrainerf-gen7.png" => "kyledove",
|
||||
"adaman-masters.png" => "kyledove",
|
||||
"aetherfoundation2.png" => "kyledove",
|
||||
"akari-isekai.png" => "kyledove",
|
||||
"alec-anime.png" => "kyledove",
|
||||
"allister-masters.png" => "kyledove",
|
||||
"allister-unmasked.png" => "kyledove",
|
||||
"amarys.png" => "kyledove",
|
||||
"amelia-shuffle.png" => "kyledove",
|
||||
"anabel.png" => "kyledove",
|
||||
"anthe.png" => "kyledove",
|
||||
"anthea.png" => "kyledove",
|
||||
"anvin.png" => "kyledove",
|
||||
"aquagrunt-rse.png" => "kyledove",
|
||||
"aquagrunt.png" => "kyledove",
|
||||
"aquagruntf-rse.png" => "kyledove",
|
||||
"aquagruntf.png" => "kyledove",
|
||||
"aquasuit.png" => "kyledove",
|
||||
"archie-usum.png" => "kyledove",
|
||||
"arlo.png" => "kyledove",
|
||||
"aromalady-gen6.png" => "kyledove",
|
||||
"artist-gen6.png" => "kyledove",
|
||||
"artist-gen8.png" => "kyledove",
|
||||
"artist-gen9.png" => "kyledove",
|
||||
"artistf-gen6.png" => "kyledove",
|
||||
"arven-s.png" => "kyledove",
|
||||
"backpacker-gen6.png" => "kyledove",
|
||||
"backpacker-gen8.png" => "kyledove",
|
||||
"backpacker-gen9.png" => "kyledove",
|
||||
"barry-masters.png" => "kyledove",
|
||||
"battlegirl-gen6.png" => "kyledove",
|
||||
"battlegirl-gen6xy.png" => "kyledove",
|
||||
"bea-masters.png" => "kyledove",
|
||||
"beauty-gen6.png" => "kyledove",
|
||||
"beauty-gen6xy.png" => "kyledove",
|
||||
"beauty-gen8.png" => "kyledove",
|
||||
"beauty-gen9.png" => "kyledove",
|
||||
"beauty-masters.png" => "kyledove",
|
||||
"bede-masters.png" => "kyledove",
|
||||
"bellhop.png" => "kyledove",
|
||||
"bellis.png" => "kyledove",
|
||||
"beni-ninja.png" => "kyledove",
|
||||
"beni.png" => "kyledove",
|
||||
"bianca-masters.png" => "kyledove",
|
||||
"birch.png" => "kyledove",
|
||||
"birdkeeper-gen6.png" => "kyledove",
|
||||
"blackbelt-gen6.png" => "kyledove",
|
||||
"blackbelt-gen7.png" => "kyledove",
|
||||
"blackbelt-gen8.png" => "kyledove",
|
||||
"blackbelt-gen9.png" => "kyledove",
|
||||
"blaine-lgpe.png" => "kyledove",
|
||||
"blanche-casual.png" => "kyledove",
|
||||
"blanche.png" => "kyledove",
|
||||
"blue-lgpe.png" => "kyledove",
|
||||
"blue-masters.png" => "kyledove",
|
||||
"blue-masters2.png" => "kyledove",
|
||||
"bodybuilder-gen9.png" => "kyledove",
|
||||
"bodybuilderf-gen9.png" => "kyledove",
|
||||
"brandon.png" => "kyledove",
|
||||
"brassius.png" => "kyledove",
|
||||
"brendan-masters.png" => "kyledove",
|
||||
"brendan-rs.png" => "kyledove",
|
||||
"briar.png" => "kyledove",
|
||||
"brigette.png" => "kyledove",
|
||||
"brock-lgpe.png" => "kyledove",
|
||||
"brock-masters.png" => "kyledove",
|
||||
"bugcatcher-gen6.png" => "kyledove",
|
||||
"bugmaniac-gen6.png" => "kyledove",
|
||||
"burgh-masters.png" => "kyledove",
|
||||
"burglar-lgpe.png" => "kyledove",
|
||||
"butler.png" => "kyledove",
|
||||
"cabbie-gen9.png" => "kyledove",
|
||||
"cabbie.png" => "kyledove",
|
||||
"cafemaster.png" => "kyledove",
|
||||
"caitlin-masters.png" => "kyledove",
|
||||
"calem-masters.png" => "kyledove",
|
||||
"cameraman-gen6.png" => "kyledove",
|
||||
"cameraman-gen8.png" => "kyledove",
|
||||
"camper-gen6.png" => "kyledove",
|
||||
"candela-casual.png" => "kyledove",
|
||||
"candela.png" => "kyledove",
|
||||
"candice-masters.png" => "kyledove",
|
||||
"caraliss.png" => "kyledove",
|
||||
"caretaker.png" => "kyledove",
|
||||
"carmine-festival.png" => "kyledove",
|
||||
"carmine.png" => "kyledove",
|
||||
"cedricjuniper.png" => "kyledove",
|
||||
"celio.png" => "kyledove",
|
||||
"channeler-lgpe.png" => "kyledove",
|
||||
"charon.png" => "kyledove",
|
||||
"chef.png" => "kyledove",
|
||||
"cheren-masters.png" => "kyledove",
|
||||
"choy.png" => "kyledove",
|
||||
"christoph.png" => "kyledove",
|
||||
"clair-masters.png" => "kyledove",
|
||||
"clavell-s.png" => "kyledove",
|
||||
"clerk-gen8.png" => "kyledove",
|
||||
"clerk-unite.png" => "kyledove",
|
||||
"clerkf-gen8.png" => "kyledove",
|
||||
"cliff.png" => "kyledove",
|
||||
"clive-v.png" => "kyledove",
|
||||
"clover.png" => "kyledove",
|
||||
"collector-gen6.png" => "kyledove",
|
||||
"collector-gen7.png" => "kyledove",
|
||||
"collector-masters.png" => "kyledove",
|
||||
"colza.png" => "kyledove",
|
||||
"concordia.png" => "kyledove",
|
||||
"cook-gen7.png" => "kyledove",
|
||||
"cook-gen9.png" => "kyledove",
|
||||
"cook.png" => "kyledove",
|
||||
"courier.png" => "kyledove",
|
||||
"crispin.png" => "kyledove",
|
||||
"curtis.png" => "kyledove",
|
||||
"cyllene.png" => "kyledove",
|
||||
"cynthia-anime.png" => "kyledove",
|
||||
"cynthia-anime2.png" => "kyledove",
|
||||
"cynthia-masters2.png" => "kyledove",
|
||||
"cynthia-masters3.png" => "kyledove",
|
||||
"cyrano.png" => "kyledove",
|
||||
"cyrus-masters.png" => "kyledove",
|
||||
"dagero.png" => "kyledove",
|
||||
"dana.png" => "kyledove",
|
||||
"dancer-gen7.png" => "kyledove",
|
||||
"dancer-gen8.png" => "kyledove",
|
||||
"dawn-contest.png" => "kyledove",
|
||||
"dawn-masters.png" => "kyledove",
|
||||
"dawn-masters2.png" => "kyledove",
|
||||
"dawn-masters3.png" => "kyledove",
|
||||
"delinquent-gen9.png" => "kyledove",
|
||||
"delinquent.png" => "kyledove",
|
||||
"delinquentf-gen9.png" => "kyledove",
|
||||
"delinquentf2-gen9.png" => "kyledove",
|
||||
"dendra.png" => "kyledove",
|
||||
"diamondclanmember.png" => "kyledove",
|
||||
"diantha-masters.png" => "kyledove",
|
||||
"diantha-masters2.png" => "kyledove",
|
||||
"doctorf-gen8.png" => "kyledove",
|
||||
"dragontamer-gen6.png" => "kyledove",
|
||||
"dragontamer-gen9.png" => "kyledove",
|
||||
"drayton.png" => "kyledove",
|
||||
"elesa-masters.png" => "kyledove",
|
||||
"elesa-masters2.png" => "kyledove",
|
||||
"elm.png" => "kyledove",
|
||||
"emmet-masters.png" => "kyledove",
|
||||
"erbie-unite.png" => "kyledove",
|
||||
"erika-lgpe.png" => "kyledove",
|
||||
"erika-masters.png" => "kyledove",
|
||||
"erika-masters2.png" => "kyledove",
|
||||
"ethan-masters.png" => "kyledove",
|
||||
"expert-gen6.png" => "kyledove",
|
||||
"expertf-gen6.png" => "kyledove",
|
||||
"fairytalegirl.png" => "kyledove",
|
||||
"fennel.png" => "kyledove",
|
||||
"firefighter.png" => "kyledove",
|
||||
"fisher-gen8.png" => "kyledove",
|
||||
"fisherman-gen6.png" => "kyledove",
|
||||
"fisherman-gen6xy.png" => "kyledove",
|
||||
"fisherman-gen7.png" => "kyledove",
|
||||
"flaregrunt.png" => "kyledove",
|
||||
"flaregruntf.png" => "kyledove",
|
||||
"florian-festival.png" => "kyledove",
|
||||
"florian-s.png" => "kyledove",
|
||||
"freediver.png" => "kyledove",
|
||||
"furisodegirl-blue.png" => "kyledove",
|
||||
"furisodegirl-white.png" => "kyledove",
|
||||
"gaeric.png" => "kyledove",
|
||||
"garcon.png" => "kyledove",
|
||||
"gardener.png" => "kyledove",
|
||||
"gardenia-masters.png" => "kyledove",
|
||||
"geeta.png" => "kyledove",
|
||||
"gentleman-gen6.png" => "kyledove",
|
||||
"gentleman-gen6xy.png" => "kyledove",
|
||||
"gentleman-gen7.png" => "kyledove",
|
||||
"gentleman-gen8.png" => "kyledove",
|
||||
"gentleman-lgpe.png" => "kyledove",
|
||||
"ginter.png" => "kyledove",
|
||||
"giovanni-lgpe.png" => "kyledove",
|
||||
"giovanni-masters.png" => "kyledove",
|
||||
"gladion-masters.png" => "kyledove",
|
||||
"gloria-league.png" => "kyledove",
|
||||
"gloria-masters.png" => "kyledove",
|
||||
"gloria-tundra.png" => "kyledove",
|
||||
"golfer.png" => "kyledove",
|
||||
"grace.png" => "kyledove",
|
||||
"grant.png" => "kyledove",
|
||||
"greta.png" => "kyledove",
|
||||
"grimsley-masters.png" => "kyledove",
|
||||
"guitarist-gen6.png" => "kyledove",
|
||||
"gurkinn.png" => "kyledove",
|
||||
"guzma-masters.png" => "kyledove",
|
||||
"hassel.png" => "kyledove",
|
||||
"hau-masters.png" => "kyledove",
|
||||
"hayley.png" => "kyledove",
|
||||
"heath.png" => "kyledove",
|
||||
"hexmaniac-gen6.png" => "kyledove",
|
||||
"hiker-gen6.png" => "kyledove",
|
||||
"hiker-gen8.png" => "kyledove",
|
||||
"hiker-gen9.png" => "kyledove",
|
||||
"hilbert-masters.png" => "kyledove",
|
||||
"hilbert-masters2.png" => "kyledove",
|
||||
"hilda-masters.png" => "kyledove",
|
||||
"hilda-masters3.png" => "kyledove",
|
||||
"hop-masters.png" => "kyledove",
|
||||
"hyde.png" => "kyledove",
|
||||
"ingo-hisui.png" => "kyledove",
|
||||
"ingo-masters.png" => "kyledove",
|
||||
"interviewers-gen6.png" => "kyledove",
|
||||
"iono.png" => "kyledove",
|
||||
"irida-masters.png" => "kyledove",
|
||||
"iris-masters.png" => "kyledove",
|
||||
"iscan.png" => "kyledove",
|
||||
"jacq.png" => "kyledove",
|
||||
"jamie.png" => "kyledove",
|
||||
"janitor-gen7.png" => "kyledove",
|
||||
"janitor-gen9.png" => "kyledove",
|
||||
"jasmine-contest.png" => "kyledove",
|
||||
"jasmine-masters.png" => "kyledove",
|
||||
"jasmine-masters2.png" => "kyledove",
|
||||
"johanna-contest.png" => "kyledove",
|
||||
"johanna.png" => "kyledove",
|
||||
"juliana-festival.png" => "kyledove",
|
||||
"juliana-s.png" => "kyledove",
|
||||
"kamado-armor.png" => "kyledove",
|
||||
"kamado.png" => "kyledove",
|
||||
"katy.png" => "kyledove",
|
||||
"kieran-champion.png" => "kyledove",
|
||||
"kieran-festival.png" => "kyledove",
|
||||
"kieran.png" => "kyledove",
|
||||
"kindler-gen6.png" => "kyledove",
|
||||
"kofu.png" => "kyledove",
|
||||
"korrina-masters.png" => "kyledove",
|
||||
"kris-masters.png" => "kyledove",
|
||||
"kurt.png" => "kyledove",
|
||||
"lacey.png" => "kyledove",
|
||||
"lady-gen6.png" => "kyledove",
|
||||
"lady-gen6oras.png" => "kyledove",
|
||||
"lana-masters.png" => "kyledove",
|
||||
"lance-lgpe.png" => "kyledove",
|
||||
"lance-masters.png" => "kyledove",
|
||||
"lanette.png" => "kyledove",
|
||||
"larry.png" => "kyledove",
|
||||
"lass-gen6.png" => "kyledove",
|
||||
"lass-gen6oras.png" => "kyledove",
|
||||
"lass-gen8.png" => "kyledove",
|
||||
"laventon.png" => "kyledove",
|
||||
"laventon2.png" => "kyledove",
|
||||
"leaf-masters.png" => "kyledove",
|
||||
"leaf-masters2.png" => "kyledove",
|
||||
"leaguestaff.png" => "kyledove",
|
||||
"leaguestafff.png" => "kyledove",
|
||||
"leon-masters.png" => "kyledove",
|
||||
"leon-masters2.png" => "kyledove",
|
||||
"lillie-masters.png" => "kyledove",
|
||||
"lillie-masters2.png" => "kyledove",
|
||||
"lillie-masters3.png" => "kyledove",
|
||||
"lisia-masters.png" => "kyledove",
|
||||
"liza-gen6.png" => "kyledove",
|
||||
"liza-masters.png" => "kyledove",
|
||||
"lucas-contest.png" => "kyledove",
|
||||
"lucy.png" => "kyledove",
|
||||
"lusamine-masters.png" => "kyledove",
|
||||
"lyra-masters.png" => "kyledove",
|
||||
"lyra-masters2.png" => "kyledove",
|
||||
"lysandre-masters.png" => "kyledove",
|
||||
"lysandre.png" => "kyledove",
|
||||
"madame-gen6.png" => "kyledove",
|
||||
"madame-gen7.png" => "kyledove",
|
||||
"madame-gen8.png" => "kyledove",
|
||||
"magmagrunt-rse.png" => "kyledove",
|
||||
"magmagruntf-rse.png" => "kyledove",
|
||||
"magmasuit.png" => "kyledove",
|
||||
"magnus.png" => "kyledove",
|
||||
"maid-gen6.png" => "kyledove",
|
||||
"mallow-masters.png" => "kyledove",
|
||||
"marnie-masters.png" => "kyledove",
|
||||
"marnie-masters2.png" => "kyledove",
|
||||
"marnie-masters3.png" => "kyledove",
|
||||
"mateo.png" => "kyledove",
|
||||
"matt.png" => "kyledove",
|
||||
"may-e.png" => "kyledove",
|
||||
"may-masters.png" => "kyledove",
|
||||
"may-masters2.png" => "kyledove",
|
||||
"may-masters3.png" => "kyledove",
|
||||
"may-rs.png" => "kyledove",
|
||||
"melli.png" => "kyledove",
|
||||
"miku-fire.png" => "kyledove",
|
||||
"miku-grass.png" => "kyledove",
|
||||
"miku-psychic.png" => "kyledove",
|
||||
"miku-water.png" => "kyledove",
|
||||
"mina-masters.png" => "kyledove",
|
||||
"miriam.png" => "kyledove",
|
||||
"mirror.png" => "kyledove",
|
||||
"misty-lgpe.png" => "kyledove",
|
||||
"misty-masters.png" => "kyledove",
|
||||
"model-gen8.png" => "kyledove",
|
||||
"mohn-anime.png" => "kyledove",
|
||||
"mohn.png" => "kyledove",
|
||||
"mom-alola.png" => "kyledove",
|
||||
"mom-hoenn.png" => "kyledove",
|
||||
"mom-johto.png" => "kyledove",
|
||||
"mom-paldea.png" => "kyledove",
|
||||
"mom-unova.png" => "kyledove",
|
||||
"mom-unova2.png" => "kyledove",
|
||||
"morty-masters.png" => "kyledove",
|
||||
"morty-masters2.png" => "kyledove",
|
||||
"mrbriney.png" => "kyledove",
|
||||
"mrstone.png" => "kyledove",
|
||||
"musician-gen8.png" => "kyledove",
|
||||
"musician-gen9.png" => "kyledove",
|
||||
"mustard-champion.png" => "kyledove",
|
||||
"n-masters.png" => "kyledove",
|
||||
"n-masters2.png" => "kyledove",
|
||||
"n-masters3.png" => "kyledove",
|
||||
"nancy.png" => "kyledove",
|
||||
"nate-masters.png" => "kyledove",
|
||||
"nate-pokestar.png" => "kyledove",
|
||||
"nate-pokestar3.png" => "kyledove",
|
||||
"nemona-masters.png" => "kyledove",
|
||||
"nemona-s.png" => "kyledove",
|
||||
"nemona-v.png" => "kyledove",
|
||||
"neroli.png" => "kyledove",
|
||||
"nessa-masters.png" => "kyledove",
|
||||
"ninjaboy-gen6.png" => "kyledove",
|
||||
"noland.png" => "kyledove",
|
||||
"oak.png" => "kyledove",
|
||||
"officeworker-gen9.png" => "kyledove",
|
||||
"officeworkerf-gen9.png" => "kyledove",
|
||||
"officeworkerf.png" => "kyledove",
|
||||
"ogreclan.png" => "kyledove",
|
||||
"owner.png" => "kyledove",
|
||||
"palina.png" => "kyledove",
|
||||
"parasollady-gen6.png" => "kyledove",
|
||||
"paulo-masters.png" => "kyledove",
|
||||
"pearlclanmember.png" => "kyledove",
|
||||
"peony-league.png" => "kyledove",
|
||||
"perrin.png" => "kyledove",
|
||||
"phil.png" => "kyledove",
|
||||
"phorus-unite.png" => "kyledove",
|
||||
"picnicker-gen6.png" => "kyledove",
|
||||
"piers-league.png" => "kyledove",
|
||||
"piers-masters.png" => "kyledove",
|
||||
"player-go.png" => "kyledove",
|
||||
"playerf-go.png" => "kyledove",
|
||||
"plumeria-league.png" => "kyledove",
|
||||
"pokefan-gen6.png" => "kyledove",
|
||||
"pokefan-gen6xy.png" => "kyledove",
|
||||
"pokefanf-gen6.png" => "kyledove",
|
||||
"pokefanf-gen6xy.png" => "kyledove",
|
||||
"pokekid-gen8.png" => "kyledove",
|
||||
"pokekidf-gen8.png" => "kyledove",
|
||||
"pokemaniac-gen6.png" => "kyledove",
|
||||
"pokemaniac-gen9.png" => "kyledove",
|
||||
"pokemonbreeder-gen6.png" => "kyledove",
|
||||
"pokemonbreeder-gen6xy.png" => "kyledove",
|
||||
"pokemonbreeder-gen8.png" => "kyledove",
|
||||
"pokemonbreederf-gen6.png" => "kyledove",
|
||||
"pokemonbreederf-gen6xy.png" => "kyledove",
|
||||
"pokemonbreederf-gen8.png" => "kyledove",
|
||||
"pokemoncenterlady.png" => "kyledove",
|
||||
"pokemonranger-gen6.png" => "kyledove",
|
||||
"pokemonranger-gen6xy.png" => "kyledove",
|
||||
"pokemonrangerf-gen6.png" => "kyledove",
|
||||
"pokemonrangerf-gen6xy.png" => "kyledove",
|
||||
"policeman-gen7.png" => "kyledove",
|
||||
"policeman-gen8.png" => "kyledove",
|
||||
"poppy.png" => "kyledove",
|
||||
"postman.png" => "kyledove",
|
||||
"preschooler-gen6.png" => "kyledove",
|
||||
"preschooler-gen7.png" => "kyledove",
|
||||
"preschoolerf-gen6.png" => "kyledove",
|
||||
"preschoolerf-gen7.png" => "kyledove",
|
||||
"psychic-gen6.png" => "kyledove",
|
||||
"psychic-lgpe.png" => "kyledove",
|
||||
"punkgirl-gen7.png" => "kyledove",
|
||||
"punkgirl-masters.png" => "kyledove",
|
||||
"punkgirl.png" => "kyledove",
|
||||
"punkguy-gen7.png" => "kyledove",
|
||||
"punkguy.png" => "kyledove",
|
||||
"raifort.png" => "kyledove",
|
||||
"raihan-masters.png" => "kyledove",
|
||||
"railstaff.png" => "kyledove",
|
||||
"red-masters.png" => "kyledove",
|
||||
"red-masters2.png" => "kyledove",
|
||||
"red-masters3.png" => "kyledove",
|
||||
"rei-isekai.png" => "kyledove",
|
||||
"reporter-gen6.png" => "kyledove",
|
||||
"reporter-gen8.png" => "kyledove",
|
||||
"rhi.png" => "kyledove",
|
||||
"richboy-gen6.png" => "kyledove",
|
||||
"richboy-gen6xy.png" => "kyledove",
|
||||
"rika.png" => "kyledove",
|
||||
"risingstar-gen6.png" => "kyledove",
|
||||
"risingstarf-gen6.png" => "kyledove",
|
||||
"rita.png" => "kyledove",
|
||||
"river.png" => "kyledove",
|
||||
"rollerskater.png" => "kyledove",
|
||||
"rollerskaterf.png" => "kyledove",
|
||||
"rosa-masters.png" => "kyledove",
|
||||
"rosa-masters2.png" => "kyledove",
|
||||
"rosa-pokestar.png" => "kyledove",
|
||||
"rosa-pokestar2.png" => "kyledove",
|
||||
"rosa-pokestar3.png" => "kyledove",
|
||||
"rowan.png" => "kyledove",
|
||||
"roxanne-gen6.png" => "kyledove",
|
||||
"roxanne-masters.png" => "kyledove",
|
||||
"roxie-masters.png" => "kyledove",
|
||||
"ruffian.png" => "kyledove",
|
||||
"ruinmaniac-gen6.png" => "kyledove",
|
||||
"rye.png" => "kyledove",
|
||||
"ryme.png" => "kyledove",
|
||||
"sabrina-frlg.png" => "kyledove",
|
||||
"sabrina-lgpe.png" => "kyledove",
|
||||
"sabrina-masters.png" => "kyledove",
|
||||
"sada.png" => "kyledove",
|
||||
"saguaro.png" => "kyledove",
|
||||
"sailor-gen6.png" => "kyledove",
|
||||
"salvatore.png" => "kyledove",
|
||||
"schoolboy.png" => "kyledove",
|
||||
"schoolgirl.png" => "kyledove",
|
||||
"schoolkid-gen6.png" => "kyledove",
|
||||
"schoolkid-gen8.png" => "kyledove",
|
||||
"schoolkidf-gen6.png" => "kyledove",
|
||||
"schoolkidf-gen8.png" => "kyledove",
|
||||
"scientist-gen6.png" => "kyledove",
|
||||
"scientist-gen7.png" => "kyledove",
|
||||
"scientist-gen9.png" => "kyledove",
|
||||
"scientistf-gen6.png" => "kyledove",
|
||||
"scott.png" => "kyledove",
|
||||
"scubadiver.png" => "kyledove",
|
||||
"securitycorps.png" => "kyledove",
|
||||
"securitycorpsf.png" => "kyledove",
|
||||
"selene-masters.png" => "kyledove",
|
||||
"serena-masters.png" => "kyledove",
|
||||
"serena-masters2.png" => "kyledove",
|
||||
"serena-masters3.png" => "kyledove",
|
||||
"serena.png" => "kyledove",
|
||||
"shauna-masters.png" => "kyledove",
|
||||
"siebold-masters.png" => "kyledove",
|
||||
"sierra.png" => "kyledove",
|
||||
"sightseer.png" => "kyledove",
|
||||
"silver-masters.png" => "kyledove",
|
||||
"skyla-masters.png" => "kyledove",
|
||||
"skytrainer.png" => "kyledove",
|
||||
"skytrainerf.png" => "kyledove",
|
||||
"sonia-masters.png" => "kyledove",
|
||||
"spark-casual.png" => "kyledove",
|
||||
"spark.png" => "kyledove",
|
||||
"spenser.png" => "kyledove",
|
||||
"stargrunt-s.png" => "kyledove",
|
||||
"stargrunt-v.png" => "kyledove",
|
||||
"stargruntf-s.png" => "kyledove",
|
||||
"stargruntf-v.png" => "kyledove",
|
||||
"steven-masters.png" => "kyledove",
|
||||
"steven-masters2.png" => "kyledove",
|
||||
"steven-masters3.png" => "kyledove",
|
||||
"steven-masters4.png" => "kyledove",
|
||||
"streetthug-masters.png" => "kyledove",
|
||||
"streetthug.png" => "kyledove",
|
||||
"surfer.png" => "kyledove",
|
||||
"swimmer-gen6.png" => "kyledove",
|
||||
"swimmer-gen7.png" => "kyledove",
|
||||
"swimmer-gen8.png" => "kyledove",
|
||||
"swimmer-masters.png" => "kyledove",
|
||||
"swimmerf-gen6.png" => "kyledove",
|
||||
"swimmerf-gen7.png" => "kyledove",
|
||||
"swimmerf-gen8.png" => "kyledove",
|
||||
"swimmerf2-gen6.png" => "kyledove",
|
||||
"swimmerf2-gen7.png" => "kyledove",
|
||||
"sycamore-masters.png" => "kyledove",
|
||||
"sycamore.png" => "kyledove",
|
||||
"tabitha.png" => "kyledove",
|
||||
"taohua.png" => "kyledove",
|
||||
"tate-gen6.png" => "kyledove",
|
||||
"tate-masters.png" => "kyledove",
|
||||
"teammates.png" => "kyledove",
|
||||
"tina-masters.png" => "kyledove",
|
||||
"toddsnap.png" => "kyledove",
|
||||
"toddsnap2.png" => "kyledove",
|
||||
"tourist.png" => "kyledove",
|
||||
"touristf.png" => "kyledove",
|
||||
"touristf2.png" => "kyledove",
|
||||
"trevor.png" => "kyledove",
|
||||
"trialguide.png" => "kyledove",
|
||||
"trialguidef.png" => "kyledove",
|
||||
"triathletebiker-gen6.png" => "kyledove",
|
||||
"triathleterunner-gen6.png" => "kyledove",
|
||||
"triathleteswimmer-gen6.png" => "kyledove",
|
||||
"tuber-gen6.png" => "kyledove",
|
||||
"tuberf-gen6.png" => "kyledove",
|
||||
"tucker.png" => "kyledove",
|
||||
"tuli.png" => "kyledove",
|
||||
"tulip.png" => "kyledove",
|
||||
"turo.png" => "kyledove",
|
||||
"twins-gen6.png" => "kyledove",
|
||||
"tyme.png" => "kyledove",
|
||||
"ultraforestkartenvoy.png" => "kyledove",
|
||||
"vessa.png" => "kyledove",
|
||||
"veteran-gen6.png" => "kyledove",
|
||||
"veteran-gen7.png" => "kyledove",
|
||||
"veteranf-gen6.png" => "kyledove",
|
||||
"veteranf-gen7.png" => "kyledove",
|
||||
"victor-league.png" => "kyledove",
|
||||
"victor-masters.png" => "kyledove",
|
||||
"victor-tundra.png" => "kyledove",
|
||||
"vince.png" => "kyledove",
|
||||
"viola-masters.png" => "kyledove",
|
||||
"volkner-masters.png" => "kyledove",
|
||||
"waiter-gen9.png" => "kyledove",
|
||||
"waitress-gen6.png" => "kyledove",
|
||||
"waitress-gen9.png" => "kyledove",
|
||||
"wallace-masters.png" => "kyledove",
|
||||
"wally-masters.png" => "kyledove",
|
||||
"wally-rse.png" => "kyledove",
|
||||
"whitney-masters.png" => "kyledove",
|
||||
"willow-casual.png" => "kyledove",
|
||||
"willow.png" => "kyledove",
|
||||
"worker-gen6.png" => "kyledove",
|
||||
"worker-gen7.png" => "kyledove",
|
||||
"worker-gen8.png" => "kyledove",
|
||||
"worker-gen9.png" => "kyledove",
|
||||
"worker-lgpe.png" => "kyledove",
|
||||
"worker2-gen6.png" => "kyledove",
|
||||
"workerf-gen8.png" => "kyledove",
|
||||
"yancy.png" => "kyledove",
|
||||
"youngcouple-gen6.png" => "kyledove",
|
||||
"youngster-gen6.png" => "kyledove",
|
||||
"youngster-gen6xy.png" => "kyledove",
|
||||
"youngster-gen8.png" => "kyledove",
|
||||
"youngster-gen9.png" => "kyledove",
|
||||
"youngster-masters.png" => "kyledove",
|
||||
"yukito-hideko.png" => "kyledove",
|
||||
"zinnia-masters.png" => "kyledove",
|
||||
"zirco-unite.png" => "kyledove",
|
||||
];
|
||||
|
||||
showSpriteIndex('*.png');
|
||||
|
|
@ -119,3 +119,6 @@ RewriteCond %{REQUEST_FILENAME} !-f
|
|||
RewriteRule ^(apple-touch-icon-precomposed\.png)$ - [R=404,L]
|
||||
|
||||
</IfModule>
|
||||
|
||||
DirectoryIndex index.php index.html /dirindex/dirindex.php
|
||||
ErrorDocument 404 /dirindex/404.html
|
||||
|
|
|
|||
1
pokemonshowdown.com/dirindex
Symbolic link
1
pokemonshowdown.com/dirindex
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
../play.pokemonshowdown.com/dirindex/
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
<title>Pokémon Showdown! battle simulator</title>
|
||||
|
||||
<link rel="stylesheet" href="/style/global.css?v14" />
|
||||
<link rel="stylesheet" href="/style/global.css?v15" />
|
||||
|
||||
<?php
|
||||
include_once __DIR__ . '/../config/config.inc.php';
|
||||
|
|
@ -311,13 +311,10 @@ if (BrowserDetect.OS === 'Mac') {
|
|||
margin-left: 260px;
|
||||
}
|
||||
@media (max-width:600px) {
|
||||
.section-servers {
|
||||
.section-servers, .section-news {
|
||||
float: none;
|
||||
width: auto;
|
||||
margin: 20px auto;
|
||||
}
|
||||
.section-news {
|
||||
margin-left: 0;
|
||||
margin: 20px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -201,13 +201,19 @@ h1 {
|
|||
border-radius: 10px;
|
||||
max-width: 800px;
|
||||
padding: 20px;
|
||||
margin: 20px auto 20px;
|
||||
margin: 20px auto;
|
||||
|
||||
backdrop-filter: blur(4px);
|
||||
}
|
||||
@media (max-width: 600px) {
|
||||
.section {
|
||||
padding: 14px;
|
||||
margin: 20px 6px;
|
||||
}
|
||||
}
|
||||
.dark .section {
|
||||
border-color: rgba(255, 255, 255, .2);
|
||||
background: rgba(50, 50, 50, .5);
|
||||
background: rgba(0, 0, 0, .5);
|
||||
color: #DDD;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,3 +8,6 @@ RewriteRule ^([A-Za-z0-9-]+)/manage$ replay-manage.php?name=$1&manage [L,QSA]
|
|||
RewriteRule ^([A-Za-z0-9-]+)\.log$ replay.log.php?name=$1 [L,QSA]
|
||||
RewriteRule ^([A-Za-z0-9-]+)\.inputlog$ replay.log.php?inputlog&name=$1 [L,QSA]
|
||||
RewriteRule ^([A-Za-z0-9-]+)\.json$ replay.log.php?json&name=$1 [L,QSA]
|
||||
|
||||
DirectoryIndex index.php index.html /dirindex/dirindex.php
|
||||
ErrorDocument 404 /dirindex/404.html
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<title>Replay Not Found - Pokémon Showdown!</title>
|
||||
|
||||
<link rel="stylesheet" href="//pokemonshowdown.com/style/global.css?0.20436301759273556" />
|
||||
<link rel="stylesheet" href="//pokemonshowdown.com/style/global.css?v15" />
|
||||
<link rel="stylesheet" href="//play.pokemonshowdown.com/style/font-awesome.css?932f42c7" />
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
<div class="main">
|
||||
|
||||
<section class="section" style="max-width:200px">
|
||||
<section class="section" style="max-width:200px;margin:20px auto">
|
||||
<div style="text-align:center">
|
||||
<img src="//play.pokemonshowdown.com/sprites/gen5ani/unown-n.gif" alt="" style="image-rendering: pixelated"
|
||||
/><img src="//play.pokemonshowdown.com/sprites/gen5ani/unown-o.gif" alt="" style="image-rendering: pixelated"
|
||||
|
|
|
|||
1
replay.pokemonshowdown.com/dirindex
Symbolic link
1
replay.pokemonshowdown.com/dirindex
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
../play.pokemonshowdown.com/dirindex/
|
||||
Loading…
Reference in New Issue
Block a user