Skip to content

Commit

Permalink
weechat stuff.
Browse files Browse the repository at this point in the history
  • Loading branch information
Pablo Flouret committed Jun 5, 2014
1 parent b3d12d5 commit c5f2887
Show file tree
Hide file tree
Showing 13 changed files with 660 additions and 17 deletions.
2 changes: 1 addition & 1 deletion .weechat/alias.conf
@@ -1,5 +1,5 @@
#
# alias.conf -- weechat v0.4.2
# alias.conf -- weechat v0.4.3
#

[cmd]
Expand Down
2 changes: 1 addition & 1 deletion .weechat/charset.conf
@@ -1,5 +1,5 @@
#
# charset.conf -- weechat v0.4.2
# charset.conf -- weechat v0.4.3
#

[default]
Expand Down
95 changes: 90 additions & 5 deletions .weechat/irc.conf
@@ -1,5 +1,5 @@
#
# irc.conf -- weechat v0.4.2
# irc.conf -- weechat v0.4.3
#

[look]
Expand All @@ -24,7 +24,7 @@ display_pv_back = on
highlight_channel = "$nick"
highlight_pv = "$nick"
highlight_server = "$nick"
highlight_tags = "irc_privmsg,irc_notice"
highlight_tags_restrict = "irc_privmsg,irc_notice"
item_away_message = on
item_channel_modes_hide_key = off
item_display_server = buffer_plugin
Expand All @@ -42,6 +42,7 @@ nick_mode_empty = off
nicks_hide_password = "nickserv"
notice_as_pv = auto
notice_welcome_redirect = on
notice_welcome_tags = ""
notify_tags_ison = "notify_message"
notify_tags_whois = "notify_message"
part_closes_buffer = off
Expand All @@ -53,6 +54,7 @@ smart_filter = on
smart_filter_delay = 5
smart_filter_join = on
smart_filter_join_unmask = 30
smart_filter_mode = "ovh"
smart_filter_nick = on
smart_filter_quit = on
topic_strip_colors = off
Expand All @@ -76,9 +78,11 @@ topic_old = darkgray
alternate_nick = on
autoreconnect_delay_growing = 2
autoreconnect_delay_max = 1800
ban_mask_default = "*!$user@$host"
colors_receive = on
colors_send = on
lag_check = 60
lag_max = 1800
lag_min_show = 1
lag_reconnect = 0
lag_refresh_interval = 1
Expand Down Expand Up @@ -109,11 +113,12 @@ capabilities = ""
command = ""
command_delay = 0
connection_timeout = 60
default_msg_kick = ""
default_msg_part = "WeeChat %v"
default_msg_quit = "WeeChat %v"
ipv6 = off
local_hostname = ""
nicks = "pablo_,pablo__pablof,pflouret,palbo"
nicks = "pablo,pablo_,pablof,pflouret,palbo"
notify = ""
password = ""
proxy = ""
Expand All @@ -125,6 +130,7 @@ sasl_username = ""
ssl = off
ssl_cert = ""
ssl_dhkey_size = 2048
ssl_fingerprint = ""
ssl_priorities = "NORMAL"
ssl_verify = on
username = "pflouret"
Expand All @@ -137,6 +143,7 @@ freenode.ssl
freenode.ssl_cert
freenode.ssl_priorities
freenode.ssl_dhkey_size
freenode.ssl_fingerprint
freenode.ssl_verify
freenode.password
freenode.capabilities
Expand All @@ -161,6 +168,7 @@ freenode.anti_flood_prio_high
freenode.anti_flood_prio_low
freenode.away_check
freenode.away_check_max_nicks
freenode.default_msg_kick
freenode.default_msg_part
freenode.default_msg_quit
freenode.notify
Expand All @@ -171,6 +179,7 @@ nullirc.ssl
nullirc.ssl_cert
nullirc.ssl_priorities
nullirc.ssl_dhkey_size
nullirc.ssl_fingerprint
nullirc.ssl_verify
nullirc.password
nullirc.capabilities
Expand All @@ -195,6 +204,7 @@ nullirc.anti_flood_prio_high
nullirc.anti_flood_prio_low
nullirc.away_check
nullirc.away_check_max_nicks
nullirc.default_msg_kick
nullirc.default_msg_part
nullirc.default_msg_quit
nullirc.notify
Expand All @@ -205,6 +215,7 @@ undernet.ssl
undernet.ssl_cert
undernet.ssl_priorities
undernet.ssl_dhkey_size
undernet.ssl_fingerprint
undernet.ssl_verify
undernet.password
undernet.capabilities
Expand All @@ -229,6 +240,7 @@ undernet.anti_flood_prio_high
undernet.anti_flood_prio_low
undernet.away_check
undernet.away_check_max_nicks
undernet.default_msg_kick
undernet.default_msg_part
undernet.default_msg_quit
undernet.notify
Expand All @@ -239,14 +251,15 @@ pandora.ssl
pandora.ssl_cert
pandora.ssl_priorities
pandora.ssl_dhkey_size
pandora.ssl_fingerprint
pandora.ssl_verify
pandora.password
pandora.capabilities
pandora.sasl_mechanism
pandora.sasl_username
pandora.sasl_password
pandora.sasl_timeout
pandora.autoconnect = on
pandora.autoconnect = off
pandora.autoreconnect
pandora.autoreconnect_delay
pandora.nicks
Expand All @@ -255,14 +268,86 @@ pandora.realname
pandora.local_hostname
pandora.command
pandora.command_delay
#pandora.autojoin = "#core-eng,#pandora"
pandora.autojoin
pandora.autorejoin
pandora.autorejoin_delay
pandora.connection_timeout
pandora.anti_flood_prio_high
pandora.anti_flood_prio_low
pandora.away_check
pandora.away_check_max_nicks
pandora.default_msg_kick
pandora.default_msg_part
pandora.default_msg_quit
pandora.notify
slack.addresses = "pandora.irc.slack.com/6667"
slack.proxy
slack.ipv6
slack.ssl = on
slack.ssl_cert
slack.ssl_priorities
slack.ssl_dhkey_size = 512
slack.ssl_fingerprint
slack.ssl_verify
slack.capabilities
slack.sasl_mechanism
slack.sasl_username
slack.sasl_password
slack.sasl_timeout
slack.autoconnect = on
slack.autoreconnect
slack.autoreconnect_delay
slack.nicks
slack.username = "pablo"
slack.realname
slack.local_hostname
slack.command
slack.command_delay
slack.autojoin
slack.autorejoin
slack.autorejoin_delay
slack.connection_timeout
slack.anti_flood_prio_high
slack.anti_flood_prio_low
slack.away_check
slack.away_check_max_nicks
slack.default_msg_kick
slack.default_msg_part
slack.default_msg_quit
slack.notify
slack..addresses
slack..proxy
slack..ipv6
slack..ssl
slack..ssl_cert
slack..ssl_priorities
slack..ssl_dhkey_size
slack..ssl_fingerprint
slack..ssl_verify
slack..password
slack..capabilities
slack..sasl_mechanism
slack..sasl_username
slack..sasl_password
slack..sasl_timeout
slack..autoconnect
slack..autoreconnect
slack..autoreconnect_delay
slack..nicks
slack..username
slack..realname
slack..local_hostname
slack..command
slack..command_delay
slack..autojoin = "#operations,#slingshot,#core-eng,#lunch,#general,#prop-ads,#soccer"
slack..autorejoin
slack..autorejoin_delay
slack..connection_timeout
slack..anti_flood_prio_high
slack..anti_flood_prio_low
slack..away_check
slack..away_check_max_nicks
slack..default_msg_kick
slack..default_msg_part
slack..default_msg_quit
slack..notify
2 changes: 1 addition & 1 deletion .weechat/logger.conf
@@ -1,5 +1,5 @@
#
# logger.conf -- weechat v0.4.2
# logger.conf -- weechat v0.4.3
#

[look]
Expand Down
7 changes: 6 additions & 1 deletion .weechat/plugins.conf
@@ -1,5 +1,5 @@
#
# plugins.conf -- weechat v0.4.2
# plugins.conf -- weechat v0.4.3
#

[var]
Expand Down Expand Up @@ -28,6 +28,11 @@ perl.iset.color_value_selected = "lightcyan"
perl.iset.color_value_undef = "green"
perl.iset.color_value_undef_selected = "lightgreen"
python.check_license = "on"
python.slack_extension.domain = "example.slack.com"
python.slack_extension.email = "user@example.com"
python.slack_extension.password = "mypassword"
python.slack_extension.server = "slack"
python.slack_extension.timeout = "4"
ruby.check_license = "on"
tcl.check_license = "on"

Expand Down
61 changes: 61 additions & 0 deletions .weechat/python/autoload/slack.py
@@ -0,0 +1,61 @@
import time
import weechat as w
from slacker import Slacker

TOKEN = "xoxp-2151843163-2151845305-2312749758-4fdde1"
slack = Slacker(TOKEN)
all_channels = {}

def _channels():
il = w.infolist_get("buffer", "", "")
channels = []
if il:
while w.infolist_next(il):
#w.prnt("", "2. %s - %s - %s" % (w.infolist_string(il, "localvar_server"), w.infolist_string(il, "localvar_type"), w.infolist_string(il, "localvar_channel")))
name = w.infolist_string(il, "full_name")
if name.startswith("irc.slack."):
channels.append(name.replace("irc.slack.", "", 1))
w.infolist_free(il)
return channels

def unread_cb(data, buffer, command):
global all_channels
channels = []
if command.find("set_unread_current_buffer") >= 0:
if w.buffer_get_string(buffer, "localvar_server") == "slack" and \
w.buffer_get_string(buffer, "localvar_type") in ["channel", "private"]:
channels.append(w.buffer_get_string(buffer, "localvar_channel"))
else:
channels = _channels()

for c in channels:
c = c.lstrip("#")
if c in all_channels:
try:
r = slack.channels.mark(all_channels[c], time.time())
except:
w.prnt("", "Error while setting unread marker on %s" % c)

return w.WEECHAT_RC_OK

def conga(data, buffer, command):
il = w.infolist_get("buffer", "", "")
pronted = False
if il:
while w.infolist_next(il):
if not pronted:
w.prnt("", w.infolist_fields(il))
pronted = True
w.prnt("", "2. %i - %i - %i - %i - %s" % (w.infolist_integer(il, "first_line_not_read"), w.infolist_integer(il, "num_displayed"), w.infolist_integer(il, "lines_hidden"), w.infolist_integer(il, "num_history"), w.infolist_string(il, "name")))
w.infolist_free(il)
return w.WEECHAT_RC_OK

if __name__ == "__main__":
w.register("slack", "pf@parb.es", "0.1", "MIT", "Pitiful slack integration", "", "")
#w.hook_command_run("/input set_unread*", "conga", "")
w.hook_command_run("/input set_unread*", "unread_cb", "")
all_channels = {c['name']: c['id'] for c in slack.channels.list().body["channels"]}
users = {u['id']: u['name'] for u in slack.users.list().body["members"]}
all_channels.update({users[i["user"]]: i["id"] for i in slack.im.list().body["ims"] if i["user"] in users})
#w.prnt("", "hai %d" % len(all_channels))
#w.prnt("", str(all_channels))

0 comments on commit c5f2887

Please sign in to comment.