html/twsocials.pl


   1 use vars qw($VERSION %IRSSI);
   2 use Irssi;
   3 use Irssi::Irc;
   4 use DBI;
   5 
   6 $VERSION = '1.02';
   7 %IRSSI = (
   8    authors      => 'John Engelbrecht',
   9    contact      => 'jengelbr@yahoo.com',
  10    name         => 'twsocials.pl',
  11    description  => 'IRC version of Social Commands',
  12    license      => 'Public Domain',
  13    changed      => 'Sat Nov 20 18:25:12 CST 2004',
  14    url          => 'http://irssi.darktalker.net/',
  15 );
  16 
  17 my $instrut =
  18   ".------------------------------------------------------.\n".
  19   "| 1.) shell> mkdir ~/.irssi/scripts                    |\n".
  20   "| 2.) shell> cp twsocials.pl ~/.irssi/scripts/         |\n".
  21   "| 3.) shell> mkdir ~/.irssi/scripts/autorun            |\n".
  22   "| 4.) shell> ln -s ~/.irssi/scripts/twsocials.pl \\     |\n".
  23   "|            ~/.irssi/scripts/autorun/twsocials.pl     |\n".
  24   "| 5.) /help            (Will list all your socials)    |\n".
  25   "|     /socials         (Shows you a list of arguments) |\n".
  26   "|     /socials list    (Shows a list of socials)       |\n".
  27   "|     /socials <social>(Contents of the Social command)|\n".
  28   "| 6.) /toggle twsocials_instruct and last /save        |\n".
  29   "|------------------------------------------------------|\n".
  30   "|  Options:                                   Default: |\n".
  31   "|  /toggle twsocials_remote                     OFF    |\n".
  32   "|  /toggle twtopic_instruct     |Startup instructions  |\n".
  33   "|------------------------------------------------------|\n".
  34   "|  Note:                                               |\n".
  35   "|  If twsocials_remote is ON, that will enable public  |\n".
  36   "|  and private social commands to work, such as the    |\n".
  37   "|  the following.                                      |\n".
  38   "|                                                      |\n".
  39   "|  < TechWizard> !social                               |\n".
  40   "|  < TechWizard> !social list                          |\n".
  41   "|  < TechWizard> !social blist                         |\n".
  42   "|  < TechWizard> !hug                                  |\n".
  43   "|  < TechWizard> !hug JohnDoe                          |\n".
  44   "|  < TechWizard> !hug JohnDoe 1                        |\n".
  45   "\`------------------------------------------------------'";
  46 
  47 
  48 my $maxsize=62;
  49 my $lastcmd="";
  50 my $home_chan="";
  51 my $path = "~/.irssi/socials";
  52 my @colname = ("Dark Black","Dark Red","Dark Green","Dark Yellow","Dark Blue","Dark Magenta","Dark Cyan","Dark White","Bold Black","Bold Red","Bold Green","Bold Yellow","Bold Blue","Bold Magenta","Bold Cyan","Bold White","Reset","O");
  53 my @mirc_color_name = ("~R0","~R1","~R2","~R3","~R4","~R5","~R6","~R7","~B0","~B1","~B2","~B3","~B4","~B5","~B6","~B7","~RS");
  54 my @mirc_color_arr = ("\0031","\0035","\0033","\0037","\0032","\0036","\00310","\0030","\00314","\0034","\0039","\0038","\00312","\00313","\00311","\00315","\017");
  55 my ($r0,$r1,$r2,$r3,$r4,$r5,$r6,$r7,$b0,$b1,$b2,$b3,$b4,$b5,$b6,$b7,$rs) = @mirc_color_arr;
  56    $path =~ s/^~\//$ENV{'HOME'}\//;
  57 my $bc=$r4;
  58 my $bt=$r2;
  59 my $m1=$r1;
  60 my $m2=$b1;
  61 
  62 ################ Checking Social's home Directory #############
  63 init_socpath();   
  64 ###############################################################
  65 
  66 sub message_public {
  67   my($server, $data, $nick, $address, $target) = @_;
  68   if(!Irssi::settings_get_bool('twsocials_remote')) { return; }
  69   $home_chan=$target;
  70   $data =~ s/\r//;
  71   @data_arr = split " ", $data;
  72   if(@data_arr[0] eq "!social") {
  73      if(!$#data_arr) {
  74         syntax($server,$target);
  75         return; 
  76         }
  77      if(@data_arr[1] eq "color") {
  78         colorlist($server,$target);
  79         return; 
  80         }     
  81      if(@data_arr[1] eq "list") {
  82         soclist($server,$target);
  83         return; 
  84         }     
  85      if(@data_arr[1] eq "blist") {
  86         socblist($server,$target);
  87         return; 
  88         }     
  89      if(@data_arr[1] eq "add") {
  90         if($#data_arr == 1) {
  91            $server->command("msg $target $r3(USAGE) $rs!social$b4 add$rs <social>$r3 :$rs$r2 Adds a new Social.");
  92            return; 
  93            } 
  94         $socname = @data_arr[2];
  95         addsoc($server,$target,$socname);
  96         return; 
  97         }     
  98      if(@data_arr[1] eq "del") {
  99         if($#data_arr == 1) {
 100            $server->command("msg $target $r3(USAGE) $rs!social$b4 dels$rs <social> $r3:$r2 Deletes a Social.");
 101            return; 
 102            }        
 103         $socname = @data_arr[2];
 104         delsoc($server,$target,$socname);
 105         return; 
 106         }     
 107      if(@data_arr[1] eq "set") {
 108         if($#data_arr <= 3) {
 109            set_syntax($server, $target, $socname);
 110            return; 
 111            }
 112         $socname = @data_arr[2];
 113         $set = @data_arr[3];
 114         $cutstr = "@data_arr[0] @data_arr[1] @data_arr[2] @data_arr[3] ";
 115         $data =~ s/$cutstr//;
 116         setsoc($server,$target,$socname,$set,$data);
 117         return; 
 118         }     
 119      $socname = @data_arr[1];
 120      print_social($server, $target, $socname);
 121      return;
 122      }
 123   if(@data_arr[0] eq "!soclist") {
 124      soclist($server,$target);
 125      return; 
 126      }
 127   $chr="!";
 128   $socname = @data_arr[0];
 129   @socname_arr = split //, $socname;
 130   if(@socname_arr[0] ne $chr) { return; }
 131   $socname =~ s/$chr//;
 132   if(!ifexist_social($socname)) { return; }
 133   if($#data_arr == 0) {
 134      $nick2 = "UNSET";
 135      $msgsw=0;
 136      }
 137   if($#data_arr == 1) {
 138      $nick2 = @data_arr[1];
 139      $msgsw=0;
 140      }
 141   if($#data_arr == 2) {
 142      $nick2 = @data_arr[1];
 143      $msgsw=1;
 144      }  
 145   $chan = Irssi::Irc::Server->channel_find($home_chan);
 146   $nick_obj = $chan->nick_find($nick2);
 147   if($nick_obj->{nick} eq "" && $nick2 ne "UNSET") { 
 148      $server->command("msg $target nickname does not exist.");
 149      return;
 150      }
 151   do_social($server,$target,$socname,$nick,$nick2,$msgsw);
 152 }
 153 
 154 sub message_private {
 155   my($server, $data, $nick, $address) = @_;
 156   if(!Irssi::settings_get_bool('twsocials_remote')) { return; }
 157   $target=$nick;
 158   $home_chan=$target;
 159   $data =~ s/\r//;
 160   @data_arr = split " ", $data;
 161   if(@data_arr[0] eq "!social") {
 162      if(!$#data_arr) {
 163         syntax($server,$target);
 164         return; 
 165         }
 166      if(@data_arr[1] eq "color") {
 167         colorlist($server,$target);
 168         return; 
 169         }     
 170      if(@data_arr[1] eq "list") {
 171         soclist($server,$target);
 172         return; 
 173         }     
 174      if(@data_arr[1] eq "blist") {
 175         socblist($server,$target);
 176         return; 
 177         }     
 178      if(@data_arr[1] eq "add") {
 179         if($#data_arr == 1) {
 180            $server->command("msg $target $r3(USAGE) $rs!social$b4 add$rs <social>$r3 :$rs$r2 Adds a new Social.");
 181            return; 
 182            } 
 183         $socname = @data_arr[2];
 184         addsoc($server,$target,$socname);
 185         return; 
 186         }     
 187      if(@data_arr[1] eq "del") {
 188         if($#data_arr == 1) {
 189            $server->command("msg $target $r3(USAGE) $rs!social$b4 dels$rs <social> $r3:$r2 Deletes a Social.");
 190            return; 
 191            }        
 192         $socname = @data_arr[2];
 193         delsoc($server,$target,$socname);
 194         return; 
 195         }     
 196      if(@data_arr[1] eq "set") {
 197         if($#data_arr <= 3) {
 198            set_syntax($server, $target, $socname);
 199            return; 
 200            }
 201         $socname = @data_arr[2];
 202         $set = @data_arr[3];
 203         $cutstr = "@data_arr[0] @data_arr[1] @data_arr[2] @data_arr[3] ";
 204         $data =~ s/$cutstr//;
 205         setsoc($server,$target,$socname,$set,$data);
 206         return; 
 207         }     
 208      $socname = @data_arr[1];
 209      print_social($server, $target, $socname);
 210      return;
 211      }
 212   if(@data_arr[0] eq "!soclist") {
 213      soclist($server,$target);
 214      return; 
 215      }
 216   $chr="!";
 217   $socname = @data_arr[0];
 218   @socname_arr = split //, $socname;
 219   if(@socname_arr[0] ne $chr) { return; }
 220   $socname =~ s/$chr//;
 221   if(!ifexist_social($socname)) { return; }
 222   if($#data_arr == 0) {
 223      $nick2 = "UNSET";
 224      $msgsw=0;
 225      }
 226   if($#data_arr == 1) {
 227      $nick2 = @data_arr[1];
 228      $msgsw=0;
 229      }
 230   if($#data_arr == 2) {
 231      $nick2 = @data_arr[1];
 232      $msgsw=1;
 233      }  
 234   $nick1 = $nick;
 235   do_social($server,$target,$socname,$nick1,$nick2,$msgsw);
 236 }
 237 
 238 sub on_public {
 239   my($server, $data, $nick, $address, $target) = @_;
 240   if(!Irssi::settings_get_bool('twsocials_remote')) { return; }
 241   if($data !~ /^!/) { return; } 
 242   $home_chan=$nick;
 243   $target=Irssi::active_win()->{active}->{name};
 244   $home_chan=$target;
 245   $data =~ s/\r//;
 246   @data_arr = split " ", $data;
 247   if(@data_arr[0] eq "!social") {
 248      if(!$#data_arr) {
 249         syntax($server,$target);
 250         return; 
 251         }
 252      if(@data_arr[1] eq "color") {
 253         colorlist($server,$target);
 254         return; 
 255         }     
 256      if(@data_arr[1] eq "list") {
 257         soclist($server,$target);
 258         return; 
 259         }     
 260      if(@data_arr[1] eq "blist") {
 261         socblist($server,$target);
 262         return; 
 263         }     
 264      if(@data_arr[1] eq "add") {
 265         if($#data_arr == 1) {
 266            $server->command("msg $target $r3(USAGE) $rs!social$b4 add$rs <social>$r3 :$rs$r2 Adds a new Social.");
 267            return; 
 268            }
 269         $socname = @data_arr[2];
 270         addsoc($server,$target,$socname);
 271         return; 
 272         }     
 273      if(@data_arr[1] eq "del") {
 274         if($#data_arr == 1) {
 275            $server->command("msg $target $r3(USAGE) $rs!social$b4 dels$rs <social> $r3:$r2 Deletes a Social.");
 276            return; 
 277            }
 278         $socname = @data_arr[2];
 279         delsoc($server,$target,$socname);
 280         return; 
 281         }     
 282      if(@data_arr[1] eq "set") {
 283         if($#data_arr <= 3) {
 284            set_syntax($server, $target, $socname);
 285            return;
 286            }
 287         $socname = @data_arr[2];
 288         $set = @data_arr[3];
 289         $cutstr = "@data_arr[0] @data_arr[1] @data_arr[2] @data_arr[3] ";
 290         $data =~ s/$cutstr//;
 291         setsoc($server,$target,$socname,$set,$data);
 292         return; 
 293         }     
 294      $socname = @data_arr[1];
 295      print_social($server, $target, $socname);
 296      return;
 297      }
 298   if(@data_arr[0] eq "!soclist") {
 299      soclist($server,$target);
 300      return; 
 301      }
 302   $chr="!";  
 303   $socname = @data_arr[0];
 304   @socname_arr = split //, $socname;
 305   if(@socname_arr[0] ne $chr) { return; }
 306   $socname =~ s/$chr//;
 307   if(!ifexist_social($socname)) {
 308      return;
 309      }
 310   if($#data_arr == 0) {
 311      $nick2 = "UNSET";
 312      $msgsw=0;
 313      }
 314   if($#data_arr == 1) {
 315      $nick2 = @data_arr[1];
 316      $msgsw=0;
 317      }
 318   if($#data_arr == 2) {
 319      $nick2 = @data_arr[1];
 320      $msgsw=1;
 321      }  
 322   $nick1 = $server->{nick};
 323   $chan = Irssi::Irc::Server->channel_find($home_chan);
 324   $nick_obj = $chan->nick_find($nick2);
 325   if($nick_obj->{nick} eq "" && $nick2 ne "UNSET") { 
 326      $server->command("msg $target nickname does not exist.");
 327      return;
 328      }
 329   do_social($server,$target,$socname,$nick1,$nick2,$msgsw);
 330 }
 331 
 332 sub on_private {
 333   my($server, $data, $nick, $address, $target) = @_;
 334   if(!Irssi::settings_get_bool('twsocials_remote')) { return; }
 335   if($data !~ /^!/) { return; } 
 336   $home_chan=$nick;
 337   $target=$nick;
 338   $data =~ s/\r//;
 339   @data_arr = split " ", $data;
 340   if(@data_arr[0] eq "!social") {
 341      if(!$#data_arr) {
 342         syntax($server,$target);
 343         return; 
 344         }
 345      if(@data_arr[1] eq "color") {
 346         colorlist($server,$target);
 347         return; 
 348         }     
 349      if(@data_arr[1] eq "list") {
 350         soclist($server,$target);
 351         return; 
 352         }     
 353      if(@data_arr[1] eq "blist") {
 354         socblist($server,$target);
 355         return; 
 356         }     
 357      if(@data_arr[1] eq "add") {
 358         if($#data_arr == 1) {
 359            $server->command("msg $target $r3(USAGE) $rs!social$b4 add$rs <social>$r3 :$rs$r2 Adds a new Social.");
 360            return; 
 361            }
 362         $socname = @data_arr[2];
 363         addsoc($server,$target,$socname);
 364         return; 
 365         }     
 366      if(@data_arr[1] eq "del") {
 367         if($#data_arr == 1) {
 368            $server->command("msg $target $r3(USAGE) $rs!social$b4 dels$rs <social> $r3:$r2 Deletes a Social.");
 369            return; 
 370            }
 371         $socname = @data_arr[2];
 372         delsoc($server,$target,$socname);
 373         return; 
 374         }     
 375      if(@data_arr[1] eq "set") {
 376         if($#data_arr <= 3) {
 377            set_syntax($server, $target, $socname);
 378            return;
 379            }
 380         $socname = @data_arr[2];
 381         $set = @data_arr[3];
 382         $cutstr = "@data_arr[0] @data_arr[1] @data_arr[2] @data_arr[3] ";
 383         $data =~ s/$cutstr//;
 384         setsoc($server,$target,$socname,$set,$data);
 385         return; 
 386         }     
 387      $socname = @data_arr[1];
 388      print_social($server, $target, $socname);
 389      return;
 390      }
 391   if(@data_arr[0] eq "!soclist") {
 392      soclist($server,$target);
 393      return; 
 394      }
 395   $chr="!";  
 396   $socname = @data_arr[0];
 397   @socname_arr = split //, $socname;
 398   if(@socname_arr[0] ne $chr) { return; }
 399   $socname =~ s/$chr//;
 400   if(!ifexist_social($socname)) {
 401      return;
 402      }
 403   if($#data_arr == 0) {
 404      $nick2 = "UNSET";
 405      $msgsw=0;
 406      }
 407   if($#data_arr == 1) {
 408      $nick2 = @data_arr[1];
 409      $msgsw=0;
 410      }
 411   if($#data_arr == 2) {
 412      $nick2 = @data_arr[1];
 413      $msgsw=1;
 414      }  
 415   $nick1 = $server->{nick};
 416   $target = $nick;
 417   do_social($server,$target,$socname,$nick1,$nick2,$msgsw);
 418 }
 419 
 420 sub addsoc {
 421    my ($server,$target,$socname) = @_;
 422    if(ifexist_social($socname)) {
 423       $server->command("msg $target $r3social: $rs$socname already exist.");
 424       return;
 425       }
 426    #write_social($socname,$fpriv,$fself,$fnobody,$fpublic,$fyou,$fthem) 
 427    write_social($socname,"0","UNSET","UNSET","UNSET","UNSET","UNSET");
 428    irssicmd_socials();
 429    $server->command("msg $target $r2 done.");   
 430    return;
 431 }
 432 
 433 sub irssi_addsoc {
 434    my ($data, $server, $witem) = @_;
 435    @data_arr = split / /, $data;
 436    if(@data_arr[0] eq "") { 
 437       irssi_syntax();
 438       return;
 439       }
 440    $socname = @data_arr[0];
 441    if(ifexist_social($socname)) {
 442       print "$rs$socname already exist.";
 443       return;
 444       }
 445    write_social($socname,"0","UNSET","UNSET","UNSET","UNSET","UNSET");
 446    irssicmd_socials();
 447    print "$r2 done.";
 448    return;
 449 }
 450 
 451 sub delsoc {
 452    my ($server,$target,$socname) = @_;
 453    if(!ifexist_social($socname)) {
 454       $server->command("msg $target $r3 DELETE $socname: $rs$socname social does not exist.");
 455       return;
 456       }
 457    $filename ="$path/$socname.txt";
 458    unlink($filename);
 459    irssicmd_socials();
 460    $server->command("msg $target $r2 done.");   
 461    return;
 462 }
 463 
 464 sub irssi_delsoc {
 465    my ($data, $server, $witem) = @_;
 466    @data_arr = split / /, $data;
 467    if(@data_arr[0] eq "") { 
 468       irssi_syntax();
 469       return;
 470       }
 471    $socname = @data_arr[0];
 472    if(!ifexist_social($socname)) {
 473       print "$r3 DELETE $socname: $rs$socname social does not exist.";
 474       return;
 475       }
 476    $filename ="$path/$socname.txt";
 477    unlink($filename);
 478    irssicmd_socials();
 479    print "$r2 done.";
 480    return;
 481 }
 482 
 483 sub setsoc {
 484    my ($server,$target,$socname,$set,$data) = @_;
 485    my @sets = ("priv","nobody","public","self","them","you");
 486    if(!ifexist_social($socname)) {
 487       $server->command("msg $target $r3 SET $social: $rs$socname does not exist.");
 488       return;
 489       }
 490    $set = "\L$set";
 491    $found=0;
 492    foreach(@sets) { if($set eq $_) { $found=1; } }
 493    if(!$found) {
 494       $server->command("msg $target $r3 social:$rs invalid field name.");
 495       return;
 496       }  
 497    $filename = "$path/$socname.txt";
 498    $cx=0;
 499    open(FILE,"<$filename") or do {
 500       print "File ".$filename." Not found.";
 501       return;
 502       };
 503    while (<FILE>) {
 504       chomp;
 505       $fpriv = $_ if($cx == 0);
 506       $fnobody = $_ if($cx == 1);
 507       $fpublic = $_ if($cx == 2);
 508       $fself = $_ if($cx == 3);
 509       $fthem = $_ if($cx == 4);
 510       $fyou = $_ if($cx == 5);
 511       $cx++;
 512       }
 513    close FILE;
 514    $fpriv   = $data if($set eq "priv");
 515    $fnobody = $data if($set eq "nobody");
 516    $fpublic = $data if($set eq "public");
 517    $fself   = $data if($set eq "self");
 518    $fthem   = $data if($set eq "them");
 519    $fyou    = $data if($set eq "you");
 520    write_social($socname,$fpriv,$fself,$fnobody,$fpublic,$fyou,$fthem);
 521    $server->command("msg $target $r2 done.");   
 522    irssicmd_socials();
 523    return;   
 524 }
 525 
 526 sub irssi_setsoc {
 527    my ($data, $server, $witem) = @_;
 528    @data_arr = split / /, $data;
 529    if($#data_arr <=1) { 
 530       irssi_set_syntax();
 531       return;
 532       }
 533    $cutstr = "/";
 534    $socname = @data_arr[0];
 535    $set = @data_arr[1];
 536    $cutstr = "$socname $set ";
 537    $data =~ s/$cutstr//g;
 538    my @sets = ("priv","nobody","public","self","them","you");
 539    if(!ifexist_social($socname)) {
 540       print "$r3 SET $social: $rs$socname does not exist.";
 541       return;
 542       }
 543    $set = "\L$set";
 544    $found=0;
 545    foreach(@sets) { if($set eq $_) { $found=1; } }
 546    if(!$found) {
 547       print "$r3 social:$rs invalid field name.";
 548       return;
 549       }  
 550    $filename = "$path/$socname.txt";
 551    $cx=0;
 552    open(FILE,"<$filename") or do {
 553       print "File ".$filename." Not found.";
 554       return;
 555       };
 556    while (<FILE>) {
 557       chomp;
 558       $fpriv = $_ if($cx == 0);
 559       $fnobody = $_ if($cx == 1);
 560       $fpublic = $_ if($cx == 2);
 561       $fself = $_ if($cx == 3);
 562       $fthem = $_ if($cx == 4);
 563       $fyou = $_ if($cx == 5);
 564       $cx++;
 565       }
 566    close FILE;
 567    $fpriv   = $data if($set eq "priv");
 568    $fnobody = $data if($set eq "nobody");
 569    $fpublic = $data if($set eq "public");
 570    $fself   = $data if($set eq "self");
 571    $fthem   = $data if($set eq "them");
 572    $fyou    = $data if($set eq "you");
 573    write_social($socname,$fpriv,$fself,$fnobody,$fpublic,$fyou,$fthem);
 574    print "$r2 done.";
 575    irssicmd_socials();
 576    return;   
 577 }
 578 
 579 sub syntax {
 580    my ($server,$target) = @_;
 581    $server->command("msg $target $r3(USAGE) $rs!social             $r3 :$r2 Prints this screen.");
 582    $server->command("msg $target         !social <social>   $r3  :$r2 Displays the social msgs");
 583    $server->command("msg $target         !social$b4 add $rs<social>$r3 :$r2 Adds a new Social.");
 584    $server->command("msg $target         !social$b4 del $rs<social>$r3 :$r2 Dels a Social.");
 585    $server->command("msg $target         !social$b4 set $rs<social>$r3 :$r2 Sets The social msg per line.");
 586    $server->command("msg $target         !social$b4 list    $r3     :$r2 A list of socials.");
 587    $server->command("msg $target         !social$b4 blist   $r3     :$r2 A list of socials in a box.");
 588    $server->command("msg $target         !social$b4 color   $r3     :$r2 A list of color codes.");
 589    $server->command("msg $target         !soclist           $r3  :$r2 Prints a list of socials.");
 590    $server->command("msg $target         !<social>          $r3  :$r2 does the Social.");
 591 }
 592 
 593 sub irssi_syntax {
 594    my ($server,$target) = @_;
 595    print "$r3(USAGE) $rs!social             $r3 :$r2 Prints this screen.";
 596    print "        !social <social>   $r3  :$r2 Displays the social msgs";
 597    print "        !social$b4 add $rs<social>$r3 :$r2 Adds a new Social.";
 598    print "        !social$b4 del $rs<social>$r3 :$r2 Dels a Social.";
 599    print "        !social$b4 set $rs<social>$r3 :$r2 Sets The social msg per line.";
 600    print "        !social$b4 list    $r3     :$r2 A list of socials.";
 601    print "        !social$b4 blist   $r3     :$r2 A list of socials in a box.";
 602    print "        !social$b4 color   $r3     :$r2 A list of color codes.";
 603    print "        !soclist           $r3  :$r2 Prints a list of socials.";
 604    print "        !<social>          $r3  :$r2 does the Social.";
 605 }
 606 
 607 sub colorlist {
 608    my ($server,$target) = @_;
 609    my $title = "$bc($bt Color List $bc)";
 610    my $spc = ' 'x50;
 611    my $text = "";
 612    my $tmp = "";
 613    $cx=0;
 614    $bar = "------------------------------------------------------------------";
 615    $bar = ".".substr($bar,0,int(($maxsize-13)/2)).$title.substr($bar,0,int(($maxsize-13)/2)).".";
 616    $server->command("msg $target $bc$bar$rs");
 617 
 618    foreach (@colname)  {
 619    $col = substr("@mirc_color_name[$cx] = @colname[$cx]$spc",0,20);
 620       $tmp = $text.$col;
 621       if(strsize($tmp) >= $maxsize) {
 622          $text.=' 'x50;
 623          $blah =~ s/\003//;
 624          $blah = @mirc_color_arr[$cx];
 625          $text = substr(" $text",0,$maxsize);
 626          $text = "$bc|$rs$text$bc|$rs";
 627          $server->command("msg $target $text");
 628          $text="";
 629          }
 630       $text=$text.$col;
 631       $cx++;
 632       }
 633    $bar = "-------------------------------------------------------------------------------------------";
 634    $bar = "`".substr($bar,0,$maxsize)."\'";
 635    $server->command("msg $target $bc$bar$rs");
 636    return;
 637 }
 638 
 639 sub irssi_colorlist {
 640    my ($server,$target) = @_;
 641    $spc = ' 'x50;
 642    my $title = "$bc($bt Color List $bc)";
 643    $bar = "------------------------------------------------------------------";
 644    $bar = ".".substr($bar,0,int(($maxsize-13)/2)).$title.substr($bar,0,int(($maxsize-13)/2)).".";
 645    print "$bc$bar$rs";
 646    foreach (@colname)  {
 647    $col = substr("@mirc_color_name[$cx] = @colname[$cx]$spc",0,20);
 648       $tmp = $text.$col;
 649       if(strsize($tmp) >= $maxsize) {
 650          $text.=' 'x50;
 651          $blah =~ s/\003//;
 652          $blah = @mirc_color_arr[$cx];
 653          $text = substr(" $text",0,$maxsize);
 654          $text = "$bc|$rs$text$bc|$rs";
 655          print $text;
 656          $text="";
 657          }
 658       $text=$text.$col;
 659       $cx++;
 660       }
 661    $bar = "-------------------------------------------------------------------------------------------";
 662    $bar = "`".substr($bar,0,$maxsize)."\'";
 663    print "$bc$bar$rs";
 664    return;
 665 }
 666 
 667 sub set_syntax {
 668    my ($server,$target) = @_;
 669    $server->command("msg $target $r3(USAGE) $rs!social$b4 set$rs <social>$b4 nobody $rs<msg>: Sets the message when no nickname is set.");
 670    $server->command("msg $target        !social$b4 set $rs<social>$b4 public $rs<msg> : Sets the message for the channel");
 671    $server->command("msg $target        !social$b4 set $rs<social>$b4 self   $rs<msg> : Sets the message when you social yourself.");
 672    $server->command("msg $target        !social$b4 set $rs<social>$b4 you    $rs<msg> : Sets message that will be messaged to you.");
 673    $server->command("msg $target        !social$b4 set $rs<social>$b4 them   $rs<msg> : Sets The social message that will be sent to them.");
 674    return;
 675 }
 676 
 677 sub irssi_set_syntax {
 678    my ($server,$target) = @_;
 679    print "$r3(USAGE)";
 680    print "!social$b4 set$rs <social>$b4 nobody $rs<msg>: Sets the message when no nickname is set.";
 681    print "!social$b4 set $rs<social>$b4 public $rs<msg>: Sets the message for the channel";
 682    print "!social$b4 set $rs<social>$b4 self   $rs<msg>: Sets the message when you social yourself.";
 683    print "!social$b4 set $rs<social>$b4 you    $rs<msg>: Sets message that will be messaged to you.";
 684    print "!social$b4 set $rs<social>$b4 them   $rs<msg>: Sets The social message that will be sent to them.";
 685    return;
 686 }
 687 
 688 sub soclist{
 689    my ($server,$target) = @_;
 690    my $text="";
 691    my $cutstr=".txt";
 692    my @array;
 693    opendir(DIR,$path) or return 0;
 694    while (defined(my $file = readdir(DIR))) {
 695       if($file =~ m".txt") { 
 696          $tmp=$file;
 697          $tmp =~ s/$cutstr//;
 698          push(@array,$tmp); 
 699          }
 700       }
 701    closedir(DIR);
 702    @array = sort(@array);
 703    foreach(@array) { $text.=" $_"; }
 704    $server->command("msg $target $text");
 705    return;
 706 }
 707 
 708 sub socblist {
 709    my ($server,$target) = @_;
 710    my @array;
 711    my $text="";
 712    opendir(DIR,$path) or return 0;
 713    my $title = "$bc($bt Social List $bc)";
 714    $bar = "------------------------------------------------------------------";
 715    $bar = ".".substr($bar,0,int(($maxsize-15)/2)).$title.substr($bar,0,int(($maxsize-15)/2)+1).".";
 716    $server->command("msg $target $bc$bar$rs");
 717    $spc = "                                ";
 718    $cutstr=".txt";
 719    opendir(DIR,$path) or return 0;
 720    while (defined(my $file = readdir(DIR))) {
 721       if($file =~ m".txt") { 
 722          $tmp=$file;
 723          $tmp =~ s/$cutstr//;
 724          push(@array,$tmp); 
 725          }
 726       }
 727    closedir(DIR);
 728    @array = sort(@array);
 729    foreach(@array) {
 730      $socname=$_;
 731      $socname =~ s/$cutstr//;
 732      if(!get_social_str($socname,"priv")) { 
 733         $name = substr(" $socname$spc",0,10); 
 734         }
 735      else { 
 736         $name = substr("*$socname$spc",0,10); 
 737         }
 738      my $tmp = $text.$name;
 739      if(strsize($tmp) >= $maxsize) {
 740          $text.="                                                                           ";
 741          $text = substr(" $text",0,($maxsize));
 742          $text = "$bc|$rs$text$bc|$rs";
 743          $server->command("msg $target $text");
 744          $text="";
 745          }
 746       $text=$text.$name;
 747       }
 748    $text.="                                                                           ";
 749    $text = substr(" $text",0,($maxsize));
 750    $text = "$bc|$rs$text$bc|$rs";
 751    $server->command("msg $target $text");
 752    $bar = "-------------------------------------------------------------------------------------------";
 753    $bar = "`".substr($bar,0,$maxsize)."\'";
 754    $server->command("msg $target $bc$bar$rs");
 755    return;
 756 }
 757 
 758 sub irssi_socblist {
 759    my ($data, $server, $witem) = @_;
 760    my @array;
 761    my $text="";
 762    opendir(DIR,$path) or return 0;
 763    my $title = "$bc($bt Social List $bc)";
 764    $bar = "------------------------------------------------------------------";
 765    $bar = ".".substr($bar,0,int(($maxsize-15)/2)).$title.substr($bar,0,int(($maxsize-15)/2)+1).".";
 766    print "$bc$bar$rs";
 767    $spc = "                                ";
 768    $cutstr=".txt";
 769    opendir(DIR,$path) or return 0;
 770    while (defined(my $file = readdir(DIR))) {
 771       if($file =~ m".txt") { 
 772          $tmp=$file;
 773          $tmp =~ s/$cutstr//;
 774          push(@array,$tmp); 
 775          }
 776       }
 777    closedir(DIR);
 778    @array = sort(@array);
 779    foreach(@array) {
 780      $socname=$_;
 781      $socname =~ s/$cutstr//;
 782      if(!get_social_str($socname,"priv")) { 
 783         $name = substr(" $socname$spc",0,10); 
 784         }
 785      else { 
 786         $name = substr("*$socname$spc",0,10); 
 787         }
 788      my $tmp = $text.$name;
 789      if(strsize($tmp) >= $maxsize) {
 790          $text.="                                                                           ";
 791          $text = substr(" $text",0,($maxsize));
 792          $text = "$bc|$rs$text$bc|$rs";
 793          print "$text";
 794          $text="";
 795          }
 796       $text=$text.$name;
 797       }
 798    $text.="                                                                           ";
 799    $text = substr(" $text",0,($maxsize));
 800    $text = "$bc|$rs$text$bc|$rs";
 801    print "$text";
 802    $bar = "-------------------------------------------------------------------------------------------";
 803    $bar = "`".substr($bar,0,$maxsize)."\'";
 804    print "$bc$bar$rs";
 805    return;
 806 }
 807 
 808 sub do_social {
 809    my ($server,$target,$socname,$name1,$name2,$msgsw) = @_;
 810    if($name1 eq $name2) {
 811       $text = get_social_str($socname,"self");
 812       $text= social_parse($name1,$name2,$text);
 813       $server->command("msg $target $text");
 814       return;
 815       }
 816    if($name2 eq "UNSET") {
 817       $text = get_social_str($socname,"nobody");
 818       $text= social_parse($name1,$name2,$text);
 819       $server->command("msg $target $text");
 820       return;
 821       }
 822    if(get_social_str("priv")) {
 823       $text = get_social_str($socname,"public");
 824       $text= social_parse($name1,$name2,$text);
 825       $server->command("msg $target $text");
 826       if($msgsw) {
 827          $text = get_social_str($socname,"you");
 828          $text= social_parse($name1,$name2,$text);
 829          $server->command("msg $name1 $text");
 830          $text = get_social_str($socname,"them");
 831          $text= social_parse($name1,$name2,$text);
 832          $server->command("msg $name2 $text");
 833          }
 834       }
 835    else {
 836       $text = get_social_str($socname,"you");
 837       $text= social_parse($name1,$name2,$text);
 838       $server->command("msg $name1 $text");
 839       $text = get_social_str($socname,"them");
 840       $text= social_parse($name1,$name2,$text);
 841       $server->command("msg $name2 $text");
 842       }
 843    return;
 844 }
 845 
 846 sub print_social {
 847    my ($server,$target,$socname) = @_;
 848    my $text="";
 849    $filename = "$path/$socname.txt";
 850    $cx=0;
 851    open(FILE,"<$filename") or do {
 852       $server->command("msg $target $socname does not exist.");   
 853       return;
 854       };
 855    while (<FILE>) {
 856       chomp;
 857       $fpriv = $_ if($cx == 0);
 858       $fnobody = $_ if($cx == 1);
 859       $fpublic = $_ if($cx == 2);
 860       $fself = $_ if($cx == 3);
 861       $fthem = $_ if($cx == 4);
 862       $fyou = $_ if($cx == 5);
 863       $cx++;
 864       }
 865    close FILE;
 866    $server->command("msg $target $r3    Name:$r2 $socname");
 867    $server->command("msg $target $r3 Private:$r2 $fpriv");
 868    $server->command("msg $target $r3  Nobody:$r2 ".colsocial($fnobody));
 869    $server->command("msg $target $r3  Public:$r2 ".colsocial($fpublic));
 870    $server->command("msg $target $r3    Self:$r2 ".colsocial($fself));
 871    $server->command("msg $target $r3    Them:$r2 ".colsocial($fthem));
 872    $server->command("msg $target $r3     You:$r2 ".colsocial($fyou));
 873    return;
 874 }
 875 
 876 sub irssi_print_social {
 877    my ($data, $server, $witem) = @_;
 878    @data_arr = split / /, $data;
 879    $cutstr = "/";
 880    if (@data_arr[0] =~ m/^[(set)|(blist)|(add)|(list)|(del)|(color)]/i && !ifexist_social(@data_arr[0])) {
 881     Irssi::command_runsub ('social', $data, $server, $item);
 882     return;
 883     }
 884    $socname = @data_arr[0];
 885    my $text="";
 886    $filename = "$path/$socname.txt";
 887    $cx=0;
 888    open(FILE,"<$filename") or do {
 889       print "$socname does not exist."; 
 890       return;
 891       };
 892    while (<FILE>) {
 893       chomp;
 894       $fpriv = $_ if($cx == 0);
 895       $fnobody = $_ if($cx == 1);
 896       $fpublic = $_ if($cx == 2);
 897       $fself = $_ if($cx == 3);
 898       $fthem = $_ if($cx == 4);
 899       $fyou = $_ if($cx == 5);
 900       $cx++;
 901       }
 902    close FILE;
 903    print"$r3    Name:$r2 $socname";
 904    print"$r3 Private:$r2 $fpriv";
 905    print"$r3  Nobody:$r2 ".colsocial($fnobody);
 906    print"$r3  Public:$r2 ".colsocial($fpublic);
 907    print"$r3    Self:$r2 ".colsocial($fself);
 908    print"$r3    Them:$r2 ".colsocial($fthem);
 909    print"$r3     You:$r2 ".colsocial($fyou);
 910    return;
 911 }
 912 
 913 sub colsocial {
 914     my ($str) = @_;
 915     my $name1 = "$r2 name1$rs";
 916     my $name2 = "$r2 name2$rs";
 917     return $str;
 918 }
 919 
 920 sub color_parse {
 921     my ($str) = @_;
 922     my $cx=0;
 923     foreach(@mirc_color_name) { 
 924        $old = @mirc_color_name[$cx];
 925        $new = @mirc_color_arr[$cx];
 926        $str =~ s/$old/$new/g;
 927        $cx++;
 928        }
 929     return $str;
 930 }
 931 
 932 sub social_parse {
 933    my ($name1,$name2,$str) = @_;
 934    $name1 = "$r2$name1$rs";
 935    $name2 = "$r2$name2$rs";
 936    $str =~ s/name1/$name1/g;
 937    $str =~ s/name2/$name2/g;
 938    return $str;
 939 }
 940 
 941 sub get_social_str {
 942    my ($social,$colum) = @_;
 943    $filename = "$path/$social.txt";
 944    $cx=0;
 945    open(FILE,"<$filename");
 946    while (<FILE>) {
 947       chomp;
 948       $fpriv = color_parse($_) if($cx == 0);
 949       $fnobody = color_parse($_) if($cx == 1);
 950       $fpublic = color_parse($_) if($cx == 2);
 951       $fself = color_parse($_) if($cx == 3);
 952       $fthem = color_parse($_) if($cx == 4);
 953       $fyou = color_parse($_) if($cx == 5);
 954       $cx++;
 955       }
 956    close FILE;
 957    return $fpriv if($colum eq "priv");
 958    return $fself if($colum eq "self");
 959    return $fnobody if($colum eq "nobody");
 960    return $fpublic if($colum eq "public");
 961    return $fyou if($colum eq "you");
 962    return $fthem if($colum eq "them");
 963    return "UNSET";
 964 }
 965 
 966 sub ifexist_social {
 967    my ($social) = @_;
 968    my $cutstr= ".txt";
 969    $filename = "$path/$socname.txt";
 970    opendir(DIR,$path) or return 0;
 971    while (defined(my $file = readdir(DIR))) {
 972       if($file =~ m".txt") { 
 973          $tmp=$file;
 974          $tmp =~ s/$cutstr//;
 975          return 1 if($social eq $tmp);
 976          }
 977       }
 978    return 0;
 979 }
 980 
 981 sub strsize {
 982    my ($word) = @_;
 983    @word_arr = split //, $word;
 984    return $#word_arr+1;
 985 }
 986 
 987 sub write_social {
 988    my ($socname,$fpriv,$fself,$fnobody,$fpublic,$fyou,$fthem) = @_;
 989    $filename = "$path/$socname.txt";
 990    open(FILE,">$filename");
 991    print FILE "$fpriv\n";
 992    print FILE "$fnobody\n";
 993    print FILE "$fpublic\n";
 994    print FILE "$fself\n";
 995    print FILE "$fthem\n";
 996    print FILE "$fyou\n";
 997    close FILE;
 998    return;
 999 }
1000 
1001 sub irssicmd_reset {
1002    for my $cmd (Irssi::commands()) {
1003       if($cmd->{category} eq "Social Commands") {
1004          $tmp=$cmd->{cmd};
1005          Irssi::command_unbind($tmp,on_cmd);
1006          }
1007       }
1008 }
1009 
1010 sub irssicmd_socials {
1011    my ($social) = @_;
1012    irssicmd_reset();
1013    my $cutstr= ".txt";
1014    $filename = "$path/$socname.txt";
1015    opendir(DIR,$path) or return 0;
1016    while (defined(my $file = readdir(DIR))) {
1017       if($file =~ m".txt") { 
1018          $tmp=$file;
1019          $tmp =~ s/$cutstr//;
1020          Irssi::command_bind($tmp,on_cmd,'Social Commands');
1021          }
1022       }
1023 }
1024 
1025 sub on_cmd {
1026    my ($data, $server, $witem) = @_;
1027    @data_arr = split / /, $lastcmd;
1028    $cutstr = "/";
1029    $socname = @data_arr[0];
1030    $socname =~ s/$cutstr//;
1031    $target=Irssi::active_win()->{active}->{name};
1032    $home_chan=$target;
1033    $nick = "TechWizard";
1034    if($#data_arr == 0) {
1035       $nick2 = "UNSET";
1036       $msgsw=0;
1037       }
1038    if($#data_arr == 1) {
1039       $nick2 = @data_arr[1];
1040       $msgsw=0;
1041       }
1042    if($#data_arr == 2) {
1043       $nick2 = @data_arr[1];
1044       $msgsw=1;
1045       }  
1046    if($home_chan =~ /^#/) {
1047       $chan = Irssi::Irc::Server->channel_find($home_chan);
1048       $nick_obj = $chan->nick_find($nick2);
1049       if($nick_obj->{nick} eq "" && $nick2 ne "UNSET") { 
1050          $server->command("msg $target nickname does not exist.");
1051          return;
1052          }
1053       }
1054    do_social($server,$target,$socname,$nick,$nick2,$msgsw);
1055 }
1056 
1057 sub cmd_sig {
1058    my($args) = @_;
1059    irssicmd_socials();
1060    $lastcmd=$args;
1061 }
1062 
1063 sub check_dir {
1064     $sw=1;
1065     opendir(DIR,$path) or $sw=0;
1066     closedir(DIR);
1067     return $sw;
1068 }
1069 
1070 sub init_socpath {
1071    if(check_dir()) { return; }
1072    @socnam_arr = ("beer","bslap","chains","cut","drp","fart","french","halo",
1073                   "hug","hump","kiss","smacks","smooch","spank","stab","staple",
1074                   "strip","trout","whips","yawn"
1075    );
1076    @socline_arr = (
1077                "0\nWho wants Beer!?!?!?\nname1 throws name2 a fresh cold beer out of the fridge.\nname1 opens up a nice cold beer, and drinks it.\nname1 tosses you a nice cold beer, better catch it!!\nyou just tossed name2 a nice cold beer.\n",
1078                "0\nLook OUT!!!! name1 is ready to Bitch slap someone!!!!\nname1 Bitch slaps name2 Violently, OUWWW that gotta hurt!\nname1 Bitch Slaps themself hard, Are they Crazy or what???\nyou gotten Bitch Slapped by name1, can you call 911?.\nyou violently bitch slap name2.\n",
1079                "0\nname1 looks around swinging the chains around, who shall be my victim?\nname1 chains name2 up, Ohh... Boy, name2 is gonna get it...\nname1 chain themself up, and swallowed the keys.\nname1 chained you up, aren't you wondering what they will do next?\nyou just chained up name2, whats next? torchure?\n",
1080                "0\nname1 wants to cut something......\nname1 cut name2 arms and legs off with blood on your face\nname1 cut something on them off\nyou cut everything off of their body\nyou cut name2 arms and legs off and blood flies everywhere\n",
1081                "0\nname1 goes out and buys a box of ~R1Dr.Pepper~RS.\nname1 tosses a ~R1Dr.Pepper~RS can to name2, If you waste it, You're Dead.\nname1 grabs a ~R1Dr.Pepper~RS, pops it open and gulps it down... aaahhhh.....\nname1 tosses you a can of ~R1Dr.Pepper~RS.\nyou gave name2 a can of ~R1Dr.Pepper~RS.\n",
1082                "0\nname1 farts, Roam roam!!!! Can ya hear it?\nname1 farts towards name2!! QUICK Wear a Gas Mask!!!!\nname1 farts up a storm and kills themself.\nname1 farts towards you, EWWWWW!!! can ya smell it????\nyou farted towards name2! you B*stard!\n",
1083                "0\nname1 need to be french\nname1 french name2 until name2 cant breathe\nname1 want to be french\nname1 french them until name1 cant breathe\nyou french name2 with all you got\n",
1084                "0\nname1 looks around seeing whoes innocent.\nname1 does their best best to look innocent.\nname1 looks and the mirror and finds a gold circle.\nblah\n",
1085                "0\nname1 needs a hug.\nname1 hugs name2 tightly.\nname1 hugs themself tightly.\nname1 hugs you tightly.\nyou hugs name2 tightly.\n",
1086                "0\nname1 wants to be hump........\nname1 hump name2 until name1 drop\nname1 hump themself\nname1 hump them hard and passionately\nyou hump name2 with all you got\n",
1087                "0\nname1 needs a kiss.\nname1 kisses name2 passionately.\nname1 kisses themself passionately.\nname1 kisses them passionately.\nyou kisses name2 passionately.\n",
1088                "0\nname1 smacks his monkey slowly.\nname1 smacks name2 for being an idiot, What were they thinking???\nname1 smacks and smacks until his face burns red.\nname1 smacks you for being an idiot.\nyou smacked name2, that damn idiot, what were they thinking???\n",
1089                "0\nname1 smooches everyone in the channel.\nname1 smooches name2. AWW aint that cute.. NOT!!!\nname1 tries to smooch themself, but can't. Anyone got a mirror????\nname1 smooches you very passionately.\nyou have smooched name2 on the lips.\n",
1090                "0\nname1 looks for a paddle to spank someone's ass with.\nname1 spanks name2 ass for being naughty.....\nname1 is trying to spank their own ass, does somebody have a paddle?\nyou felt something on your ass, you turned around a look, did name1 spank you?\nhow did feel spanking name2's ass.\n",
1091                "0\nLook OUT!!!! name1 is ready to Stab someone with a knife!!!!\nname1 Stabs name2 Violently, I  hope they got life insurance\nname1 tries to Stab themself with a knife, 911, SUICIDE!!!\nname1 slaps ya with their dirty trout, are you going to let them get away with that???\nyou slapped name2 with your trout, I hope ya cleaned it first.\n",
1092                "0\nname1 grabs a staple gun and reloads the gun.\nname1 staples name2 to the wall, now they can't run, MUahahaha....\nname1 tries to staple themself to the wall, OUWWWW!!\nyou got stapled to the wall by name1.\nyou have stapled name2 to the wall.\n",
1093                "0\nname1 is waiting for someone to strip down, any volunteers?\nname1 strips name2 down one clothes after another.\nname1 watches themself in a mirror while stripping down.\nname1 is removing ya clothes.\nyou are removing name2's clothes, you better hope that camera is ready.\n",
1094                "0\nname1 is juggling the trout while looking for their victim.\nname1 slaps name2 with their dirty trout, *SPLAT*!!!\nname1 slaps himself with a dead trout, EWWWWWWW\nname1 slaps you with a dead trout, EWWWWWWW!!!\nyou slapped name2 with a dead trout, EWWWWWWW!!!\n",
1095                "0\nname1 is looking for a whip to torture someone.......RUN............\nname1 whips name2 until name1 sees blood.....\nname1 whips themself without mercy\nname1 whips them violently\nyou whips name2 with everything you have\n",
1096                "0\nname1 yawns and stretches.\nname1 yawns at name2, mann.. You're boring.\nname1 yawns and stretches and then falls over, WHOOPS!!\nname1 yawns at you, they are very bored.\nyou yawned at name2, how rude....\n",
1097    );
1098    my $cx=0;
1099    print "Mkdir $path.";
1100    mkdir($path);
1101    print "Inserting socials into $path.";
1102    foreach $socname (@socnam_arr) {
1103       $filename = "$path/$socname.txt";
1104       open(FILE,">$filename");
1105       print FILE @socline_arr[$cx];
1106       close FILE;
1107       $cx++;
1108       }
1109 }
1110 
1111 Irssi::command_bind('social','irssi_print_social','tech_addon');
1112 Irssi::command_bind('social set','irssi_setsoc','tech_addon');
1113 Irssi::command_bind('social color','irssi_colorlist','tech_addon');
1114 Irssi::command_bind('social reset','irssicmd_reset','tech_addon');
1115 Irssi::command_bind('social add','irssi_addsoc','tech_addon');
1116 Irssi::command_bind('social del','irssi_delsoc','tech_addon');
1117 Irssi::command_bind('social list','irssi_socblist','tech_addon');
1118 Irssi::command_bind('soclist','irssi_socblist','tech_addon');
1119 Irssi::command_bind('soccolor','irssi_socblist','tech_addon');
1120 
1121 Irssi::signal_add_first('send command', 'cmd_sig');
1122 Irssi::signal_add_last('message public', 'message_public');
1123 Irssi::signal_add_last('message private', 'message_private');
1124 Irssi::signal_add_last("message own_public", "on_public");
1125 Irssi::signal_add_last("message own_private", "on_private");
1126 Irssi::settings_add_bool('tech_addon', 'twsocials_instruct', 1);
1127 Irssi::settings_add_bool('tech_addon', 'twsocials_remote', 0);
1128 irssicmd_socials();
1129 
1130 if(Irssi::settings_get_bool('twsocials_instruct')) {
1131    print $instrut;
1132    }
1133