+++ date = "2023-01-14" tags = ["twitter","api","go"] title = "twitter devのban祭りに参加した" slug = "twitter" +++ [twitter dev](https://developer.twitter.com/en/apps)にて、app(client)がbanされはじめているらしいという情報があり、自分が作ったやつは大丈夫かなと思い確認してみると、大丈夫そうだったので、ついでにmastodonのbotと連携させて遊んでたら...

/usr/bin/jq
"https://t.co/zZHO828PqJ"
"4.0.0 (compatible; Mitra 1.9.0)"

— syui (@syui__) January 14, 2023
結果としてban祭りに参加。 現在、read権限はあるんだけど、write権限が突然消えました。 twitter devで確認してみると > This App has violated Twitter Rules and policies. As a result, certain functions will be limited > > 本アプリは、Twitterのルールやポリシーに違反しています。そのため、一部の機能が制限されます。 ということらしい。

#stablediffusion pic.twitter.com/LfESE70tv6

— syui (@syui__) January 14, 2023
絵が駄目だったのか、mastodonのlinkがダメだったのか、あるいはそれ以外が原因か...わかりませんが、楽しかったからいいか。 仕組みとしては、botに`twitter-mode`を実装して、twitter-modeがenableのときに特定のコマンド出力をtwitterにも所定の形式で投稿するようにしました。 timerなども実装してたので、例えば、時間を指定すると毎日stable-diffusionで画像を生成して投稿してくれる機能にも対応しました。twitter-modeに含めただけだけど。 そういえば、goで書いているclientのgh-actions(releases)が以前から壊れてて、直さないとなあと思ってたので、ついでに直したのと、clientに今回の投稿に必要なオプションを追加したりしました。gh-actionsは`gox`をやめて`goreleaser`を使い始めた。 ```yml:.github/workflows/releases.yml name: release on: pull_request: branches: - master types: - closed push: tags: - "v[0-9]+.[0-9]+.[0-9]+" jobs: goreleaser: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v1 with: fetch-depth: 1 - name: Setup Go uses: actions/setup-go@v3 with: go-version: 1.19 check-latest: true - name: Run GoReleaser uses: goreleaser/goreleaser-action@v1 with: version: latest args: release --rm-dist env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} C_KEY: ${{ secrets.C_KEY }} CS_KEY: ${{ secrets.CS_KEY }} ``` ```yml:.goreleaser.yml project_name: twg env: - GO111MODULE=on before: hooks: - go mod tidy builds: - main: . binary: twg ldflags: - -s -w - -X main.Version={{.Version}} - -X main.Revision={{.ShortCommit}} - -X github.com/syui/twg/oauth.ckey={{ .Env.C_KEY }} - -X github.com/syui/twg/oauth.cskey={{ .Env.CS_KEY }} env: - CGO_ENABLED=0 archives: - name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}' replacements: darwin: darwin linux: linux windows: windows 386: i386 amd64: x86_64 format_overrides: - goos: windows format: zip release: prerelease: auto ```