Added telegram version
This commit is contained in:
parent
cc2058090c
commit
e69884ce52
9 changed files with 111 additions and 24 deletions
|
|
@ -10,14 +10,18 @@ deploy:
|
|||
- apk add curl
|
||||
variables:
|
||||
DOCKER_TLS_CERTDIR: "/certs"
|
||||
IMAGE_NAME: "$DOCKER_IMAGE_TAG:$CI_JOB_ID.$CI_COMMIT_SHORT_SHA"
|
||||
IMAGE_NAME_VK: "$DOCKER_IMAGE_TAG_VK:$CI_JOB_ID.$CI_COMMIT_SHORT_SHA"
|
||||
IMAGE_NAME_TG: "$DOCKER_IMAGE_TAG_TG:$CI_JOB_ID.$CI_COMMIT_SHORT_SHA"
|
||||
services:
|
||||
- docker:19.03.12-dind
|
||||
script:
|
||||
- docker build . -t $DOCKER_IMAGE_TAG -t $IMAGE_NAME
|
||||
- docker build . -t $DOCKER_IMAGE_TAG_VK -t $IMAGE_NAME_VK --build-arg VERSION=vk
|
||||
- docker build . -t $DOCKER_IMAGE_TAG_TG -t $IMAGE_NAME_TG --build-arg VERSION=telegram
|
||||
- docker login $REGISTRY_NAME -u $DOCKER_USER -p $DOCKER_PASSWORD
|
||||
- docker push $IMAGE_NAME
|
||||
- docker push $DOCKER_IMAGE_TAG
|
||||
- docker push $IMAGE_NAME_VK
|
||||
- docker push $DOCKER_IMAGE_TAG_VK
|
||||
- docker push $IMAGE_NAME_TG
|
||||
- docker push $DOCKER_IMAGE_TAG_TG
|
||||
- "curl -X POST -H \"Authorization: Bearer $GOCD_ACCESS_TOKEN\" -d '{\"repository_url\": \"https://gitlab.com/flygrounder/go-mtg-vk\"}' -H \"Accept: application/vnd.go.cd.v2+json\" -H \"Content-Type: application/json\" https://gocd.flygrounder.ru/go/api/admin/materials/git/notify"
|
||||
only:
|
||||
- master
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
FROM golang:1.15.4-alpine3.12
|
||||
|
||||
ARG VERSION
|
||||
ENV VERSION=$VERSION
|
||||
|
||||
COPY . /go/src/go-mtg-vk
|
||||
WORKDIR /go/src/go-mtg-vk
|
||||
RUN go build ./cmd/go-mtg-vk
|
||||
RUN go build ./cmd/$VERSION
|
||||
RUN mkdir logs
|
||||
ENV GIN_MODE=release
|
||||
ENTRYPOINT ./go-mtg-vk
|
||||
ENTRYPOINT ./$VERSION
|
||||
|
|
|
|||
48
cmd/telegram/main.go
Normal file
48
cmd/telegram/main.go
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
|
||||
"gitlab.com/flygrounder/go-mtg-vk/internal/cardsinfo"
|
||||
"gitlab.com/flygrounder/go-mtg-vk/internal/scenario"
|
||||
|
||||
"gitlab.com/flygrounder/go-mtg-vk/internal/caching"
|
||||
"gitlab.com/flygrounder/go-mtg-vk/internal/telegram"
|
||||
)
|
||||
|
||||
func main() {
|
||||
dict, _ := os.Open("./assets/additional_cards.json")
|
||||
dictBytes, _ := ioutil.ReadAll(dict)
|
||||
var dictMap map[string]string
|
||||
_ = json.Unmarshal(dictBytes, &dictMap)
|
||||
bot, _ := tgbotapi.NewBotAPI(os.Getenv("TG_TOKEN"))
|
||||
sender := &telegram.Sender{
|
||||
API: bot,
|
||||
}
|
||||
sc := &scenario.Scenario{
|
||||
Sender: sender,
|
||||
Logger: log.New(os.Stdout, "", 0),
|
||||
Cache: caching.NewClient("redis:6379", "", time.Hour*24, 0),
|
||||
InfoFetcher: &cardsinfo.Fetcher{
|
||||
Dict: dictMap,
|
||||
},
|
||||
}
|
||||
|
||||
u := tgbotapi.NewUpdate(0)
|
||||
updates, _ := bot.GetUpdatesChan(u)
|
||||
for update := range updates {
|
||||
if update.Message == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
go sc.HandleSearch(&scenario.UserMessage{
|
||||
Body: update.Message.Text,
|
||||
UserId: update.Message.Chat.ID,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,10 @@
|
|||
version: "3.3"
|
||||
services:
|
||||
web:
|
||||
build: .
|
||||
vk:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
VERSION: vk
|
||||
environment:
|
||||
- VK_TOKEN
|
||||
- VK_SECRET_KEY
|
||||
|
|
@ -11,6 +14,14 @@ services:
|
|||
ports:
|
||||
- "127.0.0.1:8888:8000"
|
||||
restart: "always"
|
||||
telegram:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
VERSION: telegram
|
||||
environment:
|
||||
- TG_TOKEN
|
||||
restart: "always"
|
||||
redis:
|
||||
image: "redis:6.0.9"
|
||||
restart: "always"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
version: "3.3"
|
||||
services:
|
||||
web:
|
||||
vk:
|
||||
image: flygrounder/go-mtg-vk:latest
|
||||
environment:
|
||||
- VK_TOKEN
|
||||
|
|
@ -11,6 +11,11 @@ services:
|
|||
ports:
|
||||
- "127.0.0.1:8888:8000"
|
||||
restart: "always"
|
||||
telegram:
|
||||
image: flygrounder/go-mtg-telegram:latest
|
||||
environment:
|
||||
- TG_TOKEN
|
||||
restart: "always"
|
||||
redis:
|
||||
image: "redis:6.0.9"
|
||||
restart: "always"
|
||||
|
|
|
|||
2
go.mod
2
go.mod
|
|
@ -8,10 +8,12 @@ require (
|
|||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/gin-gonic/gin v1.4.0
|
||||
github.com/go-redis/redis v6.15.2+incompatible
|
||||
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible // indirect
|
||||
github.com/onsi/ginkgo v1.10.3 // indirect
|
||||
github.com/onsi/gomega v1.7.1 // indirect
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/stretchr/testify v1.5.1
|
||||
github.com/technoweenie/multipartstreamer v1.0.1 // indirect
|
||||
github.com/texttheater/golang-levenshtein/levenshtein v0.0.0-20200805054039-cae8b0eaed6c
|
||||
github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da // indirect
|
||||
gopkg.in/h2non/gock.v1 v1.0.16
|
||||
|
|
|
|||
10
go.sum
10
go.sum
|
|
@ -9,7 +9,6 @@ github.com/antchfx/xpath v1.1.6/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNY
|
|||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
|
@ -21,6 +20,8 @@ github.com/gin-gonic/gin v1.4.0 h1:3tMoCCfM7ppqsR0ptz/wi1impNpT7/9wQtMZ8lr1mCQ=
|
|||
github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM=
|
||||
github.com/go-redis/redis v6.15.2+incompatible h1:9SpNVG76gr6InJGxoZ6IuuxaCOQwDAhzyXg+Bs+0Sb4=
|
||||
github.com/go-redis/redis v6.15.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
|
||||
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible h1:2cauKuaELYAEARXRkq2LrJ0yDDv1rW7+wrTEdVL3uaU=
|
||||
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM=
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
|
|
@ -50,10 +51,11 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
|
|||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/technoweenie/multipartstreamer v1.0.1 h1:XRztA5MXiR1TIRHxH2uNxXxaIkKQDeX7m2XsSOlQEnM=
|
||||
github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog=
|
||||
github.com/texttheater/golang-levenshtein/levenshtein v0.0.0-20200805054039-cae8b0eaed6c h1:HelZ2kAFadG0La9d+4htN4HzQ68Bm2iM9qKMSMES6xg=
|
||||
github.com/texttheater/golang-levenshtein/levenshtein v0.0.0-20200805054039-cae8b0eaed6c/go.mod h1:JlzghshsemAMDGZLytTFY8C1JQxQPhnatWqNwUXjggo=
|
||||
github.com/ugorji/go v1.1.4 h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw=
|
||||
|
|
@ -61,10 +63,8 @@ github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGr
|
|||
github.com/yuin/gopher-lua v0.0.0-20191220021717-ab39c6098bdb/go.mod h1:gqRgreBUhTSL0GeU64rtZ3Uq3wtjOa/TB2YfrtkCbVQ=
|
||||
github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da h1:NimzV1aGyq29m5ukMK0AMWEhFaL/lrEOaephfuoiARg=
|
||||
github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da/go.mod h1:E1AXubJBdNmFERAOucpDIxNzeGfLzg0mYh+UfMWdChA=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c h1:uOCk1iQW6Vc18bnC13MfzScl+wdKBmM9Y9kU7Z83/lw=
|
||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20191021144547-ec77196f6094/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200421231249-e086a090c8fd h1:QPwSajcTUrFriMF1nJ3XzgoqakqQEsnZf9LdXdi2nkI=
|
||||
|
|
@ -73,7 +73,6 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ
|
|||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190204203706-41f3e6584952/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8=
|
||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
|
|
@ -92,7 +91,6 @@ gopkg.in/h2non/gock.v1 v1.0.16 h1:F11k+OafeuFENsjei5t2vMTSTs9L62AdyTe4E1cgdG8=
|
|||
gopkg.in/h2non/gock.v1 v1.0.16/go.mod h1:XVuDAssexPLwgxCLMvDTWNU5eqklsydR6I5phZ9oPB8=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
|
||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
|
|
|
|||
16
internal/telegram/sender.go
Normal file
16
internal/telegram/sender.go
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
package telegram
|
||||
|
||||
import (
|
||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
|
||||
)
|
||||
|
||||
type Sender struct {
|
||||
API *tgbotapi.BotAPI
|
||||
}
|
||||
|
||||
func (h *Sender) Send(userId int64, message string) {
|
||||
msg := tgbotapi.NewMessage(userId, message)
|
||||
msg.DisableWebPagePreview = true
|
||||
h.API.Send(msg)
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue