aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--_rtorrent.rc243
1 files changed, 62 insertions, 181 deletions
diff --git a/_rtorrent.rc b/_rtorrent.rc
index 339cbeb..c9a5b2b 100644
--- a/_rtorrent.rc
+++ b/_rtorrent.rc
@@ -1,193 +1,74 @@
#
-# rtorrent configure file
+# ~/.rtorrent.rc
+# See https://github.com/rakshasa/rtorrent/wiki/CONFIG-Template
+# Requires rtorrent 0.9.x
+#
+# Aaron LI
+# 2016-05-09
#
-### shortcuts ###
-# Ctrl-q: closes rTorrent, done twice makes the program shutdown
-# without waiting to send stopping information to the trackers
-# Left arrow: returns to the previous screen
-# Right arrow: goes to the next screen
-# a|s|d: increase global upload throttle about 1|5|50 KB/s
-# A|S|D: increase global download throttle about 1|5|50 KB/s
-# z|x|c: decrease global upload throttle about 1|5|50 KB/s
-# Z|X|C: decrease global download throttle about 1|5|50 KB/s
-# Ctrl-S: starts download
-# Ctrl-D: stops an active download, removes a stopped download
-# + or -: changes the download priority of selected torrent
-# Backspace: adds the specified .torrent. after pressing this button
-# write fuul path or URL of .torrent file
-
-# This is an example resource file for rTorrent. Copy to
-# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
-# uncomment the options you wish to enable.
-
-# Maximum and minimum number of peers to connect to per torrent.
-#min_peers = 40
-max_peers = 52
-
-# Same as above but for seeding completed torrents (-1 = same as downloading)
-#min_peers_seed = 10
-max_peers_seed = 52
-
-# Maximum number of simultanious uploads per torrent.
-max_uploads = 8
-
-# Global upload and download rate in KiB. "0" for unlimited.
-download_rate = 0
-upload_rate = 0
-
-# Default directory to save the downloaded torrents.
-#directory = /home/[user]/torrents/
-#directory = ~/downloads/torrents
-
-# Default session directory. Make sure you don't run multiple instance
-# of rtorrent using the same session directory. Perhaps using a
-# relative path?
-session = ~/downloads/torrents/.session/
-
-# Watch a directory for new torrents, and stop those that have been detected
-#schedule = watch_directory,5,5,load_start="~/downloads/torrents/*.torrent"
-# stop downloading after the torrent file removed
-schedule = untied_directory,5,5,stop_untied=
-schedule = tied_directory,5,5,start_tied=
+# Instance layout (base paths)
+method.insert = cfg.basedir, private|const|string, (cat,"/home/aly/rtorrent/")
+method.insert = cfg.watch, private|const|string, (cat,(cfg.basedir),"watch/")
+method.insert = cfg.logs, private|const|string, (cat,(cfg.basedir),"log/")
+method.insert = cfg.logfile, private|const|string, (cat,(cfg.logs),"rtorrent-",(system.time),".log")
+
+# Listening port for incoming peer traffic
+network.port_range.set = 62009-62009
+network.port_random.set = no
+
+# Tracker-less torrent and UDP tracker support
+dht.mode.set = auto
+dht.port.set = 6881
+protocol.pex.set = yes
+# Whether the client should try to connect to UDP trackers.
+trackers.use_udp.set = yes
+
+# Peer settings
+throttle.min_peers.normal.set = 20
+throttle.max_peers.normal.set = 60
+throttle.min_peers.seed.set = 30
+throttle.max_peers.seed.set = 80
+
+# Limits for file handle resources, this is optimized for
+# an `ulimit` of 1024 (a common default). You MUST leave
+# a ceiling of handles reserved for rTorrent's internal needs!
+network.http.max_open.set = 50
+network.max_open_files.set = 600
+network.max_open_sockets.set = 300
+
+# Memory resource usage (increase if you have a large number of items loaded,
+# and/or the available resources to spend)
+pieces.memory.max.set = 1800M
+network.xmlrpc.size_limit.set = 2M
+
+# Basic operational settings
+session.path.set = (cat,(cfg.basedir),".session")
+directory.default.set = (cat,(cfg.basedir),"download")
+
+# Watch directories (add more as you like, but use unique schedule names)
+# load.normal: only load torrents
+# load.start: load torrents and start downloading
+schedule = watch_load,15,10,((load.normal,(cat,(cfg.watch),"load/*.torrent")))
+schedule = watch_start,10,10,((load.start,(cat,(cfg.watch),"start/*.torrent")))
# Close torrents when diskspace is low.
-schedule = low_diskspace,5,60,close_low_diskspace=2000M
-
-# Stop torrents when reaching upload ratio in percent,
-# when also reaching total upload in bytes, or when
-# reaching final upload ratio in percent.
-# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
-### error ###
-#schedule = ratio,60,60,stop_on_ratio=200,200M,2000
-
-# The ip address reported to the tracker.
-#ip = 127.0.0.1
-#ip = rakshasa.no
+schedule = low_diskspace,5,60,((close_low_diskspace,5000M))
-# The ip address the listening socket and outgoing connections is
-# bound to.
-#bind = 127.0.0.1
-#bind = rakshasa.no
-
-# Port range to use for listening.
-port_range = 42396-43000
-
-# Start opening ports at a random position within the port range.
-port_random = yes
-
-# Encryption options, set to none (default) or any combination of the following:
+# Encryption options, set to any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
-#
-# The example value allows incoming encrypted connections, starts unencrypted
-# outgoing connections but retries with encryption if they fail, preferring
-# plaintext to RC4 encryption after the encrypted handshake
-#
-# encryption = allow_incoming,enable_retry,prefer_plaintext
-encryption = allow_incoming,try_outgoing,enable_retry
+protocol.encryption.set = allow_incoming,try_outgoing,enable_retry
-# Enable DHT support for trackerless torrents or when all trackers are down.
-# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
-# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
-# The default is "off". For DHT to work, a session directory must be defined.
-dht = auto
-
-# UDP port to use for DHT.
-dht_port = 6881
-
-# Enable peer exchange (for torrents not marked private)
-peer_exchange = yes
-
-# Check hash for finished torrents. Might be usefull until the bug is
-# fixed that causes lack of diskspace not to be properly reported.
+# Check hash for finished torrents.
+#pieces.hash.on_completion.set = yse
check_hash = yes
-use_udp_trackers = yes
-
-# Alternative calls to bind and ip that should handle dynamic ip's.
-#schedule = ip_tick,0,1800,ip=rakshasa
-#schedule = bind_tick,0,1800,bind=rakshasa
-
-# for chinese support
-encoding_list = UTF-8
-
-# press 9 in your rtorrent client to see the changes in action
-schedule = filter_active,30,30,"view_filter = active,\"or={d.get_up_rate=,d.get_down_rate=}\""
-
-# for remote management
-#scgi_port = localhost:5000
-
-
-#### Automatically Move Completed Torrent Data to 'Completed' Folders
-
-# location where new torrent data is placed, and where you should place your
-# 'complete' data before you place your *.torrent file into the watch folder
-directory = ~/downloads/torrents/incomplete
-
-# schedule a timer event named 'watch_directory_1':
-# 1) triggers 10 seconds after rtorrent starts
-# 2) triggers at 10 second intervals thereafter
-# 3) Upon trigger, attempt to load (and start) new *.torrent files found in /home/user/torrents/watch/
-# 4) set a variable named 'custom1' with the value "/home/user/torrents/complete"
-# NOTE: if you don't want it to automatically start the torrent, change 'load_start' to 'load'
-schedule = watch_directory_1,10,10,"load_start=~/downloads/torrents/watch/*.torrent,d.set_custom1=~/downloads/torrents/complete"
-
-# insert a method with the alias 'checkdirs1'
-# 1) returns true if the current path of the torrent data is not equal to the value of custom1
-# 2) otherwise, returns false
-system.method.insert=checkdirs1,simple,"not=\"$equal={d.get_custom1=,d.get_base_path=}\""
-
-# insert a method with the alias 'movecheck1'
-# 1) returns true if all 3 commands return true ('result of checkdirs1' && 'torrent is 100% done', 'custom1 variable is set')
-# 2) otherwise, returns false
-system.method.insert=movecheck1,simple,"and={checkdirs1=,d.get_complete=,d.get_custom1=}"
-
-# insert a method with the alias 'movedir1'
-# (a series of commands, separated by ';')
-# 1) "set path of torrent to equal the value of custom1";
-# 2) "mv -u <current data path> <custom1 path>";
-# 3) "clear custom1", "stop the torrent","resume the torrent"
-# 4) stop the torrent
-# 5) start the torrent (to get the torrent to update the 'base path')
-system.method.insert=movedir1,simple,"d.set_directory=$d.get_custom1=;execute=mv,-u,$d.get_base_path=,$d.get_custom1=;d.set_custom1=;d.stop=;d.start="
-
-# set a key with the name 'move_hashed1' that is triggered by the hash_done event.
-# 1) When hashing of a torrent completes, this custom key will be triggered.
-# 2) when triggered, execute the 'movecheck1' method and check the return value.
-# 3) if the 'movecheck' method returns 'true', execute the 'movedir1' method we inserted above.
-# NOTE: 'branch' is an 'if' conditional statement: if(movecheck1){movedir1}
-system.method.set_key=event.download.hash_done,move_hashed1,"branch={$movecheck1=,movedir1=}"
-
-
-#
-# Do not modify the following parameters unless you know what you're doing.
-#
-# Hash read-ahead controls how many MB to request the kernel to read
-# ahead. If the value is too low the disk may not be fully utilized,
-# while if too high the kernel might not be able to keep the read
-# pages in memory thus end up trashing.
-#hash_read_ahead = 10
-
-# Interval between attempts to check the hash, in milliseconds.
-#hash_interval = 100
-
-# Number of attempts to check the hash while using the mincore status,
-# before forcing. Overworked systems might need lower values to get a
-# decent hash checking rate.
-#hash_max_tries = 10
-
-# Max number of files to keep open simultaniously.
-#max_open_files = 128
-
-# Number of sockets to simultaneously keep open.
-#max_open_sockets = <no default>
-
-
-# Example of scheduling commands: Switch between two ip's every 5
-# seconds.
-#schedule = "ip_tick1,5,10,ip=torretta"
-#schedule = "ip_tick2,10,10,ip=lampedusa"
+# Logging:
+# Levels = critical error warn notice info debug
+# Groups = connection_* dht_* peer_* rpc_* storage_* thread_* tracker_* torrent_*
+print = (cat,"Logging to ",(cfg.logfile))
+log.open_file = "log", (cfg.logfile)
+log.add_output = "info", "log"
-# Remove a scheduled event.
-#schedule_remove = "ip_tick1"
+# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=conf: #