Source code for pyrocore.scripts.rtevent

# -*- coding: utf-8 -*-
# pylint: disable=
""" Rtorrent event handler.

    Copyright (c) 2011 The PyroScope Project <pyroscope.project@gmail.com>
"""
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from __future__ import absolute_import

import sys

from pyrocore import config
from pyrocore.scripts.base import ScriptBase, ScriptBaseWithConfig


[docs]class RtorrentEventHandler(ScriptBaseWithConfig): ### Keep things wrapped to fit under this comment... ############################## """ Handle rTorrent events. """ # argument description for the usage information ARGS_HELP = "<event> <infohash> [<args>...]"
[docs] def add_options(self): """ Add program options. """ super(RtorrentEventHandler, self).add_options() # basic options self.add_bool_option("--no-fork", "--fg", help="Don't fork into background (stay in foreground, default for terminal use)")
[docs] def mainloop(self): """ The main loop. """ # Print usage if not enough args or bad options if len(self.args) < 2: self.parser.error("No event type and info hash given!") if sys.stdin.isatty(): self.options.no_fork = True
# Need to demonize (single-fork) ouselfves here, since otherwise rTorrent dead-locks # TODO: Actually implement something here
[docs]def run(): #pragma: no cover """ The entry point. """ ScriptBase.setup() RtorrentEventHandler().run()
if __name__ == "__main__": run()