Files
torrent_search/torrentSearch/__main__.py

74 lines
1.8 KiB
Python

#!/usr/bin/env python3.6
# -*- encoding: utf-8 -*-
"""Torrent Search.
Usage:
search.py <query> [-s <site>] [-f] [-p | --print] [--debug | --warning | --error]
search.py (-h | --help)
search.py --version
Options:
-h --help Show this screen
-s [site] Site to index [default: piratebay] (piratebay|jackett)
-p --print Print result to console
-f Filter response on release type
--version Show version
--debug Print all debug logs
--warning Print only logged warnings
--error Print error messages (Error/Warning)
"""
import sys
import logging
import logging.config
import signal
from docopt import docopt
from __version__ import __version__
from search import searchTorrentSite
from utils import getConfig
logger = logging.getLogger('torrentSearch')
def main():
"""
Main function, call searchTorrentSite
"""
signal.signal(signal.SIGINT, signal_handler)
arguments = docopt(__doc__, version=__version__)
if arguments['--debug']:
logger.level = logging.DEBUG
elif arguments['--warning']:
logger.level = logging.WARNING
elif arguments['--error']:
logger.level = logging.ERROR
logger.info('Torrent Searcher')
logger.debug(arguments)
# Fetch config
config = getConfig()
if arguments['-s'] in config['DEFAULT']['SITE_OPTIONS'].split(','):
site = arguments['-s']
logger.debug('site selected: {}'.format(site))
else:
logger.error('"{}" is a invalid site. Select from: {}'.format(arguments['-s'], config['DEFAULT']['SITE_OPTIONS']))
sys.exit()
searchTorrentSite(arguments['<query>'], site, arguments['-f'], arguments['--print'], config)
def signal_handler(signal, frame):
"""
Handle exit by Keyboardinterrupt
"""
logger.info('\nGood bye!')
sys.exit(0)
if __name__ == '__main__':
main()