h/plugins/misc.py

64 lines
1.6 KiB
Python
Raw Normal View History

import socket
import subprocess
2010-03-11 23:34:54 +00:00
import time
from util import hook, http
2010-03-11 23:34:54 +00:00
socket.setdefaulttimeout(10) # global setting
def get_version():
try:
stdout = subprocess.check_output(['git', 'log', '--format=%h'])
except:
revnumber = 0
shorthash = '????'
else:
revs = stdout.splitlines()
revnumber = len(revs)
shorthash = revs[0]
2011-05-11 20:40:04 +00:00
http.ua_skybot = 'Skybot/r%d %s (http://github.com/rmmh/skybot)' \
2014-01-14 21:12:37 +00:00
% (revnumber, shorthash)
2011-05-11 20:40:04 +00:00
return shorthash, revnumber
2014-01-14 21:12:37 +00:00
# autorejoin channels
@hook.event('KICK')
def rejoin(paraml, conn=None):
2010-02-02 04:42:34 +00:00
if paraml[1] == conn.nick:
if paraml[0].lower() in conn.conf.get("channels", []):
2010-02-02 04:42:34 +00:00
conn.join(paraml[0])
2010-03-01 02:32:41 +00:00
@hook.event('004')
def onjoin(paraml, conn=None):
2010-03-14 23:55:58 +00:00
# identify to services
2010-02-02 04:42:34 +00:00
nickserv_password = conn.conf.get('nickserv_password', '')
nickserv_name = conn.conf.get('nickserv_name', 'nickserv')
nickserv_command = conn.conf.get('nickserv_command', 'IDENTIFY %s')
if nickserv_password:
2010-02-02 04:42:34 +00:00
conn.msg(nickserv_name, nickserv_command % nickserv_password)
2010-03-11 23:34:54 +00:00
time.sleep(1)
2010-03-14 23:55:58 +00:00
# set mode on self
mode = conn.conf.get('mode')
if mode:
conn.cmd('MODE', [conn.nick, mode])
# join channels
for channel in conn.conf.get("channels", []):
2010-03-11 23:34:54 +00:00
conn.join(channel)
2010-03-13 06:16:06 +00:00
time.sleep(1) # don't flood JOINs
# set user-agent
ident, rev = get_version()
2011-05-11 20:40:04 +00:00
@hook.regex(r'^\x01VERSION\x01$')
def version(inp, notice=None):
ident, rev = get_version()
2015-11-08 20:51:16 +00:00
notice('\x01VERSION h %s - https://git.xeserv.us/xena/h'
'\x01' % ident)