# -*- coding: utf-8 -*-
#
-# Copyright (C) 2010-2015 Sébastien Helleu <flashcode@flashtux.org>
+# Copyright (C) 2010-2017 Sébastien Helleu <flashcode@flashtux.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
#
# History:
#
+# 2021-06-02, Sébastien Helleu <flashcode@flashtux.org>:
+# version 1.2: fix /help buffer_autoset
+# 2018-04-14, Kim B. Heino:
+# version 1.1: on startup apply settings to already opened buffers
+# 2017-06-21, Sébastien Helleu <flashcode@flashtux.org>:
+# version 1.0: rename command /autosetbuffer to /buffer_autoset
# 2015-09-28, Simmo Saan <simmo.saan@gmail.com>:
# version 0.9: instantly apply properties
# 2015-07-12, Sébastien Helleu <flashcode@flashtux.org>:
# version 0.8: add option buffer_autoset.look.timer to add a small timer
# before setting buffer properties
-# 2015-04-05, Nils Görs <freenode@#weechat>:
+# 2015-04-05, Nils Görs <libera@#weechat>:
# version 0.7: increase priority of hook_signal('buffer_opened')
-# 2012-12-09, Nils Görs <freenode@#weechat>:
+# 2012-12-09, Nils Görs <libera@#weechat>:
# version 0.6: add support of core buffer
# 2012-03-09, Sébastien Helleu <flashcode@flashtux.org>:
# version 0.5: fix reload of config file
SCRIPT_NAME = "buffer_autoset"
SCRIPT_AUTHOR = "Sébastien Helleu <flashcode@flashtux.org>"
-SCRIPT_VERSION = "0.9"
+SCRIPT_VERSION = "1.2"
SCRIPT_LICENSE = "GPL3"
SCRIPT_DESC = "Auto-set buffer properties when a buffer is opened"
-SCRIPT_COMMAND = "autosetbuffer"
+SCRIPT_COMMAND = SCRIPT_NAME
import_ok = True
# ================================[ command ]=================================
def bas_cmd(data, buffer, args):
- """Callback for /autosetbuffer command."""
+ """Callback for /buffer_autoset command."""
args = args.strip()
if args == "":
weechat.command("", "/set %s.buffer.*" % CONFIG_FILE_NAME)
completion):
"""
Complete with current buffer name (plugin.name),
- for command '/autosetbuffer'.
+ for command '/buffer_autoset'.
"""
name = "%s.%s" % (weechat.buffer_get_string(buffer, "plugin"),
weechat.buffer_get_string(buffer, "name"))
def bas_completion_options_cb(data, completion_item, buffer, completion):
- """Complete with config options, for command '/autosetbuffer'."""
+ """Complete with config options, for command '/buffer_autoset'."""
options = weechat.infolist_get("option", "",
"%s.buffer.*" % CONFIG_FILE_NAME)
if options:
weechat.buffer_get_string(buffer, "full_name"))
return weechat.WEECHAT_RC_OK
+
def bas_config_option_cb(data, option, value):
if not weechat.config_boolean(bas_options["look_instant"]):
return weechat.WEECHAT_RC_OK
- if not weechat.config_get(option): # option was deleted
+ if not weechat.config_get(option): # option was deleted
return weechat.WEECHAT_RC_OK
option = option[len("%s.buffer." % CONFIG_FILE_NAME):]
return weechat.WEECHAT_RC_OK
+
# ==================================[ main ]==================================
if __name__ == "__main__" and import_ok:
"[add buffer property value] | [del option]",
" add: add a buffer/property/value in configuration file\n"
" del: delete an option from configuration file\n"
- " buffer: name of a buffer (can start or end with \"*\" as "
- "wildcard)\n"
+ " buffer: name of a buffer (wildcard \"*\" is allowed)\n"
"property: buffer property\n"
" value: value for property\n"
" option: name of option from configuration file\n\n"
"Examples:\n"
" disable timestamp on channel #weechat:\n"
- " /" + SCRIPT_COMMAND + " add irc.freenode.#weechat "
+ " /" + SCRIPT_COMMAND + " add irc.libera.#weechat "
"time_for_each_line 0\n"
" add word \"weechat\" in highlight list on channel "
"#savannah:\n"
- " /" + SCRIPT_COMMAND + " add irc.freenode.#savannah "
+ " /" + SCRIPT_COMMAND + " add irc.libera.#savannah "
"highlight_words_add weechat\n"
- " disable highlights from nick \"mike\" on freenode server, "
+ " disable highlights from nick \"mike\" on libera server, "
"channel #weechat (requires WeeChat >= 0.3.4):\n"
- " /" + SCRIPT_COMMAND + " add irc.freenode.#weechat "
+ " /" + SCRIPT_COMMAND + " add irc.libera.#weechat "
"hotlist_max_level_nicks_add mike:2\n"
- " disable hotlist changes for nick \"bot\" on freenode "
+ " disable hotlist changes for nick \"bot\" on libera "
"server (all channels) (requires WeeChat >= 0.3.4):\n"
- " /" + SCRIPT_COMMAND + " add irc.freenode.* "
+ " /" + SCRIPT_COMMAND + " add irc.libera.* "
"hotlist_max_level_nicks_add bot:-1",
"add %(buffers_plugins_names)|"
"%(buffer_autoset_current_buffer) "
weechat.hook_config("%s.buffer.*" % CONFIG_FILE_NAME,
"bas_config_option_cb", "")
- # core buffer is already open on script startup, check manually!
- bas_signal_buffer_opened_cb("", "", weechat.buffer_search_main())
+ # apply settings to all already opened buffers
+ buffers = weechat.infolist_get("buffer", "", "")
+ if buffers:
+ while weechat.infolist_next(buffers):
+ buffer = weechat.infolist_pointer(buffers, "pointer")
+ bas_signal_buffer_opened_cb("", "", buffer)
+ weechat.infolist_free(buffers)
# ==================================[ end ]===================================