mirror of https://tildegit.org/ben/dotfiles
58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
|
# This weechat plugin pipes the current weechat buffer through urlview
|
||
|
#
|
||
|
# Usage:
|
||
|
# /urlview
|
||
|
#
|
||
|
# History:
|
||
|
# 10-04-2015
|
||
|
# Version 1.0.0: initial release
|
||
|
# Version 1.0.1: reverse text passed to urlview
|
||
|
# Version 1.0.2: remove weechat color from messages
|
||
|
|
||
|
import distutils.spawn
|
||
|
import os
|
||
|
import pipes
|
||
|
import weechat
|
||
|
|
||
|
|
||
|
def urlview(data, buf, args):
|
||
|
infolist = weechat.infolist_get("buffer_lines", buf, "")
|
||
|
lines = []
|
||
|
while weechat.infolist_next(infolist) == 1:
|
||
|
lines.append(
|
||
|
weechat.string_remove_color(
|
||
|
weechat.infolist_string(infolist, "message"),
|
||
|
""
|
||
|
)
|
||
|
)
|
||
|
|
||
|
weechat.infolist_free(infolist)
|
||
|
|
||
|
if not lines:
|
||
|
weechat.prnt(buf, "No URLs found")
|
||
|
return weechat.WEECHAT_RC_OK
|
||
|
|
||
|
text = "\n".join(reversed(lines))
|
||
|
response = os.system("echo %s | urlview" % pipes.quote(text))
|
||
|
if response != 0:
|
||
|
weechat.prnt(buf, "No URLs found")
|
||
|
|
||
|
weechat.command(buf, "/window refresh")
|
||
|
|
||
|
return weechat.WEECHAT_RC_OK
|
||
|
|
||
|
|
||
|
def main():
|
||
|
if distutils.spawn.find_executable("urlview") is None:
|
||
|
return weechat.WEECHAT_RC_ERROR
|
||
|
|
||
|
if not weechat.register("urlview", "Keith Smiley", "1.0.2", "MIT",
|
||
|
"Use urlview on the current buffer", "", ""):
|
||
|
return weechat.WEECHAT_RC_ERROR
|
||
|
|
||
|
weechat.hook_command("urlview", "Pass the current buffer to urlview", "",
|
||
|
"", "", "urlview", "")
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|