#!/usr/bin/env bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

#Copy this file to defaults.sh
#DO NOT EDIT THIS FILE

#########################EDIT THESE#########################
############################################################

#This is the shutdown, true/false
#on, it runs, off and no scripts will be RESTARTED, when all panes are DEAD, killall tmux
#if this is set to false, the script will run 1 loop and terminate
export RUNNING="true"

#these scripts set the 'nice'ness of each script, default is 19, the lowest, the highest is -20
#anything between -1 and -20 require root/sudo to run
export NICENESS="10"

#these scripts can add some serious load to your system, without proper monitoring it can be
#to much, you can set the max load that any pane will be started at
#for example, if you set load to 2, no pane will start when your system load exceeds 2
#this does not mean the the desired load will not be exceeded, just that no panes will be be restarted
#this one is for all panes except update_releases
export MAX_LOAD="2.0"

#this one is for update_releases
export MAX_LOAD_RELEASES="2.0"

############################################################

#Set paths
export NEWZPATH="/var/www/newznab"

#Should not need to change
export NEWZNAB_PATH=$NEWZPATH"/misc/update_scripts"
export TESTING_PATH=$NEWZPATH"/misc/testing"
export ADMIN_PATH=$NEWZPATH"/www/admin"

############################################################


#post processing per category
#this now takes true or false.
#run processNfos
#export NFOS="false"

#run processGames
#export GAMES="false"

#run processMovies
#export MOVIES="false"

#run processMusic
#export MUSIC="false"

#run processEbook
#export EBOOK="false"

#these are true/false
#run processTV
export TVRAGE="false"

#run processOther
export OTHERS="false"

#run processUnwanted
export UNWANTED="false"

############################################################

#Enter the session name to be used by tmux, no spaces allowed in the name, this can be changed after scripts start
#if you are running multiple servers, you could put your hostname here
export TMUX_SESSION="Newznab"

#Set, in seconds - how often the monitor.php (left top pane) script should update run the queries against the database
#the monitor script will update itself and each pane, once every 5 seconds plus the lagg time time on the loop the db is queried
#to press the point, the db is not queried any sooner than the time set below, but the script loops each iteration once every 5 seconds
#this makes it more responsive to stop/kill without slamming the db with needless queries, starts are still controlled by the queries
export MONITOR_UPDATE="30"

#you may want to kill the update_binaries, backfill and import if no releases have been add in x minutes, set the timer to anything other than 0 to enable
#this will only run every 5 loops of monitor
export KILL_UPDATES="0"

#do you want to just cause it to restart or keep off until a release is created, true for off until a release is created
#this will stop all downloads and imports
export KEEP_KILLED="false"

############################################################

#You can have backfill loop constantly and interject binaries every so often
#by setting this next to true, if true, the normal backfill pane will be dead
#this works by setting the 2 start timers and which is run at the start of the loop is determined like this
#if at the start of the loop, the BINARIES_SEQ_TIMER has expired, then update_binaries will run and the BINARIES_SEQ_TIMER timer is reset
#if BINARIES_SEQ_TIMER has not expired, then if BACKFILL_SEQ_TIMER has expired, the backfill will run and BACKFILL_SEQ_TIMER timer is reset
export SEQUENTIAL="false"

#time between loop start for update_binaries, in seconds, this is a countdown timer, not a sleep after it runs
#default is 30 minutes
#will run on first loop and then not again for at least 1800 seconds
export BINARIES_SEQ_TIMER="1800"

#this will not run on first loop, time between loop start for backfill, in seconds
#default is 10 seconds, this will run after time has expired, binaries will take precedence and run before this, if its time has expired
export BACKFILL_SEQ_TIMER="10"

############################################################

#Choose to run update_binaries true/false
export BINARIES="false"

#Choose to run the threaded or non-threaded newznab binaries scripts true/false
#update_binaries.php or update_binaries_threaded.php
export BINARIES_THREADS="false"

#Set, in seconds - how long the update_binaries should sleep between runs
#top right pane
#sleep timers are not used when using SEQ
export BINARIES_SLEEP="40"

#Set the max amount of unprocessed releases and still allow update_binaries to run
#set to 0 to disable
export BINARIES_MAX_RELEASES="0"

#Set the max amount of binaries in the binaries table and still allow update_binaries to run, this is unprocessed binaries, not the total count
#only usefull when used with ugo's automake_threaded.php
#set to 0 to disable
export BINARIES_MAX_BINS="0"

#Set the max amount of of rows in the parts table and still allow update_binaries to run
#set to 0 to disable
export BINARIES_MAX_ROWS="0"

############################################################

#Choose to run backfill script true/false
export BACKFILL="false"

#Choose to run the threaded or non-threaded newznab backfill scripts true/false
#backfill.php or backfill_threaded.php
export BACKFILL_THREADS="false"

#Set, in seconds - how long the backfill should sleep between runs
#in pane below update_binaries
#sleep timers are not used when using SEQ
export BACKFILL_SLEEP="40"

#Set the max amount of unprocessed releases and still allow backfill to run
#set to 0 to disable
export BACKFILL_MAX_RELEASES="0"

#Set the max amount of binaries in the binaries table and still allow backfill to run, this is unprocessed binaries, not the total count
#only usefull when used with ugo's automake_threaded.php
#set to 0 to disable
export BACKFILL_MAX_BINS="0"

#Set the max amount of of rows in the parts table and still allow backfill to run
#set to 0 to disable
export BACKFILL_MAX_ROWS="0"

#Set the maximum days to backfill, you set the Newznab+ admin/edit backfill to 1
#this will increment your database by 1 after each backfill loop
#once your backfill numbers reach $MAXDAYS, then it will no long increment the database
#backfill will continue to run, and do no work, at that point you should disable backfill, below
export MAXDAYS="210"

############################################################

#use kevin123's safer_backfill_parts.php instead of normal backfill or backfill threaded
#this is the script I use, it does 1 group at a time from z to a (wanted to start with tv groups first) 100k parts,
#then the script stops (once per loop), if your first_record_postdate on the group is 2012-06-24
#it will be skipped (target reached). When that group is done, it will do another ( again from z to a).
#this does not use increment, it works by the date set below
#you also need to enable kevin's compression mod, those files are needed and you still need to enable BACKFILL
export KEVIN_SAFER="false"

#use kevin123's backfill_parts.php instead of normal backfill
export KEVIN_BACKFILL_PARTS="false"

#use kevin123's backfill_parts_threaded.php instead of normal backfill_threaded
export KEVIN_THREADED="false"

#set the date to go back to, must be in the format of YYYY-MM-DD, like 2012-06-24, this is the date of the posted nzbs
export KEVIN_DATE="2012-06-24"

#set the number of articles/headers to download at one time
export KEVIN_PARTS="100000"

############################################################

#Set the path to the nzb dump you downloaded from torrents, this is the path to bulk files folder of nzbs
#this does not recurse through subfolders, unless you set NZB_THREADS to true
#this must be a valid path
export NZBS="/path/to/nzbs"

#Choose to run import nzb script true/false
export IMPORT="false"

#If, you have all of your nzbs in one folder select false
#If, you have all of you nzbs split into separate folders, with the root at $NZBS then select true
#and 10 nzbs will be imported from each subfolder per loop.
#Importing this way, allows all post processing scripts to run, such as book, music, movies
#Instead of doing all 1 type at once, spreads the work load
export NZB_THREADS="false"

#How many nzbs to import per loop, if using NZB_THREADS=true the per folder
export NZBCOUNT="10"

#Set, in seconds - how long the nzb-import should sleep between runs
#below backfill
export IMPORT_SLEEP="40"

#Set the max amount of unprocessed releases and still allow nzb-import to run
#set to 0 to disable
export IMPORT_MAX_RELEASES="0"

#Set the max amount of of rows in the parts table and still allow nzb-import to run
#set to 0 to disable
export IMPORT_MAX_ROWS="0"

#import nzbs using the filename as the release name true/false
export IMPORT_TRUE="false"

############################################################

#MAX_RELEASES for each can be calculated on the total post processing or just the Misc category
#to calculate on just the Misc, enable this
export MISC_ONLY="false"

############################################################

#Create releases, this is really only necessary to turn off when you only want to post process
export RELEASES="false"

#Set, in seconds - how long the update_release should sleep between runs
#bottom right
export RELEASES_SLEEP="40"

############################################################

#choose to run fixReleaseNames script.Before you can use this scripts you need
#to import db.sql from test/db_updates/ and prehash.sql from test/initial_setup/ folder
#to your newznab database.
#Script may stop working after svn update.
#This is a modified script used by nZEDb and is work in progress
export FIXRELEASES="false"
#How often to run this script in seconds, default is 10 minutes
export FIXRELEASES_TIMER="600"

############################################################

#choose to use predb_hash_decrypt. Use this only if you have access to
#nzpre/predb, otherwise it will not work
#Before you use this, import db.sql and/or updates from test/db_updates/ folder
export PREDBHASH="false"
#How often to run this script in seconds, default is 10 minutes
export PREDBHASH_TIMER="600"

############################################################

#choose to run requestID.php to fix release names. 
#Before you use this, import db.sql and/or updates from test/db_updates/
# and run initial_setup of prehash table

export REQID="false"

#How often to run this script in seconds, default is 20 minutes
# don't go below this value as you can get banned from allfilled servers

export REQID_TIMER="1200"

############################################################

#choose to run removecrap.php

export REMOVECRAP="false"

#How often to run this script in seconds, default is 10 minutes

export REMOVECRAP_TIMER="600"

############################################################

#choose to disable postprocess_pre.php.This is true by default,
#it is not recommended to disable it if you have the prehash table.

export UPPRE="true"

#How often to run this script in seconds, default is 20 minutes

export UPPRE_TIMER="1200"

############################################################

#Choose to run update_predb.php
export PREDB="false"

#How often to update the PreDB in seconds
export PREDB_TIMER="900"

############################################################

#Choose to run processSpotnab.php
export SPOTNAB="false"

#How often to update the SpotNab in seconds
export SPOTNAB_TIMER="900"

############################################################

#update the tv schedule and in theaters listings
export TV_SCHEDULE="false"

#How often to update the TV Schedule and the In Theaters in seconds
export TVRAGE_TIMER="43200"

############################################################

#Choose to run sphinx.php script true/false
#set to false by default, you should test the script first, php sphinx.php from the bin folder
export SPHINX="false"

#How often to run sphinx in seconds
export SPHINX_TIMER="3600"

############################################################

#Delete parts and binaries older than retention days, which is set in edit - site
#this uses a script posted by cj https://github.com/NNScripts/nn-custom-scripts
export DELETE_PARTS="false"

#how often should this be run, default it 1 hr
export DELETE_TIMER="3600"

#Releases may be added/edited with an imdb-id that does not exists in the movieinfo table. This script, update_missing_movie_info,
#will fetch all the missing imdb id's from the releases table.
export FETCH_MOVIE="false"

#how often should this be run, default it 12 hr
export MOVIE_TIMER="43200"

############################################################

#Specify your SED binary, if you are using freebsd or mac, you need to install gnu sed (gsed) and adjust the path
export SED="/bin/sed"
#export SED="/usr/local/bin/gsed"

#freebsd, and maybe mac, does not contain SIGSTKFLT, SIGCLD, SIGPOLL, SIGPWR
#and powerprocess.php will error on one of those, but appears to work if they
#are commented out, enable to have the script comment them out while running update_svn
export FIX_POSIX="false"

############################################################

#Select some monitoring script, if they are not installed, it will not affect the running of the scripts
#these are set to false by default, enable if you want them
export USE_HTOP="false"
export USE_BWMNG="false"
export USE_MYTOP="false"
export USE_ATOP="false"
export USE_NMON="false"
export USE_IOTOP="false"

#define vnstat user settings to apply at runtime
export USE_VNSTAT="false"
export VNSTAT_ARGS=""

#define tcptrack user settings to apply at runtime
export USE_TCPTRACK="false"
export TRCPTRACK_ARGS="-i eth0 port 443"

#freebsd does not have iotop, but can run top -m io -o total
export USE_TOP="false"

export USE_IFTOP="false"
#select interface to listen, only 1 interface
export INTERFACE="eth0"

#an additional window can be created manually with Ctrl-a c or it can be created at start of script
export USE_CONSOLE="false"

############################################################

#Use powerline scripts to display the status bar
#To display properly, you need a modified font, download and install the font and then select that font in your terminal
#This is done on the terminal computer, not the newznab++ server
#download fonts from https://github.com/jonnyboy/powerline-fonts
#I recommend Consolas if you are using putty in Win7
export POWERLINE="false"

############################################################

#set your LANG to which ever you like, only effects these scripts
export LANG="en_US.UTF-8"


############################################################

#newzdash is a web front end to show statistics of your Newznab+ install
#to use, you must first install from https://github.com/AlienXAXS/newzdash

#this is YOUR shared key and allows these scripts to communicate with newzdash
export NEWZDASH_SHARED_SECRET=""

#the url of your newzdash install, ensure it include HTTP:// or HTTPS:// or it will fail
#do not include the trailing /
#to disable leave blank ie. export NEWZDASH_URL=""
export NEWZDASH_URL=""

###########################################################

#Use tmpfs to run post processing on true/false
#to keep from running scripts as root, you can create your own ramdisk by adding the next line to /etc/fstab
#tmpfs /var/www/newznab/nzbfiles/tmpunrar1 tmpfs user,nodev,nodiratime,nosuid,size=256M,mode=777 0 0
#edit the path, the path MUST be the path in site edit with a "1" appended to the end, like above
#you still need to set this to true or mount it manually as your user, not as root
export RAMDISK="false"

#for freebsd, it is just a little different, you can either create the ramdisk and mount it by adding the next line to /etc/fstab
#tmpfs /var/www/newznab/nzbfiles/tmpunrar1 tmpfs rw,size=256M,mode=777 0 0
#or, give users the permission to mount it by running sudo sysctl vfs.usermount=1 and then add the next line to /etc/fstab
#tmpfs /var/www/newznab/nzbfiles/tmpunrar1 tmpfs rw,noauto,size=256M,mode=777 0 0

############################################################

#set svn password, for use with scripts/update_svn.sh
#update_svn.sh is destructive, it update your version to match the svn version
export SVN_PASSWORD="password"

#running update_svn as root will change file ownership of every file in the svn path
#to chown -R the path, enable and set user/group
#newznab/nzbfiles is not chown'd
export CHOWN_TRUE="false"

#set CHOWN_TRUE="true" and WWW_USER="{youruser}:www-data" and run update_svn.sh or fix_files.sh
#and you will will not need root to run these scripts
export WWW_USER="www-data:www-data"

###########################################################

#if you have a ramdisk and would like to monitor it's use, set path here
#this is not the same as RAMDISK above, I keep my parts table on a ramdisk
export RAMDISK_PATH=""

###########################################################

#logs can be written, per pane, to the logs folder
export WRITE_LOGS="false"

###########################################################

#user defined scripts, you can define 3 scripts to run at specific times
#you must have them in the user_scripts, no other location
#This one will run before tmux creates the ui, so if you want to run something before the scripts add here
#it is assumed that the script is a bash script and has been chmod +x
export USER_DEF_ONE=""

#this one will run before MyIsam Large
export USER_DEF_TWO=""

#this one will run after MyIsam Large, not same process as below
export USER_DEF_THREE=""

#this one will run before InnoDB Large and MyIsam Large runs in same process, so before MyIsam Large, not same process as above
export USER_DEF_FOUR=""

#this one will run after InnoDB Large
export USER_DEF_FIVE=""

###########################################################

#By using this script you understand that the programmer is not responsible for any loss of data, users, or sanity.
#You also agree that you were smart enough to make a backup of your database and files. Do you agree? yes/no
export AGREED="no"

############################################################

##END OF EDITS##

command -v mysql >/dev/null 2>&1 || { echo >&2 "I require mysql but it's not installed. Aborting."; exit 1; } && export MYSQL=`command -v mysql`
command -v php5 >/dev/null 2>&1 && export PHP=`command -v php5` || { export PHP=`command -v php`; }
command -v tmux >/dev/null 2>&1 || { echo >&2 "I require tmux but it's not installed. Aborting."; exit 1; } && export TMUXCMD=`command -v tmux`
command -v nice >/dev/null 2>&1 || { echo >&2 "I require nice but it's not installed. Aborting."; exit 1; } && export NICE=`command -v nice`
command -v tee >/dev/null 2>&1 || { echo >&2 "I require tee but it's not installed. Aborting."; exit 1; } && export TEE=`command -v tee`
command -v mysqladmin >/dev/null 2>&1 || { echo >&2 "I require mysqladmin but it's not installed. Aborting."; exit 1; } && export MYSQLADMIN=`command -v mysqladmin`

if [[ $USE_HTOP == "true" ]]; then
  command -v htop >/dev/null 2>&1|| { echo >&2 "I require htop but it's not installed. Aborting."; exit 1; } && export HTOP=`command -v htop`
fi
if [[ $USE_NMON == "true" ]]; then
  command -v nmon >/dev/null 2>&1 || { echo >&2 "I require nmon but it's not installed. Aborting."; exit 1; } && export NMON=`command -v nmon`
fi
if [[ $USE_BWMNG == "true" ]]; then
  command -v bwm-ng >/dev/null 2>&1|| { echo >&2 "I require bwm-ng but it's not installed. Aborting."; exit 1; } && export BWMNG=`command -v bwm-ng`
fi
if [[ $USE_IOTOP == "true" ]]; then
  command -v iotop >/dev/null 2>&1|| { echo >&2 "I require iotop but it's not installed. Aborting."; exit 1; } && export IOTOP=`command -v iotop`
fi
if [[ $USE_TOP == "true" ]]; then
  command -v top >/dev/null 2>&1|| { echo >&2 "I require top but it's not installed. Aborting."; exit 1; } && export TOP=`command -v top`
fi
if [[ $USE_MYTOP == "true" ]]; then
  command -v mytop >/dev/null 2>&1|| { echo >&2 "I require mytop but it's not installed. Aborting."; exit 1; } && export MYTOP=`command -v mytop`
fi
if [[ $USE_VNSTAT == "true" ]]; then
  command -v vnstat >/dev/null 2>&1|| { echo >&2 "I require vnstat but it's not installed. Aborting."; exit 1; } && export VNSTAT=`command -v vnstat`
fi
if [[ $USE_IFTOP == "true" ]]; then
  command -v iftop >/dev/null 2>&1|| { echo >&2 "I require iftop but it's not installed. Aborting."; exit 1; } && export IFTOP=`command -v iftop`
fi
if [[ $USE_ATOP == "true" ]]; then
  command -v atop >/dev/null 2>&1|| { echo >&2 "I require atop but it's not installed. Aborting."; exit 1; } && export ATOP=`command -v atop`
fi
if [[ $USE_TCPTRACK == "true" ]]; then
  command -v tcptrack >/dev/null 2>&1|| { echo >&2 "I require tcptrack but it's not installed. Aborting."; exit 1; } && export TCPTRACK=`command -v tcptrack`
fi
if [[ $POWERLINE == "true" ]]; then
  export TMUX_CONF="powerline/tmux.conf"
else
  export TMUX_CONF="conf/tmux.conf"
fi
