Exemple #1
0
def generate_frames(comment_dict, is_multiple=True):
    """
    :param comment_dict: comment dictionary
    :param is_multiple
    """
    movies = get_list_of_movie_dicts()
    episodes = get_list_of_episode_dicts()

    for frame in comment_dict["content"]:
        request = Request(
            frame,
            movies,
            episodes,
            comment_dict,
            is_multiple,
        )
        if request.is_minute:
            request.handle_minute_request()
        else:
            try:
                request.handle_quote_request()
            except exceptions.ChainRequest:
                request.handle_chain_request()
                yield request
                break
        yield request
Exemple #2
0
def comment_post(post_id, published=False, episode=False):
    """
    :param post_id: Facebook post ID
    :param published
    :param episode
    """
    api_obj = FB_TV if episode else FB

    if episode:
        episodes_len = len(get_list_of_episode_dicts())
        comment = (f"Explore the collection ({episodes_len} episodes): "
                   f"{WEBSITE}/collection-tv")
    else:
        movies_len = len(get_list_of_movie_dicts())
        comment = (
            f"Explore the collection ({movies_len} Movies):\n{WEBSITE}\n"
            f"Are you a top user?\n{WEBSITE}/users/all\n"
            'Request examples:\n"!req Taxi Driver [you talking to me?]"\n"'
            '"!req Stalker [20:34] {TOTAL DURATION}"')

    collage = os.path.join(POSTERS_DIR, choice(os.listdir(POSTERS_DIR)))
    logger.info(f"Found poster collage: {collage}")

    if not published:
        return

    api_obj.post(
        path=f"{post_id}/comments",
        source=open(collage, "rb"),
        message=comment,
    )

    logger.info("Commented")
Exemple #3
0
def search_item(query, return_dict=False):
    if is_episode(query):
        EPISODE_LIST = db.get_list_of_episode_dicts()
        result = search_episode(EPISODE_LIST, query, raise_resting=False)
        if not return_dict:
            return f"{BASE}/episode/{result['id']}"
    else:
        MOVIE_LIST = db.get_list_of_movie_dicts()
        result = search_movie(MOVIE_LIST, query, raise_resting=False)
        if not return_dict:
            return f"{BASE}/movie/{result['tmdb']}"

    return result
Exemple #4
0
def comment_post(post_id, published=False, episode=False):
    """
    :param post_id: Facebook post ID
    :param published
    :param episode
    """
    api_obj = FB_TV if episode else FB

    if episode:
        episodes_len = len(get_list_of_episode_dicts())
        comment = (
            f"Become a patron and get access to on-demand requests: {PATREON}\n"
            f"Explore the collection ({episodes_len} episodes): "
            f"{WEBSITE}/collection-tv"
        )

    else:
        movies_len = len(get_list_of_movie_dicts())
        comment = (
            f"Join the Discord server: {DISCORD_INVITE}\n"
            f"Explore the collection ({movies_len} movies):\n{WEBSITE}\n"
            f"Completely open-source:\n{GITHUB_REPO}\n\n"
            "If you donated before Feb 3, you'll get an email with an invitation"
            " for on-demand requests in the next days."
        )

    collage = os.path.join(POSTERS_DIR, choice(os.listdir(POSTERS_DIR)))
    logger.info(f"Found poster collage: {collage}")

    if not published:
        return

    api_obj.post(
        path=f"{post_id}/comments",
        source=open(collage, "rb"),
        message=comment,
    )

    logger.info("Commented")
Exemple #5
0
from kinobot.request import search_episode, search_movie
from kinobot.utils import (
    check_current_playing_plex,
    get_id_from_discord,
    handle_kino_songs,
    is_episode,
)

db.create_discord_db()

bot = commands.Bot(command_prefix="!")

BASE = "https://kino.caretas.club"
GOOD_BAD = ("👍", "💩")
MOVIE_LIST = db.get_list_of_movie_dicts()
EPISODE_LIST = db.get_list_of_episode_dicts()


def handle_discord_request(ctx, command, args):
    request = " ".join(args)
    user_disc = ctx.author.name + ctx.author.discriminator
    username = db.get_name_from_discriminator(user_disc)

    try:
        request_dict = dissect_comment(f"!{command} {request}")
    except (MovieNotFound, EpisodeNotFound, OffensiveWord,
            InvalidRequest) as kino_exc:
        return f"Nope: {type(kino_exc).__name__}."

    request_id = str(randint(2000000, 5000000))