1#!/usr/local/bin/perl -w 2# 3# cp1250-kick.pl - skrypt wyrzucaj�cy z kana�u osoby u�ywaj�ce kodowania cp1250 4# - kicks people using cp1250 charset from channel 5# 6# /SET cp1250_kick_reason "tekst" - pow�d "kopni�cia" 7# /SET cp1250_kick_ops <ON|OFF> - czy "kopiemy" operator�w kana�u [OFF] 8# /SET cp1250_nokick "#chan_name nickname ..." - lista chronionych kana��w 9# i/lub os�b, dla kt�rych skrypt nie b�dzie dzia�a� 10# 11# Autor: Tomasz Poradowski (batonik@irc.pl) 12# Na podstawie: cp2iso.pl autorstwa Jakuba Jankowskiego <shasta@atn.pl> 13# 14# ----- 15# 28.09.2002 kilka drobnych poprawek wprowadzonych przez Jakuba Jankowskiego 16# - cp1250_kick_ops ma teraz warto�� boolean (ON/OFF) 17# ----- 18# 06.05.2002 ma�a poprawka w wyszukiwaniu "nick�w" na li�cie chronionych 19# ----- 20 21use Irssi; 22 23use strict; 24use vars qw($VERSION %IRSSI); 25 26$VERSION = "1.3"; 27%IRSSI = ( 28 authors => 'Tomasz Poradowski', 29 contact => 'batonik@irc.pl', 30 name => 'cp1250_kick', 31 description => 'Kicks people using cp1250 charset', 32 license => 'GPL', 33 changed => 'Sat Sep 28 12:58:26 CEST 2002' 34); 35 36sub cp1250_kick { 37 my ($server, $data, $nick, $address) = @_; 38 my ($target, $text) = split(/ :/, $data, 2); 39 my $kick_reason = Irssi::settings_get_str('cp1250_kick_reason'); 40 my $nokick_list = Irssi::settings_get_str('cp1250_nokick'); 41 42 return unless ($target =~ /^[#\!\+]/); 43 if ($text =~ /[\xA5\xB9\x8C\x9C\x8F\x9F]/) { 44 my $chan = Irssi::channel_find($target); 45 my $n = $chan->nick_find($nick); 46 return if ($nokick_list =~ m/\Q$chan->{name}\E|\Q$n->{nick}\E/); 47 return if ($n->{op} && !Irssi::settings_get_bool('cp1250_kick_ops')); 48 if ($chan->{chanop}) 49 { 50 Irssi::print("Kopiemy $nick z $target! [cp1250 kick]"); 51 $server->send_raw("KICK $target $nick :".$kick_reason); 52 } 53 else 54 { 55 Irssi::print("%R!%n [cp1250 kick] Nie jeste� operatorem kana�u $target."); 56 } 57 } 58} 59 60Irssi::settings_add_str('misc', 'cp1250_kick_reason', 'http://windows.online.pl wzywa Ci�! [cp1250 kick]'); 61Irssi::settings_add_bool('misc', 'cp1250_kick_ops', 0); 62Irssi::settings_add_str('misc', 'cp1250_nokick', ''); 63 64# musi si� wywo�a� jeszcze przed cp2iso.pl (je�li si� go u�ywa) 65Irssi::signal_add_first('event privmsg', 'cp1250_kick'); 66