Finish up IRC compatibility & force-valid-prefix toggle
This commit is contained in:
parent
3f7caf73b2
commit
ec0c6cdaf9
4 changed files with 25 additions and 13 deletions
15
memos.py
15
memos.py
|
@ -28,7 +28,7 @@ from logviewer import PesterLogViewer
|
||||||
|
|
||||||
PchumLog = logging.getLogger("pchumLogger")
|
PchumLog = logging.getLogger("pchumLogger")
|
||||||
_valid_memo_msg_start = re.compile(
|
_valid_memo_msg_start = re.compile(
|
||||||
r"^<c=((\d+,\d+,\d+)|(#([a-fA-F0-9]{6})|(#[a-fA-F0-9]{3})))>[A-Z]{3}:\s"
|
r"^<c=((\d+,\d+,\d+)|(#([a-fA-F0-9]{6})|(#[a-fA-F0-9]{3})))>([A-Z]{3}):\s"
|
||||||
)
|
)
|
||||||
# Python 3
|
# Python 3
|
||||||
QString = str
|
QString = str
|
||||||
|
@ -361,9 +361,17 @@ class MemoText(PesterText):
|
||||||
|
|
||||||
def make_valid(self, msg, chum, parent, window, me):
|
def make_valid(self, msg, chum, parent, window, me):
|
||||||
"""Adds initials and color to a message if they're missing."""
|
"""Adds initials and color to a message if they're missing."""
|
||||||
if not re.match(_valid_memo_msg_start, msg):
|
initials = chum.initials()
|
||||||
|
match = re.match(_valid_memo_msg_start, msg)
|
||||||
|
detected_initials = None
|
||||||
|
if match:
|
||||||
|
try:
|
||||||
|
# Get initials used in msg, check if valid later
|
||||||
|
detected_initials = match.group(6)[1:]
|
||||||
|
except IndexError:
|
||||||
|
pass # IndexError is fine, just means the initials are invalid
|
||||||
|
if not match or detected_initials != initials:
|
||||||
if chum is me:
|
if chum is me:
|
||||||
initials = me.initials()
|
|
||||||
color = me.colorcmd()
|
color = me.colorcmd()
|
||||||
msg = f"<c={color}>{initials}: {msg}</c>"
|
msg = f"<c={color}>{initials}: {msg}</c>"
|
||||||
msg = addTimeInitial(msg, parent.time.getGrammar())
|
msg = addTimeInitial(msg, parent.time.getGrammar())
|
||||||
|
@ -374,7 +382,6 @@ class MemoText(PesterText):
|
||||||
color = f"{r},{g},{b}"
|
color = f"{r},{g},{b}"
|
||||||
else:
|
else:
|
||||||
color = "0,0,0"
|
color = "0,0,0"
|
||||||
initials = chum.initials()
|
|
||||||
msg = f"<c={color}>{initials}: {msg}</c>"
|
msg = f"<c={color}>{initials}: {msg}</c>"
|
||||||
msg = addTimeInitial(msg, parent.times[chum.handle].getGrammar())
|
msg = addTimeInitial(msg, parent.times[chum.handle].getGrammar())
|
||||||
return msg
|
return msg
|
||||||
|
|
14
menus.py
14
menus.py
|
@ -1226,7 +1226,7 @@ class PesterOptions(QtWidgets.QDialog):
|
||||||
"Logging",
|
"Logging",
|
||||||
"Idle/Updates",
|
"Idle/Updates",
|
||||||
"Theme",
|
"Theme",
|
||||||
"Connection",
|
"IRC",
|
||||||
]
|
]
|
||||||
if parent.advanced:
|
if parent.advanced:
|
||||||
self.tabNames.append("Advanced")
|
self.tabNames.append("Advanced")
|
||||||
|
@ -1244,10 +1244,10 @@ class PesterOptions(QtWidgets.QDialog):
|
||||||
bandwidthLabel = QtWidgets.QLabel(
|
bandwidthLabel = QtWidgets.QLabel(
|
||||||
"Enable this if you're planning on using Pesterchum on a server with normal IRC clients."
|
"Enable this if you're planning on using Pesterchum on a server with normal IRC clients."
|
||||||
"\nStops the client from sending or requesting:"
|
"\nStops the client from sending or requesting:"
|
||||||
"\n - Moods (#pesterchum MOODs and METADATA moods)"
|
"\n - Non-metadata moods (MOOD >0, GETMOOD, etc.)"
|
||||||
"\n - Message colors (COLOR > and METADATA color)"
|
"\n - Non-metadata dm colors (COLOR >0,0,0)"
|
||||||
"\n - Message color tags (<c=0,0,0>)"
|
"\n - Memo message initials and color (<c=0,0,0>EB: </c>)"
|
||||||
"\n - Timelines (PESTERCHUM:CURRENT, etc.)"
|
"\n - Memo timelines"
|
||||||
"\n - Misc. PESTERCHUM:X commands (BEGIN, CEASE, BLOCK, IDLE, etc.)"
|
"\n - Misc. PESTERCHUM:X commands (BEGIN, CEASE, BLOCK, IDLE, etc.)"
|
||||||
)
|
)
|
||||||
font = bandwidthLabel.font()
|
font = bandwidthLabel.font()
|
||||||
|
@ -1255,12 +1255,12 @@ class PesterOptions(QtWidgets.QDialog):
|
||||||
bandwidthLabel.setFont(font)
|
bandwidthLabel.setFont(font)
|
||||||
|
|
||||||
self.force_prefix_check = QtWidgets.QCheckBox(
|
self.force_prefix_check = QtWidgets.QCheckBox(
|
||||||
"Add initials to memo messages without initials", self
|
"Force all memo messages to have valid initials.", self
|
||||||
)
|
)
|
||||||
if self.config.force_prefix():
|
if self.config.force_prefix():
|
||||||
self.force_prefix_check.setChecked(True)
|
self.force_prefix_check.setChecked(True)
|
||||||
initials_label = QtWidgets.QLabel(
|
initials_label = QtWidgets.QLabel(
|
||||||
"Enable this when chatting with normal IRC users or to forcibly un-scratch Doc Scratch."
|
"Disable to allow users to send messages without initials, like Doc Scratch."
|
||||||
)
|
)
|
||||||
font = initials_label.font()
|
font = initials_label.font()
|
||||||
font.setPointSize(8)
|
font.setPointSize(8)
|
||||||
|
|
|
@ -737,7 +737,7 @@ def kxhandleInput(ctx, text=None, flavor=None, irc_compatible=False):
|
||||||
|
|
||||||
# Begin message processing.
|
# Begin message processing.
|
||||||
# We use 'text' despite its lack of processing because it's simpler.
|
# We use 'text' despite its lack of processing because it's simpler.
|
||||||
if should_quirk and not (is_action or is_ooc or irc_compatible):
|
if should_quirk and not (is_action or is_ooc):
|
||||||
if flavor != "menus":
|
if flavor != "menus":
|
||||||
# Fetch the quirks we'll have to apply.
|
# Fetch the quirks we'll have to apply.
|
||||||
quirks = ctx.mainwindow.userprofile.quirks
|
quirks = ctx.mainwindow.userprofile.quirks
|
||||||
|
@ -847,6 +847,11 @@ def kxhandleInput(ctx, text=None, flavor=None, irc_compatible=False):
|
||||||
clientMsg = copy(lm)
|
clientMsg = copy(lm)
|
||||||
serverMsg = copy(lm)
|
serverMsg = copy(lm)
|
||||||
|
|
||||||
|
# If in IRC-compatible mode, remove color tags.
|
||||||
|
if irc_compatible:
|
||||||
|
serverMsg = re.sub(_ctag_begin, "", serverMsg)
|
||||||
|
serverMsg = re.sub(_ctag_end, "", serverMsg)
|
||||||
|
|
||||||
# Memo-specific processing.
|
# Memo-specific processing.
|
||||||
if flavor == "memos" and not is_action and not irc_compatible:
|
if flavor == "memos" and not is_action and not irc_compatible:
|
||||||
# Quirks were already applied, so get the prefix/postfix stuff
|
# Quirks were already applied, so get the prefix/postfix stuff
|
||||||
|
|
|
@ -362,7 +362,7 @@ with a backup from: <a href='%s'>%s</a></h3></html>"
|
||||||
return self.config.get("irc_compatibility_mode", False)
|
return self.config.get("irc_compatibility_mode", False)
|
||||||
|
|
||||||
def force_prefix(self):
|
def force_prefix(self):
|
||||||
return self.config.get("force_prefix", False)
|
return self.config.get("force_prefix", True)
|
||||||
|
|
||||||
def ghostchum(self):
|
def ghostchum(self):
|
||||||
return self.config.get("ghostchum", False)
|
return self.config.get("ghostchum", False)
|
||||||
|
|
Loading…
Reference in a new issue