Skip to content

Comments

src/irclog2html/irclog2html.py: add --hide-event to prevent selected …#38

Open
josch wants to merge 1 commit intomgedmin:masterfrom
josch:hide-events
Open

src/irclog2html/irclog2html.py: add --hide-event to prevent selected …#38
josch wants to merge 1 commit intomgedmin:masterfrom
josch:hide-events

Conversation

@josch
Copy link

@josch josch commented Jan 26, 2025

…event types from getting emitted

This can for example be used to not log join/quit messages which include domain names or IP addresses for privacy reasons with --hide-event=OTHER

Closes: #37

…event types from getting emitted

This can for example be used to not log join/quit messages which include
domain names or IP addresses for privacy reasons with --hide-event=OTHER

Closes: mgedmin#37
Copy link
Owner

@mgedmin mgedmin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good (other than the whitespace issue).

It would be good to have a test for this. Annoyingly, I don't currently have one for convert_irc_log(). (Also annoyingly, the test suite was written during a time when I thought doctests were a great idea. My apologies.) I propose something like:

--- a/src/irclog2html/tests/test_irclog2html.py
+++ b/src/irclog2html/tests/test_irclog2html.py
@@ -18,6 +18,7 @@ from irclog2html.irclog2html import (
     TextStyle,
     XHTMLStyle,
     XHTMLTableStyle,
+    convert_irc_log,
     main,
     parse_args,
 )
@@ -709,6 +710,37 @@ def doctest_MediaWikiStyle():
     """
 
 
+class TestingStyle(AbstractStyle):
+    name = "testing"
+
+    def _servermsg(self, line):
+        print(line)
+
+    def _nicktext(self, time, nick, text, htmlcolour):
+        print(f'{nick}: {text}')
+
+
+def doctest_convert_irc_log_with_event_hiding():
+    """Test for convert_irc_log()
+
+        >>> parser = LogParser('''
+        ... 12:00 *** user1 joined #channel
+        ... 12:01 <user1> hello
+        ... 12:02 * user1 waves
+        ... 12:03 *** user1 left #channel
+        ... '''.splitlines())
+        >>> formatter = TestingStyle(sys.stdout)
+        >>> convert_irc_log(parser, formatter, title='IRC log',
+        ...     prev=('Prev', None),
+        ...     index=('Index', None),
+        ...     next=('Next', None),
+        ...     hide_events=['JOINPART'])
+        <user1> hello
+        * user1 waves
+
+    """
+
+

There's something wrong with it as written (even without the hide_events part that isn't merged yet the code doesn't print anything, I suspect I forgot how the parser expects the logs to look like), but I don't have time to debug right now.

Also, I'd love to have a short snippet about the new feature in CHANGES.rst.

Comment on lines +881 to +883
help="Event to ignore and not add to the output. Can be"
"one of COMMENT, ACTION, JOIN, PART, NICKCHANGE,"
"SERVER, OTHER. Can be given multiple times.")
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you look at the output of --help, you should notice that someword are joinedtogether.

Personally, I've decided on a rule that when splitting text across two lines, I'll put the whitespace on the next line, so it's immediately noticeable when it's missing.

Suggested change
help="Event to ignore and not add to the output. Can be"
"one of COMMENT, ACTION, JOIN, PART, NICKCHANGE,"
"SERVER, OTHER. Can be given multiple times.")
help="Event to ignore and not add to the output. Can be"
" one of COMMENT, ACTION, JOIN, PART, NICKCHANGE,"
" SERVER, OTHER. Can be given multiple times.")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

option to skip join/quit messages

2 participants