Beispiel #1
0
    def create_page(self, wiki_page, **kwargs):
        """
        Create a new wiki page.

        :calls: `POST /api/v1/courses/:course_id/pages \
        <https://canvas.instructure.com/doc/api/pages.html#method.wiki_pages_api.create>`_

        :param title: The title for the page.
        :type title: dict
        :returns: The created page.
        :rtype: :class:`canvasapi.course.Course`
        """

        if isinstance(wiki_page, dict) and 'title' in wiki_page:
            kwargs['wiki_page'] = wiki_page
        else:
            raise RequiredFieldMissing(
                "Dictionary with key 'title' is required.")

        response = self._requester.request('POST',
                                           'courses/%s/pages' % (self.id),
                                           **combine_kwargs(**kwargs))

        page_json = response.json()
        page_json.update({'course_id': self.id})

        return Page(self._requester, page_json)
Beispiel #2
0
    def show_front_page(self):
        """
        Retrieve the content of the front page.

        :calls: `GET /api/v1/courses/:course_id/front_page \
        <https://canvas.instructure.com/doc/api/pages.html#method.wiki_pages_api.show_front_page>`_

        :rtype: :class:`canvasapi.course.Course`
        """
        response = self._requester.request('GET',
                                           'courses/%s/front_page' % (self.id))
        page_json = response.json()
        page_json.update({'course_id': self.id})

        return Page(self._requester, page_json)
Beispiel #3
0
    def edit_front_page(self, **kwargs):
        """
        Update the title or contents of the front page.

        :calls: `PUT /api/v1/courses/:course_id/front_page \
        <https://canvas.instructure.com/doc/api/pages.html#method.wiki_pages_api.update_front_page>`_

        :rtype: :class:`canvasapi.course.Course`
        """
        response = self._requester.request('PUT',
                                           'courses/%s/front_page' % (self.id),
                                           **combine_kwargs(**kwargs))
        page_json = response.json()
        page_json.update({'course_id': self.id})

        return Page(self._requester, page_json)
Beispiel #4
0
    def get_page(self, url):
        """
        Retrieve the contents of a wiki page.

        :calls: `GET /api/v1/courses/:course_id/pages/:url \
        <https://canvas.instructure.com/doc/api/pages.html#method.wiki_pages_api.show>`_

        :param url: The url for the page.
        :type url: str
        :returns: The specified page.
        :rtype: :class:`canvasapi.course.Course`
        """

        response = self._requester.request(
            'GET', 'courses/%s/pages/%s' % (self.id, url))
        page_json = response.json()
        page_json.update({'course_id': self.id})

        return Page(self._requester, page_json)
Beispiel #5
0
def get_info():
    canvas = Canvas(API_URL, API_KEY)

    course = canvas.get_course(1337964)
    pages = [p for p in course.get_pages() if p.title.startswith("Week of")]
    page = str(html2text.html2text(Page.show_latest_revision(pages[len(pages) - 1]).body))
    # print(page)
    title = pages[len(pages) - 1].title
    page_lines = [x if not x.startswith("http") else "<" + x + ">" for x in page.splitlines()]
    meeting_i_start = -1
    meeting_i_end = -1
    for i in range(len(page_lines)):
        if "Lecture/Discussion" in page_lines[i]:
            meeting_i_start = i
            break
    for j in range(len(page_lines) - 1, 0, -1):
        if "Password: "******"I couldn't find the meeting information for the current week. (" + title + ")"

    # print("\n".join(page_lines[meeting_i_start:meeting_i_end]))
    return "Meetings for the " + title[0].lower() + title[1:] + ":\n" + "\n".join(page_lines[meeting_i_start:meeting_i_end])
Beispiel #6
0
 def test_parent_type_no_id(self, m):
     page = Page(self.canvas._Canvas__requester, {'url': 'my-url'})
     with self.assertRaises(ValueError):
         page.parent_type
Beispiel #7
0
 def test_parent_id_no_id(self, m):
     page = Page(self.canvas._Canvas__requester, {"url": "my-url"})
     with self.assertRaises(ValueError):
         page.parent_id