Go to file
2024-06-16 16:14:24 +02:00
ringbuffer Wait with timeout 2024-06-16 15:27:46 +02:00
smshook Git 2024-06-16 15:38:28 +02:00
go.mod HHH 2024-06-16 15:36:56 +02:00
README.md Update README.md 2024-06-16 16:14:24 +02:00

SMS Hook

What

The purpose of SmsHook is to provide a simple library that provides a webhook where texts can be send to it using something like Sms Forwarder.

How

This captures all the requests coming into /webhook with {"content":"%text"} and puts them in a buffer. There are 3 methods

GetLast

Get last returns the last sms received and its location in the buffer.

WaitForNew

WaitForNew keeps waiting for the next sms that will be send the the webhook

WaitForNewWithTimeout

Same thing as WaitForNew but stops after a set interval

EXAMPLE

package main

import (
	"fmt"
	"time"

	"git.directme.in/Joren/SmsHook/smshook"
)

func main() {
	smshook.Init(10, "0.0.0.0:8080")

	t := smshook.WaitForNew()
	fmt.Printf("Received new item: %s\n", t)

	text, pos := smshook.GetLast()
	fmt.Printf("Last item: %s, Position: %d\n",text,pos)

	t2, s := smshook.WaitForNewWithTimeout(10 * time.Second)
	if s {
		fmt.Printf("Received new item: %s\n", t2)
	} else {
		fmt.Println("Timed out waiting for new item.")
	}
}