GithubHelp home page GithubHelp logo

autobrr / autobrr Goto Github PK

View Code? Open in Web Editor NEW
1.1K 11.0 119.0 8.62 MB

Modern, easy to use download automation for torrents and usenet.

Home Page: https://autobrr.com/introduction

License: GNU General Public License v2.0

Go 65.84% JavaScript 0.03% HTML 0.12% TypeScript 33.80% Dockerfile 0.17% Makefile 0.05%
torrent bittorrent irc announce autodl-irssi automation autobrr docker qbittorrent radarr

autobrr's Introduction

autobrr logo
autobrr

autobrr redefines download automation for torrents and Usenet, drawing inspiration from tools like trackarr, autodl-irssi, and flexget. We've combined the best of these worlds into one versatile tool that can do it all, and then some.

GitHub release (latest by date) GitHub all releases GitHub Workflow Status

autobrr ui
We also have a light theme. Check it out here.

Documentation

Full documentation can be found at https://autobrr.com

Table of Contents

  1. What Is Autobrr?
  2. Key Features
  3. Installation
  4. Community
  5. Contributing
  6. Code of Conduct
  7. License

What Is Autobrr?

What is autobrr, and how does it fit into the ecosystem?

We can start by talking about torrent trackers (hereby referred to as indexers) and maintaining ratio. You are required to maintain a ratio with most indexers. Ratio is built by seeding your torrents. The earlier you're seeding a torrent, the more peers you make yourself available to on that torrent.

Software like Radarr and Sonarr utilizes RSS to look for new torrents. RSS feeds are updated regularly, but too slow to let you be a part of what we call the initial swarm of a torrent. This is where autobrr comes into play.

Many indexers announce new torrents on their IRC channels the second it is uploaded to the site. autobrr monitors such channels in real time and grabs the torrent file as soon as it's uploaded based on certain conditions (hereby referred to as filters) that you set up within autobrr. It then sends that torrent file to a download client of your choice via an action set within the filter. A download client can be anything from qBittorrent and Deluge, to Radarr and Sonarr, or a watch folder.

When your autobrr filter is set to send the torrent files to Radarr and Sonarr, they will decide if it's something they want, and then forward it to the torrent client they are set up with.

autobrr can also send matches (torrent files that meets your filter's criteria) directly to torrent clients like qBittorrent, Deluge, r(u)Torrent and Transmission. You don't need to use the *arr suite to make use of autobrr.

Key Features

  • Torrents and Usenet support
  • Support for 75+ torrent trackers with IRC announces
  • Newznab, Torznab and RSS support to easily get access to hundreds of torrent and Usenet indexers
  • Torrent Magnet support
  • Powerful but simple filtering with RegEx support (like in autodl-irssi)
  • Easy to use and mobile friendly web UI (with dark mode!) to manage everything
  • Built on Go and React making autobrr lightweight and perfect for supporting multiple platforms (Linux, FreeBSD, Windows, macOS) on different architectures (e.g. x86, ARM)
  • Great container support (Docker, k8s/Kubernetes)
  • Database engine supporting both PostgreSQL and SQLite
  • Notifications (Discord, Telegram, Notifiarr, Pushover, Gotify)
  • One autobrr instance can communicate with multiple clients (torrent, Usenet and *arr) on remote servers
  • Base path / Subfolder (and subdomain) support for convenient reverse-proxy support

Available Download Clients and Actions

  • qBittorrent: Includes built-in re-announce, categories, rules, max active downloads, etc.
  • Deluge v1+ and v2+
  • rTorrent
  • Transmission
  • Porla
  • Sonarr, Radarr, Lidarr, Whisparr, Readarr: Pushes releases directly for early swarm participation, rather than relying on RSS feeds.
  • SABnzbd (Usenet): Integrates smoothly for Usenet downloads.
  • Watch Folder: Monitors specified folders for new files.
  • Exec Custom Scripts: Execute tailored scripts for advanced automation.
  • Webhook: Offers webhook support for diverse integration needs.

RSS and Usenet Support

A lot of indexers do not announce new torrents in an IRC channel. You can still make use of these indexers with autobrr since it has built in support for feeds as well. Both Torznab, Newznab and regular RSS is supported. RSS indexers are treated the same way as regular indexers within autobrr.

Usenet support via Newznab feeds allows you to easily manage everything in a single application. While there is a lot of applications that handles RSS well, we think autobrr offers very easy to use filtering to help you get the content you want.

You can use Usenet feeds and send to arrs or send directly to SABnzbd.

Installation

For comprehensive installation instructions, visit our Installation Guide. This guide provides detailed steps for different platforms, including Windows, Linux, Docker, and more.

Remember to head over to our Configuration Guide to learn how to set up your indexers, IRC, and download clients after you're done installing.

Swizzin (dedi)

Swizzin users can simply run:

sudo box install autobrr

Saltbox

Saltbox users can simply run:

sb install autobrr

For more info check the docs

QuickBox

QuickBox users can simply run:

qb install autobrr -u ${username}

For more info check the docs

Shared Seedbox

One-Click Installer & Quick Installer

  • HostingByDesign (former Seedbox.io) via box - box install autobrr
  • Swizzin.net via box - box install autobrr
  • Seedit4.me
  • SeedHost.eu
  • Ultra.cc
Installation Scripts

We have support for a couple of other providers out of the box.
Please contact us on Discord if your provider is missing. The scripts require some input, but do most of the work.

WhatBox

wget https://gobrr.sh/install_whatbox && bash install_whatbox

Feralhosting

wget https://gobrr.sh/install_feral && bash install_feral

Bytesized Hosting

wget https://gobrr.sh/install_bytesized && bash install_bytesized

Other providers

For other providers the Seedbox.io installer should work. If not, open an issue or contact us on Discord

wget https://gobrr.sh/install_sbio && bash install_sbio

Docker Compose

Modify accordingly if running with unRAID or setting up with Portainer.

  • Logging is optional
  • Host port mapping might need to be changed to not collide with other apps
  • Change BASE_DOCKER_DATA_PATH to match your setup. Can be simply ./data
  • Set custom network if needed

Create docker-compose.yml and add the following. If you have an existing setup change to fit that.

version: "3.7"

services:
  autobrr:
    container_name: autobrr
    image: ghcr.io/autobrr/autobrr:latest
    restart: unless-stopped
    environment:
      - TZ=${TZ}
    user: 1000:1000
    volumes:
      - ${BASE_DOCKER_DATA_PATH}/autobrr/config:/config
    ports:
      - 7474:7474

Then start with:

docker compose up -d

Windows

Check the Windows Setup Guide here.

MacOS

Install Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Install autobrr

brew install autobrr

Run

brew services start autobrr

Linux Generic

Download the latest release, or download the source code and build it yourself using make build.

wget $(curl -s https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)

Unpack

Run with root or sudo. If you do not have root, or are on a shared system, place the binaries somewhere in your home directory like ~/.bin.

tar -C /usr/local/bin -xzf autobrr*.tar.gz

This will extract both autobrr and autobrrctl to /usr/local/bin. Note: If the command fails, prefix it with sudo and re-run again.

Systemd (Recommended)

On Linux-based systems, it is recommended to run autobrr as a sort of service with auto-restarting capabilities, in order to account for potential downtime. The most common way is to do it via systemd.

You will need to create a service file in /etc/systemd/system/ called autobrr.service.

touch /etc/systemd/system/[email protected]

Then place the following content inside the file (e.g. via nano/vim/ed):

[Unit]
Description=autobrr service for %i
After=syslog.target network-online.target

[Service]
Type=simple
User=%i
Group=%i
ExecStart=/usr/bin/autobrr --config=/home/%i/.config/autobrr/

[Install]
WantedBy=multi-user.target

Start the service. Enable will make it startup on reboot.

systemctl enable -q --now --user autobrr@$USER

By default, the configuration is set to listen on 127.0.0.1. While autobrr works fine as is exposed to the internet, it is recommended to use a reverse proxy like nginx, caddy or traefik.

If you are not running a reverse proxy change host in the config.toml to 0.0.0.0.

Community

Join our friendly and welcoming community on Discord! Connect with fellow autobrr users, get advice, and share your experiences. Whether you're seeking help, wanting to contribute, or just looking to discuss your ideas, our community is a hub of discussion and support. We're all here to help each other out, so don't hesitate to jump in!

Contributing

Whether you're fixing a bug, adding a feature, or improving documentation, your help is appreciated. Here's how you can contribute:

Reporting Issues and Suggestions

  • Report Bugs: Encountered a bug? Please report it using our bug report template. Include detailed steps to reproduce, expected behavior, and any relevant screenshots or logs.
  • Feature Requests: Submit it using our feature request template. Describe your idea and how it will improve autobrr.

Code Contributions

Check out the full guide for contributing here.

  • Fork and Clone: Fork the autobrr repository and clone it to start working on your changes.
  • Branching: Create a new branch for your changes. Use a descriptive name for easy understanding.
  • Coding: Ensure your code is well-commented for clarity.
  • Commit Guidelines: We appreciate the use of Conventional Commit Guidelines when writing your commits.
    • There is no need for force pushing or rebasing. We squash commits on merge to keep the history clean and manageable.
  • Pull Requests: Submit a pull request with a clear description of your changes. Reference any related issues.
  • Code Review: Be open to feedback during the code review process.

Documentation

See an area that needs clarity or additional information? Feel free to update our documentation here.

Code of Conduct

We follow a code of conduct that promotes respectful and harassment-free experiences. Please read our Code of Conduct before participating.

License

autobrr is proudly open-source and is released under the GNU General Public License v2 or later (GPLv2+). This license allows you the freedom to run, study, share, and modify the software:

  • Freedom to Run: You can run autobrr in any environment, for any purpose.
  • Freedom to Study and Modify: Access to the source code allows you to study and modify autobrr to suit your needs.
  • Freedom to Share: You can redistribute copies of autobrr to help others.
  • Freedom to Enhance: Contributions to improve autobrr are always welcome.

Copyright 2021-2024

autobrr's People

Contributors

andersbjorshol avatar bbeck avatar broken-stones avatar costaht avatar danwilldev avatar dependabot[bot] avatar f4n4t avatar fabricionaweb avatar flupster avatar frrad avatar ghostserverd avatar gregtroar avatar kaiserbh avatar kuredant avatar kylesanderson avatar ludviglundgren avatar martylukyy avatar metonyms avatar mynameisbogdan avatar nelsonpecora avatar nuxencs avatar onedr0p avatar paperclip-go-brr avatar s0up4200 avatar sweetmnm avatar varoop avatar vincejv avatar vktr avatar yegle avatar zze0s avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

autobrr's Issues

Add filtering for music

Add filters specific to music.

  • artists
  • albums
  • quality
  • formats
  • sources
  • type
  • log
  • log score
  • cue

Ignore duplicates missing

Now that the index is searchable (nice!) - hopefully the ignore duplicates flag from autodl-irssi becomes a thing as there are much better ways to handle this now.

Dev Environment?

Hi there,

Quick question how would one run this in development environment?
I managed to build the dockerfile and run it using docker-compose but then I couldn't login since I need to create a user I believe.
So how does one manage to get the dev environment running?

Regards,
kb

IRC Network cannot be edited if no channels exist

Upon clicking on an IRC network with no channels you receive the error:

react-dom.production.min.js:216 TypeError: Cannot read properties of null (reading 'length')
    at children (IrcForms.tsx:25:52)
    at n.r.render (FieldArray.tsx:367:12)
    at Qi (react-dom.production.min.js:187:188)
    at Wi (react-dom.production.min.js:186:173)
    at Zs (react-dom.production.min.js:269:427)
    at Pl (react-dom.production.min.js:250:347)
    at Rl (react-dom.production.min.js:250:278)
    at Nl (react-dom.production.min.js:250:138)
    at bl (react-dom.production.min.js:243:163)
    at react-dom.production.min.js:123:115
cs @ react-dom.production.min.js:216
n.callback @ react-dom.production.min.js:216
ho @ react-dom.production.min.js:131
gs @ react-dom.production.min.js:220
Al @ react-dom.production.min.js:259
t.unstable_runWithPriority @ scheduler.production.min.js:18
Qa @ react-dom.production.min.js:122
Il @ react-dom.production.min.js:252
bl @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
t.unstable_runWithPriority @ scheduler.production.min.js:18
Qa @ react-dom.production.min.js:122
Ka @ react-dom.production.min.js:123
Za @ react-dom.production.min.js:122
Ll @ react-dom.production.min.js:263
t.unstable_runWithPriority @ scheduler.production.min.js:18
Qa @ react-dom.production.min.js:122
Fl @ react-dom.production.min.js:261
(anonymous) @ react-dom.production.min.js:261
D @ scheduler.production.min.js:16
x.port1.onmessage @ scheduler.production.min.js:12
IrcForms.tsx:25 Uncaught TypeError: Cannot read properties of null (reading 'length')
    at children (IrcForms.tsx:25:52)
    at n.r.render (FieldArray.tsx:367:12)
    at Qi (react-dom.production.min.js:187:188)
    at Wi (react-dom.production.min.js:186:173)
    at Zs (react-dom.production.min.js:269:427)
    at Pl (react-dom.production.min.js:250:347)
    at Rl (react-dom.production.min.js:250:278)
    at Nl (react-dom.production.min.js:250:138)
    at bl (react-dom.production.min.js:243:163)
    at react-dom.production.min.js:123:115
children @ IrcForms.tsx:25
r.render @ FieldArray.tsx:367
Qi @ react-dom.production.min.js:187
Wi @ react-dom.production.min.js:186
Zs @ react-dom.production.min.js:269
Pl @ react-dom.production.min.js:250
Rl @ react-dom.production.min.js:250
Nl @ react-dom.production.min.js:250
bl @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
t.unstable_runWithPriority @ scheduler.production.min.js:18
Qa @ react-dom.production.min.js:122
Ka @ react-dom.production.min.js:123
Za @ react-dom.production.min.js:122
Ll @ react-dom.production.min.js:263
t.unstable_runWithPriority @ scheduler.production.min.js:18
Qa @ react-dom.production.min.js:122
Fl @ react-dom.production.min.js:261
(anonymous) @ react-dom.production.min.js:261
D @ scheduler.production.min.js:16
x.port1.onmessage @ scheduler.production.min.js:12

Fix is probably as simple as changing this line to:

 {values && values.channels && values.channels.length > 0 ? (

I'm not well versed enough in Go to PR this I'm afraid

Default username and password?

I get the binary to run but the web-gui is behind an auth page, and I can't seem to find any references to default creds.

building error

Hello,

I tried to use the binaries on my seedbox and everything loads up as expected except that when I try to create an indexer the dropdown list is empty and then I get an error so I tried to build the binaries myself and here is the error I get at the last line:

go: downloading github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef
go: downloading github.com/r3labs/sse/v2 v2.7.2
go: downloading github.com/rs/zerolog v1.26.0
go: downloading github.com/spf13/pflag v1.0.5
go: downloading modernc.org/sqlite v1.14.1
go: downloading github.com/spf13/viper v1.9.0
go: downloading github.com/gdm85/go-libdeluge v0.5.5
go: downloading github.com/Masterminds/squirrel v1.5.1
go: downloading github.com/lib/pq v1.10.4
go: downloading github.com/dustin/go-humanize v1.0.0
go: downloading github.com/pkg/errors v0.9.1
go: downloading github.com/anacrolix/torrent v1.38.0
go: downloading gopkg.in/irc.v3 v3.1.4
go: downloading gopkg.in/natefinch/lumberjack.v2 v2.0.0
go: downloading gopkg.in/yaml.v2 v2.4.0
go: downloading github.com/go-chi/chi v1.5.4
go: downloading github.com/gorilla/sessions v1.2.1
go: downloading github.com/rs/cors v1.8.0
go: downloading golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871
go: downloading golang.org/x/net v0.0.0-20211123203042-d83791d6bcd9
go: downloading gopkg.in/cenkalti/backoff.v1 v1.1.0
go: downloading github.com/fsnotify/fsnotify v1.5.1
go: downloading github.com/magiconair/properties v1.8.5
go: downloading github.com/mitchellh/mapstructure v1.4.2
go: downloading github.com/spf13/afero v1.6.0
go: downloading github.com/spf13/cast v1.4.1
go: downloading github.com/spf13/jwalterweatherman v1.1.0
go: downloading github.com/subosito/gotenv v1.2.0
go: downloading gopkg.in/ini.v1 v1.64.0
go: downloading github.com/lann/builder v0.0.0-20180802200727-47ae307949d0
go: downloading github.com/gdm85/go-rencode v0.1.8
go: downloading github.com/anacrolix/missinggo v1.3.0
go: downloading github.com/gorilla/securecookie v1.1.1
go: downloading golang.org/x/sys v0.0.0-20211124211545-fe61309f8881
go: downloading github.com/hashicorp/hcl v1.0.0
go: downloading github.com/pelletier/go-toml v1.9.4
go: downloading golang.org/x/text v0.3.7
go: downloading github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0
go: downloading github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8
go: downloading github.com/anacrolix/missinggo/v2 v2.5.2
go: downloading github.com/huandu/xstrings v1.3.2
go: downloading modernc.org/libc v1.11.82
go: downloading github.com/google/uuid v1.3.0
go: downloading github.com/mattn/go-isatty v0.0.14
go: downloading modernc.org/mathutil v1.4.1
go: downloading modernc.org/memory v1.0.5
go: downloading github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0
../../web/build.go:14:12: pattern build: no matching files found

Any idea ?

Thanks

Show version in Docker release

Currently, the version of autobrr isn't displaying anywhere. Be good to see so we can decide if we want to upgrade to newest or not.

Nickserv should not be mandatory

Amazing project!

I connect to IRC via ZNC so do my authentication and session management via it. I therefore don't need autobrr to auth to a Nickserv and believe it should be an option rather than a mandatory field. I'm sure there are other use cases that do not need NickServ integration.

Can this functionality be changed to optional?

Auth

The app needs some simple form of auth. The app will be single user still but at least protected.

No log history

Hello,

It is complicated to find out what the issues are cause if we change from tab log to settings and come back to log, the log is completely empty, we have to remain on the tab to know what is going on.

Any chance to have an history of the log ?

Thanks

Cannot add IRC / Clients (403 error)

This is setup using the downloaded binary, and installed as a service on Linux.

I keep hitting these 403 errors when using the service and trying either add an IRC network, or a client (like radarr / sonarr).

Any suggestions?

    at APIClient.ts:32
    at s (runtime.js:63)
    at Generator._invoke (runtime.js:294)
    at Generator.next (runtime.js:119)
    at r (asyncToGenerator.js:3)
    at u (asyncToGenerator.js:25)
    at asyncToGenerator.js:32
    at new Promise (<anonymous>)
    at asyncToGenerator.js:21
    at APIClient.ts:21

DEBUG logs don't appear to provide anything useful for this.

Propagation bug with the SlideOver component

If a notification pops up, while a SlideOver panel is opened, the SlideOver panel will always close itself, regardless if the notification should have consumed the user click.

The cause for this is most likely in the underlying headlessui package that is being used. Stopping event propagation on the X button won't work.

propagation-bug.mp4

Notifications

Add support to send notifications on events.

  • Discord
  • Custom webhook

Improve list views

Some things that will improve the UX.

  • Filter list: Make item clickable, change edit to dots with dropdown. Edit, toggle, remove
  • IRC list: push TLS label to the right
  • IRC list: Make item clickable, change edit to dots with dropdown. Edit, toggle, remove
  • Download Clients: Make item clickable, change edit to dots with dropdown. Edit, toggle, remove

Would probably be good to continue and use HeadlessUI components for accessibility. Take a look at https://headlessui.dev/react/menu It's already in some places of the app.

Future ideas

  • Filter list: show actions or number of actions in list item

Watch folder issue

Hello,

I am having an issue with watch folder.
I am getting this error: ERRORcould not create new temp file '/home/user/watch/Series/b07d6448f565f476f7f1eb0ba31dbca6

this folder is accessible and I made it chmod 777 for testing purpose but still I am getting this error.
Any idea where it is coming from ?

Thanks

Feature Request : Nas Synology Support - Synocommunity

Add Autobrr to SynoCommunity packages to make it availlable to Nas users (non x86 nas).
Tried to do it myself but i lack competances.

https://github.com/SynoCommunity/spksrc

https://github.com/SynoCommunity/spksrc/wiki/Developers-HOW-TO

Some package in go are supported :
https://github.com/SynoCommunity/spksrc/tree/master/cross/micro
https://github.com/SynoCommunity/spksrc/tree/master/cross/minio
https://github.com/SynoCommunity/spksrc/tree/master/cross/syncthing

Keep up the amazing work - been waiting for a autodl-irssi replacement for a long time!

Kind regards

More information

hi, are there any plans to get more information about torrent, such as imdb, etc., or is there any way to do this,thanks

qbittorrent: client.timeout exceeded while awaiting headers

I've destroyed my client by adding a couple thousand torrents to it which it's working through. autobrr seems to only try a single attempt to push, and if it timesout gives up forever and skips the action. I suppose the request is to add configurable retries (and perhaps default to something reasonable, like 3 if the client is angry with what it's been assigned).

[Filtering]: `-` in release title breaks release group filtering

In a recent release with a - in the release name, it seemed to break the filtering of the release group.

Possible solution might be to add filtering like Sonarr does,

https://github.com/Sonarr/Sonarr/blob/3bbec2ff5d60ad078afb786541b33116b7439629/src/NzbDrone.Core/Parser/Parser.cs#L426-L427

        private static readonly Regex ReleaseGroupRegex = new Regex(@"-(?<releasegroup>[a-z0-9]+(?!.+?(?:480p|720p|1080p|2160p)))(?<!.*?WEB-DL|Blu-Ray|480p|720p|1080p|2160p|DTS-HD|DTS-X|DTS-MA|DTS-ES)(?:\b|[-._ ]|$)|[-._ ]\[(?<releasegroup>[a-z0-9]+)\]$",
                                                                RegexOptions.IgnoreCase | RegexOptions.Compiled);

Not sure if this is the most elegant solution, but it could be somewhat helpful for users wanting release group filtering to work reliably.

Code style guide for Frontend code

We're going to need a style guide and also a code formatter. I don't have any preferences w.r.t. either, so @ludviglundgren take your pick.

Nevertheless, I'd like to chime in my opinion:

  • We should replace (in JSX) {booleanCondition && } with {booleanCondition ? : null} statements. See https://kentcdodds.com/blog/use-ternaries-rather-than-and-and-in-jsx
  • I'd avoid default exports completely, unless we need it in some narrower cases, e.g. lazy loading
  • Prefer arrow functions compared to regular functions
  • Replace 4 spaces with 2 spaces, since a lot of screen real estate is being wasted on my end due to useless whitespace

Whatever you pick, I'd be fine with it, just let's standardize the code a bit for a start.

IRC multi user per network

Multiple channels

If same network, but different usernames, setup multiple irc clients/connections

If multiple indexers uses the same network, add to existing connection. Monitor channels Stop monitoring only channel if multiple others monitoring
Setup

Multiple indexers can use the same network.

FLAC/24bit FLAC filter bug

Set a music filter to match a handful of genres and only selected 'FLAC' to download but it will download 24bit FLAC as well even though 24bit FLAC is unchecked.

Torrentseeds is broken

Getting 404s on downloads so it's even failing to push despite using exec. Jackett flipped to the new Unit3d backend, there's an API key now that they're using.

Cannot validate certificate for 127.0.0.1 using SSL

I am trying to set up QBT as a client, but autobrr will not test successfully, I suspect due to an SSL certificate check:

ERR POST: do https://127.0.0.1:3535/api/v2/auth/login error="Post \"https://127.0.0.1:3535/api/v2/auth/login\": x509: cannot validate certificate for 127.0.0.1 because it doesn't contain any IP SANs"

I can get QBT set up without SSL, but all of my [other local] scripts already use SSL with a validation bypass. This is perfectly normal, as I only run this instance locally, it's isolated completely from the rest of the network, and it uses a self-generated certificate.

Is there any way I can bypass this check, or we can add an option to bypass the SSL validation?

Thanks :D

Configuration:

  • qBittorrent 4.3.9
  • WebUI bound to * on port 3535
  • self-generated SSL certs
  • Authentication bypassed for clients on localhost

autobrr:

  • v0.18.0
  • Commit 3b43ccb
  • date 2022-03-06T19:49:07.099Z

Documentation

Start with some basic documentation to get up and running, how filters work etc.

Show more IRC info

Improve overview of IRC networks and connected channels.

  • Make list item clickable and drop down the connected channels
  • Channel should have a green/gray/red indicator depending on if it's connected or not
  • Last announce for channel
  • Time connected

Add support for Docker AArch64 / ARM64

Hi,

adding a feature request to make the autobrr docker container compatible with AArch64 / ARM64 systems.
Would love to see this option in the future! :)
Keep up the amazing work - been waiting for a autodl-irssi replacement for a long time!

Kind regards

Ability to search releases

Again another nice to have, ability to search releases autobrr has picked up again to see if a release came from autobrr or sonarr/radarr RSS Feed or see if a release was announced in IRC or not.

missing variables

$(year)-$(month)-$(day)
$(TorrentName)
$(TrackerShort)

etc

Specifically I was using this on labels, commands, and rt-dir historically.

Supported indexers

We'll start with a subset of trackers/indexers and expand with requests for new ones.

IRC

  • Aither
  • Acid-Lounge
  • AlphaRatio
  • AnimeBytes
  • BeyondHD
  • Bit-hdtv
  • BTN
  • Danishbytes
  • DigitalCore
  • EMP
  • FileList
  • GazelleGames
  • HDB
  • HD-Torrents
  • IPTorrents
  • MTV
  • MAM
  • Milkie
  • Nebulance
  • Norbits
  • Orpheus
  • PTP
  • RED
  • RevolutionTT
  • SuperBits
  • TorrentDay
  • TorrentDB
  • TorrentLeech
  • TorrentSeeds
  • TorrentSyndikat
  • TranceTraffic
  • UHDBits

Error processing deluge action

Hi all, I set this up today and I'm getting an error when it grabs a release from IRC and tries to send it to Deluge v2

My setup:

  • Docker container for Deluge V2
  • Docker container for autobrr
  • Deluge V2.0.5
  • autobrr: ghcr.io/autobrr/autobrr:latest (v0.13.0)

Error log (redacted):

2022-02-06T18:22:01Z DEBUG irc.site.org: #announces _Bot_: New Torrent: <TV> Name:'torrent_name' uploaded by 'Anonymous' freeleech - https://www.some_website.com/torrent/99999999
2022-02-06T18:22:01Z DEBUG filter-service.find_and_check_filters: found and matched filter: site Freeleech
2022-02-06T18:22:01Z DEBUG filter-service.find_and_check_filters: (site Freeleech) additional size check required
2022-02-06T18:22:02Z DEBUG successfully downloaded file: /tmp/autobrr-772268386
2022-02-06T18:22:02Z INFO Matched 'torrent_name' (site Freeleech) for some_website
2022-02-06T18:22:02Z DEBUG process action: Deluge Download for 'torrent_name'
2022-02-06T18:22:02Z DEBUG action Deluge: Deluge Download
2022-02-06T18:22:02Z ERROR could not read torrent file:
2022-02-06T18:22:02Z ERROR error sending torrent to Deluge
2022-02-06T18:22:02Z ERROR process action failed: Deluge Download for 'torrent_name'

The containers don't share any folders between them, do they need to?

Any help would be much appreciated,
Thanks!

Missing options for variables

I see that some tracker definitions have some variables that are impossible to define in the index filter.

Take hdb as an example:

      - torrentName
        - category
        - releaseTags
        - internal
        - uploader
        - torrentSize
        - baseUrl
        - torrentId

Internal is a variable, but there's no option to select it in the filter.

Is it possible to add that option please? Or a custom field that would allow us to specify a custom variable and the expected result?

Cheers

Add regex testing endpoint(s)

Regex testing endpoint should be added in order to provide the user with feedback whether an inputted filter will match a given string.
The current (WIP) regex playground uses JS-based regex, which afaik doesn't fully match the Go-based one which the backend is using.

exec expansion splits args based on space after variable expansion

Discussed on discord - just a quick summary here because I'm likely going to forget.

brr Exec currently does not support spaces within quotes, and passes them as individual args. Because of the ordering of the macro expansion

// parse and replace values in argument string before continuing

into the arg string split

// we need to split on space into a string slice, so we can spread the args into exec

it is impossible to pass arguments and macros containing a space to programs. Invoking a script is a current workaround, because $SHELL can repair the damage by bringing the arg string together again by wrapping in quotes. Changing this ordering can help, but the implementation will still be incorrect as expected spaces (even if escaped) will be split.

STR: "{{ .TorrentName }}" > Sally Goes to the Mall S04E29 > curl -XPOST

There's a couple ways to tackle this, an out-of-tree one being https://github.com/mattn/go-shellwords which could add the ability to have environment variables as well on execution.

Lidarr push failed to parse

Releases fails to push from the two most prominent music trackers because the release name is to sparse.

We parse their releases as Artist - Album which is not enough for Lidarr release/push. It needs at least the year in the title to properly function like Artist - Album 2022.

Possible fixes:

  • Extend regex to capture year as well in the tittle Artist - Album [2022]
  • Build the title and add year from the parsed release before making the api post
  • Fetch full release name from api

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.