a
    lEu_`                     @   sd   d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	 Zd
d Zdd ZdS )a  Open Graph.

This plugin adds Open Graph Protocol tags to articles.

Use like this in your base.html template:

.. code-block:: jinja2

  {% if article %}
  {% for tag in article.ogtags %}
  <meta property="{{tag[0]}}" content="{{tag[1]|striptags|e}}" />
  {% endfor %}
  {% endif %}

  {% if page  %}
  {% for tag in page.ogtags %}
  <meta property="{{tag[0]}}" content="{{tag[1]|striptags|e}}" />
  {% endfor %}
  {% endif %}

    )unicode_literalsN)BeautifulSoup)
generators)signals)strftimec                 C   s\   | D ]R}t |tjr6|j|j |j D ]}t| q&qt |tjr|jD ]}t| qHqdS )zGet different Pelican objects.T)	
isinstancer   ArticlesGeneratorarticlestranslationsdraftsopen_graph_tagPagesGeneratorpages)Zcontent_generators	generatorarticlepage r   T/var/www/html/pharmacie-a-vendre.fr/pelican-plugins/pelican-open_graph/open_graph.pyopen_graph_tag_articles!   s    
r   c                 C   sP  d| j fdg}| jdd}|r0|d|f nbt| jd}|d}|r|d d	}d
|vr| jddr| jddd | }|d|f tj	
| jdd| j}|d|f | j}| jd|}|d|f | jdg }	t|	d dkr|	d }	|d| jd|	f |d| jddf t| drV|dt| jdf t| drx|dt| jdf t| dr| jD ].}
tj	
| jdd|
j}|d|f q| jdi }|r| jD ]&}|j|v r|d||j f q|d| jjf z"| jD ]}|d |jf qW n tyD   Y n0 || _d!S )"zOpen Graph items.zog:title)zog:typer   og_image zog:imagezhtml.parserimgr   srchttpSITEURL/zog:urlog_descriptionzog:descriptionLOCALE   z	og:locale	og_localezog:site_nameSITENAMEdatezarticle:published_timez%Y-%m-%dmodifiedzarticle:modified_timerelated_postszog:see_alsoZAUTHOR_FB_IDzarticle:authorzarticle:sectionzarticle:tagN)titlemetadatagetappendr   contentfind_allsettingsospathjoinurlsummarylenhasattrr   r!   r"   r#   authorsnamecategorytagsAttributeErrorogtags)itemr7   imagesoupZ	img_linksZimg_srcr.   Zdefault_summarydescriptiondefault_localeZrelated_postZauthor_fb_profilesauthortagr   r   r   r   1   s    




r   c                   C   s   t jt dS )zRegister pelican plugin.N)r   all_generators_finalizedconnectr   r   r   r   r   register{   s    rA   )__doc__
__future__r   Zos.pathr+   bs4r   pelicanr   r   pelican.utilsr   r   r   rA   r   r   r   r   <module>   s   J