fix(actions): cross platform watch dir file handling (#458)

* chore: update deps

* fix(actions): cross-platform file handling

* fix(qbittorrent): unrelated failing test
This commit is contained in:
ze0s 2022-09-10 20:31:46 +02:00 committed by GitHub
parent 8b96f29f37
commit bbb8d2fe6e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 129 additions and 123 deletions

View file

@ -3,7 +3,7 @@ package action
import (
"context"
"encoding/base64"
"io/ioutil"
"os"
"time"
"github.com/autobrr/autobrr/internal/domain"
@ -123,7 +123,7 @@ func (s *service) delugeV1(client *domain.DownloadClient, action domain.Action,
}
}
t, err := ioutil.ReadFile(release.TorrentTmpFile)
t, err := os.ReadFile(release.TorrentTmpFile)
if err != nil {
return nil, errors.Wrap(err, "could not read torrent file: %v", release.TorrentTmpFile)
}
@ -212,7 +212,7 @@ func (s *service) delugeV2(client *domain.DownloadClient, action domain.Action,
}
}
t, err := ioutil.ReadFile(release.TorrentTmpFile)
t, err := os.ReadFile(release.TorrentTmpFile)
if err != nil {
return nil, errors.Wrap(err, "could not read torrent file: %v", release.TorrentTmpFile)
}

View file

@ -1,7 +1,7 @@
package action
import (
"io/ioutil"
"os"
"os/exec"
"strings"
"time"
@ -23,7 +23,7 @@ func (s *service) execCmd(action domain.Action, release domain.Release) error {
// read the file into bytes we can then use in the macro
if len(release.TorrentDataRawBytes) == 0 && release.TorrentTmpFile != "" {
t, err := ioutil.ReadFile(release.TorrentTmpFile)
t, err := os.ReadFile(release.TorrentTmpFile)
if err != nil {
return errors.Wrap(err, "could not read torrent file: %v", release.TorrentTmpFile)
}

View file

@ -2,7 +2,7 @@ package action
import (
"context"
"io/ioutil"
"os"
"github.com/autobrr/autobrr/internal/domain"
"github.com/autobrr/autobrr/pkg/errors"
@ -38,7 +38,7 @@ func (s *service) rtorrent(action domain.Action, release domain.Release) ([]stri
// create client
rt := rtorrent.New(client.Host, true)
tmpFile, err := ioutil.ReadFile(release.TorrentTmpFile)
tmpFile, err := os.ReadFile(release.TorrentTmpFile)
if err != nil {
return nil, errors.Wrap(err, "could not read torrent file: %v", release.TorrentTmpFile)
}

View file

@ -4,10 +4,9 @@ import (
"bytes"
"crypto/tls"
"io"
"io/ioutil"
"net/http"
"os"
"path"
"path/filepath"
"strings"
"time"
@ -141,7 +140,7 @@ func (s *service) watchFolder(action domain.Action, release domain.Release) erro
}
if len(release.TorrentDataRawBytes) == 0 {
t, err := ioutil.ReadFile(release.TorrentTmpFile)
t, err := os.ReadFile(release.TorrentTmpFile)
if err != nil {
return errors.Wrap(err, "could not read torrent file: %v", release.TorrentTmpFile)
}
@ -166,12 +165,11 @@ func (s *service) watchFolder(action domain.Action, release domain.Release) erro
}
defer original.Close()
_, tmpFileName := path.Split(release.TorrentTmpFile)
fullFileName := path.Join(watchFolderArgs, tmpFileName+".torrent")
_, tmpFileName := filepath.Split(release.TorrentTmpFile)
fullFileName := filepath.Join(watchFolderArgs, tmpFileName+".torrent")
// Create folder
err = os.MkdirAll(watchFolderArgs, os.ModePerm)
if err != nil {
if err = os.MkdirAll(watchFolderArgs, os.ModePerm); err != nil {
return errors.Wrap(err, "could not create new folders %v", fullFileName)
}
@ -183,8 +181,7 @@ func (s *service) watchFolder(action domain.Action, release domain.Release) erro
defer newFile.Close()
// Copy file
_, err = io.Copy(newFile, original)
if err != nil {
if _, err := io.Copy(newFile, original); err != nil {
return errors.Wrap(err, "could not copy file %v to watch folder", fullFileName)
}
@ -203,7 +200,7 @@ func (s *service) webhook(action domain.Action, release domain.Release) error {
// if webhook data contains TorrentDataRawBytes, lets read the file into bytes we can then use in the macro
if len(release.TorrentDataRawBytes) == 0 && strings.Contains(action.WebhookData, "TorrentDataRawBytes") {
t, err := ioutil.ReadFile(release.TorrentTmpFile)
t, err := os.ReadFile(release.TorrentTmpFile)
if err != nil {
return errors.Wrap(err, "could not read torrent file: %v", release.TorrentTmpFile)
}

View file

@ -5,8 +5,8 @@ import (
"context"
"crypto/tls"
"fmt"
"io/ioutil"
"net/http"
"os"
"os/exec"
"strings"
"time"
@ -450,7 +450,7 @@ func (s *service) execCmd(release *domain.Release, cmd string, args string) (int
// read the file into bytes we can then use in the macro
if len(release.TorrentDataRawBytes) == 0 && release.TorrentTmpFile != "" {
t, err := ioutil.ReadFile(release.TorrentTmpFile)
t, err := os.ReadFile(release.TorrentTmpFile)
if err != nil {
return 0, errors.Wrap(err, "could not read torrent file: %v", release.TorrentTmpFile)
}
@ -510,7 +510,7 @@ func (s *service) webhook(release *domain.Release, url string, data string) (int
// if webhook data contains TorrentDataRawBytes, lets read the file into bytes we can then use in the macro
if len(release.TorrentDataRawBytes) == 0 && strings.Contains(data, "TorrentDataRawBytes") {
t, err := ioutil.ReadFile(release.TorrentTmpFile)
t, err := os.ReadFile(release.TorrentTmpFile)
if err != nil {
return 0, errors.Wrap(err, "could not read torrent file: %v", release.TorrentTmpFile)
}

View file

@ -5,7 +5,7 @@ import (
"crypto/tls"
"encoding/json"
"fmt"
"io/ioutil"
"io"
"net/http"
"strings"
"time"
@ -89,7 +89,7 @@ func (a *discordSender) Send(event domain.NotificationEvent, payload domain.Noti
return errors.Wrap(err, "could not make request: %+v", req)
}
body, err := ioutil.ReadAll(res.Body)
body, err := io.ReadAll(res.Body)
if err != nil {
a.log.Error().Err(err).Msgf("discord client request error: %v", event)
return errors.Wrap(err, "could not read data")

View file

@ -6,7 +6,7 @@ import (
"encoding/json"
"fmt"
"html"
"io/ioutil"
"io"
"net/http"
"strings"
"time"
@ -73,7 +73,7 @@ func (s *telegramSender) Send(event domain.NotificationEvent, payload domain.Not
return errors.Wrap(err, "could not make request: %+v", req)
}
body, err := ioutil.ReadAll(res.Body)
body, err := io.ReadAll(res.Body)
if err != nil {
s.log.Error().Err(err).Msgf("telegram client request error: %v", event)
return errors.Wrap(err, "could not read data")