Skip to content

Instantly share code, notes, and snippets.

@draggor
Last active August 6, 2019 17:26
Show Gist options
  • Save draggor/a68897f2d67f114a8dc6fdbe6e193d3f to your computer and use it in GitHub Desktop.
Save draggor/a68897f2d67f114a8dc6fdbe6e193d3f to your computer and use it in GitHub Desktop.
weechat base33 numbering
import weechat
BASE = '0123456789abcdefghjkmnpqrstuvwxyz'
def str_base_33(number, base):
(d,m) = divmod(number,len(base))
if d > 0:
return str_base_33(d,base)+base[m]
return base[m]
def base33(data, info_name, arguments):
if not arguments.strip():
return arguments
return str_base_33(int(arguments), BASE)
def str_base_10(number, base):
num = 0
for power,digit in enumerate(number[::-1]):
num += base.index(digit) * len(base)**power
return str(num)
def base10(data, info_name, arguments):
if not arguments.strip():
return arguments
return str_base_10(arguments, BASE)
weechat.register("infos", "v", "1", "MIT", "", "", "")
weechat.hook_info("base33", "convert base10 string to base33", "value", "base33", "")
weechat.hook_info("base10", "convert base33 string to base10", "value", "base10", "")
/set buflist.format.number ${color:green}${info:base33,${number}}${if:${number_displayed}?.:}`

/trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9a-zA-Z]+$" "=\/([0-9a-zA-Z]+)=/buffer *${info:base10,${re:1}}=" "" "" "none"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment