about summary refs log tree commit diff
path: root/weechat/.weechat
diff options
context:
space:
mode:
Diffstat (limited to 'weechat/.weechat')
-rw-r--r--weechat/.weechat/buffer_autoset.conf1
-rw-r--r--weechat/.weechat/irc.conf140
-rw-r--r--weechat/.weechat/plugins.conf2
-rw-r--r--weechat/.weechat/python/autojoin.py79
-rw-r--r--weechat/.weechat/python/completion.py73
-rw-r--r--weechat/.weechat/python/go.py6
-rw-r--r--weechat/.weechat/python/grep.py68
-rw-r--r--weechat/.weechat/weechat.conf2
8 files changed, 194 insertions, 177 deletions
diff --git a/weechat/.weechat/buffer_autoset.conf b/weechat/.weechat/buffer_autoset.conf
index 50195dc..f9e0921 100644
--- a/weechat/.weechat/buffer_autoset.conf
+++ b/weechat/.weechat/buffer_autoset.conf
@@ -14,5 +14,4 @@ instant = on
 timer = 1
 
 [buffer]
-irc.freenode.#thunix.hotlist_max_level_nicks_add = "Bender:2"
 irc.tilde.#trivia.hotlist_max_level_nicks_add = "Oz:2,Nerd:2"
diff --git a/weechat/.weechat/irc.conf b/weechat/.weechat/irc.conf
index 6ca7d15..35c50dc 100644
--- a/weechat/.weechat/irc.conf
+++ b/weechat/.weechat/irc.conf
@@ -106,6 +106,7 @@ whois_double_nick = off
 whois = current
 
 [ctcp]
+pronouns = "he/him"
 
 [ignore]
 
@@ -153,10 +154,10 @@ usermode = ""
 username = "${env:USER}"
 
 [server]
-tilde.addresses = "localhost"
+tilde.addresses = "gingko.tilde.chat/6697"
 tilde.proxy
 tilde.ipv6
-tilde.ssl = off
+tilde.ssl = on
 tilde.ssl_cert
 tilde.ssl_priorities
 tilde.ssl_dhkey_size
@@ -179,9 +180,9 @@ tilde.username
 tilde.realname
 tilde.local_hostname
 tilde.usermode
-tilde.command = "/oper root ${sec.data.tildenetoper}; /msg operserv login ${sec.data.pass}"
+tilde.command = "/msg operserv login ${sec.data.pass}"
 tilde.command_delay
-tilde.autojoin = "#chaos,#meta,#opers,#secret-sudoers,#team,#sudoers,#yourtilde,#music,#politics,#gopher,#tildeverse,#idlerpg,#tilderadio,#minecraft,#tildelinux,#cosmic,#institute,#.tilde,#tildetel,#thunix,#theasylum,#minetest,#aussie,#uucp,#projects,#hamradio,#vim,#black,#pink,#~,#netnews,#admin,#bots,#ctrl-c,#bitbot,#radiofreqs,#brains,#envs,#rfcs,#best :57:60,:10:20"
+tilde.autojoin = "#meta,#secret-sudoers,#opers,#sudoers,#yourtilde,#music,#politics,#gopher,#tildeverse,#idlerpg,#tilderadio,#minecraft,#tildelinux,#cosmic,#institute,#.tilde,#tildetel,#thunix,#theasylum,#minetest,#aussie,#uucp,#projects,#hamradio,#vim,#black,#pink,#~,#netnews,#admin,#bots,#ctrl-c,#bitbot,#radiofreqs,#brains,#envs,#rfcs,#best,#wilde,#tildegames,#theasylum-admins,#tildenet,#gemini,#club,#zine,#twtxt,#factorio,#team,#summit :10:20,secretsudoteam"
 tilde.autorejoin
 tilde.autorejoin_delay
 tilde.connection_timeout
@@ -304,7 +305,7 @@ esper.local_hostname
 esper.usermode
 esper.command
 esper.command_delay
-esper.autojoin = "#lobby,#coders 10:30"
+esper.autojoin = "#lobby,#coders,#factorio 10:30"
 esper.autorejoin
 esper.autorejoin_delay
 esper.connection_timeout
@@ -440,7 +441,7 @@ oftc.msg_part
 oftc.msg_quit
 oftc.notify
 oftc.split_msg_max_length
-freenode.addresses = "irc.freenode.net/6697"
+freenode.addresses = "irc.us.freenode.net/6697"
 freenode.proxy
 freenode.ipv6
 freenode.ssl = on
@@ -468,7 +469,7 @@ freenode.local_hostname
 freenode.usermode
 freenode.command
 freenode.command_delay
-freenode.autojoin = "#weechat,##oodnet,#lobsters,#lobsters-boil,#gitea,#mastodon,#pleroma,#pleroma-offtopic,#oragono,#weechat-android,#git,#tilde.team,#sr.ht,#cmpwn,#gopherproject,#bitreich-en,#bitbot,#bitreich-de,#ircv3,#gophernicus,##jan6,##ircv3-offtopic,#ovh,#elixir-lang,#ascii.town,#sonarr,#lxcontainers 6:10"
+freenode.autojoin = "#weechat,##oodnet,#lobsters,#lobsters-boil,#gitea,#mastodon,#pleroma,#pleroma-offtopic,#oragono,#weechat-android,#git,#tilde.team,#sr.ht,#cmpwn,#gopherproject,#bitreich-en,#bitbot,#bitreich-de,#ircv3,#gophernicus,##jan6,##ircv3-offtopic,#ovh,#elixir-lang,#ascii.town,#sonarr,#lxcontainers,#thelounge,#indieweb,#indieweb-dev,#indieweb-meta,#indieweb-chat,#knownchat,#NetBSD,#cjdns,##ircv3-chat,#mumble,#!,#tildeclub,#freenode,#stutter,#futel 6:10"
 freenode.autorejoin
 freenode.autorejoin_delay
 freenode.connection_timeout
@@ -591,7 +592,7 @@ slashnet.local_hostname
 slashnet.usermode
 slashnet.command
 slashnet.command_delay
-slashnet.autojoin = "#gtlug,#mefi"
+slashnet.autojoin = "#gtlug"
 slashnet.autorejoin
 slashnet.autorejoin_delay
 slashnet.connection_timeout
@@ -686,44 +687,85 @@ red.msg_part
 red.msg_quit
 red.notify
 red.split_msg_max_length
-ascii.addresses = "ascii.town/6697"
-ascii.proxy
-ascii.ipv6
-ascii.ssl = on
-ascii.ssl_cert
-ascii.ssl_priorities
-ascii.ssl_dhkey_size
-ascii.ssl_fingerprint
-ascii.ssl_verify
-ascii.password
-ascii.capabilities
-ascii.sasl_mechanism
-ascii.sasl_username
-ascii.sasl_password
-ascii.sasl_key
-ascii.sasl_timeout
-ascii.sasl_fail
-ascii.autoconnect
-ascii.autoreconnect
-ascii.autoreconnect_delay
-ascii.nicks
-ascii.nicks_alternate
-ascii.username
-ascii.realname
-ascii.local_hostname
-ascii.usermode
-ascii.command
-ascii.command_delay
-ascii.autojoin = "&town"
-ascii.autorejoin
-ascii.autorejoin_delay
-ascii.connection_timeout
-ascii.anti_flood_prio_high
-ascii.anti_flood_prio_low
-ascii.away_check
-ascii.away_check_max_nicks
-ascii.msg_kick
-ascii.msg_part
-ascii.msg_quit
-ascii.notify
-ascii.split_msg_max_length
+hackint.addresses = "irc.hackint.org/6697"
+hackint.proxy
+hackint.ipv6
+hackint.ssl = on
+hackint.ssl_cert
+hackint.ssl_priorities
+hackint.ssl_dhkey_size
+hackint.ssl_fingerprint
+hackint.ssl_verify
+hackint.password
+hackint.capabilities
+hackint.sasl_mechanism
+hackint.sasl_username = "benharri"
+hackint.sasl_password = "${sec.data.pass}"
+hackint.sasl_key
+hackint.sasl_timeout
+hackint.sasl_fail
+hackint.autoconnect
+hackint.autoreconnect
+hackint.autoreconnect_delay
+hackint.nicks = "benharri"
+hackint.nicks_alternate
+hackint.username
+hackint.realname
+hackint.local_hostname
+hackint.usermode
+hackint.command
+hackint.command_delay
+hackint.autojoin = "#tildeverse,#hackint,#36c3,#camp"
+hackint.autorejoin
+hackint.autorejoin_delay
+hackint.connection_timeout
+hackint.anti_flood_prio_high
+hackint.anti_flood_prio_low
+hackint.away_check
+hackint.away_check_max_nicks
+hackint.msg_kick
+hackint.msg_part
+hackint.msg_quit
+hackint.notify
+hackint.split_msg_max_length
+efnet.addresses = "irc.servercentral.net"
+efnet.proxy
+efnet.ipv6
+efnet.ssl
+efnet.ssl_cert
+efnet.ssl_priorities
+efnet.ssl_dhkey_size
+efnet.ssl_fingerprint
+efnet.ssl_verify
+efnet.password
+efnet.capabilities
+efnet.sasl_mechanism
+efnet.sasl_username
+efnet.sasl_password
+efnet.sasl_key
+efnet.sasl_timeout
+efnet.sasl_fail
+efnet.autoconnect
+efnet.autoreconnect
+efnet.autoreconnect_delay
+efnet.nicks
+efnet.nicks_alternate
+efnet.username
+efnet.realname
+efnet.local_hostname
+efnet.usermode
+efnet.command
+efnet.command_delay
+efnet.autojoin = "#dragonflybsd,#freebsd"
+efnet.autorejoin
+efnet.autorejoin_delay
+efnet.connection_timeout
+efnet.anti_flood_prio_high
+efnet.anti_flood_prio_low
+efnet.away_check
+efnet.away_check_max_nicks
+efnet.msg_kick
+efnet.msg_part
+efnet.msg_quit
+efnet.notify
+efnet.split_msg_max_length
diff --git a/weechat/.weechat/plugins.conf b/weechat/.weechat/plugins.conf
index 0068c18..b720f58 100644
--- a/weechat/.weechat/plugins.conf
+++ b/weechat/.weechat/plugins.conf
@@ -69,7 +69,7 @@ python.buffer_autoclose.age_limit = "30"
 python.buffer_autoclose.ignore = ""
 python.buffer_autoclose.interval = "1"
 python.check_license = "off"
-python.completion.replace_values = "shrug=>¯\_(ツ)_/¯;;wiki=>https://tilde.team/wiki/;;sword=>o()xxxx[{::::::::::::::::::::::::::::::::::>;;lenny=>( ͡° ͜ʖ ͡°);;byobu=>https://superuser.com/a/423397/866501;;huh=>(-_-)ゞ゛;;tablefix=>┬─┬ノ( º _ ºノ);;weedoc=>https://weechat.org/files/doc/stable/weechat_user.en.html;;weekeys=>https://weechat.org/files/doc/stable/weechat_user.en.html#key_bindings;;denko=>(´・ω・`);;yuno=>ლ(́ಠ◞益◟ಠ‵ლ);;tf=>(ノಥ益ಥ)ノ彡┻━┻;;tb=>┬─┬ノ( º _ ºノ);;ducc=>・゜゜・。。・゜゜\_o< QUACK!"
+python.completion.replace_values = "shrug=>¯\_(ツ)_/¯;;wiki=>https://tilde.team/wiki/;;sword=>o()xxxx[{::::::::::::::::::::::::::::::::::>;;lenny=>( ͡° ͜ʖ ͡°);;byobu=>https://superuser.com/a/423397/866501;;fg=>(☞゚ヮ゚)☞;;huh=>(-_-)ゞ゛;;tablefix=>┬─┬ノ( º _ ºノ);;weedoc=>https://weechat.org/files/doc/stable/weechat_user.en.html;;weekeys=>https://weechat.org/files/doc/stable/weechat_user.en.html#key_bindings;;denko=>(´・ω・`);;yuno=>ლ(́ಠ◞益◟ಠ‵ლ);;tf=>(ノಥ益ಥ)ノ彡┻━┻;;tb=>┬─┬ノ( º _ ºノ);;ducc=>・゜゜・。。・゜゜\_o< QUACK!"
 python.go.auto_jump = "off"
 python.go.buffer_number = "on"
 python.go.color_name = "black,cyan"
diff --git a/weechat/.weechat/python/autojoin.py b/weechat/.weechat/python/autojoin.py
index f231307..0f0286c 100644
--- a/weechat/.weechat/python/autojoin.py
+++ b/weechat/.weechat/python/autojoin.py
@@ -48,7 +48,10 @@
 #
 # 2018-08-09, Julien Palard <julien@palard.fr>
 #     version 0.3.0: Support for Python 3
-
+#
+# 2019-09-28, fructose
+#     version 0.3.1: Error on invalid arguments
+#
 # @TODO: add options to ignore certain buffers
 # @TODO: maybe add an option to enable autosaving on part/join messages
 
@@ -57,7 +60,7 @@ import re
 
 SCRIPT_NAME    = "autojoin"
 SCRIPT_AUTHOR  = "xt <xt@bash.no>"
-SCRIPT_VERSION = "0.3.0"
+SCRIPT_VERSION = "0.3.1"
 SCRIPT_LICENSE = "GPL3"
 SCRIPT_DESC    = "Configure autojoin for all servers according to currently joined channels"
 SCRIPT_COMMAND = "autojoin"
@@ -77,8 +80,8 @@ if w.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, SCRIPT_LICENSE, SCRIPT
                    "autojoin_cb",
                    "")
 
-    #w.hook_signal('*,irc_in2_join', 'autosave_channels_on_activity', '')
-    #w.hook_signal('*,irc_in2_part', 'autosave_channels_on_activity', '')
+    # w.hook_signal('*,irc_in2_join', 'autosave_channels_on_activity', '')
+    # w.hook_signal('*,irc_in2_part', 'autosave_channels_on_activity', '')
     w.hook_signal('quit',           'autosave_channels_on_quit', '')
 
 # Init everything
@@ -86,6 +89,7 @@ for option, default_value in settings.items():
     if w.config_get_plugin(option) == "":
         w.config_set_plugin(option, default_value)
 
+
 def autosave_channels_on_quit(signal, callback, callback_data):
     ''' Autojoin current channels '''
     if w.config_get_plugin(option) != "on":
@@ -114,54 +118,60 @@ def autosave_channels_on_activity(signal, callback, callback_data):
         pattern = "^:%s!.*(JOIN|PART) :?(#[^ ]*)( :.*$)?" % nick
         match = re.match(pattern, callback_data)
 
-        if match: # check if nick is my nick. In that case: save
+        if match:  # check if nick is my nick. In that case: save
             process_server(server, channels)
-        else: # someone else: ignore
+        else:  # someone else: ignore
             continue
 
     return w.WEECHAT_RC_OK
 
-def autojoin_cb(data, buffer, args):
-    """Old behaviour: doesn't save empty channel list"""
-    """In fact should also save open buffers with a /part'ed channel"""
-    """But I can't believe somebody would want that behaviour"""
-    items = find_channels()
 
+def autojoin_cb(data, buffer, args):
     if args == '--run':
         run = True
+    elif args != '':
+        w.prnt('', 'Unexpected argument: %s' % args)
+        return w.WEECHAT_RC_ERROR
     else:
         run = False
 
+    # Old behaviour: doesn't save empty channel list
+    # In fact should also save open buffers with a /part'ed channel
+    # But I can't believe somebody would want that behaviour
+    items = find_channels()
+
     # print/execute commands
     for server, channels in items.items():
         process_server(server, channels, run)
 
     return w.WEECHAT_RC_OK
 
+
 def process_server(server, channels, run=True):
-        option   = "irc.server.%s.autojoin" % server
-        channels = channels.rstrip(',')
-        oldchans = w.config_string(w.config_get(option))
-
-        if not channels: # empty channel list
-            return
-
-        # Note: re already caches the result of regexp compilation
-        sec = re.match('^\${sec\.data\.(.*)}$', oldchans)
-        if sec:
-            secvar = sec.group(1)
-            command = "/secure set %s %s" % (secvar, channels)
-        else:
-            command = "/set irc.server.%s.autojoin '%s'" % (server, channels)
-
-        if run:
-            w.command('', command)
-        else:
-            w.prnt('', command)
+    option = "irc.server.%s.autojoin" % server
+    channels = channels.rstrip(',')
+    oldchans = w.config_string(w.config_get(option))
+
+    if not channels:  # empty channel list
+        return
+
+    # Note: re already caches the result of regexp compilation
+    sec = re.match('^\${sec\.data\.(.*)}$', oldchans)
+    if sec:
+        secvar = sec.group(1)
+        command = "/secure set %s %s" % (secvar, channels)
+    else:
+        command = "/set irc.server.%s.autojoin '%s'" % (server, channels)
+
+    if run:
+        w.command('', command)
+    else:
+        w.prnt('', command)
+
 
 def find_channels():
     """Return list of servers and channels"""
-    #@TODO: make it return a dict with more options like "nicks_count etc."
+    # TODO: make it return a dict with more options like "nicks_count etc."
     items = {}
     infolist = w.infolist_get('irc_server', '', '')
     # populate servers
@@ -175,18 +185,18 @@ def find_channels():
         keys = []
         keyed_channels = []
         unkeyed_channels = []
-        items[server] = '' #init if connected but no channels
+        items[server] = ''  # init if connected but no channels
         infolist = w.infolist_get('irc_channel', '',  server)
         while w.infolist_next(infolist):
             if w.infolist_integer(infolist, 'nicks_count') == 0:
-                #parted but still open in a buffer: bit hackish
+                # parted but still open in a buffer: bit hackish
                 continue
             if w.infolist_integer(infolist, 'type') == 0:
                 key = w.infolist_string(infolist, "key")
                 if len(key) > 0:
                     keys.append(key)
                     keyed_channels.append(w.infolist_string(infolist, "name"))
-                else :
+                else:
                     unkeyed_channels.append(w.infolist_string(infolist, "name"))
         items[server] = ','.join(keyed_channels + unkeyed_channels)
         if len(keys) > 0:
@@ -194,4 +204,3 @@ def find_channels():
         w.infolist_free(infolist)
 
     return items
-
diff --git a/weechat/.weechat/python/completion.py b/weechat/.weechat/python/completion.py
index 62a69ae..e4d6402 100644
--- a/weechat/.weechat/python/completion.py
+++ b/weechat/.weechat/python/completion.py
@@ -31,6 +31,10 @@
 #
 #
 #   History:
+#   2019-08-20
+#   version 0.3: Ben Harris (benharri)
+#   * port for python3
+#
 #   2010-05-08
 #   version 0.2:
 #   * complete any word behind the cursor, not just the last one in input line.
@@ -46,13 +50,13 @@ try:
     WEECHAT_RC_OK = weechat.WEECHAT_RC_OK
     import_ok = True
 except ImportError:
-    print "This script must be run under WeeChat."
-    print "Get WeeChat now at: http://www.weechat.org/"
+    print("This script must be run under WeeChat.")
+    print("Get WeeChat now at: http://www.weechat.org/")
     import_ok = False
 
 SCRIPT_NAME    = "completion"
 SCRIPT_AUTHOR  = "Elián Hanisch <lambdae2@gmail.com>"
-SCRIPT_VERSION = "0.2"
+SCRIPT_VERSION = "0.3"
 SCRIPT_LICENSE = "GPL3"
 SCRIPT_DESC    = "Word completions for WeeChat"
 SCRIPT_COMMAND = "completion"
@@ -63,16 +67,6 @@ settings = {
 }
 
 ### Messages ###
-def decode(s):
-    if isinstance(s, str):
-        s = s.decode('utf-8')
-    return s
-
-def encode(u):
-    if isinstance(u, unicode):
-        u = u.encode('utf-8')
-    return u
-
 def debug(s, prefix='', buffer=None):
     """Debug msg"""
     #if not weechat.config_get_plugin('debug'): return
@@ -84,13 +78,11 @@ def debug(s, prefix='', buffer=None):
             weechat.buffer_set(buffer, 'nicklist', '0')
             weechat.buffer_set(buffer, 'time_for_each_line', '0')
             weechat.buffer_set(buffer, 'localvar_set_no_log', '1')
-    s = encode(s)
     weechat.prnt(buffer, '%s\t%s' %(prefix, s))
 
 def error(s, prefix=None, buffer='', trace=''):
     """Error msg"""
     prefix = prefix or script_nick
-    s = encode(s)
     weechat.prnt(buffer, '%s%s %s' %(weechat.prefix('error'), prefix, s))
     if weechat.config_get_plugin('debug'):
         if not trace:
@@ -102,67 +94,34 @@ def error(s, prefix=None, buffer='', trace=''):
 def say(s, prefix=None, buffer=''):
     """normal msg"""
     prefix = prefix or script_nick
-    s = encode(s)
     weechat.prnt(buffer, '%s\t%s' %(prefix, s))
 
 print_replace = lambda k,v : say('%s %s=>%s %s' %(k, color_delimiter, color_reset, v))
 
 ### Config functions ###
-class UTFDict(dict):
-    decode = staticmethod(decode)
-    encode = staticmethod(encode)
-
-    def __init__(self, d={}):
-        dict.__init__(self)
-        for k, v in d.iteritems():
-            self[k] = v
-
-    def __setitem__(self, k, v):
-        k = self.decode(k)
-        v = self.decode(v)
-        dict.__setitem__(self, k, v)
-
-    def __getitem__(self, k):
-        k = self.decode(k)
-        return dict.__getitem__(self, k)
-
-    def __delitem__(self, k):
-        k = self.decode(k)
-        dict.__delitem__(self, k)
-
-    def __contains__(self, k):
-        k = self.decode(k)
-        return dict.__contains__(self, k)
-
-    def __str__(self):
-        values = [ '%s=>%s' %(k, v) for k, v in self.iteritems() ]
-        values = ';;'.join(values)
-        return self.encode(values)
-
-
 def get_config_dict(config):
     value = weechat.config_get_plugin(config)
     if not value:
         return {}
-    values = value.split(';;')
-    values = map(lambda s: s.split('=>'), values)
+    values = [s.split('=>') for s in value.split(';;')]
     #debug(values)
     return dict(values)
 
 def load_replace_table():
     global replace_table
-    replace_table = UTFDict(get_config_dict('replace_values'))
+    replace_table = dict(get_config_dict('replace_values'))
 
 def save_replace_table():
     global replace_table
-    weechat.config_set_plugin('replace_values', str(replace_table))
+    weechat.config_set_plugin('replace_values',
+            ';;'.join(['%s=>%s' %(k, v) for k, v in replace_table.items()]))
 
 ### Commands ###
 def cmd_completion(data, buffer, args):
     global replace_table
     if not args:
         if replace_table:
-            for k, v in replace_table.iteritems():
+            for k, v in replace_table.items():
                 print_replace(k, v)
         else:
             say('No completions.')
@@ -189,7 +148,7 @@ def cmd_completion(data, buffer, args):
 def completion_replacer(data, completion_item, buffer, completion):
     global replace_table
     pos = weechat.buffer_get_integer(buffer, 'input_pos')
-    input = decode(weechat.buffer_get_string(buffer, 'input'))
+    input = weechat.buffer_get_string(buffer, 'input')
     #debug('%r %s %s' %(input, len(input), pos))
     if pos > 0 and (pos == len(input) or input[pos] == ' '):
         n = input.rfind(' ', 0, pos)
@@ -202,14 +161,14 @@ def completion_replacer(data, completion_item, buffer, completion):
                 replace += ' '
             n = len(word)
             input = '%s%s%s' %(input[:pos-n], replace, input[pos:])
-            weechat.buffer_set(buffer, 'input', encode(input))
+            weechat.buffer_set(buffer, 'input', input)
             weechat.buffer_set(buffer, 'input_pos', str(pos - n + len(replace)))
     return WEECHAT_RC_OK
 
 def completion_keys(data, completion_item, buffer, completion):
     global replace_table
     for k in replace_table:
-        weechat.hook_completion_list_add(completion, encode(k), 0, weechat.WEECHAT_LIST_POS_SORT)
+        weechat.hook_completion_list_add(completion, k, 0, weechat.WEECHAT_LIST_POS_SORT)
     return WEECHAT_RC_OK
 
 ### Main ###
@@ -231,7 +190,7 @@ if __name__ == '__main__' and import_ok and \
         error('WeeChat 0.3.1 or newer is required for this script.')
     else:
         # settings
-        for opt, val in settings.iteritems():
+        for opt, val in settings.items():
             if not weechat.config_is_set_plugin(opt):
                 weechat.config_set_plugin(opt, val)
 
diff --git a/weechat/.weechat/python/go.py b/weechat/.weechat/python/go.py
index a30f58f..2ab47ed 100644
--- a/weechat/.weechat/python/go.py
+++ b/weechat/.weechat/python/go.py
@@ -21,6 +21,8 @@
 #
 # History:
 #
+# 2019-07-11, Simmo Saan <simmo.saan@gmail.com>
+#     version 2.6: fix detection of "/input search_text_here"
 # 2017-04-01, Sébastien Helleu <flashcode@flashtux.org>:
 #     version 2.5: add option "buffer_number"
 # 2017-03-02, Sébastien Helleu <flashcode@flashtux.org>:
@@ -92,7 +94,7 @@ from __future__ import print_function
 
 SCRIPT_NAME = 'go'
 SCRIPT_AUTHOR = 'Sébastien Helleu <flashcode@flashtux.org>'
-SCRIPT_VERSION = '2.5'
+SCRIPT_VERSION = '2.6'
 SCRIPT_LICENSE = 'GPL3'
 SCRIPT_DESC = 'Quick jump to buffers'
 
@@ -480,7 +482,7 @@ def go_input_modifier(data, modifier, modifier_data, string):
 def go_command_run_input(data, buf, command):
     """Function called when a command "/input xxx" is run."""
     global buffers, buffers_pos
-    if command == '/input search_text' or command.find('/input jump') == 0:
+    if command.startswith('/input search_text') or command.startswith('/input jump'):
         # search text or jump to another buffer is forbidden now
         return weechat.WEECHAT_RC_OK_EAT
     elif command == '/input complete_next':
diff --git a/weechat/.weechat/python/grep.py b/weechat/.weechat/python/grep.py
index 1941531..64dbc52 100644
--- a/weechat/.weechat/python/grep.py
+++ b/weechat/.weechat/python/grep.py
@@ -69,6 +69,10 @@
 #
 #   History:
 #
+#   2019-06-30, dabbill <dabbill@gmail.com>
+#               and Sébastien Helleu <flashcode@flashtux.org>
+#   version 0.8.2: make script compatible with Python 3
+#
 #   2018-04-10, Sébastien Helleu <flashcode@flashtux.org>
 #   version 0.8.1: fix infolist_time for WeeChat >= 2.2 (WeeChat returns a long
 #                  integer instead of a string)
@@ -117,9 +121,9 @@
 #   * supress highlights when printing in grep buffer
 #
 #   2010-10-06
-#   version 0.6.7: by xt <xt@bash.no> 
+#   version 0.6.7: by xt <xt@bash.no>
 #   * better temporary file:
-#    use tempfile.mkstemp. to create a temp file in log dir, 
+#    use tempfile.mkstemp. to create a temp file in log dir,
 #    makes it safer with regards to write permission and multi user
 #
 #   2010-04-08
@@ -226,7 +230,7 @@ except ImportError:
 
 SCRIPT_NAME    = "grep"
 SCRIPT_AUTHOR  = "Elián Hanisch <lambdae2@gmail.com>"
-SCRIPT_VERSION = "0.8.1"
+SCRIPT_VERSION = "0.8.2"
 SCRIPT_LICENSE = "GPL3"
 SCRIPT_DESC    = "Search in buffers and logs"
 SCRIPT_COMMAND = "grep"
@@ -259,14 +263,14 @@ class linesDict(dict):
     def get_matches_count(self):
         """Return the sum of total matches stored."""
         if dict.__len__(self):
-            return sum(map(lambda L: L.matches_count, self.itervalues()))
+            return sum(map(lambda L: L.matches_count, self.values()))
         else:
             return 0
 
     def __len__(self):
         """Return the sum of total lines stored."""
         if dict.__len__(self):
-            return sum(map(len, self.itervalues()))
+            return sum(map(len, self.values()))
         else:
             return 0
 
@@ -274,7 +278,7 @@ class linesDict(dict):
         """Returns buffer count or buffer name if there's just one stored."""
         n = len(self.keys())
         if n == 1:
-            return self.keys()[0]
+            return list(self.keys())[0]
         elif n > 1:
             return '%s logs' %n
         else:
@@ -282,18 +286,18 @@ class linesDict(dict):
 
     def items(self):
         """Returns a list of items sorted by line count."""
-        items = dict.items(self)
+        items = list(dict.items(self))
         items.sort(key=lambda i: len(i[1]))
         return items
 
     def items_count(self):
         """Returns a list of items sorted by match count."""
-        items = dict.items(self)
+        items = list(dict.items(self))
         items.sort(key=lambda i: i[1].matches_count)
         return items
 
     def strip_separator(self):
-        for L in self.itervalues():
+        for L in self.values():
             L.strip_separator()
 
     def get_last_lines(self, n):
@@ -302,7 +306,7 @@ class linesDict(dict):
         if n >= total_lines:
             # nothing to do
             return
-        for k, v in reversed(self.items()):
+        for k, v in reversed(list(self.items())):
             l = len(v)
             if n > 0:
                 if l > n:
@@ -487,7 +491,7 @@ def dir_list(dir, filter_list=(), filter_excludes=True, include_dir=False):
         return cache_dir[key]
     except KeyError:
         pass
-    
+
     filter_list = filter_list or get_config_log_filter()
     dir_len = len(dir)
     if filter_list:
@@ -657,8 +661,8 @@ def make_regexp(pattern, matchcase=False):
             regexp = re.compile(pattern, re.IGNORECASE)
         else:
             regexp = re.compile(pattern)
-    except Exception, e:
-        raise Exception, 'Bad pattern, %s' %e
+    except Exception as e:
+        raise Exception('Bad pattern, %s' % e)
     return regexp
 
 def check_string(s, regexp, hilight='', exact=False):
@@ -716,7 +720,7 @@ def grep_file(file, head, tail, after_context, before_context, count, regexp, hi
                 return s
     else:
         check = lambda s: check_string(s, regexp, hilight, exact)
-    
+
     try:
         file_object = open(file, 'r')
     except IOError:
@@ -736,7 +740,7 @@ def grep_file(file, head, tail, after_context, before_context, count, regexp, hi
             before_context, after_context = after_context, before_context
 
         if before_context:
-            before_context_range = range(1, before_context + 1)
+            before_context_range = list(range(1, before_context + 1))
             before_context_range.reverse()
 
         limit = tail or head
@@ -800,7 +804,7 @@ def grep_file(file, head, tail, after_context, before_context, count, regexp, hi
                     while id < after_context + offset:
                         id += 1
                         try:
-                            context_line = file_object.next()
+                            context_line = next(file_object)
                             _context_line = check(context_line)
                             if _context_line:
                                 offset = id
@@ -1002,7 +1006,7 @@ def grep_process(*args):
         global grep_options, log_pairs
         for log_name, log in log_pairs:
             result[log_name] = grep_file(log, *grep_options)
-    except Exception, e:
+    except Exception as e:
         result = e
 
     return pickle.dumps(result)
@@ -1038,7 +1042,7 @@ def grep_process_cb(data, command, return_code, out, err):
             if isinstance(data, Exception):
                 raise data
             matched_lines.update(data)
-        except Exception, e:
+        except Exception as e:
             set_buffer_error(repr(e))
             return WEECHAT_RC_OK
         else:
@@ -1180,7 +1184,7 @@ def buffer_update():
 
     # free matched_lines so it can be removed from memory
     del matched_lines
-    
+
 def split_line(s):
     """Splits log's line 's' in 3 parts, date, nick and msg."""
     global weechat_format
@@ -1280,12 +1284,12 @@ def buffer_input(data, buffer, input_data):
                 weechat.infolist_free(infolist)
             try:
                 cmd_grep_parsing(input_data)
-            except Exception, e:
-                error('Argument error, %s' %e, buffer=buffer)
+            except Exception as e:
+                error('Argument error, %s' % e, buffer=buffer)
                 return WEECHAT_RC_OK
             try:
                 show_matching_lines()
-            except Exception, e:
+            except Exception as e:
                 error(e)
     except NameError:
         error("There isn't any previous search to repeat.", buffer=buffer)
@@ -1342,11 +1346,11 @@ def cmd_grep_parsing(args):
 
     args = ' '.join(args) # join pattern for keep spaces
     if args:
-        pattern_tmpl = args  
+        pattern_tmpl = args
         pattern = _tmplRe.sub(tmplReplacer, args)
         debug('Using regexp: %s', pattern)
     if not pattern:
-        raise Exception, 'No pattern for grep the logs.'
+        raise Exception('No pattern for grep the logs.')
 
     def positive_number(opt, val):
         try:
@@ -1359,7 +1363,7 @@ def cmd_grep_parsing(args):
                 opt = '-' + opt
             else:
                 opt = '--' + opt
-            raise Exception, "argument for %s must be a positive integer." %opt
+            raise Exception("argument for %s must be a positive integer." % opt)
 
     for opt, val in opts:
         opt = opt.strip('-')
@@ -1454,8 +1458,8 @@ def cmd_grep(data, buffer, args):
     # parse
     try:
         cmd_grep_parsing(args)
-    except Exception, e:
-        error('Argument error, %s' %e)
+    except Exception as e:
+        error('Argument error, %s' % e)
         return WEECHAT_RC_OK
 
     # find logs
@@ -1501,7 +1505,7 @@ def cmd_grep(data, buffer, args):
     # grepping
     try:
         show_matching_lines()
-    except Exception, e:
+    except Exception as e:
         error(e)
     return WEECHAT_RC_OK
 
@@ -1520,8 +1524,8 @@ def cmd_logs(data, buffer, args):
             opt = opt.strip('-')
             if opt in ('size', 's'):
                 sort_by_size = True
-    except Exception, e:
-        error('Argument error, %s' %e)
+    except Exception as e:
+        error('Argument error, %s' % e)
         return WEECHAT_RC_OK
 
     # is there's a filter, filter_excludes should be False
@@ -1703,7 +1707,7 @@ Examples:
             'completion_grep_args', '')
 
     # settings
-    for opt, val in settings.iteritems():
+    for opt, val in settings.items():
         if not weechat.config_is_set_plugin(opt):
             weechat.config_set_plugin(opt, val)
 
@@ -1716,7 +1720,7 @@ Examples:
     color_summary     = weechat.color('lightcyan')
     color_delimiter   = weechat.color('chat_delimiters')
     color_script_nick = weechat.color('chat_nick')
-    
+
     # pretty [grep]
     script_nick = '%s[%s%s%s]%s' %(color_delimiter, color_script_nick, SCRIPT_NAME, color_delimiter,
             color_reset)
diff --git a/weechat/.weechat/weechat.conf b/weechat/.weechat/weechat.conf
index 124682c..de29fda 100644
--- a/weechat/.weechat/weechat.conf
+++ b/weechat/.weechat/weechat.conf
@@ -354,9 +354,11 @@ default.current = on
 
 [notify]
 irc.bitlbee = highlight
+perl.highmon = none
 
 [filter]
 irc_smart = on;*;irc_smart_filter;*
+markov_bitbot = on;irc.tilde.*;irc_privmsg;^,m(\s|arkov)|^\[Markov\]
 
 [key]
 ctrl-? = "/input delete_previous_char"