使用 Twisted IRC 客户端¶
一个完整的操作指南将解释如何实际使用 IRC 客户端。但是,在该指南编写之前,这里有一个指南解释了如何进行 IRC 的文本格式化。
文本格式¶
Twisted Words 中的文本格式支持基于广泛使用的 mIRC 格式,该格式支持粗体、下划线、反向视频和彩色文本;嵌套这些属性也受支持。
创建格式化文本¶
用于在 IRC 客户端中创建格式化文本的 API 与 Twisted insults
使用的 API 几乎相同。文本属性是通过访问和索引特殊模块级属性 twisted.words.protocols.irc.attributes
上的属性来构建的,在索引属性时可以传递多个值以将文本与嵌套的文本属性混合。然后可以使用 twisted.words.protocols.irc.assembleFormattedText()
将生成的物体序列化为格式化文本,适用于任何 IRC 客户端消息传递功能。
粗体、下划线和反向视频属性¶
粗体、下划线和反向视频属性只是标志,是应用最简单的文本属性。它们分别通过 bold
、underline
和 reverseVideo
名称在 twisted.words.protocols.irc.attributes
上访问。例如,向某人发送粗体和下划线文本“Hello world!”
from twisted.words.protocols.irc import assembleFormattedText, attributes as A
# Message "someone" the bold and underlined text "Hello world!"
anIRCClient.msg('someone', assembleFormattedText(
A.bold[
A.underline['Hello world!']])
“normal” 属性¶
乍一看,一个名为“normal”的文本属性,它不应用任何不寻常的文本属性,可能看起来并不那么特别,但它非常有用,既可以作为容器
A.normal[
'This is normal text. ',
A.bold['This is bold text! '],
'Back to normal',
A.underline['This is underlined text!']]
也可以作为一种方法,在不关闭和重新指定所有文本属性的情况下,暂时禁用文本属性以处理一小段文本
A.normal[
A.reverseVideo['This is reverse, ', A.normal['except for this'], ', text']]
值得注意的是,组装后的文本将始终以禁用其他属性的控制代码开头,以确保正确性。
颜色属性¶
由于可以使用 IRC 文本格式为前景色和背景色指定颜色,因此引入了另一级属性访问。首先,通过 fg
和 bg
属性名称分别访问前景色或背景色,然后访问颜色名称。可用的颜色属性名称为
白色
黑色
蓝色
绿色
浅红色
红色
洋红色
橙色
黄色
浅绿色
青色
浅青色
浅蓝色
浅洋红色
灰色
浅灰色
可以嵌套前景色和背景色以更改单个文本的两种颜色。例如,要显示绿色文本上的黑色
A.fg.black[A.bg.green['Like a terminal!']]
解析格式化文本¶
大多数 IRC 客户端都格式化文本,因此您可能希望解析此格式化文本是合乎逻辑的。 twisted.words.protocols.irc.parseFormattedText()
将文本解析为结构化的文本属性。值得注意的是,虽然将 parseFormattedText
的输出反馈给 assembleFormattedText
将产生相同的最终结果,但解析文本的实际结构将有所不同。颜色代码从 0 映射到 15,大于 15 的代码将开始循环。
删除格式¶
在某些情况下,例如处理来自 IRC 的用户输入的自动机,需要从文本中删除所有格式。这可以通过 twisted.words.protocols.irc.stripFormatting()
来完成。