Created
July 11, 2012 09:39
-
-
Save Veejay/3089311 to your computer and use it in GitHub Desktop.
Script VireMoi
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Script VireMoi | |
// @description Met des bouton pour virer ou garder, mais virer c'est mieux hein | |
// @namespace rien | |
// @include http://flickr.com/photos/* | |
// @include http://www.flickr.com/photos/* | |
// ==/UserScript== | |
(function() { | |
// On teste que la photo courante est bien dans le pool du groupe VireMoi | |
var re = new RegExp(/\/in\/pool-[viremoi|27179042@N00]/); | |
if (re.test(document.location.href)) { | |
// Où en est-on dans le vote (virelas et gardelas) ?? | |
var currentDeleteCount = 1; | |
var currentSaveCount = 1; | |
// Parcourir les tags, pour chaque tag qui matche /gardela/ et /virela/ on incrémente les variables pertinentes | |
var allTags = document.querySelectorAll('a[data-ywa-name="Tag(s)"]'); | |
for(var i = 0, l = allTags.length; i < l; i++){ | |
if(allTags[i].innerHTML.substr(0, 6) == "virela"){ | |
currentDeleteCount++; | |
} | |
if(allTags[i].innerHTML.substr(0, 7) == "gardela"){ | |
currentSaveCount++; | |
} | |
} | |
// Si personne n'a encore voté on enlève le 1 à la fin du vote (gardela1 et virela1 n'existent pas) | |
if (currentSaveCount==1) { | |
currentSaveCount=''; | |
} | |
if (currentDeleteCount==1) { | |
currentDeleteCount=''; | |
} | |
var req = new XMLHttpRequest(); | |
// Méthode fastidieuse, mais propre | |
var deleteButton = document.createElement("input"); | |
deleteButton.id = "vm-delete"; | |
deleteButton.type = "button"; | |
// Permet de bénéficier des styles définis par Flickr/Yahoo (coins arrondis, etc.) | |
deleteButton.className = "Butt"; | |
// Devrait être défini dans une feuille de style associée, mais on a pas vraiment de document ici | |
deleteButton.style.cssText = "background-color: #F00; font-weight: bold"; | |
deleteButton.value = "VIRER"; | |
deleteButton.addEventListener("click", function(){ | |
// Quelqu'un vient de cliquer sur le bouton pour rajouter un virela, on a besoin de : | |
// 1) Compléter le champ de saisie avec le vote | |
var commentBox = document.querySelector("textarea#message"); | |
commentBox.value += "\n\n- C'est trop moche virela" + currentDeleteCount + " (par le groupe <a href=\"http://www.flickr.com/groups/viremoi/\">VireMoi!</a>)"; | |
// 2) Rajouter le tag | |
var tagAdderForm = document.querySelector("form#tagadderform"); | |
tagAdderForm.querySelector("input#addtagbox").setAttribute("value", "virela" + currentDeleteCount); | |
req.open("POST", tagAdderForm.action); | |
req.send(new FormData(tagAdderForm)); | |
}); | |
// Très répétitif, mais on a aussi besoin d'un bouton pour garder... | |
var saveButton = document.createElement("input"); | |
saveButton.id = "vm-save"; | |
saveButton.type = "button"; | |
// Permet de bénéficier des styles définis par Flickr/Yahoo (coins arrondis, etc.) | |
saveButton.className = "Butt"; | |
// Devrait être défini dans une feuille de style associée, mais on a pas vraiment de document ici | |
saveButton.style.cssText = "font-weight: bold; margin-left: 8px"; | |
saveButton.value = "GARDER"; | |
saveButton.addEventListener("click", function(){ | |
// Quelqu'un vient de cliquer sur le bouton pour rajouter un gardela, on a besoin de : | |
// 1) Compléter le champ de saisie avec le vote | |
var commentBox = document.querySelector("textarea#message"); | |
commentBox.value += "\n\n- C'est trop beau gardela" + currentSaveCount + " (par le groupe <a href=\"http://www.flickr.com/groups/viremoi/\">VireMoi!</a>)"; | |
// 2) Rajouter le tag | |
var tagAdderForm = document.querySelector("form#tagadderform"); | |
tagAdderForm.querySelector("input#addtagbox").setAttribute("value", "gardela" + currentSaveCount); | |
req.open("POST", tagAdderForm.action); | |
req.send(new FormData(tagAdderForm)); | |
}); | |
var wrapper = document.createElement("div"); | |
// Minimum de CSS pour le layout | |
wrapper.style.cssText = "padding: 8px 0"; | |
wrapper.appendChild(deleteButton); | |
wrapper.appendChild(saveButton); | |
// On rajoute les boutons pour garder et virer | |
document.querySelector("form#comment-form").appendChild(wrapper); | |
} | |
else { | |
return; | |
} | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
TODO: