Code Monkey home page Code Monkey logo

sabnzbd.github.io's Introduction

SABnzbd - The automated Usenet download tool

License Join our Discord

SABnzbd is an Open Source Binary Newsreader written in Python.

It's totally free, easy to use, and works practically everywhere. SABnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction. SABnzbd offers an easy setup wizard and has self-analysis tools to verify your setup.

If you want to know more you can head over to our website: https://sabnzbd.org.

Resolving Dependencies

SABnzbd has a few dependencies you'll need before you can get running. If you've previously run SABnzbd from one of the various Linux packages, then you likely already have all the needed dependencies. If not, here's what you're looking for:

  • python (Python 3.8 and above, often called python3)
  • Python modules listed in requirements.txt. Install with python3 -m pip install -r requirements.txt -U
  • par2 (Multi-threaded par2 installation guide can be found here)
  • unrar (make sure you get the "official" non-free version of unrar)

Optional:

  • See requirements.txt

Your package manager should supply these. If not, we've got links in our installation guide.

Running SABnzbd from source

Once you've sorted out all the dependencies, simply run:

python3 -OO SABnzbd.py

Or, if you want to run in the background:

python3 -OO SABnzbd.py -d -f /path/to/sabnzbd.ini

If you want multi-language support, run:

python3 tools/make_mo.py

Our many other command line options are explained in depth here.

About Our Repo

The workflow we use, is a simplified form of "GitFlow". Basically:

  • master contains only stable releases (which have been merged to master) and is intended for end-users.
  • develop is the target for integration and is not intended for end-users.
  • 1.1.x is a release and maintenance branch for 1.1.x (1.1.0 -> 1.1.1 -> 1.1.2) and is not intended for end-users.
  • feature/my_feature is a temporary feature branch based on develop.
  • bugfix/my_bugfix is an optional temporary branch for bugfix(es) based on develop.

Conditions:

  • Merging of a stable release into master will be simple: the release branch is always right.
  • master is not merged back to develop.
  • develop is not re-based on master.
  • Release branches branch from develop only.
  • Bugfixes created specifically for a release branch are done there (because they are specific, they're not cherry-picked to develop).
  • Bugfixes done on develop may be cherry-picked to a release branch.
  • We will not release a 1.0.2 if a 1.1.0 has already been released.

sabnzbd.github.io's People

Contributors

a-pseudonym avatar carlwgeorge avatar caronc avatar cheese1 avatar earmour avatar fadonius avatar fukie avatar hugepants avatar jcfp avatar jgibson02 avatar naveci avatar neofright avatar onecdonly avatar peschmae avatar puzzledsab avatar sabnzbd-automation avatar safihre avatar sanderjo avatar sbalbrecht avatar shypike avatar thezoggy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sabnzbd.github.io's Issues

Improve: SABnzbd as a Windows Service

URL: /wiki/advanced/sabnzbd-as-a-windows-service.html

Improvement:

  1. List where the "ini" file is--or at least give some hint. ("The ini file is called sabnzbd.ini and is in the SABNZBD folder within your %LOCALAPPDATA% folder" would suffice. I understand the concept of "if they can't figure it out, they shouldn't be installing it" but it is basic documentation 101 not to make people waste time determining a program's arbitrary nomenclature and settings locations.

  2. Make it more clear that the helper service needs to be installed for automatic startup--and reference it earlier in the instructions--not AFTER the "start-stop" and "update" commands which most people don't need if they got to this page to simply install SABNZBD as a always-on service, and thus skim over (don't need to do that, so I'm done I guess). So the actual, necessary Helper part gets missed--as can be seen by the many confused forum posters out there wondering why it didn't start automatically. There's even a sentence in the Helper section that says "The service SABHelper will be created automatically when installing the service" which is extremely misleading and ambiguously stated--it's not at all clear if the Helper must be installed or not.

Improve: Categories

URL: /wiki/configuration/2.3/categories.html

Improvement:
There's a minor grammatical error in the 'Notes' section.

"Instead of listing all possible categories, you may simple use TV*."

should probably read as:

"Instead of listing all possible categories, you may simply use TV*."

Thank you.

Improve: RSS

URL: /wiki/configuration/1.2/rss.html

Improvement:
@shypike could you add From Show SxxEyy? 👍

Improve: Job options

URL: /wiki/extra/job-options.html

Improvement:
Explain whether or not these options are inclusive of the ones above them, or are exclusive.

questions

  • does this need to be updated from 0.7 to 2.0:
    https://github.com/sabnzbd/sabnzbd.github.io/blob/master/_config.yml#L17

  • how do you make changes to sab wiki offline to know what they look like/work?
    as trying to make any changes 'offline' its a royal pain as the header/footer/layout is not loaded..
    looking online people mention of installing ruby+jekyll/gollum to work on github wiki pages offline before pushing... but I failed to get this working on windows (which apparently is a known issue on getting gollum installed due to a ruby dependency that doesnt like windows)

Improve: Command Line Parameters

URL: /wiki/advanced/command-line-parameters.html

Improvement:
In the description for the --pid option it states that the pid file name will be sabnzbd_port.pid (underscore before port), however the file name actually created is sabnzbd-port.pid (dash before port).

This is confirmed in the source code:
DIR_PID = os.path.join(pid_path, 'sabnzbd-%s.pid' % port)

Improve: Servers

URL: /wiki/configuration/1.1/servers.html

Improvement:
Doesn't describe 'Backup' server tick box.

Improve: Install from source - C version of NameMapper on Windows

URL: /wiki/installation/install-off-modules.html

Improvement:

On windows you get the following warning:

You don't have the C version of NameMapper installed! I'm disabling Cheetah's useStackFrames option as it is painfully slow with the Python version of NameMapper. You should get a copy of Cheetah with the compiled C version of NameMapper.
  "\nYou don't have the C version of NameMapper installed! "

The C version of NameMapper for Windows is not included in Cheetah v2 (which is required by SABnzbd) but is included in Cheetah v3.

Having the user pip instal cheetah3 in addition to pip install cheetah will get them the optional C version of NameMapper without having to compile it or get it from an alternate source.

Improve: FAQ I can"t get logged in

URL: /wiki/faq.html

Improvement:
I am sorry tried following lost password info still can"t get logged back in.please help ....thank you

Improve: Fedora and RHEL/CentOS/Scientific Linux RPM

URL: /wiki/installation/install-fedora-centos-rhel.html

Improvement:

I've a bit of a list of things that are inaccurate.

  • Step 2: the li.nux.ro/repos sites with a command for centos 7 does not work.
    Retrieving http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm warning: /var/tmp/rpm-tmp.wDlUby: Header V4 RSA/SHA1 Signature, key ID 85c6cd8a: NOKEY error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Permission denied)
    I've decided to skip, since I had epel-release active anyway

  • The dependencies are missing Python-Cheetah

  • Step 7 has a command (cat) in the first line of the code. Copying the text obviously does not work. Point being, this is not noob friendly

Improve: Post-processing scripts

URL: /wiki/scripts/post-processing-scripts.html

Improvement: The example python script does not work in all cases. When the 8th argument is provided it can be a list of characters.

This is my script that handles this case:

#! /usr/bin/env python
import os
import sys
import time
import fnmatch
from glob import glob

try:
    f1 = open("/tmp/SABnzbd.log", "a+")
except IOError as e:
    print str(e)
    f1 = sys.stdout

try:
    print >>f1, "----- %s -----" % len(sys.argv)
    print >>f1, "\n".join(sys.argv[:8])

    try:
        (scriptname,directory,orgnzbname,jobname,reportnumber,category,group,postprocstatus) = sys.argv[:8]
        print >>f1, "scriptname = %s" % scriptname
        print >>f1, "directory = %s" % directory
        print >>f1, "orgnzbname = %s" % orgnzbname
        print >>f1, "jobname = %s" % jobname
        print >>f1, "reportnumber = %s" % reportnumber
        print >>f1, "category = %s" % category
        print >>f1, "group = %s" % group
        print >>f1, "postprocstatus = %s" % postprocstatus
        url = ''.join(sys.argv[8:])
        print >>f1, "url = %s" % url
        print "Processing %s for %s %r" % ("succeeded" if postprocstatus == "0" else "failed", directory, postprocstatus)
        try:
            rarbg = os.path.join(directory, "RARBG.COM.mp4")
            if os.path.exists(rarbg):
                os.unlink(rarbg)
                print >>f1, "deleted %s" % rarbg
        except Exception as e:
            print >>f1, str(e)
        try:
            print >>f1, "files:"
            for file in os.listdir(directory):
                if fnmatch.fnmatch(file, "*.url"):
                    os.unlink(file)
                    print >>f1, "deleted %s" % file
                elif fnmatch.fnmatch(file, "*.srr"):
                    print >>f1, 'srr:', file
                elif fnmatch.fnmatch(file, "*.proof*.jpg"):
                    os.unlink(file)
                    print >>f1, "deleted %s" % file
                else:
                    print >>f1, file
        except Exception as e:
            print >>f1, str(e)
    except:
        try:
            # are we testing only?
            directory = sys.argv[1]
            print >>f1, "directory = %s" % directory
        except:
            print "No commandline parameters found"
            sys.exit(1)

    print >>f1, "----- %s -----" % time.strftime("%D %T")
except:
    print "Unexpected error:", sys.exc_info()[0]
finally:
    f1.close()

Improve: NZB Sources

URL: /wiki/introduction/nzb-sources.html

Improvement: Hi, as I understand it DOGnzbs is not a lifetime subscription, but it is annual $15 and you must pay a $10 credit card transaction fee. And it is currently open for trial registration (10 days of use).

Improve: FAQ

URL: /wiki/faq.html

Improvement: Where is the link if you forgot your password?

Improve: Categories

URL: /wiki/configuration/2.3/categories.html

Improvement:
DogNZB is using syntax "TV > 4K" in the meta category.

Improve: Special settings

URL: /wiki/configuration/2.1/special.html

Improvement:

The option: par2_multicore ( on ) available in version 2.1.0 [443efb5]
is missing from the Wiki.

Quick fix to the wiki, installs old version 7.20 w/o this

URL: /wiki/installation/install-ubuntu-repo.html

Improvement:

ubuntu 16.04 will throw an error upon usage of the command:
'add-apt-repository ppa:jcfp/ppa' w/ or w/o the sudo command/root account

you have to install:
apt-get install software-properties-common and then the add-apt-repository command will work

not sure what the deal is but it is what it is

If you miss the error that it throws back at you after 'add-apt-repository ppa:jcfp/ppa' and continue with the rest of the commands then it install an old version of SABNZBd (7.20) presumably from canonical's official repositories.

Improve: New features and changes

URL: /wiki/new-features-and-changes.html

need to redo this page so people can see why they should upgrade from 0.7.x->1.x->2.x etc

maybe something like a nice change log page showing main features/bugs addressed

Improve: Folder Setup

URL: /wiki/advanced/directory-setup.html

Improvement:

MacOSX incomplete folder states it is .../complete, should be .../incomplete

Improve: SSL Ciphers

URL: /wiki/advanced/ssl-ciphers.html

Improvement:
Debian Stretch includes OpenSSL 1.1.0f, which has disabled RC4-MD5 cyphers. Manually recompiling OpenSSL with the “enable-weak-ssl-ciphers” flag.

Improve: Configure

URL: /wiki/configuration/1.2/configure.html

Improvement:
Posts on usernet are coded in the yEnc format, decoding this during the downloading using Python is not very efficient. Therefore we implemented this part in C for a big gain in performance.

should be usenet not usernet.

then about yenc below.. may be late to even do this isnce sabyenc is coming but I have yenc 0.4 built for python 2.7.x on windows (32 and 64bit).. which shy/inp was supposed to put on sab's site so we can host/just include.
http://zoggy.net/yenc-0.4_py2.7.rar

Improve: NZB Sources

URL: /wiki/introduction/nzb-sources.html

Improvement:

From:
Search engines
Only searching in pubically available

To:
Search engines
Only searching in publicly available

Improve: Folder Setup

URL: /wiki/advanced/directory-setup.html

Improvement:
Administrative directory admin_dir:
Should contain the following line
Vista/Win7/Win10 %userprofile%\AppData\Local\sabnzbd\admin

Log directory log_dir:
Should contain the following line
Vista/Win7/Win10 %userprofile%\AppData\Local\sabnzbd\logs

Automate Cloudflare Cache Flushing upon Release

Once we ship a new build several things need to have their caches flushed. This should be automated, or at least be made push-button in a way that doesn't require Cloudflare access.

When I updated it tonight, I had to do the following:

I'm not really sure what the surgical approach needs to be. We can cut the cache time on the json down from 24h to like 1h or something, then that part's automated, but I'm still not super certain why it sabnzbd.js wasn't re-pulling the json.

Does $.getJSON use some extra layer of cache I'm not aware of?

Analytics?

Don't we want some analytics on the page? Like Google Analytics.
Or CloudFlare does that?

Improve: NZB Sources

URL: /wiki/introduction/nzb-sources.html

Improvement:
Site Code Base Registrations Free Account Limits
abNZB Newznab Open 20 Downloads, 100 API hits/day

This site is now invite only:

Welcome
Abnzb.com is a free to use usenet search engine. We do not host or store any binaries on this server; just index files. If you would like to see a specific group indexed let us know via the contact form.

Registration now invite only

Supporting us

Donations are not required, but do help to keep this website sustainable. If you would like to support the website, you can do by visiting the donation page. You can donate using a payment card, or Bitcoin. Donations are voluntary and much appreciated.

sourceforge - decom/update

Per: https://sabnzbd.org/wiki/contact

SourceForge.net is our distribution platform.

This is no longer true.. so we prob should update it to reflect GH now..

Now with that said, there is still benefit for having sourceforge as others that always went this route to get updates/discover through it... So maybe we should still put the non-beta's here (thus we need to add 1.2.x/2.x) and then just nuke the beta folder? Also we should prob add verbiage to direct people from SF to GH.

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.