Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenhan wang
pastebin
Commits
28f2e8e9
Commit
28f2e8e9
authored
Dec 19, 2022
by
chenhan wang
Browse files
Merge branch 'master1' of
http://xlab.zju.edu.cn/git/chenhan/pastebin
into master1
parents
230b533b
1a2ccef2
Changes
8
Hide whitespace changes
Inline
Side-by-side
backend/app/controller/interface.go
View file @
28f2e8e9
...
...
@@ -4,8 +4,7 @@ import (
"net"
"net/http"
"pastebin_backend/app/response"
"pastebin_backend/model"
//"pastebin_backend/model"
//"error"
"time"
...
...
backend/app/init.go
View file @
28f2e8e9
package
app
import
(
"
pastebin_
backend/utils"
"backend/utils"
//"net/http"
"github.com/labstack/echo/v4"
"github.com/sirupsen/logrus"
...
...
backend/app/routes.go
View file @
28f2e8e9
package
app
import
(
"
pastebin_
backend/app/controller"
"
pastebin_
backend/app/middleware"
//"
pastebin_
backend/model"
"backend/app/controller"
"backend/app/middleware"
//"backend/model"
)
func
addRoutes
()
{
...
...
backend/go.mod
View file @
28f2e8e9
module
pastebin_
backend
module backend
go 1.19
...
...
backend/main.go
View file @
28f2e8e9
...
...
@@ -6,18 +6,27 @@
package
main
import
(
"pastebin_
backend/app"
//"
backend/app"
//"pastebin_backend/app/controller"
"pastebin_backend/model"
"backend/model"
//"time"
"fmt"
"github.com/sirupsen/logrus"
)
func
main
()
{
logrus
.
SetReportCaller
(
true
)
model
.
Init
()
app
.
InitWebFramework
()
app
.
StartServer
()
/* var user3 model.Users
user3.Passwd = "123456"
model.Createuser(user3)
var url2 = new(model.Url)
var s2 string = "/person/example"
var s3 string = "lytgodbb"
for i := 0; i <= 10; i++ {
model.Checkt(s2)
}*/
fmt
.
Println
(
model
.
Find
(
"fF2pGKiB"
,
"/person/example "
))
//controller.BuildSocket()
//controller.RecvFile()
}
backend/model/init.go
View file @
28f2e8e9
package
model
import
(
//"fmt"
"time"
"math/rand"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
...
...
@@ -13,20 +15,24 @@ var DB *gorm.DB
var
id1
uint
=
0
func
Init
()
{
c
onnectDatabase
()
C
onnectDatabase
()
var
err
error
// insert auto-table
err
=
DB
.
AutoMigrate
(
&
Content
{})
if
err
!=
nil
{
logrus
.
Fatal
(
err
)
}
err
=
DB
.
AutoMigrate
(
&
Users
{})
if
err
!=
nil
{
logrus
.
Fatal
(
err
)
}
err
=
DB
.
AutoMigrate
(
&
content
{})
err
=
DB
.
AutoMigrate
(
&
Url
{},
&
Sid
{})
if
err
!=
nil
{
logrus
.
Fatal
(
err
)
}
}
func
c
onnectDatabase
()
{
func
C
onnectDatabase
()
{
// config
viper
.
SetConfigName
(
"config"
)
viper
.
SetConfigType
(
"yaml"
)
...
...
@@ -47,35 +53,36 @@ func connectDatabase() {
// Backcheck content through link
//通过链接反查内容
func
f
indlink
(
_
Route
string
)
content
{
var
p
c
ontent
err
:=
DB
.
First
(
&
p
,
"
Route
= ?"
,
_
Route
)
func
F
indlink
(
_
url
string
)
string
{
var
p
C
ontent
err
:=
DB
.
First
(
&
p
,
"
Url1
= ?"
,
_
url
)
if
err
!=
nil
{
logrus
.
Error
(
err
)
}
return
p
return
p
.
Route
}
// save text information
//保存文本和文件信息
func
s
avetext
(
_Route
string
,
_Time
uint
,
_Passwd
string
,
_Time1
time
.
Time
)
{
func
S
avetext
(
_Route
string
,
_Time
uint
,
_Passwd
string
,
_Time1
time
.
Time
,
_url
string
)
{
id1
++
p
:=
c
ontent
{
p
:=
C
ontent
{
ID
:
id1
,
Route
:
_Route
,
Time
:
_Time
,
Passwd
:
_Passwd
,
Date
:
time
.
Now
(),
Time1
:
_Time1
,
Time2
:
0
,
Url1
:
_url
,
}
DB
.
Create
(
&
p
)
}
// Check whether the number of visits exceeds the threshold and the time limit
//检查是否超过总访问次数和截止时间
func
c
heckt
(
_Route
string
)
{
var
p
c
ontent
func
C
heckt
(
_Route
string
)
{
var
p
C
ontent
err
:=
DB
.
First
(
&
p
,
"Route = ?"
,
_Route
)
if
err
!=
nil
{
logrus
.
Error
(
err
)
...
...
@@ -85,4 +92,59 @@ func checkt(_Route string) {
if
p
.
Time2
>
p
.
Time
||
t
.
After
(
p
.
Time1
)
{
DB
.
Delete
(
&
p
)
}
}
\ No newline at end of file
}
//查找sessionid和url是否关联
func
Find
(
sid
string
,
_url
string
)
bool
{
var
url
Url
err1
:=
DB
.
First
(
&
url
,
"Url1 = ?"
,
_url
)
.
Error
//fmt.Println(url.Url1,url.ID,"\n")
if
err1
!=
nil
{
return
false
}
var
sid1
Sid
DB
.
Model
(
&
url
)
.
Where
(
"S = ?"
,
sid
)
.
Association
(
"User1"
)
.
Find
(
&
sid1
)
if
sid1
.
UrlID
==
0
{
return
false
}
return
true
}
var
letters
=
[]
rune
(
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"
)
//随机生成字符串
func
randStr
(
n
int
)
string
{
rand
.
Seed
(
time
.
Now
()
.
Unix
())
b
:=
make
([]
rune
,
n
)
for
i
:=
range
b
{
b
[
i
]
=
letters
[
rand
.
Intn
(
len
(
letters
))]
}
return
string
(
b
)
}
//新建用户
func
Createuser
(
_User
Users
)
{
_User
.
SessionId
=
randStr
(
8
)
DB
.
Create
(
&
_User
)
}
//新建链接
func
Createlink
(
sid
string
,
_passwd
string
,
_url
string
)
bool
{
var
p
Content
DB
.
First
(
&
p
,
"Url1 = ?"
,
_url
)
if
p
.
Passwd
==
_passwd
{
var
p1
Sid
var
p2
Url
p1
.
S
=
sid
err
:=
DB
.
First
(
&
p2
,
"Url1 = ?"
,
_url
)
.
Error
// fmt.Println("yes ",err)
if
err
!=
nil
{
//fmt.Println("yes ")
p2
.
Url1
=
_url
DB
.
Create
(
&
p2
)
}
DB
.
Model
(
&
p2
)
.
Association
(
"User1"
)
.
Append
(
&
p1
)
return
true
}
return
false
}
backend/model/model.go
View file @
28f2e8e9
...
...
@@ -2,9 +2,10 @@ package model
import
(
"time"
"gorm.io/gorm"
)
type
c
ontent
struct
{
type
C
ontent
struct
{
ID
uint
`gorm:"primarykey"`
Route
string
Time
uint
...
...
@@ -13,12 +14,26 @@ type content struct {
Size
uint
Time1
time
.
Time
Time2
uint
Url1
string
}
type
Url
struct
{
gorm
.
Model
Url1
string
User1
[]
Sid
}
type
Sid
struct
{
S
string
UrlID
uint
}
type
Users
struct
{
SessionId
string
Username
string
Passwd
string
Name
string
Size
uint
Route
string
}
\ No newline at end of file
}
pastebin
@
ded77073
Subproject commit ded770739475219412b72eb9b8eb377405fb5803
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment