Beispiel #1
0
def notify_pvr(torrent_id, torrent_title, auth_key, torrent_pass, name,
               pvr_name):
    if torrent_id is not None and torrent_title is not None:
        download_link = get_torrent_link(torrent_id, torrent_title)

        announced = db.Announced(date=datetime.datetime.now(),
                                 title=torrent_title,
                                 indexer=name,
                                 torrent=download_link,
                                 pvr=pvr_name)

        if pvr_name == 'Sonarr':
            approved = sonarr.wanted(torrent_title, download_link, name)
        elif pvr_name == 'Radarr':
            approved = radarr.wanted(torrent_title, download_link, name)

        if approved:
            logger.debug("%s approved release: %s", pvr_name, torrent_title)
            snatched = db.Snatched(date=datetime.datetime.now(),
                                   title=torrent_title,
                                   indexer=name,
                                   torrent=download_link,
                                   pvr=pvr_name)
        else:
            logger.debug("%s rejected release: %s", pvr_name, torrent_title)

    return
def notify_pvr(torrent_id, torrent_title, auth_key, torrent_pass, name,
               pvr_name):
    if torrent_id is not None and torrent_title is not None:
        torrent_link_title = utils.replace_periods(
            utils.replace_spaces(torrent_title, '-'), '').lower()
        download_link = get_torrent_link(torrent_id, torrent_link_title)

        announced = db.Announced(date=datetime.datetime.now(),
                                 title=torrent_title,
                                 indexer=name,
                                 torrent=download_link,
                                 pvr=pvr_name)

        if delay > 0:
            logger.debug("Waiting %s seconds to check %s", delay,
                         torrent_title)
            time.sleep(delay)

        if pvr_name == 'Sonarr':
            approved = sonarr.wanted(torrent_title, download_link, name)
        elif pvr_name == 'Radarr':
            approved = radarr.wanted(torrent_title, download_link, name)

        if approved:
            logger.debug("%s approved release: %s", pvr_name, torrent_title)
            snatched = db.Snatched(date=datetime.datetime.now(),
                                   title=torrent_title,
                                   indexer=name,
                                   torrent=download_link,
                                   pvr=pvr_name)
        else:
            logger.debug("%s rejected release: %s", pvr_name, torrent_title)

    return
Beispiel #3
0
def parse(announcement):
    global name, torrent_title

    # extract required information from announcement
    torrent_title = utils.formatted_torrent_name(
        utils.str_before(announcement, ' - http'))
    torrent_id = utils.get_id(announcement, 1)

    if torrent_id is not None and torrent_title is not None:
        download_link = get_torrent_link(
            torrent_id, utils.replace_spaces(torrent_title, '.'))

        announced = db.Announced(date=datetime.datetime.now(),
                                 title=utils.replace_spaces(
                                     torrent_title, '.'),
                                 indexer=name,
                                 torrent=download_link)
        approved = radarr.wanted(torrent_title, download_link, name)
        if approved:
            logger.debug("Radarr approved release: %s", torrent_title)
            snatched = db.Snatched(date=datetime.datetime.now(),
                                   title=utils.replace_spaces(
                                       torrent_title, '.'),
                                   indexer=name,
                                   torrent=download_link)
        else:
            logger.debug("Radarr rejected release: %s", torrent_title)
        torrent_title = None
Beispiel #4
0
def parse(announcement):
    global name

    if '[Movie/' not in announcement:
        return
    decolored = utils.strip_irc_color_codes(announcement)

    # extract required information from announcement
    torrent_title = utils.substr(decolored, '] ', ' - http', True)
    torrent_id = utils.get_id(decolored, 0)

    # pass announcement to radarr
    if torrent_id is not None and torrent_title is not None:
        download_link = get_torrent_link(
            torrent_id, utils.replace_spaces(torrent_title, '.'))

        announced = db.Announced(date=datetime.datetime.now(),
                                 title=utils.replace_spaces(
                                     torrent_title, '.'),
                                 indexer=name,
                                 torrent=download_link)
        approved = radarr.wanted(torrent_title, download_link, name)
        if approved:
            logger.debug("Radarr approved release: %s", torrent_title)
            snatched = db.Snatched(date=datetime.datetime.now(),
                                   title=utils.replace_spaces(
                                       torrent_title, '.'),
                                   indexer=name,
                                   torrent=download_link)
        else:
            logger.debug("Radarr rejected release: %s", torrent_title)
Beispiel #5
0
def notify():
    try:
        data = request.json
        if 'id' in data:
            # Request to check this torrent again
            announcement = db.Announced.get(id=data.get('id'))
            if announcement is not None and len(announcement.title) > 0:
                logger.debug("Checking announcement again: %s", announcement.title)

                approved = radarr.wanted(announcement.title, announcement.torrent, announcement.indexer)
                if approved:
                    logger.debug("Radarr accepted the torrent this time!")
                    return "OK"
                else:
                    logger.debug("Radarr still refused this torrent...")
                    return "ERR"

    except Exception as ex:
        logger.exception("Exception while notifying radarr announcement:")

    return "ERR"
Beispiel #6
0
def notify_pvr(torrent_id, torrent_title, auth_key, torrent_pass, name,
               pvr_name):
    if torrent_id is not None and torrent_title is not None:
        approved = False

        download_link = get_torrent_link(torrent_id, torrent_title)

        announced = db.Announced(date=datetime.datetime.now(),
                                 title=torrent_title,
                                 indexer=name,
                                 torrent=download_link,
                                 pvr=pvr_name)

        if delay > 0:
            logger.debug("Waiting %s seconds to check %s", delay,
                         torrent_title)
            time.sleep(delay)

        logger.debug(f"Checking PVR {pvr_name} for {torrent_title}")
        if pvr_name == 'Sonarr':
            approved = sonarr.wanted(torrent_title, download_link, name)
            logger.debug(f"Sonarr approved: {approved}")
        elif pvr_name == 'Radarr':
            approved = radarr.wanted(torrent_title, download_link, name)
            logger.debug(f"Radarr approved: {approved}")

        logger.debug(f"PVR {pvr_name} approved: {approved}")
        if approved:
            logger.debug("%s approved release: %s", pvr_name, torrent_title)
            snatched = db.Snatched(date=datetime.datetime.now(),
                                   title=torrent_title,
                                   indexer=name,
                                   torrent=download_link,
                                   pvr=pvr_name)
        else:
            logger.debug("%s rejected release: %s", pvr_name, torrent_title)

    return