Compare commits

...

12 Commits

Author SHA1 Message Date
Jack Dallas
aa1be74a48 Merge branch 'main' of github.com:JackDallas/Premiumizearr 2022-02-01 00:01:10 +00:00
Jack Dallas
f1d66d9532 Update README 2022-02-01 00:00:25 +00:00
Jack Dallas
eb0d6a204f Update README 2022-01-31 23:59:27 +00:00
Dallas
5d02813066 Merge pull request #10 from JackDallas/dpkg
Fix dpkg and perms
2022-01-31 19:11:08 +00:00
Jack Dallas
226b2067ff Fix dpkg and perms 2022-01-31 19:07:18 +00:00
Dallas
27037a9621 Merge pull request #7 from JackDallas/limit-logs
Limit log size
2022-01-31 17:33:08 +00:00
Jack Dallas
fd371c38d9 limit logs 2022-01-31 17:25:19 +00:00
Dallas
26c9a5e07a Don't glob 2022-01-31 17:25:00 +00:00
Dallas
dfe64f0c56 Merge pull request #9 from JackDallas/update-ci
update-ci
2022-01-31 17:15:59 +00:00
Jack Dallas
8f112500cc Upload artifacts 2022-01-31 17:15:45 +00:00
Dallas
395083f32f Merge pull request #8 from JackDallas/fix-ci
Fix ci
2022-01-31 16:56:08 +00:00
Jack Dallas
8dd342a7a5 fix ci 2022-01-31 16:51:03 +00:00
8 changed files with 118 additions and 18 deletions

View File

@@ -28,7 +28,7 @@ jobs:
- name: Build
uses: goreleaser/goreleaser-action@v2
if: ! startsWith(github.ref, 'refs/tags/')
if: startsWith(github.ref, 'refs/tags/') == false
with:
distribution: goreleaser
version: latest
@@ -44,4 +44,11 @@ jobs:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload assets
uses: actions/upload-artifact@v2
with:
name: artifacts
path: dist/

View File

@@ -48,6 +48,8 @@ nfpms:
# Defaults to `ProjectName`.
package_name: premiumizearr
bindir: /opt/premiumizearrd
# Your app's vendor.
# Default is empty.
vendor: Jack Dallas.
@@ -75,6 +77,8 @@ nfpms:
contents:
# Basic file that applies to all packagers
- src: build/static/*
dst: /usr/local/bin/static/
dst: /opt/premiumizearrd/static/
- src: init/premiumizearrd.service
dst: /etc/systemd/system/
dst: /etc/systemd/system/premiumizearrd.service
scripts:
postinstall: "scripts/postinstall.sh"

View File

@@ -1,11 +1,58 @@
# premiumizearr
# Premiumizearr
## Features
- Monitor blackhole directory to push `.magnet` and `.nzb` to Premiumize.me
- Monitor and download Premiumize.me transfers
- Mark transfers as failed in sonarr
- Monitor and download Premiumize.me transfers (web ui on default port 8182)
- Mark transfers as failed in Radarr & Sonarr
## Up Next
## Support the project by using my invite code
- Radarr support
[Invite Code]("https://www.premiumize.me/ref/446038083")
## Install
[Grab the latest release artifact links here]]("https://github.com/JackDallas/Premiumizearr/releases/")
### Binary
```bash
wget https://github.com/JackDallas/Premiumizearr/releases/download/x.x.x/Premiumizearr_x.x.x_linux_amd64.tar.gz
tar xf Premiumizearr_x.x.x.x_linux_amd64.tar.gz
cd Premiumizearr_x.x.x.x_linux_amd64
sudo mkdir /opt/premiumizearrd/
sudo cp -r premiumizearrd static/ /opt/premiumizearrd/
sudo cp premiumizearrd /etc/systemd/system/
sudo systemctl-reload
sudo systemctl enable premiumizearrd.service
sudo systemctl start premiumizearrd.service
```
### deb file
```bash
wget https://github.com/JackDallas/Premiumizearr/releases/download/x.x.x/premiumizearr_x.x.x._linux_amd64.deb
sudo dpkg -i premiumizearr_x.x.x.x_linux_amd64.deb
```
## Setup
### Premiumizearrd
Edit the config file at `/opt/premiumizearrd/config.yml`
`RadarrURL,SonarrURL` Url the Arr can be accessed on
`RadarrAPIKey,SonarrAPIKey` API key for the Arr
`PremiumizemeAPIKey` API key for your [premiumize.me]("http://premiumize.me") account
`BlackholeDirectory` Path to Directory the Arr's will put magnet/torrent/nzb files in
`DownloadsDirectory` Path for Premiumizearr to download media files to, that the Arr's watch for new media
`bindIP` IP the web server binds to
`bindPort` Port the web server binds to
### Sonarr/Radarr
- Go to your Arr's `Download Client` settings page
- Add a new Torrent Blackhole client, set the `Torrent Folder` to the previously set `BlackholeDirectory` location, set the `Watch Folder` to the previously set `DownloadsDirectory` location
- Add a new Usenet Blackhole client, set the `Nzb Folder` to the previously set `BlackholeDirectory` location, set the `Watch Folder` to the previously set `DownloadsDirectory` location

View File

@@ -2,8 +2,6 @@ package main
import (
"flag"
"io"
"os"
"time"
"github.com/jackdallas/premiumizearr/internal/arr"
@@ -11,6 +9,7 @@ import (
"github.com/jackdallas/premiumizearr/internal/service"
"github.com/jackdallas/premiumizearr/internal/web_service"
"github.com/jackdallas/premiumizearr/pkg/premiumizeme"
"github.com/orandin/lumberjackrus"
log "github.com/sirupsen/logrus"
"golift.io/starr"
"golift.io/starr/radarr"
@@ -33,15 +32,43 @@ func main() {
lvl = log.InfoLevel
}
log.SetLevel(lvl)
hook, err := lumberjackrus.NewHook(
&lumberjackrus.LogFile{
Filename: "/opt/premiumizearrd/premiumizearr.general.log",
MaxSize: 100,
MaxBackups: 1,
MaxAge: 1,
Compress: false,
LocalTime: false,
},
log.InfoLevel,
&log.TextFormatter{},
&lumberjackrus.LogFileOpts{
log.InfoLevel: &lumberjackrus.LogFile{
Filename: "/opt/premiumizearrd/premiumizearr.info.log",
MaxSize: 100,
MaxBackups: 1,
MaxAge: 1,
Compress: false,
LocalTime: false,
},
log.ErrorLevel: &lumberjackrus.LogFile{
Filename: "/opt/premiumizearrd/premiumizearr.error.log",
MaxSize: 100, // optional
MaxBackups: 1, // optional
MaxAge: 1, // optional
Compress: false, // optional
LocalTime: false, // optional
},
},
)
logFile, err := os.OpenFile("premiumizearr.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
log.Error(err)
} else {
log.SetOutput(io.MultiWriter(logFile, os.Stdout))
panic(err)
}
log.Info("")
log.AddHook(hook)
log.Info("---------- Starting premiumizearr daemon ----------")
log.Info("")

3
go.mod
View File

@@ -6,12 +6,15 @@ require (
github.com/dustin/go-humanize v1.0.0
github.com/fsnotify/fsnotify v1.5.1
github.com/gorilla/mux v1.8.0
github.com/orandin/lumberjackrus v1.0.1
github.com/sirupsen/logrus v1.8.1
golift.io/starr v0.13.0
gopkg.in/yaml.v2 v2.4.0
)
require (
github.com/BurntSushi/toml v1.0.0 // indirect
golang.org/x/net v0.0.0-20220114011407-0dd24b26b47d // indirect
golang.org/x/sys v0.0.0-20211110154304-99a53858aa08 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
)

6
go.sum
View File

@@ -1,3 +1,5 @@
github.com/BurntSushi/toml v1.0.0 h1:dtDWrepsVPfW9H/4y7dDgFc2MBUSeJhlaDtK13CxFlU=
github.com/BurntSushi/toml v1.0.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
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=
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
@@ -7,6 +9,8 @@ github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/orandin/lumberjackrus v1.0.1 h1:7ysDQ0MHD79zIFN9/EiDHjUcgopNi5ehtxFDy8rUkWo=
github.com/orandin/lumberjackrus v1.0.1/go.mod h1:xYLt6H8W93pKnQgUQaxsApS0Eb4BwHLOkxk5DVzf5H0=
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/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
@@ -48,5 +52,7 @@ golift.io/starr v0.13.0 h1:LoihBAH3DQ0ikPNHTVg47tUU+475mzbr1ahMcY5gdno=
golift.io/starr v0.13.0/go.mod h1:IZIzdT5/NBdhM08xAEO5R1INgGN+Nyp4vCwvgHrbKVs=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=

View File

@@ -2,8 +2,8 @@
Description=Premiumizearr Daemon
After=network.target
[Service]
User=$USER
Group=$USER
User=1000
Group=1000
UMask=0002
Type=simple
ExecStart=/opt/premiumizearrd/premiumizearrd

6
scripts/postinstall.sh Normal file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
chown -R 1000:1000 /opt/premiumizearrd/
systemctl enable premiumizearrd.service
systemctl daemon-reload
systemctl start premiumizearrd.service