mirror of
https://github.com/vbatts/flaming-happiness.git
synced 2025-07-23 18:50:29 +00:00
merge the zmq differences to a single command
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
parent
c54dd0d43b
commit
dd835429b3
5 changed files with 93 additions and 71 deletions
46
noti/main.go
46
noti/main.go
|
@ -1,43 +1,57 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"flag"
|
||||
zmq "github.com/pebbe/zmq3"
|
||||
"github.com/vbatts/flaming-happiness/common"
|
||||
"log"
|
||||
|
||||
"github.com/vbatts/flaming-happiness/common"
|
||||
)
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
if len(ignoreChannels) > 0 {
|
||||
common.SetIgnores(ignoreChannels)
|
||||
}
|
||||
if len(ignoreChannels) > 0 {
|
||||
common.SetIgnores(ignoreChannels)
|
||||
}
|
||||
|
||||
subscriber, _ := zmq.NewSocket(zmq.SUB)
|
||||
if len(flag.Args()) == 1 {
|
||||
subscriber.Connect(flag.Args()[0])
|
||||
if !quiet {
|
||||
log.Printf("Connected to [%s]", flag.Args()[0])
|
||||
}
|
||||
} else {
|
||||
if len(flag.Args()) != 1 {
|
||||
log.Fatalf("provide the zmq_notify publisher! like tcp://example.com:2428")
|
||||
}
|
||||
subscriber.SetSubscribe("")
|
||||
|
||||
subscriber, err := NewSubscriber(flag.Args()[0])
|
||||
if err != nil {
|
||||
log.Fatalf("ERROR: %s", err)
|
||||
}
|
||||
if err = subscriber.Connect(); err != nil {
|
||||
log.Fatalf("ERROR: %s", err)
|
||||
}
|
||||
if !quiet {
|
||||
log.Printf("Connected to [%s]", flag.Args()[0])
|
||||
}
|
||||
if err = subscriber.SetSubscribe(""); err != nil {
|
||||
log.Fatalf("ERROR: %s", err)
|
||||
}
|
||||
|
||||
for {
|
||||
msg, err := subscriber.RecvMessage(0)
|
||||
msg, err := subscriber.RecvMessageBytes(0)
|
||||
if err != nil {
|
||||
log.Fatalf("ERROR: %s", err)
|
||||
break
|
||||
}
|
||||
noti_msg := common.IrcNotify{}
|
||||
json.Unmarshal(bytes.NewBufferString(msg[0]).Bytes(), ¬i_msg)
|
||||
json.Unmarshal(msg[0], ¬i_msg)
|
||||
go common.Display(noti_msg, linger, quiet)
|
||||
}
|
||||
}
|
||||
|
||||
type Subscriber interface {
|
||||
Connect() error
|
||||
SetSubscribe(string) error
|
||||
RecvMessage(flag int) (msg []string, err error)
|
||||
RecvMessageBytes(flag int) (msg [][]byte, err error)
|
||||
}
|
||||
|
||||
var (
|
||||
linger int64 = 5
|
||||
quiet bool = false
|
||||
|
|
31
noti/sub_zmq2.go
Normal file
31
noti/sub_zmq2.go
Normal file
|
@ -0,0 +1,31 @@
|
|||
// +build zmq2
|
||||
|
||||
package main
|
||||
|
||||
import "github.com/pebbe/zmq2"
|
||||
|
||||
func NewSubscriber(endpoint string) (Subscriber, error) {
|
||||
sub, err := zmq2.NewSocket(zmq2.SUB)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return v2Subscriber{Socket: sub}, nil
|
||||
}
|
||||
|
||||
type v2Subscriber struct {
|
||||
Socket *zmq2.Socket
|
||||
endpoint string
|
||||
}
|
||||
|
||||
func (v2b v2Subscriber) Connect() error {
|
||||
return v2b.Socket.Connect(v2b.endpoint)
|
||||
}
|
||||
func (v2b v2Subscriber) SetSubscribe(topic string) error {
|
||||
return v2b.Socket.SetSubscribe(topic)
|
||||
}
|
||||
func (v2b v2Subscriber) RecvMessage(flag int) (msg []string, err error) {
|
||||
return v2b.Socket.RecvMessage(zmq2.Flag(flag))
|
||||
}
|
||||
func (v2b v2Subscriber) RecvMessageBytes(flag int) (msg [][]byte, err error) {
|
||||
return v2b.Socket.RecvMessageBytes(zmq2.Flag(flag))
|
||||
}
|
31
noti/sub_zmq3.go
Normal file
31
noti/sub_zmq3.go
Normal file
|
@ -0,0 +1,31 @@
|
|||
// +build !zmq2
|
||||
|
||||
package main
|
||||
|
||||
import "github.com/pebbe/zmq3"
|
||||
|
||||
func NewSubscriber(endpoint string) (Subscriber, error) {
|
||||
sub, err := zmq3.NewSocket(zmq3.SUB)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return v3Subscriber{Socket: sub}, nil
|
||||
}
|
||||
|
||||
type v3Subscriber struct {
|
||||
Socket *zmq3.Socket
|
||||
endpoint string
|
||||
}
|
||||
|
||||
func (v3b v3Subscriber) Connect() error {
|
||||
return v3b.Socket.Connect(v3b.endpoint)
|
||||
}
|
||||
func (v3b v3Subscriber) SetSubscribe(topic string) error {
|
||||
return v3b.Socket.SetSubscribe(topic)
|
||||
}
|
||||
func (v3b v3Subscriber) RecvMessage(flag int) (msg []string, err error) {
|
||||
return v3b.Socket.RecvMessage(zmq3.Flag(flag))
|
||||
}
|
||||
func (v3b v3Subscriber) RecvMessageBytes(flag int) (msg [][]byte, err error) {
|
||||
return v3b.Socket.RecvMessageBytes(zmq3.Flag(flag))
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue