diff --git a/server/web/pages/route.go b/server/web/pages/route.go index c99828c..b8a66d2 100644 --- a/server/web/pages/route.go +++ b/server/web/pages/route.go @@ -1,7 +1,10 @@ package pages import ( + "github.com/anacrolix/torrent/metainfo" "github.com/gin-gonic/gin" + + "server/settings" "server/torr" "server/web/pages/template" ) @@ -9,6 +12,7 @@ import ( func SetupRoute(route *gin.RouterGroup) { route.GET("/", mainPage) route.GET("/stat", statPage) + route.GET("/magnets", getTorrents) } func mainPage(c *gin.Context) { @@ -19,3 +23,18 @@ func statPage(c *gin.Context) { torr.WriteStatus(c.Writer) c.Status(200) } + +func getTorrents(c *gin.Context) { + list := settings.ListTorrent() + http := "
" + for _, db := range list { + ts := db.TorrentSpec + mi := metainfo.MetaInfo{ + AnnounceList: ts.Trackers, + } + mag := mi.Magnet(ts.DisplayName, ts.InfoHash) + http += "

magnet:?xt=urn:btih:" + mag.InfoHash.HexString() + "

" + } + http += "
" + c.Data(200, "text/html; charset=utf-8", []byte(http)) +}