Update everything

This commit is contained in:
Kevin Lange 2011-12-01 19:15:38 -06:00
parent 913af36dde
commit b2615aef00
7 changed files with 105 additions and 9 deletions

View File

@ -19,6 +19,8 @@ $(distdir): FORCE
cp src/nyancat.c $(distdir)/src
cp src/nyancat.py $(distdir)/src
cp src/telnetsrvlib.py $(distdir)/src
cp src/reset.sh $(distdir)/src
cp src/run.sh $(distdir)/src
FORCE:
-rm $(distdir).tar.gz >/dev/null 2>&1

1
crontab Normal file
View File

@ -0,0 +1 @@
*/10 * * * * root /local/scratch/nyancat/reset.sh

View File

@ -856,12 +856,15 @@ char * output = " ";
int main(int argc, char ** argv) {
printf("\033[H\033[2J");
fflush(stdout);
int always_escape = 0;
try_again:
printf("Select a mode:\n");
printf(" 1 xterm 256-color compatible mode (best)\n");
printf(" 2 xterm standard-color mode (good)\n");
printf(" 3 linux + blink attribute (okay)\n");
printf(" 4 standard ansi terminal (ugly)\n");
printf(" 4 unicode ansi terminal (okay)\n");
printf(" 5 extended ascii ansi terminal (okay)\n");
printf(" 6 vt220 terrible, no-color mode\n");
printf("Your selection: ");
char response[10];
fgets(response, 2, stdin);
@ -911,21 +914,53 @@ try_again:
colors['*'] = "\033[5;40m"; /* Gray cat face */
colors['%'] = "\033[5;45m"; /* Pink cheeks */
} else if (!strcmp(response, "4")) {
colors[','] = "\033[21;34;44m"; /* Blue background */
colors[','] = "\033[0;34;44m"; /* Blue background */
colors['.'] = "\033[1;37;47m"; /* White stars */
colors['\''] = "\033[21;30;40m"; /* Black border */
colors['\''] = "\033[0;30;40m"; /* Black border */
colors['@'] = "\033[1;37;47m"; /* Tan poptart */
colors['$'] = "\033[1;35;45m"; /* Pink poptart */
colors['-'] = "\033[1;31;41m"; /* Red poptart */
colors['>'] = "\033[1;31;41m"; /* Red rainbow */
colors['&'] = "\033[21;33;43m"; /* Orange rainbow */
colors['&'] = "\033[0;33;43m"; /* Orange rainbow */
colors['+'] = "\033[1;33;43m"; /* Yellow Rainbow */
colors['#'] = "\033[1;32;42m"; /* Green rainbow */
colors['='] = "\033[1;34;44m"; /* Light blue rainbow */
colors[';'] = "\033[21;34;44m"; /* Dark blue rainbow */
colors[';'] = "\033[0;34;44m"; /* Dark blue rainbow */
colors['*'] = "\033[1;30;40m"; /* Gray cat face */
colors['%'] = "\033[1;35;45m"; /* Pink cheeks */
output = "██";
} else if (!strcmp(response, "5")) {
colors[','] = "\033[0;34;44m"; /* Blue background */
colors['.'] = "\033[1;37;47m"; /* White stars */
colors['\''] = "\033[0;30;40m"; /* Black border */
colors['@'] = "\033[1;37;47m"; /* Tan poptart */
colors['$'] = "\033[1;35;45m"; /* Pink poptart */
colors['-'] = "\033[1;31;41m"; /* Red poptart */
colors['>'] = "\033[1;31;41m"; /* Red rainbow */
colors['&'] = "\033[0;33;43m"; /* Orange rainbow */
colors['+'] = "\033[1;33;43m"; /* Yellow Rainbow */
colors['#'] = "\033[1;32;42m"; /* Green rainbow */
colors['='] = "\033[1;34;44m"; /* Light blue rainbow */
colors[';'] = "\033[0;34;44m"; /* Dark blue rainbow */
colors['*'] = "\033[1;30;40m"; /* Gray cat face */
colors['%'] = "\033[1;35;45m"; /* Pink cheeks */
output = "\333\333";
} else if (!strcmp(response, "6")) {
colors[','] = " "; /* Blue background */
colors['.'] = "**"; /* White stars */
colors['\''] = "##"; /* Black border */
colors['@'] = "##"; /* Tan poptart */
colors['$'] = "??"; /* Pink poptart */
colors['-'] = "<>"; /* Red poptart */
colors['>'] = "##"; /* Red rainbow */
colors['&'] = "=="; /* Orange rainbow */
colors['+'] = "--"; /* Yellow Rainbow */
colors['#'] = "++"; /* Green rainbow */
colors['='] = "~~"; /* Light blue rainbow */
colors[';'] = "$$"; /* Dark blue rainbow */
colors['*'] = " "; /* Gray cat face */
colors['%'] = "()"; /* Pink cheeks */
always_escape = 1;
} else {
printf("\033[H\033[2J");
printf("I'm sorry, what was that?\n");
@ -934,6 +969,34 @@ try_again:
printf("\033[H\033[2J\033[?25l");
int countdown_clock = 1000;
if (always_escape) {
countdown_clock = 5;
}
int k;
for (k = 0; k < countdown_clock; ++k) {
printf("\n\n\n");
printf(" Nyancat Telnet Server\n");
printf("\n");
printf(" written and run by \033[1;32mKevin Lange\033[1;34m @kevinlange\033[0m\n");
printf("\n");
printf(" If things don't look right, try:\n");
printf(" TERM=fallback telnet ...\n");
printf(" Or on Windows:\n");
printf(" telnet -t vtnt ...\n");
printf("\n");
printf(" Problems? I am also a webserver:\n");
printf(" \033[1;34mhttp://miku.acm.uiuc.edu\033[0m\n");
printf("\n");
printf(" Starting in %d... \n", countdown_clock-k);
usleep(4000);
printf("\033[H");
}
printf("\033[H\033[2J\033[?25l");
int playing = 1;
size_t i = 0;
char last = 0;
@ -941,11 +1004,15 @@ try_again:
while (playing) {
for (y = MIN_ROW; y < MAX_ROW; ++y) {
for (x = MIN_COL; x < MAX_COL; ++x) {
if (frames[i][y][x] != last && colors[frames[i][y][x]]) {
last = frames[i][y][x];
printf("%s%s", colors[frames[i][y][x]], output);
if (always_escape) {
printf("%s", colors[frames[i][y][x]]);
} else {
printf(output);
if (frames[i][y][x] != last && colors[frames[i][y][x]]) {
last = frames[i][y][x];
printf("%s%s", colors[frames[i][y][x]], output);
} else {
printf(output);
}
}
}
if (y != MAX_ROW - 1)

View File

@ -15,6 +15,12 @@ class TNH(TelnetHandler):
p.stdin.write("1\n")
elif (self.TERM.lower().find("linux") != -1):
p.stdin.write("3\n")
elif (self.TERM.lower().find("cygwin") != -1):
p.stdin.write("5\n")
elif (self.TERM.lower().find("vtnt") != -1):
p.stdin.write("5\n")
elif (self.TERM.lower().find("vt220") != -1):
p.stdin.write("6\n")
elif (self.TERM.lower().find("fallback") != -1):
p.stdin.write("4\n")
elif (self.TERM.lower().find("rxvt") == 0):

6
src/reset.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
screen -X -p 0 stuff "= RESETTING ="
screen -X -p 0 stuff $'\012'
killall cgiserver

7
src/run.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/bash
while [ 1 == 1 ]; do
killall nyancat
killall python
./nyancat.py 2>/dev/null
done

7
src/start.sh Normal file
View File

@ -0,0 +1,7 @@
#!/bin/bash
# Run me as root!
screen -d -m
sleep 1
screen -X -p 0 stuff "./run.sh"
screen -X -p 0 stuff $'\012'