Advertisement
Guest User

Untitled

a guest
Mar 14th, 2019
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.21 KB | None | 0 0
  1. # Poniżej wersja z niemal prawidłową obsługą kolorów mircowych.
  2. # Oczywiście, nikt normalny tak nie pisze regexpów, ale zrobiłem tak ze względów edukacyjnych, no i dlatego, że nie pasuję pod kwantyfikator
  3. # Po ludzku ten regexp wygląda tak: $msg =~ s{^<\x03([02-9]|1[0-5])(.+?)\x0f>\s}{}
  4.  
  5. sub event_message {
  6.     my ( $server, $msg, $nick, @rest ) = @_;
  7.  
  8.     if (
  9.         $msg =~ s{      # Tak robimy regexy w perlu:
  10.                 ^               # zaczynamy na początku lini
  11.                 <               # pierwszym znakiem musi być '<'
  12.                 \x03            # mircowy kolor zaczyna się znakiem chr(3)
  13.                 ([02-9]|1[0-5]) # numery koloru to 0,1,2,…,15, ale nie działa dla ^C1 – czarny, bo różnie to może być
  14.                 (.+?)           # tu jest właściwy nick
  15.                 \x0f            # chr(15) to znak przywrócenia atrybutów do pierwotnych
  16.                 >               # zamyka nick
  17.                 \s              # no i jeszcze spacja
  18.                 }
  19.                 {}x    # Powyższe zamieniamy na '', czyli wycinamy w cholerę
  20.       )
  21.     {
  22.         $nick = 'D|' . $2;
  23.         Irssi::signal_continue( $server, $msg, $nick, @rest );
  24.     }
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement