Exemplo n.º 1
0
func main() {
	bot := ircx.WithLogin(server, *user, *user, *pass)
	if err := bot.Connect(); err != nil {
		log.Panicln("Unable to dial IRC Server ", err)
	}
	RegisterHandlers(bot)
	bot.HandleLoop()
	log.Println("Exiting...")
}
Exemplo n.º 2
0
func main() {
	var err error
	db, err = bolt.Open("twitch.db", 0600, &bolt.Options{Timeout: 1 * time.Second})

	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	tx, err := db.Begin(true)
	if err != nil {
		log.Fatal(err)
	}
	defer tx.Rollback()

	b, err := tx.CreateBucketIfNotExists([]byte(*channel))
	if err != nil {
		log.Fatal(err)
	}

	_, err = b.CreateBucketIfNotExists([]byte(users))
	if err != nil {
		log.Fatal(err)
	}

	_, err = b.CreateBucketIfNotExists([]byte(messages))
	if err != nil {
		log.Fatal(err)
	}

	if err = tx.Commit(); err != nil {
		log.Fatal(err)
	}

	c := make(chan os.Signal, 1)
	signal.Notify(c, os.Interrupt)
	signal.Notify(c, syscall.SIGTERM)
	go func() {
		<-c
		db.View(func(tx *bolt.Tx) error {
			b := tx.Bucket([]byte(*channel))
			bu := b.Bucket([]byte(users))
			bm := b.Bucket([]byte(messages))

			bu.ForEach(func(k, v []byte) error {
				fmt.Printf("key=%s, value=%v\n", k, ByteToUint64(v))
				return nil
			})

			bm.ForEach(func(k, v []byte) error {
				fmt.Printf("key=%s, value=%v\n", k, ByteToUint64(v))
				return nil
			})

			return nil
		})
		os.Exit(1)
	}()

	bot := ircx.WithLogin(*server, *name, *user, *password)
	if err := bot.Connect(); err != nil {
		log.Panicln("Unable to dial IRC Server ", err)
	}

	RegisterHandlers(bot)
	bot.HandleLoop()
}