सवाल irssi - / एक निक को अनदेखा करें लेकिन लॉग में संदेश दिखाई देते हैं


मैं एक निक को अनदेखा करना / अनदेखा करना चाहता हूं और अभी भी उनके संदेश मेरे लॉग में दिखते हैं। विशेष रूप से, मैं नहीं जानना चाहता कि वे आम तौर पर चैनल में बात कर रहे हैं, लेकिन यदि मैं एक वार्तालाप का पालन कर रहा हूं जो अधिक समझ में नहीं आता है तो पूर्ण संदर्भ प्राप्त करने के लिए लॉग को देखने की क्षमता चाहिए।

मैं यह नहीं चाहता कि यह एक नई लिपि लिखने के लिए बुरी तरह से सीखना चाहें, लेकिन मौजूदा स्क्रिप्ट को संशोधित करने में सक्षम और तैयार हूं जो कि अगर यह मौजूद है तो मैं इसे करना चाहता हूं।


2
2017-12-19 20:43


मूल




जवाब:


कुछ इसी तरह की तलाश में था,

https://github.com/irssi/scripts.irssi.org/blob/master/scripts/ignore_log.pl

स्क्रिप्ट अनदेखा करने के लिए सेट की गई किसी भी चीज़ को लॉग करेगा।

यदि लिंक नीचे चला जाता है, तो इसका उल्लेख किया जाता है https://scripts.irssi.org, और यहां वर्तमान सामग्री हैं:

#!/usr/bin/perl

# ignore_log.pl (ignore_log -- send [some] ignored events to log), Version 0.1
# this script is dedicated to bormann@IRCNET.
#
# Copyleft (>) 2004 jsn <jason@nichego.net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# The complete text of the GNU General Public License can be found
# on the World Wide Web: <URL:http://www.gnu.org/licenses/gpl.html>

use strict;
use Irssi;

use POSIX qw/strftime/ ;

use vars qw($VERSION %IRSSI);

$VERSION = "0.1";
%IRSSI = (
    authors     => 'Dmitry "jsn" Kim',
    contact     => 'jason@nichego.net',
    name        => 'ignore_log',
    description => 'script to log ignored messages',
    license     => 'GPL',
    url     => 'http://',
    changed     => '2004-09-10',
    changes     => 'initial version'
);

Irssi::print("*****\n* $IRSSI{name} $VERSION loaded.");
Irssi::print("*  use `/set ignore_log <filename>' to configure") ;
Irssi::print("*  use `/set ignore_log none' to disable ignore logging") ;

sub handle_public {
    my  ($srv, $msg, $nick, $addr, $tgt) = @_;
    return if lc(Irssi::settings_get_str("ignore_log")) eq "none" ;
    write_log($nick, $msg, $tgt)
        if $srv->ignore_check($nick, $addr, $tgt, $msg, MSGLEVEL_PUBLIC) ;
}

sub handle_private {
    my  ($srv, $msg, $nick, $addr) = @_;
    return if lc(Irssi::settings_get_str("ignore_log")) eq "none" ;
    write_log($nick, $msg)
        if $srv->ignore_check($nick, $addr, "", $msg, MSGLEVEL_MSGS) ;
}

sub write_log {
        my  ($nick, $msg, $tgt) = @_ ;
    $tgt ||= "->" ;
    my  ($lfile) = glob Irssi::settings_get_str("ignore_log");
    if (open(LF, ">>", $lfile)) {
        my  $ts = strftime("%D %H:%M", localtime()) ;
        print LF "[$ts] $tgt $nick $msg\n" ;
        close LF ;
    } else {
        Irssi::active_win()->print("can't open file `$lfile': $!") ;
    }
}

Irssi::settings_add_str("ignore_log", "ignore_log", "~/.irssi/ignore.log");

Irssi::print("*  logging ignored users to `" .
    Irssi::settings_get_str("ignore_log") . "'") ;

Irssi::signal_add_first("message public", "handle_public") ;
Irssi::signal_add_first("message private", "handle_private") ;

2
2018-01-31 12:40



अगर यह केवल प्रत्येक चैनल के संबंधित लॉग पर लॉग ऑन कर सकता है और एक अलग लॉग फ़ाइल नहीं। - WasabiFlux