Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
twitter_syncer
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Odysseus
twitter_syncer
Commits
4e94b8be
Commit
4e94b8be
authored
Oct 18, 2024
by
vicotor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update main
parent
e72fa1c2
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1426 additions
and
383 deletions
+1426
-383
api_service.go
api_service.go
+95
-0
docs.go
docs/docs.go
+494
-7
swagger.json
docs/swagger.json
+494
-2
swagger.yaml
docs/swagger.yaml
+295
-349
go.mod
go.mod
+9
-7
go.sum
go.sum
+14
-0
main.go
main.go
+25
-18
No files found.
api_service.go
View file @
4e94b8be
...
...
@@ -54,6 +54,17 @@ type ProjectReq struct {
Project
string
`json:"project"`
}
// GetConfigOwner godoc
// @Summary GetConfigOwner
// @Description get config owner info.
// @Tags config
// @Accept json
// @Produce json
// @Param config body Config true "config"
// @Success 200 {object} ProjectRes
// @Failure 400 {object} Res
// @Failure 500 {object} Res
// @Router /apikey/owner [get]
func
GetConfigOwner
(
c
*
fiber
.
Ctx
)
error
{
slog
.
Info
(
c
.
Route
()
.
Path
,
"body"
,
string
(
c
.
Request
()
.
Body
()))
...
...
@@ -84,6 +95,31 @@ func GetConfigOwner(c *fiber.Ctx) error {
}
// add comment to generate swagger docs, example as below.
// GetUser godoc
// @Summary Get a user
// @Description get user by ID
// @Tags users
// @Accept json
// @Produce json
// @Param id path int true "User ID"
// @Success 200 {object} models.User
// @Failure 400 {object} models.HTTPError
// @Failure 404 {object} models.HTTPError
// @Failure 500 {object} models.HTTPError
// @Router /users/{id} [get]
// Project godoc
// @Summary Project
// @Description add project info.
// @Tags project
// @Accept json
// @Produce json
// @Param project body ProjectReq true "project"
// @Success 200 {object} ProjectRes
// @Failure 400 {object} Res
// @Failure 500 {object} Res
// @Router /project [post]
func
Project
(
c
*
fiber
.
Ctx
)
error
{
slog
.
Info
(
c
.
Route
()
.
Path
,
"body"
,
string
(
c
.
Request
()
.
Body
()))
...
...
@@ -148,6 +184,17 @@ type AddTaskReq struct {
ApiConfig
Config
`json:"config"`
}
// TaskAdd godoc
// @Summary TaskAdd
// @Description add task info.
// @Tags task
// @Accept json
// @Produce json
// @Param task body AddTaskReq true "task"
// @Success 200 {object} Res
// @Failure 400 {object} Res
// @Failure 500 {object} Res
// @Router /task/add [post]
func
TaskAdd
(
c
*
fiber
.
Ctx
)
error
{
slog
.
Info
(
c
.
Route
()
.
Path
,
"body"
,
string
(
c
.
Request
()
.
Body
()))
...
...
@@ -264,6 +311,17 @@ type StopTaskReq struct {
TaskId
string
`json:"task_id"`
}
// TaskStop godoc
// @Summary TaskStop
// @Description stop task info.
// @Tags task
// @Accept json
// @Produce json
// @Param task body StopTaskReq true "task"
// @Success 200 {object} Res
// @Failure 400 {object} Res
// @Failure 500 {object} Res
// @Router /task/stop [post]
func
TaskStop
(
c
*
fiber
.
Ctx
)
error
{
slog
.
Info
(
c
.
Route
()
.
Path
,
"body"
,
string
(
c
.
Request
()
.
Body
()))
...
...
@@ -315,6 +373,18 @@ func TaskStop(c *fiber.Ctx) error {
}
// VerifyRetweeter godoc
// @Summary VerifyRetweeter
// @Description verify retweeter info.
// @Tags verify
// @Accept json
// @Produce json
// @Param tweet_id query string true "tweet_id"
// @Param retweeter_id query string true "retweeter_id"
// @Success 200 {object} VerifyRes
// @Failure 400 {object} Res
// @Failure 500 {object} Res
// @Router /verify/retweeter [get]
func
VerifyRetweeter
(
c
*
fiber
.
Ctx
)
error
{
tweetId
:=
c
.
Query
(
"tweet_id"
)
...
...
@@ -355,6 +425,19 @@ func VerifyRetweeter(c *fiber.Ctx) error {
}
// VerifyFollower godoc
// @Summary VerifyFollower
// @Description verify follower info.
// @Tags verify
// @Accept json
// @Produce json
// @Param task_id query string true "task_id"
// @Param follower_id query string true "follower_id"
// @Param follower_username query string true "follower_username"
// @Success 200 {object} VerifyRes
// @Failure 400 {object} Res
// @Failure 500 {object} Res
// @Router /verify/follower [get]
func
VerifyFollower
(
c
*
fiber
.
Ctx
)
error
{
userId
:=
c
.
Query
(
"task_id"
)
...
...
@@ -393,6 +476,18 @@ func VerifyFollower(c *fiber.Ctx) error {
}
// VerifyLike godoc
// @Summary VerifyLike
// @Description verify like info.
// @Tags verify
// @Accept json
// @Produce json
// @Param tweet_id query string true "tweet_id"
// @Param user_id query string true "user_id"
// @Success 200 {object} VerifyRes
// @Failure 400 {object} Res
// @Failure 500 {object} Res
// @Router /verify/like [get]
func
VerifyLike
(
c
*
fiber
.
Ctx
)
error
{
tweetId
:=
c
.
Query
(
"tweet_id"
)
...
...
docs/docs.go
View file @
4e94b8be
This diff is collapsed.
Click to expand it.
docs/swagger.json
View file @
4e94b8be
This diff is collapsed.
Click to expand it.
docs/swagger.yaml
View file @
4e94b8be
This diff is collapsed.
Click to expand it.
go.mod
View file @
4e94b8be
...
...
@@ -16,7 +16,7 @@ require (
require (
github.com/AlexEidt/Vidio v1.5.1 // indirect
github.com/KyleBanks/depth v1.2.1 // indirect
github.com/andybalholm/brotli v1.1.
0
// indirect
github.com/andybalholm/brotli v1.1.
1
// indirect
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
...
...
@@ -33,10 +33,11 @@ require (
github.com/go-openapi/swag v0.23.0 // indirect
github.com/go-openapi/validate v0.22.3 // indirect
github.com/gofiber/contrib/swagger v1.2.0 // indirect
github.com/gofiber/swagger v1.1.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/klauspost/compress v1.17.
9
// indirect
github.com/klauspost/compress v1.17.
11
// indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
...
...
@@ -51,15 +52,16 @@ require (
github.com/swaggo/files/v2 v2.0.1 // indirect
github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasthttp v1.5
5
.0 // indirect
github.com/valyala/fasthttp v1.5
6
.0 // indirect
github.com/valyala/tcplisten v1.0.0 // indirect
go.mongodb.org/mongo-driver v1.13.1 // indirect
golang.org/x/net v0.
29
.0 // indirect
golang.org/x/sys v0.2
5
.0 // indirect
golang.org/x/tools v0.2
3
.0 // indirect
golang.org/x/net v0.
30
.0 // indirect
golang.org/x/sys v0.2
6
.0 // indirect
golang.org/x/tools v0.2
6
.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
replace github.com/imperatrona/twitter-scraper => ../twitter-scraper
//replace github.com/imperatrona/twitter-scraper => github.com/xueqianLu/twitter-scraper v0.0.2
\ No newline at end of file
//replace github.com/imperatrona/twitter-scraper => github.com/xueqianLu/twitter-scraper v0.0.2
go.sum
View file @
4e94b8be
...
...
@@ -4,6 +4,8 @@ github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc
github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA=
github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA=
github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
...
...
@@ -78,6 +80,8 @@ github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFF
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
...
...
@@ -144,6 +148,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.55.0 h1:Zkefzgt6a7+bVKHnu/YaYSOPfNYNisSVBo/unVCf8k8=
github.com/valyala/fasthttp v1.55.0/go.mod h1:NkY9JtkrpPKmgwV3HTaS2HWaJss9RSIsRVfcxxoHiOM=
github.com/valyala/fasthttp v1.56.0 h1:bEZdJev/6LCBlpdORfrLu/WOZXXxvrUQSiyniuaoW8U=
github.com/valyala/fasthttp v1.56.0/go.mod h1:sReBt3XZVnudxuLOx4J/fMrJVorWRiWY2koQKgABiVI=
github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
...
...
@@ -153,6 +159,7 @@ github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgk
github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM=
github.com/xueqianLu/twitter-scraper v0.0.1/go.mod h1:38MY3g/h4V7Xl4HbW9lnkL8S3YiFZenBFv86hN57RG8=
github.com/xueqianLu/twitter-scraper v0.0.2/go.mod h1:wtKfvNag8hxo4I0gEAn90OrKp1F0+StuFD3zbtIZlZE=
github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8=
...
...
@@ -173,6 +180,7 @@ golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8=
golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
...
...
@@ -187,6 +195,8 @@ golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
...
...
@@ -214,6 +224,8 @@ golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
...
...
@@ -245,6 +257,8 @@ golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg=
golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI=
golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ=
golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
...
...
main.go
View file @
4e94b8be
// @title Twitter Syncer API
// @version 1.0
// @description This is api for twitter syncer.
// @contact.name API Support
// @contact.url http://www.swagger.io/support
// @contact.email support@swagger.io
// @license.name Apache 2.0
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html
// @host localhost:8001
// @BasePath /
package
main
import
(
"fmt"
"github.com/gofiber/swagger"
"log/slog"
// "github.com/gofiber/fiber/v2"
// "github.com/gofiber/fiber/v2/middleware/cors"
// "github.com/gofiber/swagger"
"github.com/gofiber/contrib/swagger"
//"github.com/gofiber/contrib/swagger"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/cors"
//"github.com/gofiber/swagger"
_
"code.wuban.net.cn/odysseus/twitter_syncer/docs"
// docs are generated by Swag CLI, you have to import them.
// replace with your own docs folder, usually "github.com/username/reponame/docs"
//_ "github.com/gofiber/swagger/example/docs"
)
func
main
()
{
...
...
@@ -51,14 +57,15 @@ func main() {
//app.Static("/swagger/docs", "./docs")
cfg
:=
swagger
.
Config
{
BasePath
:
"/"
,
FilePath
:
"./docs/swagger.yaml"
,
Path
:
"swagger"
,
Title
:
"Swagger API Docs"
,
}
app
.
Use
(
swagger
.
New
(
cfg
))
//cfg := swagger.Config{
// BasePath: "/",
// FilePath: "./docs/swagger.yaml",
// Path: "swagger",
// Title: "Swagger API Docs",
//}
//
//app.Use(swagger.New(cfg))
app
.
Get
(
"/swagger/*"
,
swagger
.
HandlerDefault
)
app
.
Post
(
"/project"
,
Project
)
app
.
Get
(
"/apikey/owner"
,
GetConfigOwner
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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