{"id":15374723,"url":"https://github.com/mrtazz/irssi-zeromq","last_synced_at":"2025-03-21T02:29:07.768Z","repository":{"id":2521628,"uuid":"3497652","full_name":"mrtazz/irssi-zeromq","owner":"mrtazz","description":"Irssi script to distribute events via ZeroMQ pub/sub","archived":false,"fork":false,"pushed_at":"2012-02-20T20:51:17.000Z","size":92,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-25T23:17:19.338Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrtazz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-02-20T20:50:51.000Z","updated_at":"2019-02-14T11:54:25.000Z","dependencies_parsed_at":"2022-09-07T04:51:36.572Z","dependency_job_id":null,"html_url":"https://github.com/mrtazz/irssi-zeromq","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtazz%2Firssi-zeromq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtazz%2Firssi-zeromq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtazz%2Firssi-zeromq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtazz%2Firssi-zeromq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrtazz","download_url":"https://codeload.github.com/mrtazz/irssi-zeromq/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244724882,"owners_count":20499503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T13:59:36.911Z","updated_at":"2025-03-21T02:29:07.749Z","avatar_url":"https://github.com/mrtazz.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# irssi-zeromq\n\n## Motivation\nI have long been using [Irssi][irssi] running in a screen as my IRC client of\nchoice. Lately I have also been putting [ZNC][znc] in between to also be able\nto connect from my iPhone, iPad and nice graphical OSX clients. But somehow I\nalways end up going back to irssi. The one thing I am missing though is the\ninstant notification when something happens which might need my attention. The\nnice things you get with GUI clients like bouncing dock icons, ping sounds and\ngrowl notifications. I know there are a lot of [solutions][notify] for this,\nbut I kind of didn't feel like constantly parsing a logfile over SSH to get\nnotifications.\n\nAnd I REALLY wanted to play with [ZeroMQ][zeromq].\n\n## Overview\nirssi-zeromq is an irssi plugin, inspired by [fnotify][fnotify], which\nsubscribes to irssi events and distributes them via ZeroMQ pub/sub.\nNotification handlers just subscribe to the socket, get notified about events\nand can be written in any language. If you have irssi running on a remote\nsystem, just change the socket to use TCP and your golden.\n\n## Example subscribers\nWriting messages to stdout with Python:\n\n    import sys\n    import zmq\n\n    context = zmq.Context()\n    socket = context.socket(zmq.SUB)\n    socket.connect (\"ipc://irssi.ipc\")\n    socket.setsockopt(zmq.SUBSCRIBE, 'irssi')\n\n    print socket.recv()\n\nDisplay a growl notification with Ruby:\n\n    require 'rubygems'\n    require 'ffi-rzmq'\n\n    context = ZMQ::Context.new(1)\n    subscriber = context.socket(ZMQ::SUB)\n    subscriber.connect(\"ipc://irssi.ipc\")\n    subscriber.setsockopt(ZMQ::SUBSCRIBE, \"irssi\")\n\n    s = ''\n    subscriber.recv_string(s)\n    system(\"growlnotify -t irssi -m \\\"#{s}\\\"\")\n\nI think you get the idea. Now it's super easy to write notification subscribers\nin any language you like. Go forth and subscribe.\n\n## Requirements\n- the perl ZeroMQ module from CPAN\n\n## Todo:\n- emit the actual irssi event as pub channel\n- emit more events\n\n## Meta\n- [Bugs][bugs]\n\n## Thanks\n- Thorsten Leemhuis for fnotify\n- ZeroMQ for being awesome\n\n\n[irssi]: http://irssi.org\n[znc]: http://wiki.znc.in/ZNC\n[notify]: http://matthewhutchinson.net/2010/8/21/irssi-screen-fnotify-and-growl-on-osx\n[fnotify]: https://gist.github.com/542141\n[zeromq]: http://www.zeromq.org/\n[bugs]: https://github.com/mrtazz/irssi-zeromq/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrtazz%2Firssi-zeromq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrtazz%2Firssi-zeromq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrtazz%2Firssi-zeromq/lists"}