def download(self, video_file): subtitle = None settings = get_settings() download_dir = settings.save_path log.info("Downloading subtitle") filepath = join(download_dir, video_file[0]) guess = guess_video_info(filepath, info=['filename']) video = Video.fromguess(filepath, guess) video.size = video_file[1] try: subtitle = download_best_subtitles([video], {Language(self.lang)}, single=True) except ValueError: pass if subtitle is not None and len(subtitle): log.info("CLAH %s %s", download_dir, video.name) subtitle = get_subtitle_path( join( download_dir, video.name.replace("(", "\(").replace(")", "\)").replace(" ", "\ "))) log.info( "video_file: %s, filepath: %s, guess: %s, video: %s, " "subtitle: %s", video_file, filepath, guess, video, subtitle) return subtitle
def get_torrent(name, season=None, episode=None): interface = get_interface() settings = get_settings() path = abspath(__file__) dir_path = dirname(path) exec_ = join(dir_path, "..", "main.py") command = '%s %s \"%s\" ' % (py_exec, exec_, name) if season is not None: command += "%s %s " % (season, episode) lock = Lock(LOCK_FILE) if lock.is_same_file(name, season, episode) and \ is_process_running(lock.get_pid()): data = lock._get_file_data() port = data[4] else: if settings.force_ts_proxy_port: port = settings.ts_proxy_port else: port = get_free_port() command += "--daemon --port %s " % port log.info(command) process = Popen(command, shell=True, stdout=PIPE, stderr=STDOUT) sleep(1) redirect_url = "http://%s:%s" % (interface, port) serving = False while not serving: try: req = requests.get("%s/status" % redirect_url) serving = True except requests.ConnectionError, e: sleep(1)
def __init__(self, manager): settings = get_settings() self.settings = settings.strategy self.manager = manager self.holding_stream = True self.handle = manager.handle self.moov_downloaded = False self.download_lasts = False self.chunks_strat = self.settings.chunks_strat
def __init__(self, name, season=None, episode=None, sub_lang=None, serve=False, quality=None, port=None, player=None, search=None, use_cache=True): self.name = name self.season = season self.episode = episode self.sub_lang = sub_lang self.serve = serve self.quality = quality self.port = port self.player = player if search is None: settings = get_settings() search = settings.default_search_engine self.search_engine = search self.use_cache = use_cache
def log_set_up(verbose=False): settings = get_settings() if not exists(settings.save_path): mkdir(settings.save_path) logfile = os.path.join(settings.save_path, "touchandgo.log") handler = RotatingFileHandler(logfile, maxBytes=1e6, backupCount=10) formatter = logging.Formatter("%(asctime)s %(name)-22s " "%(levelname)-8s %(message)s") handler.setFormatter(formatter) logger = logging.getLogger() logger.addHandler(handler) if DEBUG or verbose: logger.setLevel(logging.DEBUG) else: logger.setLevel(logging.INFO) add_stdout_handler(logger, formatter)
def log_set_up(verbose=False): settings = get_settings() if not exists(settings.save_path): mkdir(settings.save_path) logfile = "%s/touchandgo.log" % (settings.save_path) handler = RotatingFileHandler(logfile, maxBytes=1e6, backupCount=10) formatter = logging.Formatter("%(asctime)s %(name)-22s " "%(levelname)-8s %(message)s") handler.setFormatter(formatter) logger = logging.getLogger() logger.addHandler(handler) if DEBUG or verbose: logger.setLevel(logging.DEBUG) else: logger.setLevel(logging.INFO) add_stdout_handler(logger, formatter)
def download(self, video_file): settings = get_settings() download_dir = settings['save_path'] print("Downloading subtitle") log.info("Downloading subtitle") filepath = join(download_dir, video_file[0]) guess = guess_video_info(filepath, info=['filename']) video = Video.fromguess(filepath, guess) video.size = video_file[1] subtitle = download_best_subtitles([video], {Language(self.lang)}, single=True) if not len(subtitle): subtitle = None else: subtitle = get_subtitle_path(join(download_dir, video.name)) log.info("video_file: %s, filepath: %s, guess: %s, video: %s" "subtitle: %s", video_file, filepath, guess, video, subtitle) return subtitle
def __init__(self, name, season=None, episode=None, sub_lang=None, serve=False, quality=None, port=None, player=None, search=None, use_cache=True): self.name = name self.season = season self.episode = episode self.sub_lang = sub_lang self.serve = serve self.quality = quality self.port = port self.player = player if search is None: settings = get_settings() search = settings.default_search_engine self.search_engine = search self.use_cache = use_cache set_config_dir()
def __init__(self, magnet, port=None, sub_lang=None, serve=False, player=None): self.settings = get_settings() self.magnet = magnet if port is None: port = DEFAULT_PORT port = int(port) if not is_port_free(port): port = get_free_port() log.info( "[Magnet]: %s [Port]: %s [Sub_lang]: %s [Serve]: %s " "[Player] %s ", magnet, port, sub_lang, serve, player) self.port = port self.serve = serve if player is None: player = self.settings.players.default self.player = player # number of pieces to wait until start streaming # we are waiting untill all the first peices are downloaded # the biggest file which is supposed to be a video file self._video_file = None self.callback = serve_file self._served_blocks = None self.streaming = False self.stream_th = None self.player_th = None self.httpd = None self._guess = None self.init_handle() self.strategy = self.strategy_class(self) if sub_lang is not None: self.subtitle = self.sub_downloader_class(sub_lang) else: self.subtitle = None
def __init__(self, magnet, port=None, sub_lang=None, serve=False, player=None, index_file=None): self.settings = get_settings() self.magnet = magnet if port is None: port = DEFAULT_PORT port = int(port) if not is_port_free(port): port = get_free_port() log.info("[Magnet]: %s [Port]: %s [Sub_lang]: %s [Serve]: %s " "[Player] %s ", magnet, port, sub_lang, serve, player) self.port = port self.serve = serve if player is None: player = self.settings.players.default self.player = player self.index_file = index_file # number of pieces to wait until start streaming # we are waiting untill all the first peices are downloaded # the biggest file which is supposed to be a video file self._video_file = None self.callback = serve_file self._served_blocks = None self.streaming = False self.stream_th = None self.player_th = None self.httpd = None self._guess = None self.init_handle() self.strategy = self.strategy_class(self) if sub_lang is not None: self.subtitle = self.sub_downloader_class(sub_lang) else: self.subtitle = None
def download(self, video_file): subtitle = None settings = get_settings() download_dir = settings.save_path log.info("Downloading subtitle") filepath = join(download_dir, video_file[0]) guess = guess_video_info(filepath, info=['filename']) video = Video.fromguess(filepath, guess) video.size = video_file[1] try: subtitle = download_best_subtitles([video], {Language(self.lang)}, single=True) except ValueError: pass if subtitle is not None and len(subtitle): log.info("CLAH %s %s", download_dir, video.name) subtitle = get_subtitle_path(join(download_dir, video.name.replace("(", "\(") .replace(")", "\)") .replace(" ", "\ "))) log.info("video_file: %s, filepath: %s, guess: %s, video: %s, " "subtitle: %s", video_file, filepath, guess, video, subtitle) return subtitle
def download(self, video_file): subtitle = None settings = get_settings() download_dir = settings.save_path log.info("Downloading subtitle") filepath = join(download_dir, video_file[0]) guess = guessit(filepath) video = Video.fromguess(filepath, guess) video.size = video_file[1] try: subtitles = download_best_subtitles([video], {Language(self.lang)}, only_one=True) except ValueError: pass if subtitles is not None and len(subtitles): subs = subtitles.values()[0] if len(subs): save_subtitles(video, subs, single=True, encoding="utf-8") subtitle = get_subtitle_path(video.name, None) log.info( "video_file: %s, filepath: %s, guess: %s, video: %s, " "subtitle: %s", video_file, filepath, guess, video, subtitle) return subtitle