diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | scripts/Makefile.am | 9 | ||||
-rw-r--r-- | scripts/beep_beep.py | 37 | ||||
-rw-r--r-- | scripts/dccmove.py | 33 | ||||
-rw-r--r-- | scripts/df.py | 41 | ||||
-rw-r--r-- | src/irssi.py | 27 |
6 files changed, 151 insertions, 1 deletions
@@ -7,3 +7,8 @@ loafier, 2006-08-16: changed intstallation location of docs (irssi/docs/irssi-python.html -> doc/irssi/irssi-python.html) added online help document ( -> irssi/help/py) changed name of shared library from libirssi_python.so to libpython.so + +loafier, 2006-08-17: + added a few simple scripts + added settings_add_* wrappers to irssi.py + diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 32ad5a3..fd88f2c 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -1,6 +1,13 @@ scriptsdir = $(datadir)/irssi/scripts -scripts_DATA = hello.py dumper.py test_window.py fork.py +scripts_DATA = \ + beep_beep.py \ + dccmove.py \ + df.py \ + dumper.py \ + fork.py \ + hello.py \ + test_window.py EXTRA_DIST = $(scripts_DATA) diff --git a/scripts/beep_beep.py b/scripts/beep_beep.py new file mode 100644 index 0000000..2f941e9 --- /dev/null +++ b/scripts/beep_beep.py @@ -0,0 +1,37 @@ +""" + Translation of Perl script by Georg Lukas +""" + +import irssi +import os + +might_beep = True + +def beep_overflow_timeout(): + global might_beep + might_beep = True + + return False + +def sig_beep(): + global might_beep + + beep_cmd = irssi.settings_get_str('beep_cmd') + if not beep_cmd: + return + + beep_flood = irssi.settings_get_int('beep_flood') + if beep_flood <= 0: + beep_flood = 1000 + + if might_beep: + os.system(beep_cmd) + might_beep = False + irssi.timeout_add(beep_flood, beep_overflow_timeout) + + irssi.signal_stop() + +irssi.settings_add_str("lookandfeel", "beep_cmd", "play ~/.irssi/scripts/beep_beep.wav 2>&1 > /dev/null &") +irssi.settings_add_int("lookandfeel", "beep_flood", 250) +irssi.signal_add("beep", sig_beep) + diff --git a/scripts/dccmove.py b/scripts/dccmove.py new file mode 100644 index 0000000..a441090 --- /dev/null +++ b/scripts/dccmove.py @@ -0,0 +1,33 @@ +""" + Translation of Perl script by Peder Stray +""" + +import irssi +import os +from os import path +import shutil + +def sig_dcc_closed(dcc): + if not isinstance(dcc, irssi.DccGet) or not path.isfile(dcc.file): + return + + dir = path.dirname(dcc.file) + dir = path.join(dir, 'done') + file = path.basename(dcc.file) + + if dcc.transfd < dcc.size: + remain = 0 + if dcc.size: + remain = 100 - dcc.transfd / dcc.size * 100 + print '%%gDCC aborted %%_%s%%_, %%R%d%%%%%%g remaining%%n' % \ + (file, remain) + return + + if not path.isdir(dir): + os.mkdir(dir, 0755) + + shutil.move(dcc.file, dir) + + print '%%gDCC moved %%_%s%%_ to %%_%s%%_%%n' % (file, dir) + +irssi.signal_add('dcc closed', sig_dcc_closed) diff --git a/scripts/df.py b/scripts/df.py new file mode 100644 index 0000000..19ff57b --- /dev/null +++ b/scripts/df.py @@ -0,0 +1,41 @@ +""" + Translation of script by Jochem Meyers +""" + +import irssi +import os + +output = '' + +def get_disk_info(): + fp = os.popen('/bin/df -h') + lines = fp.readlines() + ret = [] + + #dev, size, used, avail, pct, mnt_on + maxm = irssi.settings_get_int('df_max_mounts') + for line in lines[1:maxm + 1]: + ret.append(line.split()) + + return ret + +def sb_df(item, get_size): + item.default_handler(get_size, '{sb %s}' % output) + +def refresh_df(): + global output + + tmp = [] + for dev, size, used, avail, pct, mnt_on in get_disk_info(): + tmp.append(' [%s: A: %s U%%%%: %s]' % (dev, avail, pct)) + + output = 'DF' + ''.join(tmp) + irssi.statusbar_items_redraw('df') + irssi.timeout_add(irssi.settings_get_int('df_refresh_time') * 1000, refresh_df) + + return False + +irssi.statusbar_item_register('df', func=sb_df) +irssi.settings_add_int('misc', 'df_refresh_time', 60) +irssi.settings_add_int('misc', 'df_max_mounts', 6) +refresh_df() diff --git a/src/irssi.py b/src/irssi.py index 3f193ad..33a3083 100644 --- a/src/irssi.py +++ b/src/irssi.py @@ -29,3 +29,30 @@ def io_add_watch(*args, **kwargs): """ see Script.io_add_watch """ get_script().io_add_watch(*args, **kwargs) +def statusbar_item_register(*args, **kwargs): + """ see Script.statusbar_item_register """ + get_script().statusbar_item_register(*args, **kwargs) + +def settings_add_str(*args, **kwargs): + """ see Script.settings_add_str """ + get_script().settings_add_str(*args, **kwargs) + +def settings_add_int(*args, **kwargs): + """ see Script.settings_add_int """ + get_script().settings_add_int(*args, **kwargs) + +def settings_add_bool(*args, **kwargs): + """ see Script.settings_add_bool """ + get_script().settings_add_bool(*args, **kwargs) + +def settings_add_time(*args, **kwargs): + """ see Script.settings_add_time """ + get_script().settings_add_time(*args, **kwargs) + +def settings_add_level(*args, **kwargs): + """ see Script.settings_add_level """ + get_script().settings_add_level(*args, **kwargs) + +def settings_add_size(*args, **kwargs): + """ see Script.settings_add_size """ + get_script().settings_add_size(*args, **kwargs) |