From 36e2a5b1f0ac25c0952ab9a1c73132f50589861d Mon Sep 17 00:00:00 2001 From: Henesy Date: Fri, 20 Nov 2020 07:29:33 +0000 Subject: [PATCH] add g!gridlink --- mux.go | 2 ++ x/mux/misc.go | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/mux.go b/mux.go index e002a6933560b10866a0024e2427a1abe5b82029..0462eb0db82be241f4915bd561fe29e57bb337c0 100644 --- a/mux.go +++ b/mux.go @@ -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) } diff --git a/x/mux/misc.go b/x/mux/misc.go index 6326f1317e9486b2f16ecc4661d1c9dd56083ade..304a87f2aedd4994c45f8a44d84f5481e24f9d20 100644 --- a/x/mux/misc.go +++ b/x/mux/misc.go @@ -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 := ""