首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HexChat Perl获取网络上下文而不是通道上下文

HexChat Perl获取网络上下文而不是通道上下文
EN

Stack Overflow用户
提问于 2015-04-19 23:06:12
回答 2查看 141关注 0票数 1

我在通道消息钩子中有以下代码以获取服务器上下文并打印到服务器窗口:

代码语言:javascript
复制
my $network = HexChat::get_info('network');
my $networkContext = HexChat::find_context(undef, $network);
HexChat::set_context($networkContext);
HexChat::print('test');

如果我已经打开了服务器窗口,或者在另一个服务器上打开了一个通道,但是如果当前窗口是服务器上的一个通道,我就请求上下文,因为我得到的是当前通道的上下文,而不是服务器。是否有任何方法强迫find_context始终获取服务器上下文,以便在服务器窗口而不是当前通道的窗口中打印“test”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-20 20:33:16

将此片段从我的剧本之一转换为perl基本如下:

代码语言:javascript
复制
for chan in hexchat.get_list('channels'):
    if chan.type == 1 and chan.id == hexchat.get_prefs('id'):
        SERVER_CONTEXT = chan.context

find_context()脱离了字符串,因为它们并不是唯一的,所以它们并不很聪明。使用网络的唯一id总是正确的,使用上下文类型总是会获得服务器选项卡(尽管注意到用户可以禁用该选项卡)。

票数 1
EN

Stack Overflow用户

发布于 2015-04-22 17:07:53

下面是我最后使用的perl:

代码语言:javascript
复制
sub get_server_context() {
    foreach my $chan (HexChat::get_list("channels")) {
        if ($chan->{"type"} == 1 && $chan->{"id"} == HexChat::get_prefs("id")) {
            return $chan->{"context"};
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29736928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档