Hola a todos de nuevo, bien tras muchos posts en este foro, casi llegué al final de mi aplicación pero resulta que el problema ahora el problema es:
Yo tengo una extensión que ejecutaré en el navegador, un userscript, para Youtube. La funcción principal de esa extensión es:
Ocultar los videos de un feed mediante un boton y aquellos que ya fueron ocultados no mostrarlos en la próxima visita
-Añadir un boton al lado de cada video para ocultarlo del feed (hecho)
-Que se elimine del feed (hecho)
-Que añada ese video a una cookie (no hecho)
-Que compruebe los videos del array de la cookie (que añadimos anteriormente) y los oculte si efectivamente estan en el feed (esto lo tengo a medias) para que en la próxima visita los elimine.
Porque he intentado trabajar con cookies pero estoy muy verde, aunque debe ser fácil
El codigo:
Código:
$(".time-created").html('<img style="float:right; margin-top:0.16cm;" src="http://spain.angloinfo.com/wp-content/themes/ai-v2/images/close_icon.gif">'); //Incrusta el boton para cerrar el video.
$(".time-created").click(function(){ //cuando hace click en el boton
$(this).parent().parent().parent().parent().fadeOut('slow'); //oculta la caja del video que se encuentra 4 niveles mas arriba
var youtubeLink = $(this).parent().parent().children(".feed-item-visual").children(".feed-item-visual-thumb").children().attr("href"); //Consigo el link del video del correspondiente boton que cerré
//Aqui tambien debería ir la funccion para añadir la variable youtubeLink a una cookie (ej. videosEliminados)
});
/* estaría la variable videosEliminados que contiene el array y está en una cookie */
$( 'a.title' ).each(function(){ //recorro todos los a.title
var a = $(this);
var url = a.attr('href');
$.each($(videosEliminados), function(){//recorro todo el array (debería ser traido por la cookie)
if( url == this ) a.parent().parent().parent().parent().parent().remove(); //elimino aquellos videos que esten en el array de la cookie
});
});
Muy posiblemente, tenga errores en los conceptos, pido disculpas :)
Como obviamente no estais trabajando en el mismo ejemplo os pongo el codigo de Youtube en el que trabajo (variando URLs y titulos) logicamente.
Código HTML:
<li class="feed-item-container">
<div class="feed-item upload">
<div class="feed-item-content">
<h3 class="feed-item-title">
<span class="feed-item-author"> <a href="/user/GyMasESP?feature=g-u" class="yt-user-photo ">
<span class="video-thumb ux-thumb ux-thumb-profile-24"><span class="clip"><span class="profile-centering-wrap"><img src="http://i2.ytimg.com/i/u-DWpqqeOq1y83EHAMupeg/1.jpg?v=de2376" alt="GyMasESP" data-thumb="http://i2.ytimg.com/i/u-DWpqqeOq1y83EHAMupeg/1.jpg?v=de2376" data-group-key="thumb-group-0"></span></span></span>
</a>
</span>
<span class="feed-item-owner"> <a href="/user/GyMasESP?feature=g-u" class="yt-user-name " dir="ltr">
GyMasESP
</a>
</span>
ha subido vídeos.
<span class="time-created">hace 24 minutos</span>
</h3>
<div class="feed-item-visual">
<div class="feed-item-visual-thumb">
<a class="ux-thumb-wrap contains-addto" href="/watch?v=P018gx3UYJ8&feature=g-u">
<span class="video-thumb ux-thumb ux-thumb-288 "><span class="clip"><img src="//i1.ytimg.com/vi/P018gx3UYJ8/hqdefault.jpg" alt="Miniatura
" data-thumb="//i1.ytimg.com/vi/P018gx3UYJ8/hqdefault.jpg" data-group-key="thumb-group-0"></span></span>
<span class="video-time">12:51</span>
<button type="button" class="addto-button short video-actions yt-uix-button yt-uix-button-short" onclick=";return false;" data-button-menu-action="yt.www.lists.addto.toggleMenu" data-button-menu-id="shared-addto-menu" data-video-ids="P018gx3UYJ8" data-feature="thumbnail" role="button"><img class="yt-uix-button-icon yt-uix-button-icon-addto" src="//s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt=""><span class="yt-uix-button-content"><span class="addto-label">Añadir a</span> </span><img class="yt-uix-button-arrow" src="//s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt=""></button>
</a>
</div>
<div class="feed-item-visual-content">
<div class="feed-item-visual-description">
<h4><a class="title" href="/watch?v=P018gx3UYJ8&feature=g-u" dir="ltr">Jurassic Park Capitulo 1 Walkthrough en Español!!!</a></h4>
<div class="description" dir="ltr">
<p>Con este capitulo, comienza la serie de Jurassic park! Iré subiendo videos del modo historia poquito a poco. Perdon si se ve borroso pero el Pro pr...</p>
</div>
</div>
<p class="metadata">
<a href="/user/GyMasESP?feature=g-u" class="yt-user-name " dir="ltr">
GyMasESP
</a>
<span class="view-count">
Visto 1 veces
</span>
</p>
</div>
</div>
</div>
</div>
</li>
Y otro video:
Código HTML:
<li class="feed-item-container">
<div class="feed-item upload">
<div class="feed-item-content">
<h3 class="feed-item-title">
<span class="feed-item-author"> <a href="/user/xAlexBY11?feature=g-u" class="yt-user-photo ">
<span class="video-thumb ux-thumb ux-thumb-profile-24"><span class="clip"><span class="profile-centering-wrap"><img src="http://i1.ytimg.com/i/h715KhLM7vbOwozSXLWI_w/1.jpg?v=bf7416" alt="xAlexBY11" data-thumb="http://i1.ytimg.com/i/h715KhLM7vbOwozSXLWI_w/1.jpg?v=bf7416" data-group-key="thumb-group-0"></span></span></span>
</a>
</span>
<span class="feed-item-owner"> <a href="/user/xAlexBY11?feature=g-u" class="yt-user-name " dir="ltr">
xAlexBY11
</a>
</span>
ha subido vídeos.
<span class="time-created">hace 28 minutos</span>
</h3>
<div class="feed-item-visual">
<div class="feed-item-visual-thumb">
<a class="ux-thumb-wrap contains-addto" href="/watch?v=R_eSAbIjLOg&feature=g-u">
<span class="video-thumb ux-thumb ux-thumb-288 "><span class="clip"><img src="//i3.ytimg.com/vi/R_eSAbIjLOg/hqdefault.jpg" alt="Miniatura
" data-thumb="//i3.ytimg.com/vi/R_eSAbIjLOg/hqdefault.jpg" data-group-key="thumb-group-0"></span></span>
<span class="video-time">13:47</span>
<button type="button" class="addto-button short video-actions yt-uix-button yt-uix-button-short" onclick=";return false;" data-button-menu-action="yt.www.lists.addto.toggleMenu" data-button-menu-id="shared-addto-menu" data-video-ids="R_eSAbIjLOg" data-feature="thumbnail" role="button"><img class="yt-uix-button-icon yt-uix-button-icon-addto" src="//s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt=""><span class="yt-uix-button-content"><span class="addto-label">Añadir a</span> </span><img class="yt-uix-button-arrow" src="//s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt=""></button>
</a>
</div>
<div class="feed-item-visual-content">
<div class="feed-item-visual-description">
<h4><a class="title" href="/watch?v=R_eSAbIjLOg&feature=g-u" dir="ltr">Live Battlefield 3 | Sarinha,Willyrex & aLexBY11 | Asalto</a></h4>
<div class="description" dir="ltr">
<p>Aqui un video live copn sara y willy espero que os guste..he aqui el punto de vista de willy:</p>
<p><a href="http://www.youtube.com/watch?v=cjYG5Vn219A&feature=feedf" target="_blank" title="http://www.youtube.com/watch?v=cjYG5Vn219A&feature=feedf" rel="nofollow" dir="ltr" class="yt-uix-redirect-link">http://www.youtube.com/watc...</a></p>
</div>
</div>
<p class="metadata">
<a href="/user/xAlexBY11?feature=g-u" class="yt-user-name " dir="ltr">
xAlexBY11
</a>
<span class="view-count">
Visto 310 veces
</span>
</p>
</div>
</div>
</div>
</div>
</li>
Tengo el plugin jQuery Cookie (
http://lineadecodigo.com/js/jquery/jquery.cookie.js).
Intenté utilizar esta funcion para guardar y recuperar arrays en una cookie de manera sencilla pero no me funcionó:
Código:
//This is not production quality, its just demo code.
var cookieList = function(cookieName) {
//When the cookie is saved the items will be a comma seperated string
//So we will split the cookie by comma to get the original array
var cookie = $.cookie(cookieName);
//Load the items or a new array if null.
var items = cookie ? cookie.split(/,/) : new Array();
//Return a object that we can use to access the array.
//while hiding direct access to the declared items array
//this is called closures see http://www.jibbering.com/faq/faq_notes/closures.html
return {
"add": function(val) {
//Add to the items.
items.push(val);
//Save the items to a cookie.
//EDIT: Modified from linked answer by Nick see
// http://stackoverflow.com/questions/3387251/how-to-store-array-in-jquery-cookie
$.cookie(cookieName, items.join(','));
},
"clear": function() {
items = null;
//clear the cookie.
$.cookie(cookieName, null);
},
"items": function() {
//Get all the items.
return items;
}
}
}
(
http://stackoverflow.com/questions/1...-jquery-cookie)