├── .github └── workflows │ ├── dev-docker-image.yml │ └── docker-image.yml ├── .gitignore ├── .vscode └── launch.json ├── DOCKER-CONFIG.md ├── Dockerfile ├── LICENSE ├── README.md ├── cmd └── app │ ├── .air.toml │ ├── main.go │ └── tmp │ └── build-errors.log ├── go.mod ├── go.sum ├── images └── logo.png └── internal ├── app └── app.go ├── common └── common.go ├── database ├── actions.go └── setup.go ├── enum └── podcastType.go ├── models └── podcast.go └── services ├── apple.go ├── channel.go ├── generator.go ├── playlist.go ├── rss.go ├── sponsorblock.go └── youtube.go /.github/workflows/dev-docker-image.yml: -------------------------------------------------------------------------------- 1 | name: Docker Image Dev CI 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | build: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v4 11 | - name: Login to Docker Hub 12 | uses: docker/login-action@v2 13 | with: 14 | username: ${{ secrets.DOCKER_USERNAME }} 15 | password: ${{ secrets.DOCKER_PASSWORD }} 16 | - name: Build and push Docker image 17 | uses: docker/build-push-action@v3 18 | with: 19 | context: . 20 | push: true 21 | tags: ${{ secrets.DOCKER_USERNAME }}/go-podcast-sponsor-block:dev 22 | -------------------------------------------------------------------------------- /.github/workflows/docker-image.yml: -------------------------------------------------------------------------------- 1 | name: Docker Image CI 2 | 3 | 4 | 5 | on: 6 | release: 7 | types: [created] 8 | 9 | 10 | jobs: 11 | build: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v4 15 | - name: Login to Docker Hub 16 | uses: docker/login-action@v2 17 | with: 18 | username: ${{ secrets.DOCKER_USERNAME }} 19 | password: ${{ secrets.DOCKER_PASSWORD }} 20 | 21 | - name: Build and push Docker image 22 | uses: docker/build-push-action@v3 23 | with: 24 | context: . 25 | push: true 26 | 27 | tags: ${{ secrets.DOCKER_USERNAME }}/go-podcast-sponsor-block:latest 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # ---> Go 2 | # If you prefer the allow list template instead of the deny list, see community template: 3 | # https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore 4 | # 5 | # Binaries for programs and plugins 6 | *.exe 7 | *.exe~ 8 | *.dll 9 | *.so 10 | *.dylib 11 | 12 | # Test binary, built with `go test -c` 13 | *.test 14 | 15 | # Output of the go coverage tool, specifically when used with LiteIDE 16 | *.out 17 | 18 | # Database 19 | *.db 20 | 21 | # Dependency directories (remove the comment below to include it) 22 | # vendor/ 23 | 24 | # Go workspace file 25 | go.work 26 | 27 | # Exlude development folder 28 | cmd/app/audio/* 29 | 30 | # Exclude temp folder 31 | cmd/tmp/* 32 | cmd/app/tmp/* 33 | tmp/* 34 | tmp/build-errors.log 35 | 36 | #Env Files 37 | *.env 38 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Launch", 6 | "type": "go", 7 | "request": "launch", 8 | "mode": "debug", 9 | "program": "${workspaceFolder}/cmd/app/main.go", 10 | "envFile": "${workspaceFolder}/.env", 11 | "args": [] 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /DOCKER-CONFIG.md: -------------------------------------------------------------------------------- 1 | ## Docker Run Command Templates 2 | 3 | 4 | Docker run command (only required parameters) 5 | ``` 6 | docker run -p 8080:8080 -e GOOGLE_API_KEY= -v /