def get_day_reading_text(meta, b, curr_chapter, day):
    """
    Generate the text for the day's reading, e.g. "Genesis 48-50; Exodus 1-2".

    Args:
        meta (list): The metadata of the books of the Bible in dict format.
        b (int): The index of the current book in the meta. meta[b] = curr_book.
        curr_chapter (int): The index of the current chapter in curr_book.
        day (int): The number of chapters (still) needed to be read in the day.
    
    Returns:
        str: The complete or partial daily reading text, depending on recursion.
    """

    curr_book = meta[b]
    day_readings = ""

    # Just read the number of chapters in the daily reading
    if curr_chapter + day - 1 <= curr_book["chapters"]:
        day_readings += f"{curr_book['name']} "
        if day != 1:
            day_readings += f"{curr_chapter}-{curr_chapter + day - 1}"
        else:
            day_readings += f"{curr_chapter}"
    # We have finished the book, let's move to the next book
    elif curr_chapter + day - 1 > curr_book["chapters"]:
        day_readings += f"{curr_book['name']} "
        if curr_chapter != curr_book["chapters"]:
            day_readings += f"{curr_chapter}-{curr_book['chapters']}; "
        else:
            day_readings += f"{curr_chapter}; "

        # Recurse to get more books needed to be read to be on schedule
        day_readings += get_day_reading_text(
            meta, b + 1, 1, day - (curr_book["chapters"] - curr_chapter) - 1)

    return day_readings