过滤
在 Junction Bot中,您可以通过应用过滤规则来过滤传入的 电报 消息。 您可以决定接收哪些信息,哪些信息会被过滤掉,因此您不会看到(例如广告)。
滤波器可单独应用于通道,也可同时应用于所有通道。 您可以组合任何数量、任何种类的过滤器。
支持的功能:mustHave、mustNotHave、regex、按附件类型过滤等。
请注意,这里有一个非常有用的调试功能,可以为您节省很多时间。
命令
/filter- 创建一个过滤器(针对 1 个源),或者如果第二次输入,则删除一个过滤器。 与 "必须有"、"必须没有"、"每"、附件类型结合使用:必须有"、"必须没有"、"每个"、附件类型 /filterrx- 通过 regex 进行过滤(请参阅此处的示例) /filterall,/filterrxall-为所有来源创建过滤器 /filtersource_channel_reference- 查看当前应用于频道的所有过滤器
如果有多个从同一来源到不同目的地的转发规则,可以为不同目的地设置不同的设置、过滤器和替换。 点击此处查看更多详情。
必须有、必须没有过滤器
mustHave- 您将只收到包含特定文本的信息 格式:/filter source_channel_reference mustHave text to receive
Ex./filter https://t.me/junction_bot_news mustHave cool cats
请记住,过滤器的文本是作为整个短语而不是单独的单词来应用的。 因此,在本例中,您将收到所有包含精确短语 "酷猫 "的信息。 您不需要像这里一样使用任何转义字符。 mustNotHave- 筛选出包含特定文本的邮件 格式:/filter source_channel_reference mustNotHave text to filter out
Ex./filter https://t.me/junction_bot_news mustNotHave old hats
组合滤波器
多个必备 筛选器将根据 “OR “规则进行组合。
多个mustNotHave 过滤器将根据 “AND “规则进行组合。
注意:您不能在一条命令中将它们组合起来。 对每个过滤器使用单独的命令。
例如/filter source_channel_reference mustHave cats
/filter source_channel_reference mustHave kittens
您将收到所有包含 "猫 "或 "小猫 "的信息/filter source_channel_reference mustNotHave dogs
/filter source_channel_reference mustNotHave puppies
您将不会收到任何包含 "狗 "或 "小狗 "字样的信息
按 电报 附件类型过滤
此外,您还可以过滤掉媒体信息。 为此,请使用以下字符串之一作为过滤文本:
例如/filter source_channel_reference mustHave <audio>
- 您将只收到来自该频道的包含音频附件的信息/filter source_channel_reference mustNotHave <photo>
- 您将不会从该频道收到任何包含图片的信息
高级过滤
此外,您还可以使用正则表达式 (RegEx)进行过滤。 为此,请使用 /filterrx 命令。 格式相同。
下面是一些常见的例子: 1.停止在图片说明中出现word
字样的帖子信道参考
/filterrx
mustNotHave
.*word.*<photo>.*
2.两个词 -word1
和word2
- 按一定顺序排列/filterrx
3.两个单词,顺序不限source_channel_reference
mustNotHave
.*word1.*word2.*/filterrx
信道参考5.两个单词,顺序不限,忽略寄存器
mustNotHave
(?=.*\bword1\b)(?=.*\bword2\b).*/filterrx
6.一组词中的任何一个词source_channel_reference
mustNotHave
(?i:.*wOrd1.*woRd2.*)/filterrx
7.您可以将它们组合起来。 例如,不区分大小写的任何单词source_channel_reference
mustNotHave
.*word1.*|.*word2.*|.*word3.*/filterrx
信道参考8.任何包含俄语字母的单词
mustNotHave
(?i:.*wOrd1.*|.*worD2.*|.*woRd3.*)/filterrx
9.任何 HTTP 链接source_channel_reference
mustNotHave
.*([а-яА-Я]+).*/filterrx
10.任何数字source_channel_reference
mustNotHave .*(http:\/\/|https:\/\/).*/filterrx
11.任何 @ 用户名source_channel_reference
mustNotHave .*([0-9]+).*/filterrx source_channel_reference mustNotHave
.*@([a-zA-Z0-9=&_\-]+).*
在使用这些过滤器之前,了解什么是 RegEx 非常重要。 例如,使用正则表达式word2的过滤器不匹配邮件word1 word2 word3,因为它包含 word2 以外的单词。请记住在单词两侧添加 .*:.*word2.*
请注意一个重要的细微差别:过滤时,机器人可以在文本末尾添加空格和/或媒体内容代码。 因此,我们建议您始终在 RegEx 过滤器末尾添加.*。
还有一点很重要:用于过滤器的 RegEx 通常在开头和结尾都有一个.*
,因为您希望整个信息符合表达式。 如果您想使用类似的表达式来替换,可能需要删除.*
(否则替换将替换整个邮件文本)。
有一个非常方便的正则表达式测试工具:https://regex101.com。 将 Flavor 设置为 “Java 8″,并设置标志 “单行:点匹配新行 “标志。 这将使其工作方式与 @junction_bot 的匹配器相同。
正则表达式帮助
正则表达式是一个庞大的主题。 这方面的帮助超出了机器人管理的范围。 请不要私下写信给管理员,要求他们为您制定替代规则或过滤器。 此外,机器人管理部门也不会在支持小组中提供此类帮助。
根据您的需要创建正则表达式的最简单方法是询问ChatGPT,它在这方面非常擅长。
此外,您还可以在相关论坛寻求帮助。 例如StackOverflow或CodeProject。
为所有来源设置过滤器
要为当前所有来源添加过滤器,请使用/filterall
或/filterrxall
(正则表达式)命令。
请注意,创建新转发规则时,过滤列表总是为空的。 您可以从现有源中复制过滤器。
例如/filterrxall add mustNotHave .*(http:\/\/|https:\/\/).*
该命令将在所有信息源中添加一个过滤器,用于阻止任何包含链接的信息。
复制过滤器
在Junction Bot中,您可以将所有过滤器从一个 电报 频道复制到另一个。 为此,请使用以下命令格式:
/filter channel_to_copy_filters_to addAllFrom channel_to_copy_filters_from
移除过滤器
要移除过滤器,只需再发送一次相同的命令。
要查看当前应用于通道的所有滤波器,使用命令
/filter source_channel_reference
要删除所有频道中的所有过滤器,请使用以下命令
/filterall DELETE ALL
对于 RegEx 过滤器,请相应使用/filterrx
和 /filterrxall
。
只接收 N 个报文
在Junction bot中,您可以按频率过滤 电报 消息,这样只有每 n 条消息才会被复制(在下面的示例中–每第二条消息)。 为此,请使用以下命令格式:
/filter source_channel_reference every 2
按日期和时间筛选
Junction 机器人可以根据来信的日期和时间过滤 电报 上的信息。
/filtertime source_channel_reference mustHave time interval
时间间隔设置:
– 必填信息的发送时间间隔
–mustNotHave不应收到信息的时间间隔
时间间隔可包含星期、时间和时区。
星期几 它总是以字母w开头,然后是一周的天数(从周一开始)。
例如
w135
对应一周中的第 1、3 和 5 天(周一、周三、周五)
w67
对应一周中的第 6 天和第 7 天(周六、周日)
时间 时间始终为 24 小时格式,时间间隔为 – 至(含),小时:分钟。
例如
9:30-17:30
0:00-23:59
时区 请在此处查看可用时区列表。 如果您没有明确提及时区,则将设置为 CET – 欧洲中部时间(阿姆斯特丹/柏林/布拉格/维也纳)。
例如
/filtertime source_channel_reference mustNotHave 0:00-7:00
从午夜到欧洲中部时间早上 7 点,将不会收到信息。
/filtertime source_channel_reference mustHave w12345 8:00-20:00 America/New_York
信息只在工作日(周一至周五)发送,从纽约时间上午 8 点开始,到晚上 8 点结束。
要为所有信号源添加时间过滤器,可以使用/filtertimeall
命令。 例如 /filtertimeall add mustNotHave 0:00-7:00
移除:/filtertimeall remove mustNotHave 0:00-7:00
按组内主题筛选
要设置主题过滤器,请使用以下命令:
/filtertopic source_channel_reference mustHave topicID
要了解小组的主题编号,请链接该主题中的任何帖子。 链接中间的数字是主题编号。 例如,如果链接是 https://t.me/publicchat/1723/36753,则主题编号是 1723。
例如
/filtertopic source_channel_reference
mustHave 1723
只允许从主题编号 1723 开始发帖。
/filtertopic source_channel_reference mustNotHave 7231
过滤掉主题编号为 7231 的帖子。
要将信息从源的不同主题复制到不同的目标频道,首先要创建从源到目标的必要转发规则。 然后,对于每个特定的转发规则,按照以下说明使用/filtertopic
命令设置所需的过滤器。 例如,命令可能是这样的/filtertopic &123456789#151617181->-1001222333444 mustHave 1723
要将消息从源主题复制到目标中的相同主题,需要手动创建目标主题。 然后,您需要为每个主题创建一个中间频道。 对于每个主题,首先要设置复制到具有所需主题过滤器的中间频道。 然后从中间信道到目的地,使用所需的topic
设置。
重复
在某些情况下,一条信息可能会向您发送数次。 例如,如果您订阅了两个频道,而这两个频道都转发了相同的帖子。 要过滤掉Junction Bot中所有相同的 电报 信息,请使用/setting duplicate 命令。 它适用于 24 小时内出现的相同信息。
/setting duplicate+ 下列选项之一: 通过- 禁用,允许重复 Ex./setting duplicate pass
过滤- 将重复的信息过滤掉 Ex./setting duplicate filter
要将此设置仅应用于一个通道,请将命令/setting
替换为/settingchannel source_channel_reference
(更多信息)。
请注意,重复邮件过滤器会对原始邮件进行比较。 这就意味着,如果要避免在目标频道中出现因替换规则而导致的重复,就需要使用稍微复杂一点的方法–通过中间频道。
创建通道 C 并设置从 A(源)到 C(中间)的重定向。 将所有替换规则应用于通道 A。
接下来,设置从 C(中间站)到 B(目的地)的重定向。 我们对该重定向设置了一条过滤规则(使用/settingchannel C duplicate filter
命令),它将删除所有重复的内容,甚至包括那些由于替换规则而出现的内容。
完成! 如果您为第一个重定向(从 A 到 C)设置了重复过滤器,那么就不会影响因替换规则而出现的重复。
批量修改过滤器
/filterall– 此命令会将此过滤器添加到所有订阅和转发中。 请注意,并不存在一套通用的筛选器–一套适用于所有规则的筛选器并不存在。 每个具体的订阅/转发规则都有一组过滤器。
/filterall 的工作原理与 /filter 相同。
您可以设置一个操作来代替 source_channel:添加或删除。
/filterall add- 向所有频道添加新的过滤器。 格式:/filterall add [rule] text to receive
Ex./filterall add mustHave bitcoin
或/filterall add mustNotHave litecoin
/filterall remove- 删除所有通道中的过滤器。 格式:/filterall remove [rule] text to filter out
Ex./filterall remove mustHave bitcoin
或/filterall remove mustNotHave litecoin
将命令改为/filterrxall以使用正则表达式。
一个来源 – 多个目的地
如果您有多个从一个源转发到不同通道的转发规则,并且只想将一个过滤器设置为一个源-目的地规则,请按此说明操作。
在source_channel_reference 中添加以下结构:->-1001251642436
其中,-1001251642436 是目的地通道在 电报 系统中的标识符,加上前缀”-100″(这是 电报 区分通道编号和其他对象编号的方法)。 查找该号码非常简单,只需在互联网上搜索相关说明即可。 例如,将频道中的信息转发给机器人 @junction_helper0_bot。 你会在 forward_from_chat.id 或 forward_from.id 中看到频道号码。
因此,举例来说,配置命令可能如下所示:/filter source_channel_reference->-1001251642436 mustHave cats
过滤特定人员的帖子
您可以让Junction Bot过滤特定用户的 电报 消息。 假设 @source 是源聊天。 要只转发 @ 用户的信息,请执行以下操作:
- 使用命令创建新的转发规则
/new
- 使用以下命令打开复制作者姓名的功能
/settingchannel source_channel_reference author full
- 使用命令为所需名称设置过滤器
/filter source_channel_reference mustHave user_reference
如果需要信息来自特定用户,同时包含特定文本,则需要使用稍有不同的命令:/filterrx source_channel_reference mustHave .*user_reference.*specific
text.*
在大多数情况下,作为user_reference 可以使用用户的 @username。 在某些情况下,它将不起作用(例如,如果用户没有公开的用户名,或者机器人没有用户的完整信息)。 在这种情况下,您需要启用解释报告,查看用户在信息中的引用方式,然后使用该字符串。
如果设置为author
,生成的邮件将包含邮件作者的姓名。 有时,作者姓名不出现也是必要的。 这需要一个稍微复杂一点的过程–通过中间渠道。
创建通道 C 并设置从 A(源)到 C(中间)的重定向。 应用第 2 页和第 3 页的设置:/settingchannel A author full
/filter A mustHave @user
接下来,设置从 C(中间站)到 B(目的地)的重定向。 我们在重定向中设置了一条替换规则(使用/replace
命令),它将删除作者姓名。 /replace B @user (User's name)
完成! 如果为第一次重定向(从 A 到 C)设置了该替换规则,则不会影响作者姓名。 作者姓名和源频道名称一样,都是服务文本,不受/replace
命令的影响,也可以通过其他方式调整。
过滤转发的帖子
您可以让Junction Bot过滤转发到源频道的 电报 消息。 假设 @source 是源频道。 要只复制 @source 的原始信息,而不复制从其他频道转发到 @source 的信息,请执行以下操作:
- 使用命令创建新的转发规则
/new
- 使用以下命令打开复制作者姓名的功能
/settingchannel source_channel_reference header from_only
它会在转发信息的开头添加一段文字:”来自” + 频道名称。 - 为要过滤掉的频道名称设置过滤器。 例如,如果转发的帖子来自名为 “转发来源 “的频道
/filter source_channel_reference mustNotHave from Source of forwards
如果要删除从其他频道转发的帖子,则需要使用稍有不同的命令:/filter source_channel_reference mustNotHave from
人工智能过滤
您可以自由描述任何过滤标准,让人工智能自动过滤您的邮件。 有趣的是,通过这种方式,您不仅可以根据信息文本本身进行筛选,还可以根据其含义和情感进行筛选。 例如,您可以要求人工智能只让正面新闻出现在您的频道 ☺️。
如何设置,请参阅此处。
手动过滤
如果您想手动控制是否复制或跳过帖子,请使用审核模式。
找出行不通的地方
检查当前的滤波器是否正确:
/filter source_channel_reference
/filterrx source_channel_reference
如果设置了很多过滤器,就很难弄清为什么某条信息可以通过或不能通过。 为了帮助您完成这项工作,有一个特殊的设置叫做 “解释”。 您可以使用命令将其设置为开启:
/settingchannelsource_channel_reference
解释
如果启用,您将收到来自该源信道的每条新信息的报告。 报告将解释为何该信息被过滤掉或允许通过。
要禁用解释模式,请使用命令
/settingchannelsource_channel_reference
解释为关闭