Skip to content

Commit f904286

Browse files
committed
fix: pipeline, client whatsapp and docker
1 parent 54bb9a0 commit f904286

File tree

6 files changed

+59
-53
lines changed

6 files changed

+59
-53
lines changed

Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
FROM golang:1.25 AS builder
1+
FROM golang:1.25-alpine AS builder
22
WORKDIR /app
3-
RUN apt-get update && apt-get install -y gcc libsqlite3-dev
3+
RUN apk add --no-cache gcc musl-dev sqlite-dev ca-certificates
44
COPY go.mod go.sum ./
55
RUN go mod download
66
COPY . .
7-
RUN go build -ldflags="-s -w" -o main ./cmd
7+
RUN CGO_ENABLED=1 go build -ldflags="-s -w" -o main ./cmd
88

9-
FROM debian:stable-slim
10-
RUN apt-get update && apt-get install -y sqlite3 && rm -rf /var/lib/apt/lists/*
9+
FROM alpine:3.20
10+
RUN apk add --no-cache sqlite ca-certificates
1111
WORKDIR /root/
1212
COPY --from=builder /app/main .
1313
RUN mkdir -p db && chmod 777 db
1414
EXPOSE 8080
15-
CMD ["tail", "-f", "/dev/null"]
15+
CMD ["tail", "-f", "/dev/null"]

README.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,20 @@ The project consists of two main components:
1717

1818
```
1919
ru-counter/
20-
├── cmd/
21-
│ └── main.go # Application entry point
22-
├── internal/
23-
│ ├── whatsapp/
24-
│ │ └── client.go # WhatsApp newsletter client
25-
│ └── github/
26-
│ └── updater.go # GitHub repository updater
27-
├── db/ # SQLite session storage
28-
├── docker-compose.yml # Docker configuration
29-
└── go.mod # Go dependencies
20+
├── cmd
21+
│ └── main.go
22+
├── db
23+
│ └── session.db
24+
├── docker-compose-prd.yml
25+
├── Dockerfile
26+
├── go.mod
27+
├── go.sum
28+
├── internal
29+
│ ├── github
30+
│ │ └── updater.go
31+
│ └── whatsapp
32+
│ └── client.go
33+
└── README.md
3034
```
3135

3236
### Integration with RU Menu

docker-compose-prd.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ services:
1818
- DB_PATH=file:/root/db/session.db?_foreign_keys=on
1919
volumes:
2020
- db-data:/root/db
21+
- ./.env:/root/.env
2122
networks:
2223
- ru-counter-network
2324
volumes:

go.mod

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,32 @@ require (
88
github.com/google/go-github/v57 v57.0.0
99
github.com/joho/godotenv v1.5.1
1010
github.com/mattn/go-sqlite3 v1.14.32
11-
go.mau.fi/whatsmeow v0.0.0-20251014132254-6048f61ae25b
12-
golang.org/x/oauth2 v0.32.0
11+
go.mau.fi/whatsmeow v0.0.0-20251116104239-3aca43070cd4
12+
golang.org/x/oauth2 v0.33.0
1313
)
1414

15+
require github.com/coder/websocket v1.8.14 // indirect
16+
1517
require (
1618
filippo.io/edwards25519 v1.1.0 // indirect
1719
github.com/beeper/argo-go v1.1.2 // indirect
1820
github.com/elliotchance/orderedmap/v3 v3.1.0 // indirect
1921
github.com/google/go-querystring v1.1.0 // indirect
2022
github.com/google/uuid v1.6.0 // indirect
21-
github.com/gorilla/websocket v1.5.0 // indirect
2223
github.com/mattn/go-colorable v0.1.14 // indirect
2324
github.com/mattn/go-isatty v0.0.20 // indirect
2425
github.com/mdp/qrterminal/v3 v3.2.1
2526
github.com/petermattis/goid v0.0.0-20250904145737-900bdf8bb490 // indirect
2627
github.com/rs/zerolog v1.34.0 // indirect
27-
github.com/vektah/gqlparser/v2 v2.5.27 // indirect
28-
go.mau.fi/libsignal v0.2.1-0.20251004173110-6e0a3f2435ed // indirect
29-
go.mau.fi/util v0.9.2-0.20251005111801-c13b66219cee // indirect
30-
golang.org/x/crypto v0.42.0 // indirect
31-
golang.org/x/exp v0.0.0-20250911091902-df9299821621 // indirect
32-
golang.org/x/net v0.44.0 // indirect
33-
golang.org/x/sys v0.36.0 // indirect
34-
golang.org/x/term v0.35.0 // indirect
35-
golang.org/x/text v0.29.0 // indirect
28+
github.com/vektah/gqlparser/v2 v2.5.31 // indirect
29+
go.mau.fi/libsignal v0.2.1 // indirect
30+
go.mau.fi/util v0.9.3 // indirect
31+
golang.org/x/crypto v0.44.0 // indirect
32+
golang.org/x/exp v0.0.0-20251113190631-e25ba8c21ef6 // indirect
33+
golang.org/x/net v0.47.0 // indirect
34+
golang.org/x/sys v0.38.0 // indirect
35+
golang.org/x/term v0.37.0 // indirect
36+
golang.org/x/text v0.31.0 // indirect
3637
google.golang.org/protobuf v1.36.10 // indirect
3738
rsc.io/qr v0.2.0 // indirect
3839
)

go.sum

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNg
88
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
99
github.com/beeper/argo-go v1.1.2 h1:UQI2G8F+NLfGTOmTUI0254pGKx/HUU/etbUGTJv91Fs=
1010
github.com/beeper/argo-go v1.1.2/go.mod h1:M+LJAnyowKVQ6Rdj6XYGEn+qcVFkb3R/MUpqkGR0hM4=
11+
github.com/coder/websocket v1.8.14 h1:9L0p0iKiNOibykf283eHkKUHHrpG7f65OE3BhhO7v9g=
12+
github.com/coder/websocket v1.8.14/go.mod h1:NX3SzP+inril6yawo5CQXx8+fk145lPDC6pumgx0mVg=
1113
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
1214
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
1315
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -23,8 +25,6 @@ github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD
2325
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
2426
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
2527
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
26-
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
27-
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
2828
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
2929
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
3030
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
@@ -50,31 +50,31 @@ github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
5050
github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
5151
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
5252
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
53-
github.com/vektah/gqlparser/v2 v2.5.27 h1:RHPD3JOplpk5mP5JGX8RKZkt2/Vwj/PZv0HxTdwFp0s=
54-
github.com/vektah/gqlparser/v2 v2.5.27/go.mod h1:D1/VCZtV3LPnQrcPBeR/q5jkSQIPti0uYCP/RI0gIeo=
55-
go.mau.fi/libsignal v0.2.1-0.20251004173110-6e0a3f2435ed h1:f44xyYgZBCEic3OiKY4eYfDA2b3kBB/LlgVha4NpjRs=
56-
go.mau.fi/libsignal v0.2.1-0.20251004173110-6e0a3f2435ed/go.mod h1:iVvjrHyfQqWajOUaMEsIfo3IqgVMrhWcPiiEzk7NgoU=
57-
go.mau.fi/util v0.9.2-0.20251005111801-c13b66219cee h1:wk1XGP/E1UH3YBqXbb9dajWdO7e9cizgx5+NYkEXT2g=
58-
go.mau.fi/util v0.9.2-0.20251005111801-c13b66219cee/go.mod h1:M0bM9SyaOWJniaHs9hxEzz91r5ql6gYq6o1q5O1SsjQ=
59-
go.mau.fi/whatsmeow v0.0.0-20251014132254-6048f61ae25b h1:T0+Fhr2eaIOPW2M3xJW4qGzYLLa63aCsAnBFd/2GLhU=
60-
go.mau.fi/whatsmeow v0.0.0-20251014132254-6048f61ae25b/go.mod h1:CSdGU471Ss7bWunGomSe9RObY0MRxQDvxFH8i5Ndfk4=
61-
golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI=
62-
golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8=
63-
golang.org/x/exp v0.0.0-20250911091902-df9299821621 h1:2id6c1/gto0kaHYyrixvknJ8tUK/Qs5IsmBtrc+FtgU=
64-
golang.org/x/exp v0.0.0-20250911091902-df9299821621/go.mod h1:TwQYMMnGpvZyc+JpB/UAuTNIsVJifOlSkrZkhcvpVUk=
65-
golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I=
66-
golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
67-
golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
68-
golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
53+
github.com/vektah/gqlparser/v2 v2.5.31 h1:YhWGA1mfTjID7qJhd1+Vxhpk5HTgydrGU9IgkWBTJ7k=
54+
github.com/vektah/gqlparser/v2 v2.5.31/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts=
55+
go.mau.fi/libsignal v0.2.1 h1:vRZG4EzTn70XY6Oh/pVKrQGuMHBkAWlGRC22/85m9L0=
56+
go.mau.fi/libsignal v0.2.1/go.mod h1:iVvjrHyfQqWajOUaMEsIfo3IqgVMrhWcPiiEzk7NgoU=
57+
go.mau.fi/util v0.9.3 h1:aqNF8KDIN8bFpFbybSk+mEBil7IHeBwlujfyTnvP0uU=
58+
go.mau.fi/util v0.9.3/go.mod h1:krWWfBM1jWTb5f8NCa2TLqWMQuM81X7TGQjhMjBeXmQ=
59+
go.mau.fi/whatsmeow v0.0.0-20251116104239-3aca43070cd4 h1:7hXdxCFs2Me4nypiWjdBNonaFrPfmYJvEtTOwLctSHU=
60+
go.mau.fi/whatsmeow v0.0.0-20251116104239-3aca43070cd4/go.mod h1:5aYaEa3FF5e5XWsA8Xa80ttUXZvb6HyaBGgo2SfzUkE=
61+
golang.org/x/crypto v0.44.0 h1:A97SsFvM3AIwEEmTBiaxPPTYpDC47w720rdiiUvgoAU=
62+
golang.org/x/crypto v0.44.0/go.mod h1:013i+Nw79BMiQiMsOPcVCB5ZIJbYkerPrGnOa00tvmc=
63+
golang.org/x/exp v0.0.0-20251113190631-e25ba8c21ef6 h1:zfMcR1Cs4KNuomFFgGefv5N0czO2XZpUbxGUy8i8ug0=
64+
golang.org/x/exp v0.0.0-20251113190631-e25ba8c21ef6/go.mod h1:46edojNIoXTNOhySWIWdix628clX9ODXwPsQuG6hsK0=
65+
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
66+
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
67+
golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo=
68+
golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
6969
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
7070
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
7171
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
72-
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
73-
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
74-
golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ=
75-
golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA=
76-
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
77-
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
72+
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
73+
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
74+
golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
75+
golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
76+
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
77+
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
7878
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
7979
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
8080
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=

internal/whatsapp/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ func getDetailedSubscriberData(newsletters []NewsletterInfo) (*NewsletterData, e
154154
return nil, fmt.Errorf("failed to parse JID for %s: %v", newsletter.Name, err)
155155
}
156156

157-
info, err := client.GetNewsletterInfo(jid)
157+
info, err := client.GetNewsletterInfo(context.Background(), jid)
158158
if err != nil {
159159
return nil, fmt.Errorf("failed to get newsletter info for %s: %v", newsletter.Name, err)
160160
}

0 commit comments

Comments
 (0)