~kris/9p

glenda

36e2a5b1f0ac25c0952ab9a1c73132f50589861d — Henesy 5 years ago 0d85f62
add g!gridlink
2 files changed, 36 insertions(+), 0 deletions(-)

M mux.go
M x/mux/misc.go
M mux.go => mux.go +2 -0
@@ 59,4 59,6 @@ func init() {
	Router.Route("wine", ":wine_glass:", Router.Wine)

	Router.Route("uptime", "Current bot uptime", Router.Uptime)
	
	Router.Route("gridlink", "Convert griddisk paths to 'incoming' URL's", Router.GridLink)
}

M x/mux/misc.go => x/mux/misc.go +34 -0
@@ 3,6 3,7 @@ package mux
import (
	"github.com/bwmarrin/discordgo"
	"time"
	"strings"
)

// Chan for communicating to Glenda


@@ 85,6 86,39 @@ func (m *Mux) Dump(ds *discordgo.Session, dm *discordgo.Message, ctx *Context) {
	return
}

// Rewrite griddisk paths as links
// Given /n/griddisk/foo, /foo, foo ⇒ …/incoming/foo
func (m *Mux) GridLink(ds *discordgo.Session, dm *discordgo.Message, ctx *Context) {
	resp := ""
	base := "http://wiki.9gridchan.org/incoming"
	root := "/n/griddisk"
	
	resp += base
	
	path := ctx.Fields[1]
	
	switch {
	case strings.HasPrefix(path, root):
		// Full path
		sub := strings.TrimPrefix(path, root)
		resp += sub
	
	case path[0] == '/':
		// Root only
		resp += path
	
	default:
		// Any other case
		resp += "/" + path
	}
	
	resp += "\n"

	ds.ChannelMessageSend(dm.ChannelID, resp)

	return
}

// Beer, dude.
func (m *Mux) Beer(ds *discordgo.Session, dm *discordgo.Message, ctx *Context) {
	resp := ""