| 1 | <p>Greetings. I am Eevee, and this is my.. <em>experiment</em>. It is not so |
|---|
| 2 | much a web site as a testing ground for whatever I happen to be doing at the |
|---|
| 3 | moment. For quite a while, that has been the construction of an epic <a |
|---|
| 4 | href="[% c.uri_for('/dex') %]">Pokédex</a>, but on the off chance it is |
|---|
| 5 | ever finished to my satisfaction, I have plenty more ideas for applications to |
|---|
| 6 | write. In other words, this is not nor was it ever intended to be yet another |
|---|
| 7 | Pokémon site.</p> |
|---|
| 8 | <p>You are welcome to create a community here (when the forum happens to be |
|---|
| 9 | working), but I make no effort whatsoever to censor anything or adhere to |
|---|
| 10 | any sort of "rating". I also have a bit of a problem with people who cannot |
|---|
| 11 | get enough of their own inane babble and people who cannot string two words |
|---|
| 12 | together coherently to save their lives. I suggest you keep that in mind if |
|---|
| 13 | you wish to "contribute". Beyond that, I think nitpick rules are the fastest |
|---|
| 14 | way to create a religion, so I try to avoid it at all costs.</p> |
|---|
| 15 | <p>If you wish to <em>actually</em> contribute -- i.e., look at and amend the |
|---|
| 16 | code -- drop me a line and we'll see what we can do. Veekun is written in Perl |
|---|
| 17 | and running atop Catalyst on FastCGI. PHP sucks. <em>Hard</em>.</p> |
|---|
| 18 | <p>I am also distributing my raw Pokédex data, as I think it's ridiculous |
|---|
| 19 | to claim ownership of data someone else invented that I collected. If you would |
|---|
| 20 | like it, you can get a MySQL-compatible dump from my |
|---|
| 21 | <a href="http://trac.veekun.com/browser/veekun/trunk/script/pokedex.sql">code |
|---|
| 22 | repository</a>. Fair warning: the schema has no real documentation at the |
|---|
| 23 | moment and is subject to <a href="http://trac.veekun.com/ticket/58">change |
|---|
| 24 | without notice</a>.</p> |
|---|
| 25 | <p>I am wide open to suggestions, comments, criticisms, improvements, and free |
|---|
| 26 | money.</p> |
|---|
| 27 | |
|---|
| 28 | <div id="leftcol"> |
|---|
| 29 | <div class="front-box"> |
|---|
| 30 | <a href="[% c.site_opts.rss_site_url %]" class="heading"><img src="/images/icons/index/news.png" alt="" class="icon"/> Pokémon News</a> |
|---|
| 31 | [% FOR feed_entry IN c.cache.rss_entries %] |
|---|
| 32 | <div class="front-feedentry"> |
|---|
| 33 | <div class="title"> <a href="[% feed_entry.link %]">[% feed_entry.title %]</a> </div> |
|---|
| 34 | <div class="time"> [% format_time(feed_entry.issued) %] </div> |
|---|
| 35 | <p class="summary"> [% feed_entry.content.body | nohtml %] </p> |
|---|
| 36 | </div> |
|---|
| 37 | [% END %] |
|---|
| 38 | [% IF NOT c.cache.rss_entries %] |
|---|
| 39 | <p> No Pokémon news. </p> |
|---|
| 40 | [% END %] |
|---|
| 41 | </div> |
|---|
| 42 | <div class="front-box"> |
|---|
| 43 | <a href="/forum/[% c.site_opts.special_forums.news %]" class="heading"><img src="/images/icons/index/news.png" alt="" class="icon"/> News</a> |
|---|
| 44 | [% WHILE (t = recent_news.next) %] |
|---|
| 45 | <div class="front-newspost"> |
|---|
| 46 | <div class="time">[% format_time(t.first_post.time) %]</div> |
|---|
| 47 | <a href="/users/[% t.first_post.user_id %]" class="icon">[% IF t.first_post.user.news_pic %]<img src="/images/news/[% t.first_post.user.news_pic %]" alt="[% t.first_post.user.name %]" title="[% t.first_post.user.name %]"/>[% ELSE; t.first_post.user.name; END %]</a> |
|---|
| 48 | <div class="title">[% t.subject %]</div> |
|---|
| 49 | <div class="body">[% t.first_post.content | bbcode %]</div> |
|---|
| 50 | <a href="/forum/thread/[% t.id %]" class="link">View thread or post a comment ([% t.post_count - 1 %] so far)</a> |
|---|
| 51 | </div> |
|---|
| 52 | [% END %] |
|---|
| 53 | [% IF recent_news.is_empty %] |
|---|
| 54 | <p> No newsposts found. </p> |
|---|
| 55 | [% END %] |
|---|
| 56 | </div> |
|---|
| 57 | <div class="front-box"> |
|---|
| 58 | <a href="/forum" class="heading"><img src="/images/icons/index/forum.png" alt="" class="icon"/> Forum</a> |
|---|
| 59 | <table class="front-forum" cellspacing="0"> |
|---|
| 60 | <col style="width: 12px;"/><col/><col style="width: 12.5em;"/><col style="width: 12.5em;"/> |
|---|
| 61 | [% color = 1 %] |
|---|
| 62 | [% WHILE (t = recent_posts.next) %] |
|---|
| 63 | <tr class="color[% color %]"> |
|---|
| 64 | <td>[% IF is_unread(t) %]<img src="/images/icons/unread.png" alt="Unread posts" title="Unread posts"/>[% END %]</td> |
|---|
| 65 | <td><a href="/forum/post/[% t.last_post.id %]">[% t.subject %]</a></td> |
|---|
| 66 | <td><a href="/users/[% t.last_post.user.id %]">[% t.last_post.user.name %]</a></td> |
|---|
| 67 | <td>[% t.last_post.time | date %]</td> |
|---|
| 68 | </tr> |
|---|
| 69 | [% color = 3 - color%] |
|---|
| 70 | [% END %] |
|---|
| 71 | </table> |
|---|
| 72 | </div> |
|---|
| 73 | <div class="front-box"> |
|---|
| 74 | <a href="/users/stats" class="heading"><img src="/images/icons/index/stats.png" alt="" class="icon"/> User Statistics</a> |
|---|
| 75 | [% IF recent_users.is_empty %] |
|---|
| 76 | <p> Nobody has been on in a while. </p> |
|---|
| 77 | [% ELSE %] |
|---|
| 78 | <p> Recent users: |
|---|
| 79 | [% now = time %] |
|---|
| 80 | [% last_user = 0 %] |
|---|
| 81 | [% WHILE (u = recent_users.next) %] |
|---|
| 82 | [% IF NOT done_user_sep AND last_user AND last_user.time_active < now - 600; done_user_sep = 1 %] | [% END %] |
|---|
| 83 | <a href="/users/[% u.id %]" title="[% now - u.time_active | timespan %]">[% u.name %]</a> |
|---|
| 84 | [% last_user = u %] |
|---|
| 85 | [% END %] |
|---|
| 86 | </p> |
|---|
| 87 | [% END %] |
|---|
| 88 | </div> |
|---|
| 89 | </div> |
|---|
| 90 | <div id="rightcol"> |
|---|
| 91 | <div class="front-box"> |
|---|
| 92 | <a href="/shoutbox" class="heading"><img src="/images/icons/index/shoutbox.png" alt="" class="icon"/> Shoutbox</a> |
|---|
| 93 | [% can_edit_shoutbox = allowed('shoutbox.edit') %] |
|---|
| 94 | [% can_nuke_shoutbox = allowed('shoutbox.nuke') %] |
|---|
| 95 | [% WHILE (s = recent_shouts.next) %] |
|---|
| 96 | <div class="shout"> |
|---|
| 97 | [% IF can_edit_shoutbox AND 0 %] |
|---|
| 98 | <a href="/shoutbox/[% s.id %]/edit"><img src="/images/icons/edit.png" alt="Edit"/></a> |
|---|
| 99 | [% END %] |
|---|
| 100 | [% IF can_nuke_shoutbox %] |
|---|
| 101 | <a href="/shoutbox/[% s.id %]/nuke" class="button" onclick="return confirm('Really nuke this post?\nThis cannot be undone.');"><img src="/images/icons/nuke.png" alt="Nuke"/></a> |
|---|
| 102 | [% END %] |
|---|
| 103 | [% IF s.time %] |
|---|
| 104 | <span class="time">[% s.time | date %]</span> |
|---|
| 105 | [% END %] |
|---|
| 106 | [% IF s.user_id %] |
|---|
| 107 | <a href="/users/[% s.user_id %]" class="author" title="[% s.user.name %]">[% s.name %]</a>[% '*' UNLESS s.name == s.user.name %] |
|---|
| 108 | [% ELSE %] |
|---|
| 109 | <span class="author">[% s.name %]</span> |
|---|
| 110 | [% END %] |
|---|
| 111 | <div class="text" title="[% format_date(s.time) %]">[% s.content | html | html_line_break %]</div> |
|---|
| 112 | </div> |
|---|
| 113 | [% END %] |
|---|
| 114 | [% IF recent_shouts.is_empty %] |
|---|
| 115 | <p> Shoutbox is empty. </p> |
|---|
| 116 | [% END %] |
|---|
| 117 | [% IF c.user # allowed('shoutbox.post') %] |
|---|
| 118 | <form class="front-shout-form" action="/shoutbox/post" method="post"> |
|---|
| 119 | <p> [% shoutbox_form.get_tag('content') %] </p> |
|---|
| 120 | <p> <input type="submit" name="submit" value="Post"/> <input type="reset" value="Clear"/> </p> |
|---|
| 121 | </form> |
|---|
| 122 | [% END %] |
|---|
| 123 | </div> |
|---|
| 124 | [% IF c.cache.svn %] |
|---|
| 125 | <div class="front-box"> |
|---|
| 126 | <a href="http://trac.veekun.com/browser/veekun/trunk" class="heading"><img src="/images/icons/index/svn.png" alt="" class="icon"/>Subversion</a> |
|---|
| 127 | <p class="svncommit-revision"> <em>Last Subversion commit:</em> <a href="http://trac.veekun.com/changeset/[% c.cache.svn.revision.replace('r','') %]">[% c.cache.svn.revision %]</a> </p> |
|---|
| 128 | <p class="svncommit-log">[% c.cache.svn.log | nohtml %]</p> |
|---|
| 129 | <p class="svncommit-stamp">by [% c.cache.svn.user %] on [% format_time(c.cache.svn.time) %]</p> |
|---|
| 130 | </div> |
|---|
| 131 | [% END %] |
|---|
| 132 | </div> |
|---|
| 133 | |
|---|
| 134 | [% IF 0 %] |
|---|
| 135 | <div class="front-box"> |
|---|
| 136 | <a href="/gallery" class="front-header"><img src="/images/icons/index/gallery.png" alt="" class="front-icon"/> Gallery </a> |
|---|
| 137 | <div class="thumbnail-grid"> |
|---|
| 138 | [% WHILE (i = recent_art.next) %] |
|---|
| 139 | [% IF i.width > i.height %] |
|---|
| 140 | [% t_width = 100; t_height = 100 * i.height / i.width; t_height = round(t_height); %] |
|---|
| 141 | [% ELSE %] |
|---|
| 142 | [% t_height = 100; t_width = 100 * i.width / i.height; t_width = round(t_width); %] |
|---|
| 143 | [% END %] |
|---|
| 144 | <div class="thumbnail-cell"> |
|---|
| 145 | <a href="/gallery/[% i.id %]" class="thumbnail" style="width: [% t_width %]px; height: [% t_height %]px;"> |
|---|
| 146 | <div class="thumbnail-tr"></div><div class="thumbnail-bl"></div> |
|---|
| 147 | <img src="/uploads/thumbs/[% i.filename %]" alt="[% i.title %]" title="[% i.title %]"/> |
|---|
| 148 | <div class="thumbnail-info"> |
|---|
| 149 | <div class="thumbnail-info-title">[% i.title %]</div> |
|---|
| 150 | <div class="thumbnail-info-creator">mel</div> |
|---|
| 151 | <div class="thumbnail-info-type">[% i.type %]</div> |
|---|
| 152 | <div class="thumbnail-info-size">[% i.height %] x [% i.width %]</div> |
|---|
| 153 | </div> |
|---|
| 154 | </a> |
|---|
| 155 | </div> |
|---|
| 156 | [% END %] |
|---|
| 157 | [% IF recent_art.is_empty %] |
|---|
| 158 | <p> Nothing in the gallery. </p> |
|---|
| 159 | [% END %] |
|---|
| 160 | </div> |
|---|
| 161 | </div> |
|---|
| 162 | [% END %] |
|---|