mirror of
https://github.com/Ernous/TorrServerJellyfin.git
synced 2025-12-19 21:46:11 +05:00
Merge branch 'master' into old-engine
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package dlna
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"net"
|
||||
"os"
|
||||
@@ -13,20 +12,23 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/anacrolix/dms/dlna/dms"
|
||||
"github.com/anacrolix/log"
|
||||
|
||||
"server/log"
|
||||
"server/settings"
|
||||
"server/web/pages/template"
|
||||
)
|
||||
|
||||
var dmsServer *dms.Server
|
||||
|
||||
func Start() {
|
||||
logger := log.Default.WithNames("dms")
|
||||
dmsServer = &dms.Server{
|
||||
Logger: logger.WithNames("dms", "server"),
|
||||
Interfaces: func() (ifs []net.Interface) {
|
||||
var err error
|
||||
ifaces, err := net.Interfaces()
|
||||
if err != nil {
|
||||
log.TLogln(err)
|
||||
log.Print(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
for _, i := range ifaces {
|
||||
@@ -41,7 +43,7 @@ func Start() {
|
||||
HTTPConn: func() net.Listener {
|
||||
port := 9080
|
||||
for {
|
||||
log.TLogln("Check dlna port", port)
|
||||
log.Printf("Check dlna port %d", port)
|
||||
m, err := net.Listen("tcp", ":"+strconv.Itoa(port))
|
||||
if m != nil {
|
||||
m.Close()
|
||||
@@ -51,10 +53,10 @@ func Start() {
|
||||
}
|
||||
port++
|
||||
}
|
||||
log.TLogln("Set dlna port", port)
|
||||
log.Printf("Set dlna port %d", port)
|
||||
conn, err := net.Listen("tcp", ":"+strconv.Itoa(port))
|
||||
if err != nil {
|
||||
log.TLogln(err)
|
||||
log.Print(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
return conn
|
||||
@@ -65,20 +67,21 @@ func Start() {
|
||||
StallEventSubscribe: true,
|
||||
Icons: []dms.Icon{
|
||||
dms.Icon{
|
||||
Width: 48,
|
||||
Height: 48,
|
||||
Depth: 24,
|
||||
Mimetype: "image/png",
|
||||
ReadSeeker: bytes.NewReader(template.Dlnaicon48png),
|
||||
Width: 48,
|
||||
Height: 48,
|
||||
Depth: 24,
|
||||
Mimetype: "image/png",
|
||||
Bytes: template.Dlnaicon48png,
|
||||
},
|
||||
dms.Icon{
|
||||
Width: 120,
|
||||
Height: 120,
|
||||
Depth: 24,
|
||||
Mimetype: "image/png",
|
||||
ReadSeeker: bytes.NewReader(template.Dlnaicon120png),
|
||||
Width: 120,
|
||||
Height: 120,
|
||||
Depth: 24,
|
||||
Mimetype: "image/png",
|
||||
Bytes: template.Dlnaicon120png,
|
||||
},
|
||||
},
|
||||
LogHeaders: settings.BTsets.EnableDebug,
|
||||
NotifyInterval: 30 * time.Second,
|
||||
AllowedIpNets: func() []*net.IPNet {
|
||||
var nets []*net.IPNet
|
||||
@@ -93,12 +96,12 @@ func Start() {
|
||||
}
|
||||
|
||||
if err := dmsServer.Init(); err != nil {
|
||||
log.TLogln("error initing dms server: %v", err)
|
||||
log.Printf("error initing dms server: %v", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
go func() {
|
||||
if err := dmsServer.Run(); err != nil {
|
||||
log.TLogln(err)
|
||||
log.Print(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}()
|
||||
@@ -140,13 +143,13 @@ func getDefaultFriendlyName() string {
|
||||
userName := ""
|
||||
user, err := user.Current()
|
||||
if err != nil {
|
||||
log.TLogln("getDefaultFriendlyName could not get username: %s", err)
|
||||
log.Printf("getDefaultFriendlyName could not get username: %s", err)
|
||||
} else {
|
||||
userName = user.Name
|
||||
}
|
||||
host, err := os.Hostname()
|
||||
if err != nil {
|
||||
log.TLogln("getDefaultFriendlyName could not get hostname: %s", err)
|
||||
log.Printf("getDefaultFriendlyName could not get hostname: %s", err)
|
||||
}
|
||||
|
||||
if userName == "" && host == "" {
|
||||
|
||||
@@ -55,7 +55,7 @@ func getTorrents() (ret []interface{}) {
|
||||
ID: "%2F" + t.TorrentSpec.InfoHash.HexString(),
|
||||
ParentID: "%2FTR",
|
||||
Restricted: 1,
|
||||
Title: t.Title,
|
||||
Title: strings.ReplaceAll(t.Title, "/", "|"),
|
||||
Class: "object.container.storageFolder",
|
||||
Icon: t.Poster,
|
||||
AlbumArtURI: t.Poster,
|
||||
|
||||
@@ -1,43 +1,49 @@
|
||||
module server
|
||||
|
||||
go 1.17
|
||||
go 1.18
|
||||
|
||||
replace (
|
||||
github.com/anacrolix/dms v1.3.0 => github.com/tsynik/dms v1.3.1
|
||||
github.com/anacrolix/torrent v1.40.1 => github.com/tsynik/torrent v1.2.7
|
||||
github.com/anacrolix/dms v1.4.0 => github.com/tsynik/dms v1.4.1
|
||||
github.com/anacrolix/torrent v1.43.1 => github.com/tsynik/torrent v1.2.7
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/alexflint/go-arg v1.4.2
|
||||
github.com/anacrolix/dms v1.3.0
|
||||
github.com/anacrolix/dms v1.4.0
|
||||
github.com/anacrolix/log v0.13.1
|
||||
github.com/anacrolix/missinggo v1.3.0
|
||||
github.com/anacrolix/torrent v1.40.1
|
||||
github.com/anacrolix/torrent v1.43.1
|
||||
github.com/gin-contrib/cors v1.3.1
|
||||
github.com/gin-contrib/location v0.0.2
|
||||
github.com/gin-gonic/gin v1.7.7
|
||||
github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4
|
||||
github.com/pkg/errors v0.9.1
|
||||
go.etcd.io/bbolt v1.3.6
|
||||
golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11
|
||||
golang.org/x/time v0.0.0-20220411224347-583f2d630306
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/RoaringBitmap/roaring v0.9.4 // indirect
|
||||
crawshaw.io/sqlite v0.3.3-0.20210127221821-98b1f83c5508 // indirect
|
||||
github.com/RoaringBitmap/roaring v1.0.1-0.20220510143707-3f418c4f42a4 // indirect
|
||||
github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0 // indirect
|
||||
github.com/alexflint/go-scalar v1.1.0 // indirect
|
||||
github.com/anacrolix/chansync v0.3.0 // indirect
|
||||
github.com/anacrolix/confluence v1.11.0 // indirect
|
||||
github.com/anacrolix/dht/v2 v2.15.1 // indirect
|
||||
github.com/anacrolix/dht/v2 v2.17.0 // indirect
|
||||
github.com/anacrolix/envpprof v1.2.1 // indirect
|
||||
github.com/anacrolix/ffprobe v1.0.0 // indirect
|
||||
github.com/anacrolix/log v0.10.0 // indirect
|
||||
github.com/anacrolix/generics v0.0.0-20220510042907-b50562b436ec // indirect
|
||||
github.com/anacrolix/go-libutp v1.2.0 // indirect
|
||||
github.com/anacrolix/missinggo/perf v1.0.0 // indirect
|
||||
github.com/anacrolix/missinggo/v2 v2.5.3 // indirect
|
||||
github.com/anacrolix/missinggo/v2 v2.7.0 // indirect
|
||||
github.com/anacrolix/mmsg v1.0.0 // indirect
|
||||
github.com/anacrolix/multiless v0.3.0 // indirect
|
||||
github.com/anacrolix/stm v0.3.0 // indirect
|
||||
github.com/anacrolix/sync v0.4.0 // indirect
|
||||
github.com/anacrolix/upnp v0.1.2 // indirect
|
||||
github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 // indirect
|
||||
github.com/anacrolix/utp v0.1.0 // indirect
|
||||
github.com/bahlo/generic-list-go v0.2.0 // indirect
|
||||
github.com/benbjohnson/immutable v0.3.0 // indirect
|
||||
github.com/bits-and-blooms/bitset v1.2.1 // indirect
|
||||
github.com/bits-and-blooms/bitset v1.2.2 // indirect
|
||||
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/dustin/go-humanize v1.0.0 // indirect
|
||||
@@ -45,24 +51,46 @@ require (
|
||||
github.com/gin-contrib/sse v0.1.0 // indirect
|
||||
github.com/go-playground/locales v0.14.0 // indirect
|
||||
github.com/go-playground/universal-translator v0.18.0 // indirect
|
||||
github.com/go-playground/validator/v10 v10.10.0 // indirect
|
||||
github.com/go-playground/validator/v10 v10.11.0 // indirect
|
||||
github.com/golang/protobuf v1.5.2 // indirect
|
||||
github.com/google/btree v1.0.1 // indirect
|
||||
github.com/google/uuid v1.3.0 // indirect
|
||||
github.com/gorilla/websocket v1.5.0 // indirect
|
||||
github.com/huandu/xstrings v1.3.2 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/leodido/go-urn v1.2.1 // indirect
|
||||
github.com/lispad/go-generics-tools v1.0.0 // indirect
|
||||
github.com/mattn/go-isatty v0.0.14 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/mschoch/smat v0.2.0 // indirect
|
||||
github.com/pion/datachannel v1.5.2 // indirect
|
||||
github.com/pion/dtls/v2 v2.1.4 // indirect
|
||||
github.com/pion/ice/v2 v2.2.6 // indirect
|
||||
github.com/pion/interceptor v0.1.11 // indirect
|
||||
github.com/pion/logging v0.2.2 // indirect
|
||||
github.com/pion/mdns v0.0.5 // indirect
|
||||
github.com/pion/randutil v0.1.0 // indirect
|
||||
github.com/pion/rtcp v1.2.9 // indirect
|
||||
github.com/pion/rtp v1.7.13 // indirect
|
||||
github.com/pion/sctp v1.8.2 // indirect
|
||||
github.com/pion/sdp/v3 v3.0.5 // indirect
|
||||
github.com/pion/srtp/v2 v2.0.7 // indirect
|
||||
github.com/pion/stun v0.3.5 // indirect
|
||||
github.com/pion/transport v0.13.0 // indirect
|
||||
github.com/pion/turn/v2 v2.0.8 // indirect
|
||||
github.com/pion/udp v0.1.1 // indirect
|
||||
github.com/pion/webrtc/v3 v3.1.39 // indirect
|
||||
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect
|
||||
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 // indirect
|
||||
github.com/ugorji/go/codec v1.2.6 // indirect
|
||||
golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce // indirect
|
||||
golang.org/x/net v0.0.0-20220114011407-0dd24b26b47d // indirect
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
|
||||
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 // indirect
|
||||
github.com/tidwall/btree v1.3.1 // indirect
|
||||
github.com/ugorji/go/codec v1.2.7 // indirect
|
||||
golang.org/x/crypto v0.0.0-20220513210258-46612604a0f9 // indirect
|
||||
golang.org/x/exp v0.0.0-20220428152302-39d4317da171 // indirect
|
||||
golang.org/x/net v0.0.0-20220513224357-95641704303c // indirect
|
||||
golang.org/x/sync v0.0.0-20220513210516-0976fa681c29 // indirect
|
||||
golang.org/x/sys v0.0.0-20220513210249-45d2b4557a2a // indirect
|
||||
golang.org/x/text v0.3.7 // indirect
|
||||
google.golang.org/protobuf v1.27.1 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect
|
||||
google.golang.org/protobuf v1.28.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
)
|
||||
|
||||
1101
server/go.sum
1101
server/go.sum
File diff suppressed because it is too large
Load Diff
@@ -50,7 +50,7 @@ func Init(path, webpath string) {
|
||||
//https://stackoverflow.com/a/36140590
|
||||
//fmt.Print(time.Now().UTC().Format("2006-01-02T15:04:05.999Z") + " TLOG " + string(bytes))
|
||||
log.SetFlags(log.Ldate | log.Ltime | log.LUTC | log.Lmsgprefix)
|
||||
log.SetPrefix("UTC0 TLOG ")
|
||||
log.SetPrefix("UTC0 SRV ")
|
||||
log.SetOutput(ff)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,11 +24,16 @@ func init() {
|
||||
{"image/png", ".png"},
|
||||
{"image/tiff", ".tiff,.tif"},
|
||||
{"audio/x-aac", ".aac"},
|
||||
{"audio/dsd", ".dsd,.dsf,.dff"},
|
||||
{"audio/flac", ".flac"},
|
||||
{"audio/mpeg", ".mpga,.mpega,.mp2,.mp3,.m4a"},
|
||||
{"audio/ogg", ".oga,.ogg,.opus,.spx"},
|
||||
{"audio/opus", ".opus"},
|
||||
{"audio/weba", ".weba"},
|
||||
{"audio/x-ape", ".ape"},
|
||||
// {"audio/x-dsd", ".dsd"},
|
||||
// {"audio/x-dff", ".dff"},
|
||||
// {"audio/x-dsf", ".dsf"},
|
||||
{"audio/x-wav", ".wav"},
|
||||
{"video/dv", ".dif,.dv"},
|
||||
{"video/fli", ".fli"},
|
||||
|
||||
@@ -2,6 +2,7 @@ package torr
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"server/torr/utils"
|
||||
"time"
|
||||
|
||||
"server/settings"
|
||||
@@ -29,7 +30,9 @@ func AddTorrentDB(torr *Torrent) {
|
||||
} else {
|
||||
t.Data = torr.Data
|
||||
}
|
||||
t.Poster = torr.Poster
|
||||
if utils.CheckImgUrl(torr.Poster) {
|
||||
t.Poster = torr.Poster
|
||||
}
|
||||
t.Size = torr.Size
|
||||
if t.Size == 0 && torr.Torrent != nil {
|
||||
t.Size = torr.Torrent.Length()
|
||||
|
||||
27
server/torr/utils/webImageChecker.go
Normal file
27
server/torr/utils/webImageChecker.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"image"
|
||||
_ "image/jpeg"
|
||||
_ "image/png"
|
||||
"net/http"
|
||||
"server/log"
|
||||
)
|
||||
|
||||
func CheckImgUrl(link string) bool {
|
||||
if link == "" {
|
||||
return false
|
||||
}
|
||||
resp, err := http.Get(link)
|
||||
if err != nil {
|
||||
log.TLogln("Error check image:", err)
|
||||
return false
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
_, _, err = image.Decode(resp.Body)
|
||||
if err != nil {
|
||||
log.TLogln("Error decode image:", err)
|
||||
return false
|
||||
}
|
||||
return err == nil
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
package version
|
||||
|
||||
const Version = "MatriX.111.OE"
|
||||
const Version = "MatriX.112.OE"
|
||||
|
||||
@@ -49,20 +49,20 @@ var Mstile150x150png []byte
|
||||
//go:embed pages/site.webmanifest
|
||||
var Sitewebmanifest []byte
|
||||
|
||||
//go:embed pages/static/js/2.6332ebcb.chunk.js
|
||||
var Staticjs26332ebcbchunkjs []byte
|
||||
//go:embed pages/static/js/2.a16d5dc4.chunk.js
|
||||
var Staticjs2a16d5dc4chunkjs []byte
|
||||
|
||||
//go:embed pages/static/js/2.6332ebcb.chunk.js.LICENSE.txt
|
||||
var Staticjs26332ebcbchunkjsLICENSEtxt []byte
|
||||
//go:embed pages/static/js/2.a16d5dc4.chunk.js.LICENSE.txt
|
||||
var Staticjs2a16d5dc4chunkjsLICENSEtxt []byte
|
||||
|
||||
//go:embed pages/static/js/2.6332ebcb.chunk.js.map
|
||||
var Staticjs26332ebcbchunkjsmap []byte
|
||||
//go:embed pages/static/js/2.a16d5dc4.chunk.js.map
|
||||
var Staticjs2a16d5dc4chunkjsmap []byte
|
||||
|
||||
//go:embed pages/static/js/main.c27d3465.chunk.js
|
||||
var Staticjsmainc27d3465chunkjs []byte
|
||||
//go:embed pages/static/js/main.6dd51647.chunk.js
|
||||
var Staticjsmain6dd51647chunkjs []byte
|
||||
|
||||
//go:embed pages/static/js/main.c27d3465.chunk.js.map
|
||||
var Staticjsmainc27d3465chunkjsmap []byte
|
||||
//go:embed pages/static/js/main.6dd51647.chunk.js.map
|
||||
var Staticjsmain6dd51647chunkjsmap []byte
|
||||
|
||||
//go:embed pages/static/js/runtime-main.33603a80.js
|
||||
var Staticjsruntimemain33603a80js []byte
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"files": {
|
||||
"main.js": "/static/js/main.c27d3465.chunk.js",
|
||||
"main.js.map": "/static/js/main.c27d3465.chunk.js.map",
|
||||
"main.js": "/static/js/main.6dd51647.chunk.js",
|
||||
"main.js.map": "/static/js/main.6dd51647.chunk.js.map",
|
||||
"runtime-main.js": "/static/js/runtime-main.33603a80.js",
|
||||
"runtime-main.js.map": "/static/js/runtime-main.33603a80.js.map",
|
||||
"static/js/2.6332ebcb.chunk.js": "/static/js/2.6332ebcb.chunk.js",
|
||||
"static/js/2.6332ebcb.chunk.js.map": "/static/js/2.6332ebcb.chunk.js.map",
|
||||
"static/js/2.a16d5dc4.chunk.js": "/static/js/2.a16d5dc4.chunk.js",
|
||||
"static/js/2.a16d5dc4.chunk.js.map": "/static/js/2.a16d5dc4.chunk.js.map",
|
||||
"index.html": "/index.html",
|
||||
"static/js/2.6332ebcb.chunk.js.LICENSE.txt": "/static/js/2.6332ebcb.chunk.js.LICENSE.txt"
|
||||
"static/js/2.a16d5dc4.chunk.js.LICENSE.txt": "/static/js/2.a16d5dc4.chunk.js.LICENSE.txt"
|
||||
},
|
||||
"entrypoints": [
|
||||
"static/js/runtime-main.33603a80.js",
|
||||
"static/js/2.6332ebcb.chunk.js",
|
||||
"static/js/main.c27d3465.chunk.js"
|
||||
"static/js/2.a16d5dc4.chunk.js",
|
||||
"static/js/main.6dd51647.chunk.js"
|
||||
]
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><meta name="msapplication-TileColor" content="#00a572"><meta name="theme-color" content="#ffffff"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600&display=swap" rel="stylesheet"><meta name="viewport" content="width=device-width,shrink-to-fit=no"><meta name="description" content="TorrServer - torrent to http stream"/><title>TorrServer MatriX</title></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="https://cdn.lordicon.com/libs/frhvbuzj/lord-icon-2.0.2.js"></script><script src="https://www.gstatic.com/firebasejs/8.1.2/firebase-app.js"></script><script src="https://www.gstatic.com/firebasejs/8.1.2/firebase-analytics.js"></script><script>const firebaseConfig={apiKey:"AIzaSyDivIsadtzAmp3SIY4yArNcFugUmr63rvo",authDomain:"torrserve.firebaseapp.com",databaseURL:"https://torrserve.firebaseio.com",projectId:"torrserve",storageBucket:"torrserve.appspot.com",messagingSenderId:"400168070412",appId:"1:400168070412:web:82c8e43dd7fc8f807aed29",measurementId:"G-T4RC2BFRSF"};firebase.initializeApp(firebaseConfig),firebase.analytics()</script><script>!function(e){function r(r){for(var n,l,f=r[0],i=r[1],a=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++){var i=t[f];0!==o[i]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var f=this.webpackJsonptorrserver_web=this.webpackJsonptorrserver_web||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var a=0;a<f.length;a++)r(f[a]);var p=i;t()}([])</script><script src="/static/js/2.6332ebcb.chunk.js"></script><script src="/static/js/main.c27d3465.chunk.js"></script></body></html>
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><meta name="msapplication-TileColor" content="#00a572"><meta name="theme-color" content="#ffffff"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600&display=swap" rel="stylesheet"><meta name="viewport" content="width=device-width,shrink-to-fit=no"><meta name="description" content="TorrServer - torrent to http stream"/><title>TorrServer MatriX</title></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="https://cdn.lordicon.com/libs/frhvbuzj/lord-icon-2.0.2.js"></script><script src="https://www.gstatic.com/firebasejs/8.1.2/firebase-app.js"></script><script src="https://www.gstatic.com/firebasejs/8.1.2/firebase-analytics.js"></script><script>const firebaseConfig={apiKey:"AIzaSyDivIsadtzAmp3SIY4yArNcFugUmr63rvo",authDomain:"torrserve.firebaseapp.com",databaseURL:"https://torrserve.firebaseio.com",projectId:"torrserve",storageBucket:"torrserve.appspot.com",messagingSenderId:"400168070412",appId:"1:400168070412:web:82c8e43dd7fc8f807aed29",measurementId:"G-T4RC2BFRSF"};firebase.initializeApp(firebaseConfig),firebase.analytics()</script><script>!function(e){function r(r){for(var n,l,f=r[0],i=r[1],a=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++){var i=t[f];0!==o[i]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var f=this.webpackJsonptorrserver_web=this.webpackJsonptorrserver_web||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var a=0;a<f.length;a++)r(f[a]);var p=i;t()}([])</script><script src="/static/js/2.a16d5dc4.chunk.js"></script><script src="/static/js/main.6dd51647.chunk.js"></script></body></html>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -26,7 +26,7 @@ func RouteWebPages(route *gin.RouterGroup) {
|
||||
})
|
||||
|
||||
route.GET("/browserconfig.xml", func(c *gin.Context) {
|
||||
c.Data(200, "text/xml; charset=utf-8", Browserconfigxml)
|
||||
c.Data(200, "application/xml; charset=utf-8", Browserconfigxml)
|
||||
})
|
||||
|
||||
route.GET("/dlnaicon-120.jpg", func(c *gin.Context) {
|
||||
@@ -69,28 +69,28 @@ func RouteWebPages(route *gin.RouterGroup) {
|
||||
c.Data(200, "application/manifest+json", Sitewebmanifest)
|
||||
})
|
||||
|
||||
route.GET("/static/js/2.6332ebcb.chunk.js", func(c *gin.Context) {
|
||||
c.Data(200, "text/javascript; charset=utf-8", Staticjs26332ebcbchunkjs)
|
||||
route.GET("/static/js/2.a16d5dc4.chunk.js", func(c *gin.Context) {
|
||||
c.Data(200, "application/javascript; charset=utf-8", Staticjs2a16d5dc4chunkjs)
|
||||
})
|
||||
|
||||
route.GET("/static/js/2.6332ebcb.chunk.js.LICENSE.txt", func(c *gin.Context) {
|
||||
c.Data(200, "text/plain; charset=utf-8", Staticjs26332ebcbchunkjsLICENSEtxt)
|
||||
route.GET("/static/js/2.a16d5dc4.chunk.js.LICENSE.txt", func(c *gin.Context) {
|
||||
c.Data(200, "text/plain; charset=utf-8", Staticjs2a16d5dc4chunkjsLICENSEtxt)
|
||||
})
|
||||
|
||||
route.GET("/static/js/2.6332ebcb.chunk.js.map", func(c *gin.Context) {
|
||||
c.Data(200, "application/json", Staticjs26332ebcbchunkjsmap)
|
||||
route.GET("/static/js/2.a16d5dc4.chunk.js.map", func(c *gin.Context) {
|
||||
c.Data(200, "application/json", Staticjs2a16d5dc4chunkjsmap)
|
||||
})
|
||||
|
||||
route.GET("/static/js/main.c27d3465.chunk.js", func(c *gin.Context) {
|
||||
c.Data(200, "text/javascript; charset=utf-8", Staticjsmainc27d3465chunkjs)
|
||||
route.GET("/static/js/main.6dd51647.chunk.js", func(c *gin.Context) {
|
||||
c.Data(200, "application/javascript; charset=utf-8", Staticjsmain6dd51647chunkjs)
|
||||
})
|
||||
|
||||
route.GET("/static/js/main.c27d3465.chunk.js.map", func(c *gin.Context) {
|
||||
c.Data(200, "application/json", Staticjsmainc27d3465chunkjsmap)
|
||||
route.GET("/static/js/main.6dd51647.chunk.js.map", func(c *gin.Context) {
|
||||
c.Data(200, "application/json", Staticjsmain6dd51647chunkjsmap)
|
||||
})
|
||||
|
||||
route.GET("/static/js/runtime-main.33603a80.js", func(c *gin.Context) {
|
||||
c.Data(200, "text/javascript; charset=utf-8", Staticjsruntimemain33603a80js)
|
||||
c.Data(200, "application/javascript; charset=utf-8", Staticjsruntimemain33603a80js)
|
||||
})
|
||||
|
||||
route.GET("/static/js/runtime-main.33603a80.js.map", func(c *gin.Context) {
|
||||
|
||||
Reference in New Issue
Block a user