go package

This commit is contained in:
Alireza Ahmadi
2025-09-18 23:19:56 +02:00
parent 9d1ad833f9
commit 7751c8fce0
51 changed files with 172 additions and 128 deletions
+2 -1
View File
@@ -1,9 +1,10 @@
package api package api
import ( import (
"s-ui/util/common"
"strings" "strings"
"github.com/alireza0/s-ui/util/common"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
+5 -4
View File
@@ -2,13 +2,14 @@ package api
import ( import (
"encoding/json" "encoding/json"
"s-ui/database"
"s-ui/logger"
"s-ui/service"
"s-ui/util"
"strconv" "strconv"
"time" "time"
"github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/service"
"github.com/alireza0/s-ui/util"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
+3 -2
View File
@@ -2,10 +2,11 @@ package api
import ( import (
"encoding/json" "encoding/json"
"s-ui/logger"
"s-ui/util/common"
"time" "time"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/util/common"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
+2 -1
View File
@@ -2,7 +2,8 @@ package api
import ( import (
"encoding/gob" "encoding/gob"
"s-ui/database/model"
"github.com/alireza0/s-ui/database/model"
"github.com/gin-contrib/sessions" "github.com/gin-contrib/sessions"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
+2 -1
View File
@@ -3,9 +3,10 @@ package api
import ( import (
"net" "net"
"net/http" "net/http"
"s-ui/logger"
"strings" "strings"
"github.com/alireza0/s-ui/logger"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
+9 -8
View File
@@ -2,14 +2,15 @@ package app
import ( import (
"log" "log"
"s-ui/config"
"s-ui/core" "github.com/alireza0/s-ui/config"
"s-ui/cronjob" "github.com/alireza0/s-ui/core"
"s-ui/database" "github.com/alireza0/s-ui/cronjob"
"s-ui/logger" "github.com/alireza0/s-ui/database"
"s-ui/service" "github.com/alireza0/s-ui/logger"
"s-ui/sub" "github.com/alireza0/s-ui/service"
"s-ui/web" "github.com/alireza0/s-ui/sub"
"github.com/alireza0/s-ui/web"
"github.com/op/go-logging" "github.com/op/go-logging"
) )
+4 -3
View File
@@ -2,9 +2,10 @@ package cmd
import ( import (
"fmt" "fmt"
"s-ui/config"
"s-ui/database" "github.com/alireza0/s-ui/config"
"s-ui/service" "github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/service"
) )
func resetAdmin() { func resetAdmin() {
+3 -2
View File
@@ -5,8 +5,9 @@ import (
"fmt" "fmt"
"os" "os"
"runtime/debug" "runtime/debug"
"s-ui/cmd/migration"
"s-ui/config" "github.com/alireza0/s-ui/cmd/migration"
"github.com/alireza0/s-ui/config"
) )
func ParseCmd() { func ParseCmd() {
+2 -1
View File
@@ -3,9 +3,10 @@ package migration
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"s-ui/database/model"
"strings" "strings"
"github.com/alireza0/s-ui/database/model"
"gorm.io/gorm" "gorm.io/gorm"
) )
+2 -1
View File
@@ -5,7 +5,8 @@ import (
"errors" "errors"
"os" "os"
"path/filepath" "path/filepath"
"s-ui/database/model"
"github.com/alireza0/s-ui/database/model"
"gorm.io/gorm" "gorm.io/gorm"
) )
+2 -1
View File
@@ -3,10 +3,11 @@ package migration
import ( import (
"encoding/json" "encoding/json"
"net/url" "net/url"
"s-ui/database/model"
"strconv" "strconv"
"strings" "strings"
"github.com/alireza0/s-ui/database/model"
"gorm.io/gorm" "gorm.io/gorm"
) )
+2 -1
View File
@@ -4,7 +4,8 @@ import (
"fmt" "fmt"
"log" "log"
"os" "os"
"s-ui/config"
"github.com/alireza0/s-ui/config"
"gorm.io/driver/sqlite" "gorm.io/driver/sqlite"
"gorm.io/gorm" "gorm.io/gorm"
+4 -3
View File
@@ -4,11 +4,12 @@ import (
"fmt" "fmt"
"io" "io"
"net/http" "net/http"
"s-ui/config"
"s-ui/database"
"s-ui/service"
"strings" "strings"
"github.com/alireza0/s-ui/config"
"github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/service"
"github.com/shirou/gopsutil/v4/net" "github.com/shirou/gopsutil/v4/net"
) )
+2 -1
View File
@@ -5,9 +5,10 @@ import (
"fmt" "fmt"
"io" "io"
"os" "os"
"s-ui/util/common"
"time" "time"
"github.com/alireza0/s-ui/util/common"
"github.com/sagernet/sing-box/adapter" "github.com/sagernet/sing-box/adapter"
"github.com/sagernet/sing-box/adapter/endpoint" "github.com/sagernet/sing-box/adapter/endpoint"
"github.com/sagernet/sing-box/adapter/inbound" "github.com/sagernet/sing-box/adapter/inbound"
+2 -2
View File
@@ -1,8 +1,8 @@
package core package core
import ( import (
"s-ui/logger" "github.com/alireza0/s-ui/logger"
"s-ui/util/common" "github.com/alireza0/s-ui/util/common"
"github.com/sagernet/sing-box/adapter" "github.com/sagernet/sing-box/adapter"
"github.com/sagernet/sing-box/option" "github.com/sagernet/sing-box/option"
+2 -1
View File
@@ -4,9 +4,10 @@ import (
"context" "context"
"io" "io"
"os" "os"
suiLog "s-ui/logger"
"time" "time"
suiLog "github.com/alireza0/s-ui/logger"
"github.com/sagernet/sing-box/log" "github.com/sagernet/sing-box/log"
"github.com/sagernet/sing/common" "github.com/sagernet/sing/common"
F "github.com/sagernet/sing/common/format" F "github.com/sagernet/sing/common/format"
+2 -1
View File
@@ -2,7 +2,8 @@ package core
import ( import (
"context" "context"
"s-ui/logger"
"github.com/alireza0/s-ui/logger"
sb "github.com/sagernet/sing-box" sb "github.com/sagernet/sing-box"
"github.com/sagernet/sing-box/adapter" "github.com/sagernet/sing-box/adapter"
+2 -1
View File
@@ -3,10 +3,11 @@ package core
import ( import (
"context" "context"
"net" "net"
"s-ui/database/model"
"sync" "sync"
"time" "time"
"github.com/alireza0/s-ui/database/model"
"github.com/sagernet/sing-box/adapter" "github.com/sagernet/sing-box/adapter"
"github.com/sagernet/sing/common/atomic" "github.com/sagernet/sing/common/atomic"
"github.com/sagernet/sing/common/bufio" "github.com/sagernet/sing/common/bufio"
+1 -1
View File
@@ -1,7 +1,7 @@
package cronjob package cronjob
import ( import (
"s-ui/service" "github.com/alireza0/s-ui/service"
) )
type CheckCoreJob struct { type CheckCoreJob struct {
+2 -2
View File
@@ -1,8 +1,8 @@
package cronjob package cronjob
import ( import (
"s-ui/logger" "github.com/alireza0/s-ui/logger"
"s-ui/service" "github.com/alireza0/s-ui/service"
) )
type DelStatsJob struct { type DelStatsJob struct {
+3 -3
View File
@@ -1,9 +1,9 @@
package cronjob package cronjob
import ( import (
"s-ui/database" "github.com/alireza0/s-ui/database"
"s-ui/logger" "github.com/alireza0/s-ui/logger"
"s-ui/service" "github.com/alireza0/s-ui/service"
) )
type DepleteJob struct { type DepleteJob struct {
+2 -2
View File
@@ -1,8 +1,8 @@
package cronjob package cronjob
import ( import (
"s-ui/logger" "github.com/alireza0/s-ui/logger"
"s-ui/service" "github.com/alireza0/s-ui/service"
) )
type StatsJob struct { type StatsJob struct {
+6 -5
View File
@@ -8,15 +8,16 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"runtime" "runtime"
"s-ui/cmd/migration"
"s-ui/config"
"s-ui/database/model"
"s-ui/logger"
"s-ui/util/common"
"strings" "strings"
"syscall" "syscall"
"time" "time"
"github.com/alireza0/s-ui/cmd/migration"
"github.com/alireza0/s-ui/config"
"github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/util/common"
"gorm.io/driver/sqlite" "gorm.io/driver/sqlite"
"gorm.io/gorm" "gorm.io/gorm"
) )
+3 -2
View File
@@ -4,8 +4,9 @@ import (
"encoding/json" "encoding/json"
"os" "os"
"path" "path"
"s-ui/config"
"s-ui/database/model" "github.com/alireza0/s-ui/config"
"github.com/alireza0/s-ui/database/model"
"gorm.io/driver/sqlite" "gorm.io/driver/sqlite"
"gorm.io/gorm" "gorm.io/gorm"
+1 -1
View File
@@ -1,4 +1,4 @@
module s-ui module github.com/alireza0/s-ui
go 1.25.1 go 1.25.1
+3 -2
View File
@@ -4,9 +4,10 @@ import (
"log" "log"
"os" "os"
"os/signal" "os/signal"
"s-ui/app"
"s-ui/cmd"
"syscall" "syscall"
"github.com/alireza0/s-ui/app"
"github.com/alireza0/s-ui/cmd"
) )
func runApp() { func runApp() {
+6 -5
View File
@@ -3,14 +3,15 @@ package service
import ( import (
"bytes" "bytes"
"encoding/json" "encoding/json"
"s-ui/database"
"s-ui/database/model"
"s-ui/logger"
"s-ui/util"
"s-ui/util/common"
"strings" "strings"
"time" "time"
"github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/util"
"github.com/alireza0/s-ui/util/common"
"gorm.io/gorm" "gorm.io/gorm"
) )
+6 -5
View File
@@ -2,13 +2,14 @@ package service
import ( import (
"encoding/json" "encoding/json"
"s-ui/core"
"s-ui/database"
"s-ui/database/model"
"s-ui/logger"
"s-ui/util/common"
"strconv" "strconv"
"time" "time"
"github.com/alireza0/s-ui/core"
"github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/util/common"
) )
var ( var (
+4 -3
View File
@@ -3,9 +3,10 @@ package service
import ( import (
"encoding/json" "encoding/json"
"os" "os"
"s-ui/database"
"s-ui/database/model" "github.com/alireza0/s-ui/database"
"s-ui/util/common" "github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/util/common"
"gorm.io/gorm" "gorm.io/gorm"
) )
+5 -4
View File
@@ -4,12 +4,13 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"os" "os"
"s-ui/database"
"s-ui/database/model"
"s-ui/util"
"s-ui/util/common"
"strings" "strings"
"github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/util"
"github.com/alireza0/s-ui/util/common"
"gorm.io/gorm" "gorm.io/gorm"
) )
+4 -3
View File
@@ -3,9 +3,10 @@ package service
import ( import (
"encoding/json" "encoding/json"
"os" "os"
"s-ui/database"
"s-ui/database/model" "github.com/alireza0/s-ui/database"
"s-ui/util/common" "github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/util/common"
"gorm.io/gorm" "gorm.io/gorm"
) )
+2 -1
View File
@@ -3,9 +3,10 @@ package service
import ( import (
"os" "os"
"runtime" "runtime"
"s-ui/logger"
"syscall" "syscall"
"time" "time"
"github.com/alireza0/s-ui/logger"
) )
type PanelService struct { type PanelService struct {
+3 -2
View File
@@ -4,12 +4,13 @@ import (
"encoding/base64" "encoding/base64"
"os" "os"
"runtime" "runtime"
"s-ui/config"
"s-ui/logger"
"strconv" "strconv"
"strings" "strings"
"time" "time"
"github.com/alireza0/s-ui/config"
"github.com/alireza0/s-ui/logger"
"github.com/sagernet/sing-box/common/tls" "github.com/sagernet/sing-box/common/tls"
"github.com/shirou/gopsutil/v4/cpu" "github.com/shirou/gopsutil/v4/cpu"
"github.com/shirou/gopsutil/v4/disk" "github.com/shirou/gopsutil/v4/disk"
+4 -3
View File
@@ -3,9 +3,10 @@ package service
import ( import (
"encoding/json" "encoding/json"
"os" "os"
"s-ui/database"
"s-ui/database/model" "github.com/alireza0/s-ui/database"
"s-ui/util/common" "github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/util/common"
"gorm.io/gorm" "gorm.io/gorm"
) )
+6 -5
View File
@@ -4,15 +4,16 @@ import (
"encoding/json" "encoding/json"
"os" "os"
"runtime" "runtime"
"s-ui/config"
"s-ui/database"
"s-ui/database/model"
"s-ui/logger"
"s-ui/util/common"
"strconv" "strconv"
"strings" "strings"
"time" "time"
"github.com/alireza0/s-ui/config"
"github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/util/common"
"gorm.io/gorm" "gorm.io/gorm"
) )
+3 -2
View File
@@ -1,10 +1,11 @@
package service package service
import ( import (
"s-ui/database"
"s-ui/database/model"
"time" "time"
"github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/database/model"
"gorm.io/gorm" "gorm.io/gorm"
) )
+4 -3
View File
@@ -2,9 +2,10 @@ package service
import ( import (
"encoding/json" "encoding/json"
"s-ui/database"
"s-ui/database/model" "github.com/alireza0/s-ui/database"
"s-ui/util/common" "github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/util/common"
"gorm.io/gorm" "gorm.io/gorm"
) )
+5 -4
View File
@@ -2,11 +2,12 @@ package service
import ( import (
"encoding/json" "encoding/json"
"s-ui/database"
"s-ui/database/model"
"s-ui/logger"
"s-ui/util/common"
"time" "time"
"github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/util/common"
) )
type UserService struct { type UserService struct {
+4 -3
View File
@@ -8,12 +8,13 @@ import (
"net" "net"
"net/http" "net/http"
"os" "os"
"s-ui/database/model"
"s-ui/logger"
"s-ui/util/common"
"strconv" "strconv"
"time" "time"
"github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/util/common"
"golang.zx2c4.com/wireguard/wgctrl/wgtypes" "golang.zx2c4.com/wireguard/wgctrl/wgtypes"
) )
+4 -3
View File
@@ -1,11 +1,12 @@
package sub package sub
import ( import (
"s-ui/logger"
"s-ui/service"
"s-ui/util"
"strings" "strings"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/service"
"github.com/alireza0/s-ui/util"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
) )
+5 -4
View File
@@ -3,11 +3,12 @@ package sub
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"s-ui/database"
"s-ui/database/model"
"s-ui/service"
"s-ui/util"
"strings" "strings"
"github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/service"
"github.com/alireza0/s-ui/util"
) )
const defaultJson = ` const defaultJson = `
+3 -2
View File
@@ -5,9 +5,10 @@ import (
"encoding/json" "encoding/json"
"io" "io"
"net/http" "net/http"
"s-ui/logger"
"s-ui/util"
"strings" "strings"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/util"
) )
type Link struct { type Link struct {
+6 -5
View File
@@ -6,13 +6,14 @@ import (
"io" "io"
"net" "net"
"net/http" "net/http"
"s-ui/config"
"s-ui/logger"
"s-ui/middleware"
"s-ui/network"
"s-ui/service"
"strconv" "strconv"
"github.com/alireza0/s-ui/config"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/middleware"
"github.com/alireza0/s-ui/network"
"github.com/alireza0/s-ui/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
+2 -2
View File
@@ -1,8 +1,8 @@
package sub package sub
import ( import (
"s-ui/logger" "github.com/alireza0/s-ui/logger"
"s-ui/service" "github.com/alireza0/s-ui/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
+5 -4
View File
@@ -3,12 +3,13 @@ package sub
import ( import (
"encoding/base64" "encoding/base64"
"fmt" "fmt"
"s-ui/database"
"s-ui/database/model"
"s-ui/service"
"s-ui/util"
"strings" "strings"
"time" "time"
"github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/service"
"github.com/alireza0/s-ui/util"
) )
type SubService struct { type SubService struct {
+2 -1
View File
@@ -3,7 +3,8 @@ package common
import ( import (
"errors" "errors"
"fmt" "fmt"
"s-ui/logger"
"github.com/alireza0/s-ui/logger"
) )
func NewErrorf(format string, a ...interface{}) error { func NewErrorf(format string, a ...interface{}) error {
+3 -2
View File
@@ -5,9 +5,10 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"net/url" "net/url"
"s-ui/database/model"
"s-ui/util/common"
"strings" "strings"
"github.com/alireza0/s-ui/database/model"
"github.com/alireza0/s-ui/util/common"
) )
var InboundTypeWithLink = []string{"socks", "http", "mixed", "shadowsocks", "naive", "hysteria", "hysteria2", "anytls", "tuic", "vless", "trojan", "vmess"} var InboundTypeWithLink = []string{"socks", "http", "mixed", "shadowsocks", "naive", "hysteria", "hysteria2", "anytls", "tuic", "vless", "trojan", "vmess"}
+2 -1
View File
@@ -5,9 +5,10 @@ import (
"fmt" "fmt"
"net" "net"
"net/url" "net/url"
"s-ui/util/common"
"strconv" "strconv"
"strings" "strings"
"github.com/alireza0/s-ui/util/common"
) )
func GetOutbound(uri string, i int) (*map[string]interface{}, string, error) { func GetOutbound(uri string, i int) (*map[string]interface{}, string, error) {
+2 -1
View File
@@ -3,7 +3,8 @@ package util
import ( import (
"encoding/json" "encoding/json"
"math/rand" "math/rand"
"s-ui/database/model"
"github.com/alireza0/s-ui/database/model"
) )
// Fill Inbound's out_json // Fill Inbound's out_json
+2 -1
View File
@@ -2,7 +2,8 @@ package util
import ( import (
"fmt" "fmt"
"s-ui/database/model"
"github.com/alireza0/s-ui/database/model"
) )
func GetHeaders(client *model.Client, updateInterval int) []string { func GetHeaders(client *model.Client, updateInterval int) []string {
+7 -6
View File
@@ -9,15 +9,16 @@ import (
"io/fs" "io/fs"
"net" "net"
"net/http" "net/http"
"s-ui/api"
"s-ui/config"
"s-ui/logger"
"s-ui/middleware"
"s-ui/network"
"s-ui/service"
"strconv" "strconv"
"strings" "strings"
"github.com/alireza0/s-ui/api"
"github.com/alireza0/s-ui/config"
"github.com/alireza0/s-ui/logger"
"github.com/alireza0/s-ui/middleware"
"github.com/alireza0/s-ui/network"
"github.com/alireza0/s-ui/service"
"github.com/gin-contrib/gzip" "github.com/gin-contrib/gzip"
"github.com/gin-contrib/sessions" "github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/cookie" "github.com/gin-contrib/sessions/cookie"