├── .gitignore
├── README.md
├── about.htm
├── about_kmc.htm
├── b-link.html
├── barner.htm
├── bower.json
├── cgi-bin
└── bbs
│ ├── .gitignore
│ ├── bbs.cgi
│ ├── cgi-lib.pl
│ └── jcode.pl
├── css
├── diary.css
├── index.css
└── webcrap.css
├── diary.htm
├── file
├── bg.mid
├── bg.mp3
├── bg.wav
└── jis.ttf
├── img
├── KMC-banner-88x31.gif
├── KMC-banner.gif
├── KMClogo_mini.png
├── camphor.gif
├── kado
│ ├── s_table_gray1.gif
│ ├── s_table_gray2.gif
│ ├── s_table_gray3.gif
│ └── s_table_gray4.gif
├── konami_mode.gif
├── kouji.png
├── nicc-banner.gif
├── peke.png
└── welcome_kmc.png
├── index.htm
├── index2.htm
├── js
├── about_kmc.js
├── audio.js
├── mouse.js
├── webclap.js
├── welcome.js
└── window-close.js
├── kmcdo.htm
├── links.htm
├── mar-quee.html
├── sidebar.htm
├── test.htm
├── top.htm
└── webclap.htm
/.gitignore:
--------------------------------------------------------------------------------
1 | /bower_components
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 2015AprilFool
2 | 懐古するぞ
3 |
4 | 愛生会的な感じでとりあえずKMCを紹介するようなサイトを作っていく方向でいきたいと思います
5 |
6 | とりあえず空っぽいhtmlおいたのでどんどんプルリクしてください
7 |
8 | conflictはまあ空気読むかなんとかするので気にしなくてもよいです。
9 |
10 | ## URL
11 |
12 | https://www.kmc.gr.jp/2015April/
13 |
14 | ## install dependencies
15 |
16 | ```
17 | bower install
18 | ```
19 |
--------------------------------------------------------------------------------
/about.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmc-jp/2015AprilFool/15b1a93b598b92f31ec88c88b3cc1de21b11de9a/about.htm
--------------------------------------------------------------------------------
/about_kmc.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmc-jp/2015AprilFool/15b1a93b598b92f31ec88c88b3cc1de21b11de9a/about_kmc.htm
--------------------------------------------------------------------------------
/b-link.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/barner.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmc-jp/2015AprilFool/15b1a93b598b92f31ec88c88b3cc1de21b11de9a/barner.htm
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "2015AprilFool",
3 | "version": "0.0.0",
4 | "homepage": "https://github.com/kmc-jp/2015AprilFool",
5 | "authors": [
6 | "tyage "
7 | ],
8 | "license": "MIT",
9 | "ignore": [
10 | "**/.*",
11 | "node_modules",
12 | "bower_components",
13 | "test",
14 | "tests"
15 | ],
16 | "dependencies": {
17 | "polymer": "Polymer/polymer#^0.5"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/cgi-bin/bbs/.gitignore:
--------------------------------------------------------------------------------
1 | data.txt
2 |
--------------------------------------------------------------------------------
/cgi-bin/bbs/bbs.cgi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kmc-jp/2015AprilFool/15b1a93b598b92f31ec88c88b3cc1de21b11de9a/cgi-bin/bbs/bbs.cgi
--------------------------------------------------------------------------------
/cgi-bin/bbs/cgi-lib.pl:
--------------------------------------------------------------------------------
1 | # Perl Routines to Manipulate CGI input
2 | # cgi-lib@pobox.com
3 | # $Id: cgi-lib.pl,v 2.17 1998/05/14 22:39:23 brenner Exp $
4 | #
5 | # Copyright (c) 1993-1998 Steven E. Brenner
6 | # Unpublished work.
7 | # Permission granted to use and modify this library so long as the
8 | # copyright above is maintained, modifications are documented, and
9 | # credit is given for any use of the library.
10 | #
11 | # Thanks are due to many people for reporting bugs and suggestions
12 |
13 | # For more information, see:
14 | # http://cgi-lib.stanford.edu/cgi-lib/
15 |
16 | $cgi_lib'version = sprintf("%d.%02d", q$Revision: 2.17 $ =~ /(\d+)\.(\d+)/);
17 |
18 |
19 | # Parameters affecting cgi-lib behavior
20 | # User-configurable parameters affecting file upload.
21 | $cgi_lib'maxdata = 131072; # maximum bytes to accept via POST - 2^17
22 | $cgi_lib'writefiles = 0; # directory to which to write files, or
23 | # 0 if files should not be written
24 | $cgi_lib'filepre = "cgi-lib"; # Prefix of file names, in directory above
25 |
26 | # Do not change the following parameters unless you have special reasons
27 | $cgi_lib'bufsize = 8192; # default buffer size when reading multipart
28 | $cgi_lib'maxbound = 100; # maximum boundary length to be encounterd
29 | $cgi_lib'headerout = 0; # indicates whether the header has been printed
30 |
31 |
32 | # ReadParse
33 | # Reads in GET or POST data, converts it to unescaped text, and puts
34 | # key/value pairs in %in, using "\0" to separate multiple selections
35 |
36 | # Returns >0 if there was input, 0 if there was no input
37 | # undef indicates some failure.
38 |
39 | # Now that cgi scripts can be put in the normal file space, it is useful
40 | # to combine both the form and the script in one place. If no parameters
41 | # are given (i.e., ReadParse returns FALSE), then a form could be output.
42 |
43 | # If a reference to a hash is given, then the data will be stored in that
44 | # hash, but the data from $in and @in will become inaccessable.
45 | # If a variable-glob (e.g., *cgi_input) is the first parameter to ReadParse,
46 | # information is stored there, rather than in $in, @in, and %in.
47 | # Second, third, and fourth parameters fill associative arrays analagous to
48 | # %in with data relevant to file uploads.
49 |
50 | # If no method is given, the script will process both command-line arguments
51 | # of the form: name=value and any text that is in $ENV{'QUERY_STRING'}
52 | # This is intended to aid debugging and may be changed in future releases
53 |
54 | sub ReadParse {
55 | local (*in) = shift if @_; # CGI input
56 | local (*incfn, # Client's filename (may not be provided)
57 | *inct, # Client's content-type (may not be provided)
58 | *insfn) = @_; # Server's filename (for spooled files)
59 | local ($len, $type, $meth, $errflag, $cmdflag, $perlwarn, $got, $name);
60 |
61 | # Disable warnings as this code deliberately uses local and environment
62 | # variables which are preset to undef (i.e., not explicitly initialized)
63 | $perlwarn = $^W;
64 | $^W = 0;
65 |
66 | binmode(STDIN); # we need these for DOS-based systems
67 | binmode(STDOUT); # and they shouldn't hurt anything else
68 | binmode(STDERR);
69 |
70 | # Get several useful env variables
71 | $type = $ENV{'CONTENT_TYPE'};
72 | $len = $ENV{'CONTENT_LENGTH'};
73 | $meth = $ENV{'REQUEST_METHOD'};
74 |
75 | if ($len > $cgi_lib'maxdata) { #'
76 | &CgiDie("cgi-lib.pl: Request to receive too much data: $len bytes\n");
77 | }
78 |
79 | if (!defined $meth || $meth eq '' || $meth eq 'GET' ||
80 | $meth eq 'HEAD' ||
81 | $type eq 'application/x-www-form-urlencoded') {
82 | local ($key, $val, $i);
83 |
84 | # Read in text
85 | if (!defined $meth || $meth eq '') {
86 | $in = $ENV{'QUERY_STRING'};
87 | $cmdflag = 1; # also use command-line options
88 | } elsif($meth eq 'GET' || $meth eq 'HEAD') {
89 | $in = $ENV{'QUERY_STRING'};
90 | } elsif ($meth eq 'POST') {
91 | if (($got = read(STDIN, $in, $len) != $len))
92 | {$errflag="Short Read: wanted $len, got $got\n";};
93 | } else {
94 | &CgiDie("cgi-lib.pl: Unknown request method: $meth\n");
95 | }
96 |
97 | @in = split(/[&;]/,$in);
98 | push(@in, @ARGV) if $cmdflag; # add command-line parameters
99 |
100 | foreach $i (0 .. $#in) {
101 | # Convert plus to space
102 | $in[$i] =~ s/\+/ /g;
103 |
104 | # Split into key and value.
105 | ($key, $val) = split(/=/,$in[$i],2); # splits on the first =.
106 |
107 | # Convert %XX from hex numbers to alphanumeric
108 | $key =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
109 | $val =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
110 |
111 | # Associate key and value
112 | $in{$key} .= "\0" if (defined($in{$key})); # \0 is the multiple separator
113 | $in{$key} .= $val;
114 | }
115 |
116 | } elsif ($ENV{'CONTENT_TYPE'} =~ m#^multipart/form-data#) {
117 | # for efficiency, compile multipart code only if needed
118 | $errflag = !(eval <<'END_MULTIPART');
119 |
120 | local ($buf, $boundary, $head, @heads, $cd, $ct, $fname, $ctype, $blen);
121 | local ($bpos, $lpos, $left, $amt, $fn, $ser);
122 | local ($bufsize, $maxbound, $writefiles) =
123 | ($cgi_lib'bufsize, $cgi_lib'maxbound, $cgi_lib'writefiles);
124 |
125 |
126 | # The following lines exist solely to eliminate spurious warning messages
127 | $buf = '';
128 |
129 | ($boundary) = $type =~ /boundary="([^"]+)"/; #"; # find boundary
130 | ($boundary) = $type =~ /boundary=(\S+)/ unless $boundary;
131 | &CgiDie ("Boundary not provided: probably a bug in your server")
132 | unless $boundary;
133 | $boundary = "--" . $boundary;
134 | $blen = length ($boundary);
135 |
136 | if ($ENV{'REQUEST_METHOD'} ne 'POST') {
137 | &CgiDie("Invalid request method for multipart/form-data: $meth\n");
138 | }
139 |
140 | if ($writefiles) {
141 | local($me);
142 | stat ($writefiles);
143 | $writefiles = "/tmp" unless -d _ && -w _;
144 | # ($me) = $0 =~ m#([^/]*)$#;
145 | $writefiles .= "/$cgi_lib'filepre";
146 | }
147 |
148 | # read in the data and split into parts:
149 | # put headers in @in and data in %in
150 | # General algorithm:
151 | # There are two dividers: the border and the '\r\n\r\n' between
152 | # header and body. Iterate between searching for these
153 | # Retain a buffer of size(bufsize+maxbound); the latter part is
154 | # to ensure that dividers don't get lost by wrapping between two bufs
155 | # Look for a divider in the current batch. If not found, then
156 | # save all of bufsize, move the maxbound extra buffer to the front of
157 | # the buffer, and read in a new bufsize bytes. If a divider is found,
158 | # save everything up to the divider. Then empty the buffer of everything
159 | # up to the end of the divider. Refill buffer to bufsize+maxbound
160 | # Note slightly odd organization. Code before BODY: really goes with
161 | # code following HEAD:, but is put first to 'pre-fill' buffers. BODY:
162 | # is placed before HEAD: because we first need to discard any 'preface,'
163 | # which would be analagous to a body without a preceeding head.
164 |
165 | $left = $len;
166 | PART: # find each part of the multi-part while reading data
167 | while (1) {
168 | die $@ if $errflag;
169 |
170 | $amt = ($left > $bufsize+$maxbound-length($buf)
171 | ? $bufsize+$maxbound-length($buf): $left);
172 | $errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
173 | die "Short Read: wanted $amt, got $got\n" if $errflag;
174 | $left -= $amt;
175 |
176 | $in{$name} .= "\0" if defined $in{$name};
177 | $in{$name} .= $fn if $fn;
178 |
179 | $name=~/([-\w]+)/; # This allows $insfn{$name} to be untainted
180 | if (defined $1) {
181 | $insfn{$1} .= "\0" if defined $insfn{$1};
182 | $insfn{$1} .= $fn if $fn;
183 | }
184 |
185 | BODY:
186 | while (($bpos = index($buf, $boundary)) == -1) {
187 | if ($left == 0 && $buf eq '') {
188 | foreach $value (values %insfn) {
189 | unlink(split("\0",$value));
190 | }
191 | &CgiDie("cgi-lib.pl: reached end of input while seeking boundary " .
192 | "of multipart. Format of CGI input is wrong.\n");
193 | }
194 | die $@ if $errflag;
195 | if ($name) { # if no $name, then it's the prologue -- discard
196 | if ($fn) { print FILE substr($buf, 0, $bufsize); }
197 | else { $in{$name} .= substr($buf, 0, $bufsize); }
198 | }
199 | $buf = substr($buf, $bufsize);
200 | $amt = ($left > $bufsize ? $bufsize : $left); #$maxbound==length($buf);
201 | $errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
202 | die "Short Read: wanted $amt, got $got\n" if $errflag;
203 | $left -= $amt;
204 | }
205 | if (defined $name) { # if no $name, then it's the prologue -- discard
206 | if ($fn) { print FILE substr($buf, 0, $bpos-2); }
207 | else { $in {$name} .= substr($buf, 0, $bpos-2); } # kill last \r\n
208 | }
209 | close (FILE);
210 | last PART if substr($buf, $bpos + $blen, 2) eq "--";
211 | substr($buf, 0, $bpos+$blen+2) = '';
212 | $amt = ($left > $bufsize+$maxbound-length($buf)
213 | ? $bufsize+$maxbound-length($buf) : $left);
214 | $errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
215 | die "Short Read: wanted $amt, got $got\n" if $errflag;
216 | $left -= $amt;
217 |
218 |
219 | undef $head; undef $fn;
220 | HEAD:
221 | while (($lpos = index($buf, "\r\n\r\n")) == -1) {
222 | if ($left == 0 && $buf eq '') {
223 | foreach $value (values %insfn) {
224 | unlink(split("\0",$value));
225 | }
226 | &CgiDie("cgi-lib: reached end of input while seeking end of " .
227 | "headers. Format of CGI input is wrong.\n$buf");
228 | }
229 | die $@ if $errflag;
230 | $head .= substr($buf, 0, $bufsize);
231 | $buf = substr($buf, $bufsize);
232 | $amt = ($left > $bufsize ? $bufsize : $left); #$maxbound==length($buf);
233 | $errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
234 | die "Short Read: wanted $amt, got $got\n" if $errflag;
235 | $left -= $amt;
236 | }
237 | $head .= substr($buf, 0, $lpos+2);
238 | push (@in, $head);
239 | @heads = split("\r\n", $head);
240 | ($cd) = grep (/^\s*Content-Disposition:/i, @heads);
241 | ($ct) = grep (/^\s*Content-Type:/i, @heads);
242 |
243 | ($name) = $cd =~ /\bname="([^"]+)"/i; #";
244 | ($name) = $cd =~ /\bname=([^\s:;]+)/i unless defined $name;
245 |
246 | ($fname) = $cd =~ /\bfilename="([^"]*)"/i; #"; # filename can be null-str
247 | ($fname) = $cd =~ /\bfilename=([^\s:;]+)/i unless defined $fname;
248 | $incfn{$name} .= (defined $in{$name} ? "\0" : "") .
249 | (defined $fname ? $fname : "");
250 |
251 | ($ctype) = $ct =~ /^\s*Content-type:\s*"([^"]+)"/i; #";
252 | ($ctype) = $ct =~ /^\s*Content-Type:\s*([^\s:;]+)/i unless defined $ctype;
253 | $inct{$name} .= (defined $in{$name} ? "\0" : "") . $ctype;
254 |
255 | if ($writefiles && defined $fname) {
256 | $ser++;
257 | $fn = $writefiles . ".$$.$ser";
258 | open (FILE, ">$fn") || &CgiDie("Couldn't open $fn\n");
259 | binmode (FILE); # write files accurately
260 | }
261 | substr($buf, 0, $lpos+4) = '';
262 | undef $fname;
263 | undef $ctype;
264 | }
265 |
266 | 1;
267 | END_MULTIPART
268 | if ($errflag) {
269 | local ($errmsg, $value);
270 | $errmsg = $@ || $errflag;
271 | foreach $value (values %insfn) {
272 | unlink(split("\0",$value));
273 | }
274 | &CgiDie($errmsg);
275 | } else {
276 | # everything's ok.
277 | }
278 | } else {
279 | &CgiDie("cgi-lib.pl: Unknown Content-type: $ENV{'CONTENT_TYPE'}\n");
280 | }
281 |
282 | # no-ops to avoid warnings
283 | $insfn = $insfn;
284 | $incfn = $incfn;
285 | $inct = $inct;
286 |
287 | $^W = $perlwarn;
288 |
289 | return ($errflag ? undef : scalar(@in));
290 | }
291 |
292 |
293 | # PrintHeader
294 | # Returns the magic line which tells WWW that we're an HTML document
295 |
296 | sub PrintHeader {
297 | return "Content-type: text/html\n\n";
298 | }
299 |
300 |
301 | # HtmlTop
302 | # Returns the of a document and the beginning of the body
303 | # with the title and a body header as specified by the parameter
304 |
305 | sub HtmlTop
306 | {
307 | local ($title) = @_;
308 |
309 | return <
311 |
312 | $title
313 |
314 |
315 | $title
316 | END_OF_TEXT
317 | }
318 |
319 |
320 | # HtmlBot
321 | # Returns the , codes for the bottom of every HTML page
322 |
323 | sub HtmlBot
324 | {
325 | return "