mirror of https://tildegit.org/ben/dotfiles
latest weechat
parent
174197f597
commit
3387e124d2
|
@ -36,4 +36,4 @@ indent = "${color:237}${if:${buffer.next_buffer.local_variables.type}=~^(channel
|
||||||
lag = " ${color:green}[${color:brown}${lag}${color:green}]"
|
lag = " ${color:green}[${color:brown}${lag}${color:green}]"
|
||||||
name = "${name}"
|
name = "${name}"
|
||||||
nick_prefix = "${color_nick_prefix}${nick_prefix}"
|
nick_prefix = "${color_nick_prefix}${nick_prefix}"
|
||||||
number = "${color:green}${number}${if:${number_displayed}?:}"
|
number = "${color:green}${number}"
|
||||||
|
|
|
@ -112,7 +112,7 @@ whois_double_nick = off
|
||||||
addresses = ""
|
addresses = ""
|
||||||
anti_flood_prio_high = 2
|
anti_flood_prio_high = 2
|
||||||
anti_flood_prio_low = 2
|
anti_flood_prio_low = 2
|
||||||
autoconnect = off
|
autoconnect = on
|
||||||
autojoin = ""
|
autojoin = ""
|
||||||
autoreconnect = on
|
autoreconnect = on
|
||||||
autoreconnect_delay = 10
|
autoreconnect_delay = 10
|
||||||
|
@ -156,7 +156,7 @@ tilde.addresses = "localhost"
|
||||||
tilde.proxy
|
tilde.proxy
|
||||||
tilde.ipv6
|
tilde.ipv6
|
||||||
tilde.ssl = off
|
tilde.ssl = off
|
||||||
tilde.ssl_cert
|
tilde.ssl_cert = "%h/ssl/benharri.pem"
|
||||||
tilde.ssl_priorities
|
tilde.ssl_priorities
|
||||||
tilde.ssl_dhkey_size
|
tilde.ssl_dhkey_size
|
||||||
tilde.ssl_fingerprint
|
tilde.ssl_fingerprint
|
||||||
|
@ -180,7 +180,7 @@ tilde.local_hostname
|
||||||
tilde.usermode
|
tilde.usermode
|
||||||
tilde.command = "/oper root ${sec.data.tildenetoper}; /msg operserv login ${sec.data.pass}"
|
tilde.command = "/oper root ${sec.data.tildenetoper}; /msg operserv login ${sec.data.pass}"
|
||||||
tilde.command_delay
|
tilde.command_delay
|
||||||
tilde.autojoin = "#opers,#secret-sudoers,#meta,#team,#sudoers,#YourTilde,#chaos,#bots,#music,#share,#stevenuniverse,#suwp,#projects,#politics,#dnd,#journal,#shitposting,#quotes,#gopher,#tildeverse,#venting,#idlerpg,#tilderadio,#zaphod,#thunix,#yee,#modded,#minecraft,#minetest,#bbj,#tildelinux,#tildetheater,#slbr youneedtoknowthepassword,secretsudoteam"
|
tilde.autojoin = "#chaos,#secret-sudoers,#opers,#meta,#team,#sudoers,#YourTilde,#bots,#music,#share,#stevenuniverse,#suwp,#projects,#politics,#dnd,#journal,#shitposting,#quotes,#gopher,#tildeverse,#venting,#idlerpg,#tilderadio,#zaphod,#thunix,#yee,#modded,#minecraft,#minetest,#bbj,#tildelinux,#tildetheater,#slbr fosslinux,secretsudoteam,youneedtoknowthepassword"
|
||||||
tilde.autorejoin
|
tilde.autorejoin
|
||||||
tilde.autorejoin_delay
|
tilde.autorejoin_delay
|
||||||
tilde.connection_timeout
|
tilde.connection_timeout
|
||||||
|
@ -344,7 +344,7 @@ sdf.local_hostname
|
||||||
sdf.usermode
|
sdf.usermode
|
||||||
sdf.command
|
sdf.command
|
||||||
sdf.command_delay
|
sdf.command_delay
|
||||||
sdf.autojoin = "#helpdesk,#anonradio,#gopher,#sdf"
|
sdf.autojoin = "#sdf,#gopher,#anonradio,#helpdesk"
|
||||||
sdf.autorejoin
|
sdf.autorejoin
|
||||||
sdf.autorejoin_delay
|
sdf.autorejoin_delay
|
||||||
sdf.connection_timeout
|
sdf.connection_timeout
|
||||||
|
@ -521,47 +521,6 @@ blinkenshell.msg_part
|
||||||
blinkenshell.msg_quit
|
blinkenshell.msg_quit
|
||||||
blinkenshell.notify
|
blinkenshell.notify
|
||||||
blinkenshell.split_msg_max_length
|
blinkenshell.split_msg_max_length
|
||||||
dgrove.addresses = "irc.dannygrove.com/6697"
|
|
||||||
dgrove.proxy
|
|
||||||
dgrove.ipv6
|
|
||||||
dgrove.ssl = on
|
|
||||||
dgrove.ssl_cert
|
|
||||||
dgrove.ssl_priorities
|
|
||||||
dgrove.ssl_dhkey_size
|
|
||||||
dgrove.ssl_fingerprint
|
|
||||||
dgrove.ssl_verify
|
|
||||||
dgrove.password
|
|
||||||
dgrove.capabilities
|
|
||||||
dgrove.sasl_mechanism
|
|
||||||
dgrove.sasl_username
|
|
||||||
dgrove.sasl_password
|
|
||||||
dgrove.sasl_key
|
|
||||||
dgrove.sasl_timeout
|
|
||||||
dgrove.sasl_fail
|
|
||||||
dgrove.autoconnect
|
|
||||||
dgrove.autoreconnect
|
|
||||||
dgrove.autoreconnect_delay
|
|
||||||
dgrove.nicks
|
|
||||||
dgrove.nicks_alternate
|
|
||||||
dgrove.username
|
|
||||||
dgrove.realname
|
|
||||||
dgrove.local_hostname
|
|
||||||
dgrove.usermode
|
|
||||||
dgrove.command
|
|
||||||
dgrove.command_delay
|
|
||||||
dgrove.autojoin
|
|
||||||
dgrove.autorejoin
|
|
||||||
dgrove.autorejoin_delay
|
|
||||||
dgrove.connection_timeout
|
|
||||||
dgrove.anti_flood_prio_high
|
|
||||||
dgrove.anti_flood_prio_low
|
|
||||||
dgrove.away_check
|
|
||||||
dgrove.away_check_max_nicks
|
|
||||||
dgrove.msg_kick
|
|
||||||
dgrove.msg_part
|
|
||||||
dgrove.msg_quit
|
|
||||||
dgrove.notify
|
|
||||||
dgrove.split_msg_max_length
|
|
||||||
cat.addresses = "tilde.cat"
|
cat.addresses = "tilde.cat"
|
||||||
cat.proxy
|
cat.proxy
|
||||||
cat.ipv6
|
cat.ipv6
|
||||||
|
@ -644,3 +603,44 @@ bitlbee.msg_part
|
||||||
bitlbee.msg_quit
|
bitlbee.msg_quit
|
||||||
bitlbee.notify
|
bitlbee.notify
|
||||||
bitlbee.split_msg_max_length
|
bitlbee.split_msg_max_length
|
||||||
|
inspircd.addresses = "irc.inspircd.org"
|
||||||
|
inspircd.proxy
|
||||||
|
inspircd.ipv6
|
||||||
|
inspircd.ssl
|
||||||
|
inspircd.ssl_cert
|
||||||
|
inspircd.ssl_priorities
|
||||||
|
inspircd.ssl_dhkey_size
|
||||||
|
inspircd.ssl_fingerprint
|
||||||
|
inspircd.ssl_verify
|
||||||
|
inspircd.password
|
||||||
|
inspircd.capabilities
|
||||||
|
inspircd.sasl_mechanism
|
||||||
|
inspircd.sasl_username = "benharri"
|
||||||
|
inspircd.sasl_password = "${sec.data.pass}"
|
||||||
|
inspircd.sasl_key
|
||||||
|
inspircd.sasl_timeout
|
||||||
|
inspircd.sasl_fail
|
||||||
|
inspircd.autoconnect = on
|
||||||
|
inspircd.autoreconnect
|
||||||
|
inspircd.autoreconnect_delay
|
||||||
|
inspircd.nicks = "benharri"
|
||||||
|
inspircd.nicks_alternate
|
||||||
|
inspircd.username
|
||||||
|
inspircd.realname
|
||||||
|
inspircd.local_hostname
|
||||||
|
inspircd.usermode
|
||||||
|
inspircd.command
|
||||||
|
inspircd.command_delay
|
||||||
|
inspircd.autojoin = "#inspircd"
|
||||||
|
inspircd.autorejoin
|
||||||
|
inspircd.autorejoin_delay
|
||||||
|
inspircd.connection_timeout
|
||||||
|
inspircd.anti_flood_prio_high
|
||||||
|
inspircd.anti_flood_prio_low
|
||||||
|
inspircd.away_check
|
||||||
|
inspircd.away_check_max_nicks
|
||||||
|
inspircd.msg_kick
|
||||||
|
inspircd.msg_part
|
||||||
|
inspircd.msg_quit
|
||||||
|
inspircd.notify
|
||||||
|
inspircd.split_msg_max_length
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../buffer_autoclose.py
|
|
@ -0,0 +1,137 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Copyright (c) 2009 by xt <xt@bash.no>
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# (this script requires WeeChat 0.3.0 or newer)
|
||||||
|
#
|
||||||
|
# History:
|
||||||
|
# 2018-04-10, Sébastien Helleu <flashcode@flashtux.org>
|
||||||
|
# version 0.5: fix infolist_time for WeeChat >= 2.2 (WeeChat returns a long
|
||||||
|
# integer instead of a string)
|
||||||
|
# 2016-02-05, ixti
|
||||||
|
# version 0.4: Add Python3 support
|
||||||
|
# 2009-12-15, xt
|
||||||
|
# version 0.3: moved around some control structures to not be as noisy
|
||||||
|
# 2009-12-02, xt
|
||||||
|
# version 0.2: bugfix, more printing
|
||||||
|
# 2009-12-01, xt <xt@bash.no>
|
||||||
|
# version 0.1: initial release
|
||||||
|
|
||||||
|
import weechat as w
|
||||||
|
import time
|
||||||
|
|
||||||
|
SCRIPT_NAME = "buffer_autoclose"
|
||||||
|
SCRIPT_AUTHOR = "xt <xt@bash.no>"
|
||||||
|
SCRIPT_VERSION = "0.5"
|
||||||
|
SCRIPT_LICENSE = "GPL3"
|
||||||
|
SCRIPT_DESC = "Automatically close inactive private message buffers"
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
'interval': '1', # How often in minutes to check
|
||||||
|
'age_limit': '30', # How old in minutes before auto close
|
||||||
|
'ignore': '', # Buffers to ignore (use full name: server.buffer_name)
|
||||||
|
}
|
||||||
|
|
||||||
|
if w.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, SCRIPT_LICENSE,
|
||||||
|
SCRIPT_DESC, "", ""):
|
||||||
|
for option, default_value in settings.items():
|
||||||
|
if not w.config_is_set_plugin(option):
|
||||||
|
w.config_set_plugin(option, default_value)
|
||||||
|
w.hook_timer(\
|
||||||
|
int(w.config_get_plugin('interval')) * 1000 * 60,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
"close_time_cb",
|
||||||
|
'')
|
||||||
|
|
||||||
|
|
||||||
|
def get_all_buffers():
|
||||||
|
'''Returns list with pointers of all open buffers.'''
|
||||||
|
buffers = []
|
||||||
|
infolist = w.infolist_get('buffer', '', '')
|
||||||
|
while w.infolist_next(infolist):
|
||||||
|
buffer_type = w.buffer_get_string(w.infolist_pointer(infolist, 'pointer'), 'localvar_type')
|
||||||
|
if buffer_type == 'private': # we only close private message buffers for now
|
||||||
|
buffers.append(w.infolist_pointer(infolist, 'pointer'))
|
||||||
|
w.infolist_free(infolist)
|
||||||
|
return buffers
|
||||||
|
|
||||||
|
def get_last_line_date(buffer):
|
||||||
|
date = '1970-01-01 01:00:00'
|
||||||
|
infolist = w.infolist_get('buffer_lines', buffer, '')
|
||||||
|
while w.infolist_prev(infolist):
|
||||||
|
date = w.infolist_time(infolist, 'date')
|
||||||
|
# since WeeChat 2.2, infolist_time returns a long integer instead of
|
||||||
|
# a string
|
||||||
|
if not isinstance(date, str):
|
||||||
|
date = time.strftime('%F %T', time.localtime(int(date)))
|
||||||
|
if date != '1970-01-01 01:00:00':
|
||||||
|
# Some lines like "Day changed to" message doesn't have date
|
||||||
|
# set so loop until we find a message that does
|
||||||
|
break
|
||||||
|
w.infolist_free(infolist)
|
||||||
|
return date
|
||||||
|
|
||||||
|
def is_in_hotlist(buffer):
|
||||||
|
''' Returns true if buffer is in hotlist, false if not'''
|
||||||
|
|
||||||
|
hotlist = w.infolist_get('hotlist', '', '')
|
||||||
|
found = False
|
||||||
|
while w.infolist_next(hotlist):
|
||||||
|
thebuffer = w.infolist_pointer(hotlist, 'buffer_pointer')
|
||||||
|
if thebuffer == buffer:
|
||||||
|
found = True
|
||||||
|
name = w.buffer_get_string(thebuffer, 'short_name')
|
||||||
|
break
|
||||||
|
|
||||||
|
w.infolist_free(hotlist)
|
||||||
|
return found
|
||||||
|
|
||||||
|
def close_time_cb(buffer, args):
|
||||||
|
''' Callback for check for inactivity and close '''
|
||||||
|
|
||||||
|
for buffer in get_all_buffers():
|
||||||
|
name = w.buffer_get_string(buffer, 'name')
|
||||||
|
|
||||||
|
|
||||||
|
date = get_last_line_date(buffer)
|
||||||
|
date = time.mktime(time.strptime(date, '%Y-%m-%d %H:%M:%S'))
|
||||||
|
now = time.time()
|
||||||
|
seconds_old = now - date
|
||||||
|
if seconds_old > int(w.config_get_plugin('age_limit'))*60:
|
||||||
|
if is_in_hotlist(buffer):
|
||||||
|
#w.prnt('', '%s: Not closing buffer: %s: it is in hotlist' %(SCRIPT_NAME, name))
|
||||||
|
continue
|
||||||
|
if name in w.config_get_plugin('ignore').split(','):
|
||||||
|
#w.prnt('', '%s: Not closing buffer: %s: it is in ignore list' %(SCRIPT_NAME, name))
|
||||||
|
continue
|
||||||
|
if buffer == w.current_buffer():
|
||||||
|
# Never close current buffer
|
||||||
|
#w.prnt('', '%s: Not closing buffer: %s: it is in currently active' %(SCRIPT_NAME, name))
|
||||||
|
continue
|
||||||
|
if len(w.buffer_get_string(buffer, 'input')):
|
||||||
|
# Don't close buffers with text on input line
|
||||||
|
#w.prnt('', '%s: Not closing buffer: %s: it has input' %(SCRIPT_NAME, name))
|
||||||
|
continue
|
||||||
|
|
||||||
|
w.prnt('', '%s: Closing buffer: %s' %(SCRIPT_NAME, name))
|
||||||
|
w.command(buffer, '/buffer close')
|
||||||
|
#else:
|
||||||
|
# w.prnt('', '%s: Not closing buffer: %s: it is too new: %s' %(SCRIPT_NAME, name, seconds_old))
|
||||||
|
|
||||||
|
return w.WEECHAT_RC_OK
|
|
@ -110,7 +110,7 @@ prefix_error = "=!="
|
||||||
prefix_join = "-->"
|
prefix_join = "-->"
|
||||||
prefix_network = "--"
|
prefix_network = "--"
|
||||||
prefix_quit = "<--"
|
prefix_quit = "<--"
|
||||||
prefix_same_nick = "-"
|
prefix_same_nick = "⤷"
|
||||||
prefix_suffix = "│"
|
prefix_suffix = "│"
|
||||||
quote_nick_prefix = "<"
|
quote_nick_prefix = "<"
|
||||||
quote_nick_suffix = ">"
|
quote_nick_suffix = ">"
|
||||||
|
|
Loading…
Reference in New Issue