aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar panicbit2019-10-09 20:53:50 +0200
committerGravatar panicbit2019-10-09 20:54:42 +0200
commitd069d4b83fa0b8bef741458f2a6eb96c0b1f8b7d (patch)
tree5bc992d1138c88335466f95a906cb03b6fd18d74
parentformat multi-line toots on a single line using things like double space (diff)
signature
Adjust line splitpoints to word boundaries
-rw-r--r--modules/commands/outs.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/modules/commands/outs.py b/modules/commands/outs.py
index 2677d1bf..a1733d18 100644
--- a/modules/commands/outs.py
+++ b/modules/commands/outs.py
@@ -4,6 +4,7 @@ from src import utils
STR_MORE = " (more...)"
STR_MORE_LEN = len(STR_MORE.encode("utf8"))
STR_CONTINUED = "(...continued) "
+WORD_BOUNDARY = ' '
class Out(object):
def __init__(self, server, module_name, target, target_str, tags):
@@ -54,6 +55,8 @@ class Out(object):
margin=STR_MORE_LEN)
if truncated:
+ valid, truncated = self._adjust_to_word_boundaries(valid, truncated)
+
line = utils.irc.parse_line(valid+STR_MORE)
self._text = "%s%s" % (STR_CONTINUED, truncated)
else:
@@ -61,6 +64,18 @@ class Out(object):
sent_line = self.server.send(line)
+ @staticmethod
+ def _adjust_to_word_boundaries(left, right):
+ if right[0] == WORD_BOUNDARY:
+ return left, right
+
+ parts = left.rsplit(WORD_BOUNDARY, 1)
+
+ if len(parts) != 2:
+ return left, right
+
+ return parts[0], parts[1] + right
+
def _default_prefix(self, s: str):
return s
def set_prefix(self, prefix):