Ñò
KÔNc           @   sJ  d  d k  l Z d  d k l Z l Z d  d k l Z d  d k l Z d  d k l	 Z	 d  d k
 l
 Z
 l Z d  d k l Z d  d k l Z l Z d  d	 k l Z d  d
 k l Z d  d k l Z d  d k Z d  d k Z d  d k Z d  d k Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d S(   iÿÿÿÿ(   t   render_to_response(   t   HttpResponset   HttpResponseRedirect(   t   json_response(   t   Post(   t   UserData(   t   datetimet	   timedelta(   t   settings(   t   Usert   Group(   t   auth(   t   login_required(   t   parserNc         C   s  |  i  d } |  i  d } |  i  d } d } t i i d |  i ƒ } t i i d | ƒ \ } } t i ƒ  | _	 t i ƒ  i
 | _ d G| i GH| i ƒ  | d j o4 t i i d | ƒ } t i i d | ƒ \ }	 }
 n d	 G| GHd
 G| GHd G| GH| i d ƒ d j o) | |	 _ |	 i ƒ  d GHd } t |  ƒ S| i d ƒ d j o) d | _ | i ƒ  d GHd } t |  ƒ S| d j o¦| d j o™d GH|  i i |	 _ | | _ | d j o† d G|  i i Gd G| GH|	 i t d ƒ j o2 d GHt d ƒ | _ d | _ | i ƒ  t |  ƒ St d ƒ |	 _ |	 i ƒ  | i ƒ  q$| d j o† d G|  i i Gd G| GH|	 i t d ƒ j o2 d GHt d ƒ | _ d | _ | i ƒ  t |  ƒ St d ƒ |	 _ |	 i ƒ  | i ƒ  q$| d j oM d G|  i i Gd G| GHt d ƒ | _ t d ƒ |	 _ |	 i ƒ  | i ƒ  q$| d j oM d G|  i i Gd G| GHt d ƒ | _ t d ƒ |	 _ |	 i ƒ  | i ƒ  q$| d j oM d G|  i i Gd G| GHt d ƒ | _ t d ƒ |	 _ |	 i ƒ  | i ƒ  q$t d ƒ |	 _ t d ƒ | _ d |	 _ d | _ |	 i ƒ  | i ƒ  n d | _ | d j o d } d | _ n | i ƒ  t i ƒ  } | t d t i ƒ } xQ t i i ƒ  D]@ } | i	 | j o* | i | i j o d | _ | i ƒ  q‰q‰Wt i i d |  i d  | d! t | i ƒ d" t t i ƒ  i
 ƒ ƒ t |  ƒ S(#   Nt   textt   remote_usert   status_callt   0t   usernamet   users   	Se actualiza reloj en post a:t   nulls   	Texto enviado  : s   	Usuario remoto : s   	Estado llamada : s   MP:i    s   	Mensaje privado guardadot   1s
   MPRestore:s   	Mensaje privado reseteadot   inactivos&   	Comprobacion del estado de la llamadas   	El usuarios   quiere hablar cons9   	 Llamada anulada por indisponibilidad del usuario remotot   3t   5t   2s   a aceptado la videollamada det   4s   detiene la llamada cont   6i   t   secondst   messaget   canalt   usecond_date(   t   POSTR	   t   objectst   getR   R   t   get_or_createR   t   nowt   last_reqt   microsecondt   usecond_last_reqt   savet   findt   mensaje_privadot	   get_postsR   R   R   t   intt   flag_messageR   R   t   CONNECTED_AFTER_LAST_REQt   allR   R   t   create(   t   requestt   msgR   R   R*   t
   user_localt	   localdatat   localcreatedt   user_remotet
   remotedatat   remotecreatedR$   t   beforet   ud(    (    sG   /home/miguel/Documentos/djcode/django_chat/../django_chat/chat/views.pyt   post   s¸    
				
	
		

	




		
	
 #	@c         C   s
   t  |  ƒ S(   N(   R+   (   R1   (    (    sG   /home/miguel/Documentos/djcode/django_chat/../django_chat/chat/views.pyt   update—   s    c         C   s   t  |  ƒ d } t | ƒ S(   Nt   messages(   R+   R   (   R1   R=   (    (    sG   /home/miguel/Documentos/djcode/django_chat/../django_chat/chat/views.pyt   testpostž   s    c            sC  t  i ƒ  } d } t i i d ˆ  i ƒ \ } } d GHg  } t i i d t | i	 ƒ ƒ i
 d d ƒ } | GH‡  f d †  } xC | D]; } | | ƒ }	 |	 t j o d GH| i | ƒ d	 GHq€ Pq€ W| } t | ƒ d
 j o d GH| d  } n t | ƒ d j o	 d GHn | i ƒ  ˆ  i d j o/ | | _ | i | _ d G| i GH| i ƒ  n d GHd }
 d } d } d } d } d } d } xM | D]E } |
 d | i i ƒ  i ƒ  | i i t | i ƒ d | i f 7}
 q†Wx£t i i ƒ  D]’} | i o‚d G| i i Gd GH| i	 } | i t d ƒ j p | i t d ƒ j o d GHd } n d GHd } | i i ˆ  i i j o6 d | i i | i i | i i | f } | | } qqd | i i } | | } | d j oG d GH| d  | i i | i i | i i | i i | i i | f } nV d! GH| d" | i i | i i | i i | i i | i i | i i | i i | f } | | } qßqßW| i d# j o d# } d | _ | i ƒ  n d } | i p_ t | _ t i i  d$ t! i" d d ƒ } t i i# d | d% d& ˆ  i i d d d' | i ƒ n | i ƒ  | i$ oA d( Gt | i$ ƒ GHt | _$ d) Gt | i$ ƒ GHd* } | i ƒ  n | t% d+ t! i& ƒ } g  } g  } x‰ t i i ƒ  D]x } | i | j oA | i | i i ƒ | i	 | i	 j o | i | i i ƒ qq˜| i o t | _ | i ƒ  q˜q˜W| d# j o“ h t d, 6|
 d- 6| d. 6d/ d0 i' | ƒ d1 6| d2 6| i	 d 6| d3 6t | i( ƒ d4 6t | i i ƒ d5 6t | i ƒ d6 6t | i) ƒ d7 6| i* d8 6Sh t d, 6| d. 6d/ d0 i' | ƒ d1 6| d2 6| i	 d 6| d3 6t | i( ƒ d4 6t | i i ƒ d5 6t | i ƒ d6 6t | i) ƒ d7 6| i* d8 6Sd  S(9   Nt   FalseR   s   	Procesamiento de mensajesR   s   -dates   -usecond_datec            s±   d GHt  i i d ˆ  i ƒ \ } } |  GH|  i Gd G| i GH|  i | i j o |  St |  i ƒ Gd Gt | i ƒ GH|  i | i j o$ t |  i ƒ t | i ƒ j o |  St	 Sd  S(   Ns   	Se miraR   t   >(
   R   R!   R#   R   t   dateR%   R,   R   R'   R?   (   t   elementot   ordenardatat   created(   R1   (    sG   /home/miguel/Documentos/djcode/django_chat/../django_chat/chat/views.pyt   ordenar²   s    2s   	Se une a la listas   	Unido finalizadoi   s   	Envio los ultimos 10 mensajesi
   i    s   	No se envia nadat   GETs   	Se actualiza reloj en get a:s$   	Procesamiento de mensajes terminadot    s*   <img src=%s> <i><b>%s </b></i>[%s]: %s<br>i   s   	El usuarios   esta conectadoi   i   s   	Se incluye icono para cancelars
   error.png's"   	No se incluye icono para cancelars   videoconferencia.png's²   <li> <b onmouseover="return overlib('Haz doble click para enviar un mensaje privado a %s.');" onmouseout="return nd();" ondblclick="mensaje_privado('%s');">%s</b> (canal:%d)</li>s&   <li><img id='%s' src='/chat/templates/s=   	Se incluye icono para cancelar la videollamada o una llamadasc   width='20' height='20' alt='' onmouseover="return overlib('Haz click para iniciar/detener la videollamada con %s.');" onmouseout="return nd();" onclick=iniciarvideollamada('%s') /> <b onmouseover="return overlib('Haz doble click para enviar un mensaje privado a %s.');" onmouseout="return nd();" ondblclick="mensaje_privado('%s');">%s</b> (canal:%d)</li>s   	No hay videollamada en cursos2   width='20' height='20' alt='' onmouseover="return overlib('Haz click para iniciar/detener la videollamada con %s.');" onmouseout="return nd();" onclick=iniciarvideollamada('%s') /> <img src='/chat/templates/llamada.gif' width='20' height='20' alt='' onmouseover="return overlib('Haz click para iniciar/detener llamada con %s.');" onmouseout="return nd();" onclick=iniciarllamada('%s') /> <b onmouseover="return overlib('Haz doble click para enviar un mensaje privado a %s.');" onmouseout="return nd();" ondblclick="mensaje_privado('%s');">%s</b> (canal:%d)</li>i   R   R   s   %s is connected.R   s   	Marcado desconectado:s"   	Marcado desconectado actualizado:t   TrueR   t   successR=   t   envios#   Conectados en este canal: <b>%s</b>s   , t   userst	   messages2t   desconectadot   videot   met   statust   mensajet
   wait_value(+   R   R$   R   R!   R#   R   R   t   filterR,   R   t   order_byR?   t   appendt   lent   reverset   methodR%   R&   R'   R(   t   get_profilet
   avatar_urlR   t   strRA   R   R/   t	   connectedR   R-   RH   R	   R"   R   t   ADMINSR0   t   disconnectedR   R.   t   joinR   R*   t   refresh_period(   R1   R$   t   salirt   udataRD   t   listat   lastsRE   t   itemt   objetoR=   t   messagesaux1t   messagesaux2t   messagesaux3t	   messagestt   wgroupt   iconot   mt   m2RJ   t   adminR9   t   userlistt   userlistcanalR:   (    (   R1   sG   /home/miguel/Documentos/djcode/django_chat/../django_chat/chat/views.pyR+   ¥   sà    * 		
	 C 
	,
(
BP	
	 6

	 
	



c         C   s]   t  i i d |  i ƒ } t i i d | ƒ \ } } t | _ | i ƒ  t	 i
 |  ƒ t d ƒ S(   NR   R   s   /chat/(   R	   R!   R"   R   R   R#   RH   R^   R(   R   t   logoutR   (   R1   t   usuariodesconectadoRb   RD   (    (    sG   /home/miguel/Documentos/djcode/django_chat/../django_chat/chat/views.pyRr   Q  s    	
c         C   sñ  t  i i d |  i ƒ } t i i d | ƒ \ } } | i d j o
 d } n! | i d j o
 d } n d } |  i i d | ƒ } d	 GHd
 G| i GHd G| GHy;t i i d | ƒ } d | GH| i	 i
 d | ƒ i ƒ  d j oad GHd GHt i i d | ƒ \ } } d | _ | d j oX | i	 i
 d | ƒ i ƒ  d j o6 d GHd | _ d | _ d | _ d | _ t | _ n | d j oX | i	 i
 d | ƒ i ƒ  d j o6 d GHd | _ d | _ d | _ d | _ t | _ n | d j oX | i	 i
 d | ƒ i ƒ  d j o6 d GHd | _ d | _ d | _ d | _ t | _ qOn d GHt d ƒ Sd GH| i ƒ  | i i d j o t | _ n
 t | _ | i ƒ  d GHd GHt |  i i ƒ } | o	 d GHn d GHt d ƒ St d  ƒ SWn d GHt d ƒ SXd  S(!   NR   R   i   t   room1i   t   room2t   room3R   s   	Eligiendo canals   	 Ususuarios   	 Canalt   names/   	Comprobamos que no este conectado al canal: %si    s   	 Le agregamos al canals    	Proceso de salvaguarda de canals   	 Recibido canal 1R   R   s   	 Recibido canal 2s   	 Recibido canal 3i   s   	Error: al entrar en el grupos   /chat/error_grupo/s   	 Se salva el canal en la BBDDRo   s   	 Salvado correctos&   	Proceso borrado de tabla videollamadas   		Proceso con exitos   		Proceso con errors   /chat/error/s	   test.html(   R	   R!   R"   R   R   R#   R   R    R
   t   groupsRS   t   countR-   R   R   R*   R?   R^   R   R(   R   t   is_staffRH   t   delete_tableR    (   R1   R   t   usudatat
   usucreatedt   canaldefaultR   t   groupt   process(    (    sG   /home/miguel/Documentos/djcode/django_chat/../django_chat/chat/views.pyR   \  sv    

		"	/				/				/				

	
	
c         C   sš   y4 t  i d d d d d d d d ƒ } | i ƒ  } Wn% t  i j
 o } t Sd	 t GHn Xd
 } |  } | i | | ƒ | i ƒ  | i ƒ  | i ƒ  t	 S(   Nt   hostt	   localhostR   Ro   t   passwdt   chatt   dbt   chatdb2s   el nombre ess3   DELETE FROM chat_registration WHERE m_username = %s(
   t   MySQLdbt   connectt   cursort   ErrorR?   t	   musernamet   executet   closet   commitRH   (   t
   m_usernamet   connR‰   t   et   sqlt   args(    (    sG   /home/miguel/Documentos/djcode/django_chat/../django_chat/chat/views.pyR{   ¥  s    $


c         C   s~   d GH|  } d G| GHd G| GHxB | | j  o4 | i  d j o$ d G| GHt i d ƒ | d } q  Wd | _ | i ƒ  d GHt S(   Ns   	Entra en esperas
   	Contador:s
   	Final   :i    s   	Tiempo:i   s   	Fin de la espera(   R-   t   timet   sleept   lockR(   RH   (   t   iniciot   finRb   t   contador(    (    sG   /home/miguel/Documentos/djcode/django_chat/../django_chat/chat/views.pyt   espera¼  s    		 		
(#   t   django.shortcutsR    t   django.httpR   R   t   dojango.decoratorsR   t   modelsR   R   R   R   t   django.confR   t   django.contrib.auth.modelsR	   R
   t   django.contribR   t   django.contrib.auth.decoratorsR   t   dateutil.parserR   t   sysR‡   R”   t   threadR;   R<   R>   R+   Rr   R   R{   Rš   (    (    (    sG   /home/miguel/Documentos/djcode/django_chat/../django_chat/chat/views.pyt   <module>   s,   ƒ		¬		I	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
	<head>
            <title>e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.</title>

                <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="description" content="Buscador de proyectos ETSI" />
<meta name="author" content="Daniel Callejo"/>
<meta name="author" content="Federico L&oacute;pez"/>
<meta name="author" content="Juli&aacute;n P&eacute;rez"/>
<meta name="author" content="Jos&eacute; Mar&iacute;a Vidal Vidal"/>
<base href="/bibing/proyectos/" /><link rel="shortcut icon" href="./favicon.ico" />
<link rel="stylesheet" href="./publico/css/estructura.css" type="text/css" />
<link rel="stylesheet" href="./publico/css/bootstrap.css" type="text/css" media="screen"/>
<link rel="stylesheet" href="./publico/css/enlaces-capas.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/pestanas.css" type="text/css"  /> 
<link rel="stylesheet" href="./publico/css/formularios.css" type="text/css" />
<link rel="stylesheet" href="./publico/css/lightbox.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/autocompleter.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/resultados.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/milista.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/explorador.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/ultimos.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/contactar.css" type="text/css"  />
<!-- <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" /> -->
<script src="./publico/javascript/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="./publico/javascript/bootstrap.js" type="text/javascript"></script>

<script src="./publico/javascript/mootools-1.2.4-core.js" type="text/javascript"></script>
<script src="./publico/javascript/mootools-1-1.2.4.2-more.js" type="text/javascript"></script>
<script src="./publico/javascript/targetbl.js" type="text/javascript"></script>
<script src="./publico/javascript/mensajes.js" type="text/javascript"></script>
<script src="./publico/javascript/form.js" type="text/javascript"></script>
<script src="./publico/javascript/autocompleter/Observer.js" type="text/javascript"></script>
<script src="./publico/javascript/autocompleter/Autocompleter.js" type="text/javascript"></script>
<script src="./publico/javascript/autocompleter/Autocompleter.Request.js" type="text/javascript"></script>
<script src="./publico/javascript/domready.js" type="text/javascript"></script>

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-8T1TSNC1QY"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-8T1TSNC1QY');
</script>



<script type="text/javascript">
function seleccionar_todo(){
   for (i=0;i<document.formulario_marcados.elements.length;i++)
      if(document.formulario_marcados.elements[i].type == "checkbox")
         document.formulario_marcados.elements[i].checked=1
}
function deseleccionar_todo(){
   for (i=0;i<document.formulario_marcados.elements.length;i++)
      if(document.formulario_marcados.elements[i].type == "checkbox")
         document.formulario_marcados.elements[i].checked=0
} 
</script>
	</head>
    <body style="min-width: 960px; background-color: #e2e2e2; height: 100%">	
		<a name="arriba"></a>
<div>
<div id="header">
    <table id="Tabla_01" height="105" border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td>
            <img src="./publico/imagenes/cabecera/banner_new2_01.jpg" width="3" height="105" alt="">
        </td>
        <td>
            <img src="./publico/imagenes/cabecera/banner_new2_02.jpg" width="100" height="105" alt="">
        </td>
        <td width="100%" align="right"  style="min-width: 613px; background-repeat: no-repeat; background-position: top right; font-size: medium; font-weight: bold; color: white;">
            <table width="100%" height="105" border="0">
                <tr>
                    <td style=" vertical-align: top; width: 547px">
                        <!-- <a style="text-decoration: none" href="./"><img src="./publico/imagenes/cabecera/banner_new2_03.jpg"alt=""></a> -->
                        <a style="text-decoration: none" href="/bibing/proyectos/"><img src="./publico/imagenes/cabecera/banner_new2_03.jpg"alt=""></a>
                     </td>
                     <td  background="./publico/imagenes/cabecera/banner_new2_04.jpg" style="background-repeat: no-repeat; background-color: #c6d4e8;"><br><br><br>
                         &nbsp;
                        </td>
                    </tr>
             </table>
        </td>
    </tr>
    <tr style="border-top: 1px solid #ffffff;">
        <td colspan="3" id="menu_sup" style="font-size: small; text-align: right; background-color: #9c1f2f; vertical-align: bottom">
             
					<a href="/bibing/proyectos/" class="enlace " style=" color: #ffffff">Inicio&nbsp;&nbsp;|</a>
					<a href="/bibing/proyectos/acerca/" style=" color: #ffffff" class="enlace ">&nbsp;&nbsp;Acerca de&nbsp;&nbsp;|</a>
					
					<a href="/bibing/proyectos/contactar/" style=" color: #ffffff" class="enlace ">&nbsp;&nbsp;Contactar&nbsp;&nbsp;</a>
			 <!--       <a href="/bibing/proyectos/ayuda/" style=" color: #ffffff" class="enlace  ">&nbsp;&nbsp;Ayuda&nbsp;&nbsp;|</a> -->
					<!-- <form id="idioma" class=""  method="post" action="">
					<div class="inline" style="color: white">
					<input type="submit" class="tipo_letra " style=" color: #ffffff"name="idioma" value="Castellanossss" />&nbsp;&nbsp;
					</div>	
					</form> -->
			        </td>

    </tr>
    </table>
</div>
<br><br>
<div class="colmask rightmenu">
<div class="panel panel-default" style="margin:20px">
            <div class="panel-heading"><h4>IMPLANTACIÃ“N DE UNA COMUNICACIÃ“N CHAT CON DJANGO</h4><h5 style="color:grey"><span class="glyphicon glyphicon-user""></span> : <b>CUEVAS CEPEDA, MIGUEL ÃNGEL</b><br><span class="glyphicon glyphicon-book""></span>  :<b> Ingenier&iacute;a TelecomunicaciÃ³n</b></h5></div><div class="panel-body"><div class="contenido_proyecto"><div class="titulo2_explorador">Contenido del proyecto:</div><div class="ruta"><a href="use/abreproy/12051">Directorio ra&iacute;z</a>&nbsp;&nbsp;>&nbsp;&nbsp;<a href="use/abreproy/12051/direccion/django_chat%252F">django_chat</a>&nbsp;&nbsp;>&nbsp;&nbsp;<a href="use/abreproy/12051/direccion/django_chat%252Fchat%252F">chat</a>&nbsp;&nbsp;>&nbsp;&nbsp;<a href="use/abreproy/12051/direccion/django_chat%252Fchat%252Fviews.pyc%252F">views.pyc</a></div><div class="listing"></div></div></div></div>
</div>
</div>

        
	</body>
 
 
<!-- Inicio Google Analytics -->
<!--
	<script type="text/javascript">
		var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
		document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
	</script>
	
	<script type="text/javascript">
		try {
		var pageTracker = _gat._getTracker("UA-7789620-1");
		pageTracker._trackPageview();
	} 
		catch(err) {}
	</script>
-->
<!-- Fin Google Analytics -->

</html>

