OSDN Git Service

自動リンク機能がある程度安定しているようなので、現時点でのブランチorigin/autolinkをmasterにmerge。
[kenranchat/yadchat.git] / kenranchat.cgi
1 #!/usr/bin/perl
2
3 ##### YADChat\94Å\8d\8b\89Ø\88ºà£\83`\83\83\83b\83g #####
4 ### $Id: kenranchat.cgi,v 1.5 2007/07/14 14:00:19 jyugoya Exp $
5 ### YADChat / 2007 © \8c\8b\8fé\97R\97\85\81\97\90¢\8aE\94E\8eÒ\8d\91 / BSD Lisence
6 ### Kent-Web\82Ìcomchat\82Ì\81i\82Ù\82Ú\81j\8cÝ\8a·\95i\81A\82ð\82³\82ç\82É\8f\91\82«\8a·\82¦\82½\82à\82Ì
7
8\83o\81[\83W\83\87\83\93\94Ô\8d\86
9 $ver = 'KENRANCHAT 1.2';
10
11\90Ý\92è\8d\80\96Ú\93Ç\82Ý\8d\9e\82Ý
12 require './config.cgi';
13
14 # CGI\8aÖ\98A\8f\88\97\9d\83\89\83C\83u\83\89\83\8a\93Ç\82Ý\8d\9e\82Ý
15 require './cgilib.pl';
16
17 # KENRANCHAT \83\89\83C\83u\83\89\83\8a
18 require './kenranlib.pl';
19
20 ########################
21 ##### \83\81\83C\83\93\8f\88\97\9d\95\94 #####
22 ########################
23
24 ##### CGI\83p\83b\83P\81[\83W #####
25 use CGI qw/:standard/;
26
27 ##### \83O\83\8d\81[\83o\83\8b\95Ï\90\94 #####
28 # CGI \83I\83u\83W\83F\83N\83g
29 $query = new CGI;
30
31\93ü\97Í\83f\81[\83^\89ð\90Í (\83O\83\8d\81[\83o\83\8b\95Ï\90\94)
32 &checkInput();
33
34\83N\83b\83L\81[\82ð\8eæ\93¾ (\83O\83\8d\81[\83o\83\8b\95Ï\90\94)
35 %CK = &getCookie($CONF{'cookiekey'});
36
37\83_\83C\83XON\82È\82ç\82Î\83_\83C\83X\95\8e\9a\97ñ\92u\82«\8a·\82¦
38 if ( $CONF{'dicemode'} ) {
39     if ($IN{'comment'} =~ /([1-9][0-9]*)[dD]([1-9][0-9]*)/) {
40         local($dstr) = &dice($1, $2);
41         $IN{'comment'} =~ s/[1-9][0-9]*[dD][1-9][0-9]*/$dstr/;
42     }
43 }
44
45 # RP\8b@\94\\82ªON\82È\82ç\82Î\95\8e\9a\97ñ\82Élogclear\82ª\82 \82Á\82½\82çRP\83\8d\83O\8fÁ\8b\8e
46 if ( $CONF{'rplog'} ) {
47     if ($IN{'comment'} =~ /^logclear$/) {
48         &clearRPLog();
49     }
50 }
51
52\8aç\95\8e\9a\82ª\82 \82ê\82Î\81A\93ü\97Í\95\8e\9a\97ñ\82É\95t\8bL
53 if ( $IN{'face'} ne "" ) {
54     $IN{'comment'} = "$IN{'comment'} $IN{'face'}";
55 }
56
57\83N\83\89\83C\83A\83\93\83g\82ÌIP\83A\83h\83\8c\83X\82Ì\8eæ\93¾ (\83O\83\8d\81[\83o\83\8b\95Ï\90\94)
58 $client = $ENV{'REMOTE_ADDR'};
59
60\96³\96¼\82Ì\8fê\8d\87\82Í\83N\83\89\83C\83A\83\93\83gIP\83A\83h\83\8c\83X\82ð\96¼\91O\82Æ\82·\82é
61 if ($IN{'name'} eq "") {
62     $IN{'name'} = $client;
63 }
64
65\8e\9e\8aÔ\82ð\8eæ\93¾
66 $date = &getDate();
67
68\83g\83\8a\83b\83v\95Ï\8a·
69 if ($CONF{'usetrip'} && $IN{'name'} =~ /(.*)(#|\81\94)(.*)/){
70     $trip = &genTrip($1, $3);
71     $tripped = "<b>" . $name . "</b>\81\9f" . $trip;
72 } else {
73     $tripped = $IN{'name'};
74     $tripped =~ s/\81\9f/\81\9e/g;
75 }
76
77\83A\83N\83Z\83X\8b\91\94Û\83`\83F\83b\83N
78 &checkDeny($client);
79
80\83C\83\93\83f\83b\83N\83X\83t\83@\83C\83\8b\82©\82ç\95\94\89®\83^\83C\83g\83\8b\82ð\8eæ\93¾\82µ\82Ä\8fã\8f\91\82«
81 $CONF{'title'} = &getRoomTitle($IN{'room'});
82
83\95\94\89®\83`\83F\83b\83N
84 if ($IN{'room'} ne "") {
85     $datfile = $CONF{'datdir'}.'/'.$IN{'room'}.'.dat';
86     if (! -e $datfile) {
87         $logfile = $CONF{'logdir'}.'/'.$IN{'room'}.'.html';
88         if (-e $logfile) {
89             &printGoToLog();
90         } else {
91             &printError("\8ew\92è\82³\82ê\82½\83`\83\83\83b\83g\83\8b\81[\83\80\82Í\83\8d\83O\82à\91\8dÝ\82µ\82Ä\82¢\82Ü\82¹\82ñ");
92         }
93     }
94 } else {
95     &printError("\95\94\89®\94Ô\8d\86\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ");
96 }
97
98\8cy\97Ê\89»ON\82É\82æ\82é\93®\8dì\95ª\8aò
99 if ($IN{'weight'} eq 'light') {
100     if ($IN{'mode'} eq '' || $IN{'mode'} eq 'view' || $IN{'mode'} eq 'form') {
101         &printEntryFormAndDat();
102     } elsif ($IN{'mode'} eq 'login' || $IN{'mode'} eq 'chat') {
103         &printChatFormAndDat();
104     } elsif ($IN{'mode'} eq 'logout') {
105         &printLogout($tripped);
106     } else {
107         &printError("\82»\82Ì\82æ\82¤\82È\83\82\81[\83h\82Í\91\8dÝ\82µ\82Ü\82¹\82ñ");
108     }
109 }
110
111 # mode \82É\82æ\82é\93®\8dì\95ª\8aò
112 if ($IN{'mode'} eq '') {
113     &printFrame();
114 } elsif ($IN{'mode'} eq 'view') {
115     &viewDat();
116 } elsif ($IN{'mode'} eq 'form') {
117     &printEntryForm();
118 } elsif ($IN{'mode'} eq 'login') {
119     &printChatForm();
120 } elsif ($IN{'mode'} eq 'chat') {
121     if ($IN{'comment'}) {
122         &writeDat($IN{'mode'});
123     }
124     &viewDat();
125 } elsif ($IN{'mode'} eq 'logout') {
126     &printLogout($tripped);
127 } else {
128     &printError("\82»\82Ì\82æ\82¤\82È\83\82\81[\83h\82Í\91\8dÝ\82µ\82Ü\82¹\82ñ");
129 }
130
131 ### Main\8f\88\97\9d\8fI\97¹
132
133 __END__