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)
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)
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)
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)
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])
def test_parent_type_no_id(self, m): page = Page(self.canvas._Canvas__requester, {'url': 'my-url'}) with self.assertRaises(ValueError): page.parent_type
def test_parent_id_no_id(self, m): page = Page(self.canvas._Canvas__requester, {"url": "my-url"}) with self.assertRaises(ValueError): page.parent_id