�
�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>>