Merge branch 'master' into old-engine

This commit is contained in:
nikk gitanes
2022-05-27 10:06:36 +03:00
12 changed files with 31 additions and 28 deletions

View File

@@ -23,7 +23,7 @@ import (
) )
type args struct { type args struct {
Port string `arg:"-p" help:"web server port"` Port string `arg:"-p" help:"web server port, default 8090"`
Path string `arg:"-d" help:"database dir path"` Path string `arg:"-d" help:"database dir path"`
LogPath string `arg:"-l" help:"server log file path"` LogPath string `arg:"-l" help:"server log file path"`
WebLogPath string `arg:"-w" help:"web access log file path"` WebLogPath string `arg:"-w" help:"web access log file path"`
@@ -32,7 +32,7 @@ type args struct {
DontKill bool `arg:"-k" help:"don't kill server on signal"` DontKill bool `arg:"-k" help:"don't kill server on signal"`
UI bool `arg:"-u" help:"open torrserver page in browser"` UI bool `arg:"-u" help:"open torrserver page in browser"`
TorrentsDir string `arg:"-t" help:"autoload torrents from dir"` TorrentsDir string `arg:"-t" help:"autoload torrents from dir"`
TorrentAddr string `default:":32000" help:"Torrent client address"` TorrentAddr string `help:"Torrent client address, default :32000"`
PubIPv4 string `arg:"-4" help:"set public IPv4 addr"` PubIPv4 string `arg:"-4" help:"set public IPv4 addr"`
PubIPv6 string `arg:"-6" help:"set public IPv6 addr"` PubIPv6 string `arg:"-6" help:"set public IPv6 addr"`
} }

View File

@@ -3,6 +3,7 @@ package settings
import ( import (
"path/filepath" "path/filepath"
"strings" "strings"
"time"
"server/log" "server/log"
@@ -15,7 +16,7 @@ type TDB struct {
} }
func NewTDB() *TDB { func NewTDB() *TDB {
db, err := bolt.Open(filepath.Join(Path, "config.db"), 0666, nil) db, err := bolt.Open(filepath.Join(Path, "config.db"), 0666, &bolt.Options{Timeout: 5 * time.Second})
if err != nil { if err != nil {
log.TLogln(err) log.TLogln(err)
return nil return nil

View File

@@ -77,7 +77,7 @@ func (bt *BTServer) Disconnect() {
} }
} }
func (bt *BTServer) configure(ctx context.Context) (err error) { func (bt *BTServer) configure(ctx context.Context) {
blocklist, _ := utils.ReadBlockedIP() blocklist, _ := utils.ReadBlockedIP()
bt.config = torrent.NewDefaultClientConfig() bt.config = torrent.NewDefaultClientConfig()
@@ -124,31 +124,34 @@ func (bt *BTServer) configure(ctx context.Context) (err error) {
bt.config.UploadRateLimiter = utils.Limit(settings.BTsets.UploadRateLimit * 1024) bt.config.UploadRateLimiter = utils.Limit(settings.BTsets.UploadRateLimit * 1024)
} }
if settings.TorAddr != "" { if settings.TorAddr != "" {
log.Println("Set listen addr", settings.TorAddr)
bt.config.SetListenAddr(settings.TorAddr) bt.config.SetListenAddr(settings.TorAddr)
} else { } else {
if settings.BTsets.PeersListenPort > 0 { if settings.BTsets.PeersListenPort > 0 {
log.Println("Set listen port", settings.BTsets.PeersListenPort) log.Println("Set listen port", settings.BTsets.PeersListenPort)
bt.config.ListenPort = settings.BTsets.PeersListenPort bt.config.ListenPort = settings.BTsets.PeersListenPort
} else { } else {
upnpport := 32000 lport := 32000
for { for {
log.Println("Check upnp port", upnpport) log.Println("Check listen port", lport)
l, err := net.Listen("tcp", ":"+strconv.Itoa(upnpport)) l, err := net.Listen("tcp", ":"+strconv.Itoa(lport))
if l != nil { if l != nil {
l.Close() l.Close()
} }
if err == nil { if err == nil {
break break
} }
upnpport++ lport++
} }
log.Println("Set upnp port", upnpport) log.Println("Set listen port", lport)
bt.config.ListenPort = upnpport bt.config.ListenPort = lport
} }
} }
log.Println("Client config:", settings.BTsets) log.Println("Client config:", settings.BTsets)
var err error
// set public IPv4 // set public IPv4
if settings.PubIPv4 != "" { if settings.PubIPv4 != "" {
if ip4 := net.ParseIP(settings.PubIPv4); ip4.To4() != nil && !isPrivateIP(ip4) { if ip4 := net.ParseIP(settings.PubIPv4); ip4.To4() != nil && !isPrivateIP(ip4) {
@@ -171,7 +174,7 @@ func (bt *BTServer) configure(ctx context.Context) (err error) {
bt.config.PublicIp6 = ip6 bt.config.PublicIp6 = ip6
} }
} }
if bt.config.PublicIp6 == nil { if bt.config.PublicIp6 == nil && settings.BTsets.EnableIPv6 {
bt.config.PublicIp6, err = publicip.Get6(ctx) bt.config.PublicIp6, err = publicip.Get6(ctx)
if err != nil { if err != nil {
log.Printf("error getting public ipv6 address: %v", err) log.Printf("error getting public ipv6 address: %v", err)
@@ -180,7 +183,6 @@ func (bt *BTServer) configure(ctx context.Context) (err error) {
if bt.config.PublicIp6 != nil { if bt.config.PublicIp6 != nil {
log.Println("PublicIp6:", bt.config.PublicIp6) log.Println("PublicIp6:", bt.config.PublicIp6)
} }
return err
} }
func (bt *BTServer) GetTorrent(hash torrent.InfoHash) *Torrent { func (bt *BTServer) GetTorrent(hash torrent.InfoHash) *Torrent {

View File

@@ -1,3 +1,3 @@
package version package version
const Version = "MatriX.114.OE" const Version = "MatriX.115.OE"

View File

@@ -58,11 +58,11 @@ var Staticjs28841163dchunkjsLICENSEtxt []byte
//go:embed pages/static/js/2.8841163d.chunk.js.map //go:embed pages/static/js/2.8841163d.chunk.js.map
var Staticjs28841163dchunkjsmap []byte var Staticjs28841163dchunkjsmap []byte
//go:embed pages/static/js/main.50e71e43.chunk.js //go:embed pages/static/js/main.b8051ff5.chunk.js
var Staticjsmain50e71e43chunkjs []byte var Staticjsmainb8051ff5chunkjs []byte
//go:embed pages/static/js/main.50e71e43.chunk.js.map //go:embed pages/static/js/main.b8051ff5.chunk.js.map
var Staticjsmain50e71e43chunkjsmap []byte var Staticjsmainb8051ff5chunkjsmap []byte
//go:embed pages/static/js/runtime-main.33603a80.js //go:embed pages/static/js/runtime-main.33603a80.js
var Staticjsruntimemain33603a80js []byte var Staticjsruntimemain33603a80js []byte

View File

@@ -1,7 +1,7 @@
{ {
"files": { "files": {
"main.js": "/static/js/main.50e71e43.chunk.js", "main.js": "/static/js/main.b8051ff5.chunk.js",
"main.js.map": "/static/js/main.50e71e43.chunk.js.map", "main.js.map": "/static/js/main.b8051ff5.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.33603a80.js", "runtime-main.js": "/static/js/runtime-main.33603a80.js",
"runtime-main.js.map": "/static/js/runtime-main.33603a80.js.map", "runtime-main.js.map": "/static/js/runtime-main.33603a80.js.map",
"static/js/2.8841163d.chunk.js": "/static/js/2.8841163d.chunk.js", "static/js/2.8841163d.chunk.js": "/static/js/2.8841163d.chunk.js",
@@ -12,6 +12,6 @@
"entrypoints": [ "entrypoints": [
"static/js/runtime-main.33603a80.js", "static/js/runtime-main.33603a80.js",
"static/js/2.8841163d.chunk.js", "static/js/2.8841163d.chunk.js",
"static/js/main.50e71e43.chunk.js" "static/js/main.b8051ff5.chunk.js"
] ]
} }

View File

@@ -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.8841163d.chunk.js"></script><script src="/static/js/main.50e71e43.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.8841163d.chunk.js"></script><script src="/static/js/main.b8051ff5.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

View File

@@ -81,12 +81,12 @@ func RouteWebPages(route *gin.RouterGroup) {
c.Data(200, "application/json", Staticjs28841163dchunkjsmap) c.Data(200, "application/json", Staticjs28841163dchunkjsmap)
}) })
route.GET("/static/js/main.50e71e43.chunk.js", func(c *gin.Context) { route.GET("/static/js/main.b8051ff5.chunk.js", func(c *gin.Context) {
c.Data(200, "application/javascript; charset=utf-8", Staticjsmain50e71e43chunkjs) c.Data(200, "application/javascript; charset=utf-8", Staticjsmainb8051ff5chunkjs)
}) })
route.GET("/static/js/main.50e71e43.chunk.js.map", func(c *gin.Context) { route.GET("/static/js/main.b8051ff5.chunk.js.map", func(c *gin.Context) {
c.Data(200, "application/json", Staticjsmain50e71e43chunkjsmap) c.Data(200, "application/json", Staticjsmainb8051ff5chunkjsmap)
}) })
route.GET("/static/js/runtime-main.33603a80.js", func(c *gin.Context) { route.GET("/static/js/runtime-main.33603a80.js", func(c *gin.Context) {