� �F�V; � @ sK d d l Z d d l Z d d l m Z e j j e � Z e j j e � d d l m Z d d l Z d d l m Z d d d d d d d g Z Gd d � d e � Z Gd d � d e e j � Z Gd d � d e � Z Gd d � d e � Z Gd d � d e � Z Gd d � d e � Z Gd d � d e � Z Gd d � d e � Z d S)� N)�md5)�display)�save_youtube_cc� MoocVideo�PreprintReference�MoocDiscussion�MoocCheckboxesAssessment�MoocMultipleChoiceAssessment�MoocPeerAssessment�MoocSelfAssessmentc @ s e Z d Z d d � Z d S)� MoocComponentc C s d j | j j t | j � � S)Nz {0}(**{1}))�format� __class__�__name__�repr�param)�self� r �../code/edx_components.py�__repr__ s zMoocComponent.__repr__N)r � __module__�__qualname__r r r r r r s r c s4 e Z d Z d d d d d d � f d d � Z � S)r NZ720� �truec s� t � } | d =| d =| d =| d =| d =| d =| j | � | | d <d | | d <d } | d k r� | j | | � | d <n | | _ t t | � j | d d d d �d S)z@A video component of an EdX mooc embeddable in IPython notebook.�kwargsr r �id�src_location�resZyoutube_id_1_0z1.00:ZyoutubezPhttp://delftxdownloads.tudelft.nl/TOPOCMx-QuantumKnots/TOPOCMx-{0}-video.{1}.mp4N�source�relr Zcc_load_policy� )�locals�updater r �superr �__init__)r r r r �display_nameZdownload_trackZdownload_videoZ show_captionsr �tmp�loc)r r r r$ s zMoocVideo.__init__)r r r r$ r r )r r r s c @ s. e Z d Z d d d d � Z d d � Z d S)r r Tc C s; d } | | _ | | _ | | _ t j | | � | _ d S)z0Formatted basic information from arxiv preprint.z*http://export.arxiv.org/api/query?id_list=N)�index� show_abstract�description� feedparser�parse�data)r r( r* r) Zarxiv_queryr r r r$ , s zPreprintReference.__init__c C s� | j } | j } | d d d } d | d } | d | | f 7} | d 7} | d j d d � | d d d D� � 7} | d 7} | j r� | d 7} | | d d d 7} | d 7} n | j r� | d | j 7} n | S)N�entriesr �titlez<h3 class="title mathjax">z</h3>zB<p><a href=http://arxiv.org/abs/%s>http://arxiv.org/abs/%s</a><br>z<div class="authors">z, c s s | ] } | j Vq d S)N)�name)�.0�authorr r r � <genexpr>>