Aller au contenu

Change
Bienvenue sur GeekZone
Inscrivez-vous sur GeekZone pour profiter des fonctions avancées du forum, proposer des news, participer aux conversations, ouvrir votre galerie, profiter de la messagerie interne et venir tester nos modérateurs avec du bon troll... Attention, ils ont la gâchette facile. C’est aussi pour ça que GeekZone est le meilleur site de passionnés depuis 2002 ! Si vous avez déjà un compte, connectez-vous - sinon, il est temps d'en créer un.

Script Greasemonkey pour ouvrir tout les messages non lus.

- - - - -

  • Veuillez vous connecter pour répondre
25 réponses à ce sujet

#1
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
Hophop la zone.

Suite a ce thread : http://www.geekzone....showtopic=39462

Je fais partager un ptit script greasemonkey que j'ai fait cet aprem. Il consiste simplement à ajouter un lien sur la page "Voir les nouveaux messages" qui fait simplement "Ouvrir tous les sujets non lus, les marquer comme lus, et retourner a l'index." Il s'ajoute a coté de celui qui fait juste "Marquer tous les sujets comme lus et retourner à l'index.", et en un clic, vous ouvrira tout les messages que vous n'avez pas lu sur la zone dans de nouveaux onglets (normalement, en tout cas, avec tabmixplus bien configuré, ca le fait).

Image IPB

Donc, comme j'ai jamais fait de javascript ni de html EVER, ca doit probablement pas etre optimal comme code, ou encore un peu buggé (notament si vous reduisez un peu la fenetre et que les liens ne peuvent pas tous entrer sur la largeur, le texte de droite et mis sur 2 lignes, alors que mon lien est sur une ligne, c'est un peu etrange, et si un javascript roxxor se sent de me dire pourquoi, il gagne une biere sur lille). Pareil si vous vous sentez de l'ameliorer. Pareil si vous avez plusieurs pages de sujets non lus, il faut pas cliquer dessus, sinon, meme les sujets des pages 2, 3, etc seront marqué commes lus.

// ==UserScript==
// @name		   Better Geekzone
// @description	Some Geekzone enhancements
// @namespace	  [url="http://jbriguet.com/"]http://jbriguet.com/[/url]
// @include		[url="http://www.geekzone.fr/ipb/index.php?*act=Search&nav=lv&CODE=show*search_in=topics&result_type=topics&lastdate=0"]http://www.geekzone.fr/ipb/index.php?*act=...&lastdate=0[/url]

// ==/UserScript==
// version 0.1
//----------------------
// 0.1 First Release / Open All Unread Messages.

function betterGeekzone()
{
	// Get all the link on the page
	var list = document.getElementsByTagName('a');
	
	for(var i = 0; i < list.length; i++)
	{
		if ( list[i].hasAttribute('href') )
		{ 
			if ( list[i].getAttribute('href').match(".*view=getnewpost*") )
			{
				// open those containing a getnewpost in their href
				window.open(list[i].getAttribute('href'))
			}
		}
	}

	// mark all as read, and send to index
	window.location = "http://www.geekzone.fr/ipb/index.php?act=Login&CODE=05";
};

function insertLink()
{
	var divs = document.getElementsByTagName("div");
	var maintitles = new Array();
	
	// locate the good line to insert javascript link into
	for(var j = 0; j < divs.length; j++)
	{
		if ( divs[j].hasAttribute('class') && divs[j].className == 'maintitle' )
		{
			maintitles.push(divs[j]);
		}
	}
	
	if (maintitles.length == 2)
	{
		// locate the div to insert link before
		var elem = maintitles[1].getElementsByTagName('div');
		
		if (elem.length == 2)
		{
			// generate the script tag
			var scr = document.createElement('script');
			scr.innerHTML = '\n' + betterGeekzone.toString() + '\n';
	
			// generate the link element
			var newElement = document.createElement('div');
			newElement.innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="java script:betterGeekzone()">Ouvrir tous les sujets non lus, les marquer comme lus, et retourner a l\'index.</a>';
			newElement.setAttribute('style', 'float: right');
			
			//elem[1].removeAttribute('align');
			//elem[1].setAttribute('style', 'float: right');
			
			// insert them just before the original 'Mark all as read' link
			// insert link will appears after, but, hey, who cares :)
			maintitles[1].insertBefore(scr, elem[1]);
			maintitles[1].insertBefore(newElement, elem[1]);
			
			//alert(maintitles[1].innerHTML);
		}
	}
};

// insert the link into the webpage.
insertLink();


Voila treve de bavardages, c'est ici que ca se prend : http://www.jbriguet....eekzone.user.js

Et le greasemonkeyobligatoire pour que ca marche. (Donc, c'est Firefox seulement :))

Rapports de bugs bienvenus si vous en avez, critiques, bisous, tout ca, en dessous.

Modifié par AnA-l, 20 September 2008 - 23:30.


#2
Moe

Moe

    Râleur

  • Membre
  • PipPipPipPipPipPip
  • 3124 messages
  • Lieu:France
Pour installer le script, il faut cliquer dessus.

À mon avis, tu pourrais supprimer la redirection pour marquer tous les sujets comme lus, ça risque de poser problème si il y a plusieurs pages de threads et ça raccourcirait le texte, je suis en 1024 et je crois que ça ne passera pas avec le message actuel (pas de nouveau message donc je ne vois pas encore le résultat).

#3
pr7

pr7

    /giːk/

  • Membre
  • PipPipPipPipPipPipPip
  • 4929 messages
  • Lieu:Niort, France
J'aime beaucoup l'idée.
Je vais tester ça sur FireFox.
Image IPB Image IPB
"When you die, you'll have to leave them behind. You should keep that in mind.
   When you keep that in mind, you'll find a love as big as the sky."

#4
Lexes

Lexes

    Padawan Geek

  • Membre
  • PipPip
  • 89 messages
  • Lieu:Loin de toute civilisation
Bisous en dessous donc.

Accessoirement, je teste le script et critiquerai plus tard, mais l'idée est à mon humble avis pas trop mauvaise.

#5
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
Donc, geekzone updated, script greasemonkey updated \o/

// ==UserScript==
// @name   		Better Geekzone
// @description	Some Geekzone enhancements
// @namespace  	http://jbriguet.com/
// @include		http://www.geekzone.fr/ipb/index.php?app=core&module=search&do=new_posts&search_app=forums

// ==/UserScript==
// version 0.2
//----------------------
// 0.2 Updated to support the new geekzone \o/
// 0.1 First Release / Open All Unread Messages.

function betterGeekzone(lnk)
{
	// Get all the link on the page
	var list = document.getElementsByTagName('a');
	
	for(var i = 0; i < list.length; i++)
	{
		if ( list[i].hasAttribute('href') )
		{ 
			if ( list[i].getAttribute('href').match(".*page__view__getnewpost$") )
			{
				// open those containing a getnewpost in their href
				window.open(list[i].getAttribute('href'))
				//alert(list[i].getAttribute('href'));
			}
		}
	}

	// mark all as read, and send to index
	window.location = lnk;
	//alert(lnk);
};

function insertLink()
{
	var divs = document.getElementsByTagName("div");
	
	// locate the good line to insert javascript link into
	for(var j = 0; j < divs.length; j++)
	{
		if ( divs[j].hasAttribute('class') && divs[j].className == 'tab_filters' )
		{
			// locate the div to insert link before
			var elems = divs[j].getElementsByTagName('ul');
			
			for(var k = 0; k < elems.length; k++)
			{
				if ( elems[k].hasAttribute('class') && elems[k].className == 'right padded' )
				{
					//alert(elems[k].innerHTML);
					
					var lnks = elems[k].getElementsByTagName('a');
					
					//alert(lnks.length);
					
					var markAsReadElement;
					
					for( var y = 0; y < lnks.length; y++)
					{
						if (lnks[y].hasAttribute('href') && lnks[y].getAttribute('href').match(".*markasread"))
						{
							markAsReadElement = lnks[y];
							break;
							
							//alert(markAsReadElement.getAttribute('href'));
						}
					}
					
					// generate the script tag
					var scr = document.createElement('script');
					scr.innerHTML = '\n' + betterGeekzone.toString() + '\n';
			
					// some space
					var spaceElement = document.createTextNode(' ')
					
					// generate the link element
					var newElement = document.createElement('a');
					newElement.setAttribute('title', 'AnA-l Magic Button');
					newElement.setAttribute('href', 'javascript:betterGeekzone(\'' + markAsReadElement.getAttribute('href') + '\')');
					newElement.innerHTML = markAsReadElement.innerHTML;
					newElement.setAttribute('style', 'color: red; font-weight:bold;');
					
					//alert(newElement.innerHTML);
					
					//newElement.removeAttribute('align');
					//newElement.setAttribute('style', 'float: right');
					
					// insert them just before the original 'Mark all as read' link
					elems[k].insertBefore(scr,  markAsReadElement);
					elems[k].insertBefore(newElement, markAsReadElement);
					elems[k].insertBefore(spaceElement, markAsReadElement);
				}
			}
		}
	}
};

// insert the link into the webpage.
insertLink();


Ca donne ca : (le lien Mark All As Read en rouge)

Image IPB

et c'est dispo ici : http://www.jbriguet....ekzone2.user.js

Modifié par AnA-l, 09 June 2010 - 14:26.


#6
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
Hop la, donc MAJ du script pour la nouvelle skin du forum, avec en nouveauté, la fonctionnalité d'ouvrir dans un nouvel onglet tout les messages non lus, sans retourner a l'index et tout marquer comme lu (par contre, ceux que vous venez d'ouvrir seront marqués comme lus par le forum automatiquement).

Le bouton rouge fait donc comme avant (Ouvres tout les messages non lus et retourne a l'index)
Le bouton vert ouvre tout les messages non lus, c'est tout.
Et le bouton bleu envoie a l'index en marquand tout les messages lus.

Voila, c'est dispo ici : http://wwW.jbriguet....ekzone3.user.js

Image IPB

#7
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
Nouvelle version du site, nouvelle version du script.
Toujours le meme principe, dispo ici : http://www.jbriguet....ekzone4.user.js

Image IPB

Image IPB

#8
Caféine

Caféine

    I'm watching you

  • Admin
  • 4786 messages
  • Lieu:Bloody 92
Very good ! Thx m'sieur :)

#9
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
Je sais meme pas si ya des gens a qui ca sert, mais bon, ca fait du bien de faire des trucs differents et de les partager :)

#10
Caféine

Caféine

    I'm watching you

  • Admin
  • 4786 messages
  • Lieu:Bloody 92
Et c'est tout le but de la zone. Donc bon. :)  <3

#11
Guybrush

Guybrush

    Senseï Geek

  • Membre
  • PipPipPipPipPip
  • 1620 messages
  • Lieu:Le Vésinet
Manque juste à ajouter "Mark all as read" sur la même ligne et ce serait parfait (quoi? oui, la flemme de descendre en bas de page et cliquer deux fois oui DEUX fois pour le faire) :P
Image IPB

#12
Twin

Twin

    Yoda Geek

  • Membre
  • PipPipPipPipPipPip
  • 2384 messages
  • Lieu:Ile de France
Pareil que Threepwod, le lien en haut (sans ces deux épuisants clics), ce serait parfait !

(le gars vient gentillement partager son script et on commence à exiger des trucs en plus, le monde est injuste (ah mais c'est AnA-l, il l'a bien mérité alors :P))

#13
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
Ha mais grave, je vous rajoute ca, l'url sera a jour dans 5min :P

http://www.jbriguet....ekzone4.user.js

Voila, l'url a pas changé et ca devrait vous plaire ;)

Modifié par AnA-l, 17 September 2011 - 20:32.


#14
Guybrush

Guybrush

    Senseï Geek

  • Membre
  • PipPipPipPipPip
  • 1620 messages
  • Lieu:Le Vésinet
Message hautement constructif :

\o/

...

Modifié par Guybrush, 17 September 2011 - 20:38.

Image IPB

#15
Lemm

Lemm

    Lord Jedi Geek

  • Membre
  • PipPipPipPip
  • 722 messages
Super! Merci :luv:

#16
phili_b

phili_b

    Yoda Geek

  • Membre
  • PipPipPipPipPipPip
  • 2857 messages
  • Lieu:Lyon
Hop ça y est ! je me suis décidé à l'installer. Je connaissais Stylish mais pas GreaseMonkey. Bon ben d'abord merci de nous avoir fait partagé ton script. :)

Quelques remarques de noob:
J'ai un peu tatonné pour l'installer. J'ai fait "ouvrir le script" en pointant sur ton url, qui me l'a ouvert dans App/data/local/temp et j'ai fait installer quand le popup de GreaseMonkey s'est affiché. Y'a-t-il une autre manière de l'installer ? Si j'étais passé par Nouveau Script Utilisateur je n'aurais pas su quoi mettre dans Nom (bon là...), Espace de Nom, Description, Inclus.

Quelques remarques d'utilisateur:
Je n'ai pas les icônes redéfinis comme . Mais sans doute est-ce parce que Cafeine a passé un nouveau style récemment puisque le message date d'août.

Quelques remarques d'informaticien:
A côté de tes numéros de versions, anciennes et présentes, tu devrais mettre la date car pour quelqu'un comme moi qui débarque c'est intéressant de savoir si on a la dernière version, et l'historique des dates de modification.
C'est du javascript complétement standard ? Y'a rien de spécifique à GreaseMonkey

Voili voilà.

Modifié par phili_b, 10 November 2011 - 09:35.

Image IPB

#17
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
Normalement, dans FF, tu as juste a cliquer sur le lien, et greasemonkey prend le relai, comme quand tu installes un addon.

Pour le reste, non, le screen que tu link est une ancienne version de GZ. (Je ne redefinissais meme pas les icones, c'est juste que le screen indique ce qui est virtuellement cliqué).

Enfin, pour les numeros de version, je mettrais la date la prochaine fois =)
(Et donc oui, a priori, c'est du js de base, j'y connais queud donc c'est deja miraculeux que ca marche, et j'ai aucune idée de si il y a des trucs spécifiques a GM :D)

#18
Twin

Twin

    Yoda Geek

  • Membre
  • PipPipPipPipPipPip
  • 2384 messages
  • Lieu:Ile de France
En tous cas ça a l'air de bien fonctionner avec TamperMonkey sous Chrome.

Modifié par Twin, 04 December 2011 - 14:04.


#19
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
Normalement, il est meme pas necessaire d'avoir TamperMonkey avec chrome, c'est supporté nativement les userscripts.

#20
Twin

Twin

    Yoda Geek

  • Membre
  • PipPipPipPipPipPip
  • 2384 messages
  • Lieu:Ile de France
Oui je viens de m'en rendre compte. Exit TamperMonkey.

(et peut-être exit Chrome aussi, je le teste depuis 2 jours, mais il n'est pas dit qu'il survive au WE)

#21
Moe

Moe

    Râleur

  • Membre
  • PipPipPipPipPipPip
  • 3124 messages
  • Lieu:France

Voir le messageAnA-l, le 20 September 2008 - 23:17, dit :

Script Greasemonkey pour ouvrir tout les messages non lus.
Ça pique. :ninja:

#22
Twin

Twin

    Yoda Geek

  • Membre
  • PipPipPipPipPipPip
  • 2384 messages
  • Lieu:Ile de France
Pas faux, mais ça fait trois ans hein. ;)

#23
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
Ouais, ya prescription.

#24
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
ET donc, comme yavait encore un ptit truc qui m'enervait, a savoir un micro fix de la CSS pour les recentes modifs de skin, j'en ai profité pour ajouter un petit compteur de frags messages nons lus directement dans le titre, comme ca, c'est encore plus efficace.

Image IPB

#25
chmop

chmop

    Jedi Geek

  • Membre
  • PipPipPip
  • 406 messages
J'ai tenté, pour voir. Ça marche bien sous Geekzone avec Chrome... par contre ça m'a cassé Facebook :rolleyes: (plus aucun contenu chargé dynamiquement disponible... (ou limite même plus de JS))
J'ai pas cherché pourquoi, mais j'ai pris le temps de vérifier que ça vient bien du script : je le désactive ça remarche, je le réactive ça me refait pareil.

#26
AnA-l

AnA-l

    Monde de merde !

  • Membre
  • PipPipPipPipPipPipPip
  • 7345 messages
  • Lieu:Rbx
Wut ? Ya pourtant bien un filtre pour que ca s'execute que sur geekzone. Je testerais ca ce soir, si t'as le temps de creuser un peu, je suis pas contre plus d'infos :)




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)