• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python weechat.info_get_hashtable函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中weechat.info_get_hashtable函数的典型用法代码示例。如果您正苦于以下问题:Python info_get_hashtable函数的具体用法?Python info_get_hashtable怎么用?Python info_get_hashtable使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了info_get_hashtable函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: log_to_mongo

def log_to_mongo(data, signal, raw_message):
    """ Parse a raw IRC message and insert it into a mongo collection """

    global mongo_collection

    parsed_message = weechat.info_get_hashtable('irc_message_parse', { 'message': raw_message })

    log_entry = {
        'server': signal.split(',')[0],
        'nick': parsed_message['nick'],
        'host': parsed_message['host'],
        'command': parsed_message['command'],
        'channel': parsed_message['channel'],
        'arguments': parsed_message['arguments']
    }

    if 'text' in parsed_message and len(parsed_message['text']) > 0:
        log_entry['text'] = parsed_message['text']
    elif log_entry['command'] == 'PRIVMSG':
        # fallback for pre-1.3 weechat
        log_entry['text'] = log_entry['arguments'].split(' :', 1)[-1]

    # denote any URLs
    if 'text' in log_entry and re.search(HTTP_PATTERN, log_entry['text']):
        log_entry['urls'] = re.findall(HTTP_PATTERN, log_entry['text'])

    mongo_collection.insert(log_entry)

    return weechat.WEECHAT_RC_OK
开发者ID:kaiju,项目名称:mongologger,代码行数:29,代码来源:mongologger.py


示例2: do_unencrypt

def do_unencrypt(data, signal, signal_data):
    #wc.prnt(wc.current_buffer(), "===>\tentered do_unencrypt")

    dict = wc.info_get_hashtable("irc_message_parse", { "message": signal_data } )
    #for d in dict:
    #    wc.prnt(wc.current_buffer(), "==>\t%s" % d)
    #    wc.prnt(wc.current_buffer(), "===>\t%s" % dict[d])

    # channel info
    nick = dict['nick']
    server = signal.split(",")[0]
    channel = dict['channel']
    buffer = wc.info_get("irc_buffer", "%s,%s" % (server, channel) )

    # get and unencrypt
    dirty = dict['arguments'].split(':')[1]
    clean = dirty[2:] #clean = dirty[-2:]
    clean = enc(clean)[0]


    ## put the data back onto the screen
    if dirty[0]=='#' and dirty[1]=='#':
        if buffer:
            wc.prnt(buffer, "[%s]\t%s" % (nick, clean))
    return wc.WEECHAT_RC_OK
开发者ID:lostorbit,项目名称:secureirc,代码行数:25,代码来源:secure.py


示例3: get_hashtable

def get_hashtable(string):
    parsed = weechat.info_get_hashtable('irc_message_parse', dict(message=string))
    try:
        parsed['message'] = parsed['arguments'].split(' :', 1)[1]
    except:
        parsed['message'] = ""
    match = regex_get_user.match(parsed['host'])
    result = match.groupdict()

    parsed['user'] = result['from_user']
    parsed['host'] = result['from_host']

    if OPTIONS['debug'] == 'on':
        weechat.prnt("","debug_mode: hashtable")
        weechat.prnt("","string: %s" % string)
        weechat.prnt("","nick: %s" % parsed['nick'])
        weechat.prnt("","from_user: %s" % parsed['user'])
        weechat.prnt("","from_host: %s" % parsed['host'])
        weechat.prnt("","channel: %s" % parsed['channel'])
        weechat.prnt("","message: %s" % parsed['message'])
        weechat.prnt("","arguments: %s" % parsed['arguments'])
        regex_get_channel=re.match(r'#(.*)',parsed['arguments'])
        if channel != '':
            weechat.prnt("",regex_get_channel.group())
        weechat.prnt("","---end---")
    return parsed
开发者ID:pix0r,项目名称:weechat-scripts,代码行数:26,代码来源:customize_irc_messages.py


示例4: twitch_roomstate

def twitch_roomstate(data, modifier, server, string):
    message = weechat.info_get_hashtable(
        'irc_message_parse', {"message": string})
    buffer = weechat.buffer_search(
        "irc", "%s.%s" % (server, message['channel']))
    for tag in message['tags'].split(';'):
        if tag == 'subs-only=0':
            weechat.buffer_set(buffer, 'localvar_set_subs', '')
        if tag == 'subs-only=1':
            weechat.buffer_set(buffer, 'localvar_set_subs', '1')
        if tag == 'r9k=0':
            weechat.buffer_set(buffer, 'localvar_set_r9k', '')
        if tag == 'r9k=1':
            weechat.buffer_set(buffer, 'localvar_set_r9k', '1')
        if tag == 'emote-only=0':
            weechat.buffer_set(buffer, 'localvar_set_emote', '')
        if tag == 'emote-only=1':
            weechat.buffer_set(buffer, 'localvar_set_emote', '1')
        if tag.startswith('slow='):
            value = tag.split('=')[-1]
            if value == '0':
                weechat.buffer_set(buffer, 'localvar_set_slow', '')
            if value > '0':
                weechat.buffer_set(buffer, 'localvar_set_slow', value)
        twitch_main('', buffer, 'bs')
    return ''
开发者ID:MatthewCox,项目名称:dotfiles,代码行数:26,代码来源:twitch.py


示例5: seamless_cb

def seamless_cb(data, modifier, modifier_data, string):
    info = weechat.info_get_hashtable("irc_message_parse", {"message": string})
    info["server"] = modifier_data
    channel = info["channel"]
    buf_p = weechat.buffer_search("==", "irc." + info["server"] + "." + channel)
    if not buf_p:
        debug("no buffer for %s" % "irc." + info["server"] + "." + info["channel"])
        return string
    text = info.get("text", info["arguments"].split(" :", 1)[1])
    action = re.match(r"^\x01.*\x01", text)
    if action:
        # CTCP
        if not re.match(r"^\x01ACTION\b", text):
            # A CTCP other than ACTION, do nothing.
            return string
        text = re.sub(r"^\x01ACTION |\x01$", "", text)
        prefix = "action_"
    else:
        # Regular PRIVMSG
        prefix = "privmsg_"
    for nick, servers in _nicks:
        if servers and not (info["server"] in servers):
            continue
        nick_re = r"^%s" % re.escape(nick)
        if not re.match(nick_re, info["nick"]):
            continue
        debug("%s is a valid server." % info["server"])
        debug("%s matches %s" % (nick_re, nick))
        debug(string)
        for bot in _bots:
            result = reformat(string, info, bot, prefix, text)
            if result:
                return result
    return string
开发者ID:Raimondi,项目名称:weechat_scripts,代码行数:34,代码来源:seamless.py


示例6: privmsg

def privmsg(data, signal, signal_data):
    (server, signal) = signal.split(",")
    channels = wc.config_get_plugin('channels').replace(',', '|')
    api_key = wc.config_get_plugin('api_key')
    if re.match('^\${sec\.data\.(.*)}$', api_key):
        api_key = wc.string_eval_expression(api_key, {}, {}, {})
    bots_list = wc.config_get_plugin('other_bots').split(",")
    details = wc.info_get_hashtable("irc_message_parse", {"message": signal_data, "server": server})
    youtube_regex_match = re.compile(r'(.*https?://)?(www\.)?(youtube|youtu|youtube-nocookie)\.(com|be)/(watch\?v=|embed/|v/|.+\?v=)?([a-zA-Z0-9_-]{11})').match(details['text'])
    buffer_name = details['channel']
    buffer_pointer = wc.info_get("irc_buffer", "%s,%s" % (server, buffer_name))
    channels_regex = re.compile(r'(%s)' % (channels), re.I)
    bots_exist = False
    if channels_regex.match(buffer_name) and youtube_regex_match:
        if not bots_list == "not_set":
            for other_bots in bots_list:
                bots_test = wc.nicklist_search_nick(buffer_pointer, "", other_bots)
                if bots_test:
                    bots_exist = True
        if not bots_exist:
            if not api_key == "not_set":
                vid_id = youtube_regex_match.group(6)
                rvt = requests.get('https://www.googleapis.com/youtube/v3/videos/?id={0}&part=snippet&key={1}'.format(vid_id, api_key))
                rvc = requests.get('https://www.googleapis.com/youtube/v3/videos/?id={0}&part=statistics&key={1}'.format(vid_id, api_key))
                try:
                    vid_title = rvt.json()['items'][0]['snippet']['title'].encode('utf-8')
                    vid_channel = rvt.json()['items'][0]['snippet']['channelTitle'].encode('utf-8')
                    vid_views = rvc.json()['items'][0]['statistics']['viewCount']
                    wc.command("", r"/msg {0} [Youtube] {1} | Channel: {2} | Views: {3}".format(buffer_name, vid_title, vid_channel, vid_views))
                except:
                    wc.command("", r"/msg {0} [Youtube] Error getting video info.".format(buffer_name))
            else:
                wc.command("", r"/msg {0} Youtube api key not set.".format(buffer_name))
    return wc.WEECHAT_RC_OK
开发者ID:snowfag,项目名称:weechat-scripts,代码行数:34,代码来源:youtube.py


示例7: get_hashtable

def get_hashtable(string):
    parsed = weechat.info_get_hashtable("irc_message_parse", dict(message=string))
    try:
        parsed["message"] = parsed["arguments"].split(" :", 1)[1]
    except:
        parsed["message"] = ""
    return parsed
开发者ID:Shrews,项目名称:scripts,代码行数:7,代码来源:autosavekey.py


示例8: unhide_buffer_cb

def unhide_buffer_cb(data, signal, signal_data):
    """Unhide a buffer on new activity.

    This callback unhides the buffer in which a new message has been received.
    If configuration option ``unhide_low`` is enabled,
    buffers with only low messages (like JOIN, PART, etc.) will be unhidden as well.
    """
    server = signal.split(",")[0]
    message = weechat.info_get_hashtable(
        "irc_message_parse",
        {"message": signal_data})
    channel = message["channel"]
    hotlist = hotlist_dict()
    buffer = weechat.info_get("irc_buffer", "{},{}".format(server, channel))

    if not buffer in hotlist.keys():
        # just some background noise
        return WEECHAT_RC_OK

    if (weechat.config_get_plugin("unhide_low") == "on"
            and hotlist[buffer]["count_low"] > 0
            or hotlist[buffer]["count_message"] > 0
            or hotlist[buffer]["count_private"] > 0
            or hotlist[buffer]["count_highlight"] > 0):
        weechat.buffer_set(buffer, "hidden", "0")

    return WEECHAT_RC_OK
开发者ID:DarkDefender,项目名称:scripts,代码行数:27,代码来源:buffer_autohide.py


示例9: on_channel_mode

def on_channel_mode(data, signal, signal_data):
    """Whenever a channel mode is set."""

    if w.config_get_plugin("disabled") in ["true", "yes"]:
        return w.WEECHAT_RC_OK

    parsed = w.info_get_hashtable("irc_message_parse", {"message": signal_data})

    server = signal.split(",")[0]
    channel = parsed["channel"]

    if not should_match(server, channel):
        return w.WEECHAT_RC_OK

    chars = w.config_get_plugin("matching_modes")
    modes_set = parsed["text"].split(" ")[0]
    found = False

    for c in chars:
        if c in modes_set:
            found = True
            break

    if not found:
        return w.WEECHAT_RC_OK

    modes = parse_modes(parsed["text"])

    for mode in modes:
        mode["setter"] = parsed["nick"]
        match_mode(server, channel, mode)

    return w.WEECHAT_RC_OK
开发者ID:DarkDefender,项目名称:scripts,代码行数:33,代码来源:maskmatch.py


示例10: get_hashtable

def get_hashtable(string):
    parsed = weechat.info_get_hashtable("irc_message_parse", dict(message=string))
    try:
        parsed["message"] = parsed["arguments"].split(" :", 1)[1]
    except:
        parsed["message"] = ""
    match = regex_get_user.match(parsed["host"])
    result = match.groupdict()

    parsed["user"] = result["from_user"]
    parsed["host"] = result["from_host"]

    if OPTIONS["debug"] == "on":
        weechat.prnt("", "debug_mode: hashtable")
        weechat.prnt("", "string: %s" % string)
        weechat.prnt("", "nick: %s" % parsed["nick"])
        weechat.prnt("", "from_user: %s" % parsed["user"])
        weechat.prnt("", "from_host: %s" % parsed["host"])
        weechat.prnt("", "channel: %s" % parsed["channel"])
        weechat.prnt("", "message: %s" % parsed["message"])
        weechat.prnt("", "arguments: %s" % parsed["arguments"])
        regex_get_channel = re.match(r"#(.*)", parsed["arguments"])
        if channel != "":
            weechat.prnt("", regex_get_channel.group())
        weechat.prnt("", "---end---")
    return parsed
开发者ID:Ratler,项目名称:weechatter-weechat-scripts,代码行数:26,代码来源:customize_irc_messages.py


示例11: parse_privmsg

def parse_privmsg(message):
    weechat_result = weechat.info_get_hashtable('irc_message_parse',
                                                {'message': message})
    if weechat_result['command'].upper() == 'PRIVMSG':
        args = weechat_result['arguments'].decode('utf-8', 'replace')
        target, text = args.split(' ', 1)
        if text.startswith(':'):
            text = text[1:]

        result = {
            'from': weechat_result['host'].decode('utf-8', 'replace'),
            'to': target,
            'text': text,
        }

        if target[0] in ('#', '&', '!', '+'):
            result['to_channel'] = target
            result['to_nick'] = None
        else:
            result['to_channel'] = None
            result['to_nick'] = target

        return result
    else:
        raise Exception("Failed parsing PRIVMSG")
开发者ID:mutantmonkey,项目名称:weesodium,代码行数:25,代码来源:weesodium.py


示例12: stop_typing

def stop_typing(data, signal, signal_data):
    msg_hash = w.info_get_hashtable(
        "irc_message_parse", {"message": signal_data } )
    if msg_hash["nick"] in typing:
        del typing[msg_hash["nick"]]
    w.bar_item_update("bitlbee_typing_notice")
    return w.WEECHAT_RC_OK
开发者ID:Arlefreak,项目名称:dotfiles,代码行数:7,代码来源:bitlbee_typing_notice.py


示例13: getbuffer

def getbuffer(modifier_data, string):
  msg = weechat.info_get_hashtable("irc_message_parse",{ "message": string })
  if weechat.info_get('irc_is_channel', '{moddata},{channel}'.format(moddata=modifier_data, channel=msg['channel'])) == '1':
    name = msg['channel']
  else:
    name = msg['nick']
  buffer_full_name = '{moddata}.{name}'.format(moddata=modifier_data, name=name)
  return weechat.buffer_search("irc", buffer_full_name)
开发者ID:itsamenathan,项目名称:weechat_scripts,代码行数:8,代码来源:shorturl.py


示例14: handle_globaluserstate

def handle_globaluserstate(data, modifier, modifier_data, string):
    """Handles a GLOBALUSERSTATE"""
    if modifier_data not in (twitch_settings["twitch_server"], twitch_settings["group_server"]):
        return string
    parsed = weechat.info_get_hashtable("irc_message_parse", {"message": string})
    # All we're interested in are user tags
    update_user(user_self["name"], parse_tags(parsed["tags"])[1])
    return ""
开发者ID:jazzpi,项目名称:weechat-twitch,代码行数:8,代码来源:twitch.py


示例15: twitch_privmsg

def twitch_privmsg(data, modifier, server_name, string):
    if not server_name in OPTIONS['servers'].split():
        return string
    message = weechat.info_get_hashtable(
        'irc_message_parse', {"message": string})
    if message['channel'].startswith('#'):
        return string
    newmsg = 'PRIVMSG #%s :/w %s %s' % (message['nick'],message['nick'],message['text'])
    return newmsg
开发者ID:MatthewCox,项目名称:dotfiles,代码行数:9,代码来源:twitch.py


示例16: handle_query

def handle_query(data, signal, signal_data):
    global buffer_data
    # data: empty string
    # signal: <server>,irc_in_PRIVMSG
    # signal_data: whole message unparsed
    # parse the message
    parsed = weechat.info_get_hashtable("irc_message_parse",
                                        {"message": signal_data})
    # where should we answer?
    server = signal.split(",")[0]
    channel = parsed["channel"]
    current_nick = weechat.info_get("irc_nick", server)
    user = parsed["nick"]
    message = parsed["text"]

    if channel == current_nick:
        # we got a message through a private query, refuse it
        buffer_out = weechat.info_get("irc_buffer", server + "," + user)
        # close private buffers, but not server buffers
        # localvar_type can assume five values: private, channel, server, weechat and ""
        if weechat.buffer_get_string(buffer_out,"localvar_type") == "private":
            weechat.command(buffer_out, "How about speaking to me in public?")
            weechat.buffer_close(buffer_out)
    else:
        # query came from public channel
        if message.startswith(current_nick + ":"): # it's a command to our bot
            query = message.split(":")[1].strip() # remove the part before the colon, and lead/trail whitespaces
            s = query.split(" ", 1)
            command = s[0].lower() # command is case-insensitive
            args = s[1] if len(s) == 2 else ""
            target = "{0},{1}".format(server, channel) # this is the key to the dict containing the lists
            if command == "coin":
                out_msg = _coin()
            elif command == "help":
                out_msg = _help(user)
            elif command == "dice":
                out_msg = _dice(args)
            elif command == "server":
                out_msg = _server()
            elif command == "about":
                out_msg = _about()
            elif command == "rps":
                out_msg = _rps(user, args)
            elif command == "list":
                out_msg = _list(target,user,args)
            elif command == "coffee":
                out_msg = _coffee()
            elif command == "eightball":
                out_msg = _8ball()
            else:
                out_msg = "Unrecognized command. Type '{0}: help' to get a list of commands".format(current_nick)

            buffer_out = weechat.info_get("irc_buffer", server + "," + channel)
            if weechat.buffer_get_string(buffer_out,"localvar_type") == "channel":
                weechat.command(buffer_out, out_msg)

    return weechat.WEECHAT_RC_OK # must always return this or WEECHAT_RC_ERROR
开发者ID:Elvish-Hunter,项目名称:elvishbot,代码行数:57,代码来源:elvishbot.py


示例17: parse_message

def parse_message(irc_message, server=None):
    # parse the message
    message_dict = {"message": irc_message}
    parsed = weechat.info_get_hashtable("irc_message_parse", message_dict)
    if server:
        parsed["server"] = server
    # remove the channel part from PRIVMSG arguments
    message = ":".join(parsed["arguments"].split(":")[1:])
    return(parsed, message)
开发者ID:igs-awilliams,项目名称:weecrypt,代码行数:9,代码来源:weecrypt.py


示例18: twitch_whisper

def twitch_whisper(data, modifier, modifier_data, string):
    message = weechat.info_get_hashtable(
        'irc_message_parse', {"message": string})
    if message['tags']: string = '@'+message['tags']+' '
    else: string = ''
    string += ':'+message['host']
    string += ' PRIVMSG'
    string += ' '+message['arguments']
    return string
开发者ID:MatthewCox,项目名称:dotfiles,代码行数:9,代码来源:twitch.py


示例19: handle_userstate

def handle_userstate(data, modifier, modifier_data, string):
    """Handles a USERSTATE"""
    if modifier_data not in (twitch_settings["twitch_server"], twitch_settings["group_server"]):
        return string
    parsed = weechat.info_get_hashtable("irc_message_parse", {"message": string})
    # We're not interested in tags like emote-set etc.
    _, user_tags, channel_tags = parse_tags(parsed["tags"])
    update_user(user_self["name"], user_tags, parsed["text"], channel_tags)
    return ""
开发者ID:jazzpi,项目名称:weechat-twitch,代码行数:9,代码来源:twitch.py


示例20: parse_message

def parse_message(signal_data):
	hashtable = weechat.info_get_hashtable("irc_message_parse", {"message": signal_data})

	# parse arguments string into usable pieces
	args = hashtable["arguments"].split(":", 1)
	hashtable["args"] = args[0].split()
	if len(args) > 1:
		hashtable["text"] = args[1]

	return hashtable
开发者ID:sim642,项目名称:force_nick,代码行数:10,代码来源:force_nick.py



注:本文中的weechat.info_get_hashtable函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python weechat.infolist_free函数代码示例发布时间:2022-05-26
下一篇:
Python weechat.info_get函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap