Skip to content

Instantly share code, notes, and snippets.

@gialloporpora
Created February 13, 2009 11:28
Show Gist options
  • Save gialloporpora/63860 to your computer and use it in GitHub Desktop.
Save gialloporpora/63860 to your computer and use it in GitHub Desktop.
MozillaItalia Ubiquity feed
/* I comandi di questo feed sono stati pensati per la navigazione sul forum di MozillaItalia */
/* il codice è stato scritto in modo da poterlo facilmente modificare per altri forum powered by SMF */
/* Il TODO lo metto solo per scrivere qualcosa, non è detto si trasformi in DONE */
/* TODO */
/* permettere l'inserimento di sezioni multiple in cui cercare */
/* Creare dei comandi per le unreadreplies e gli unread con anteprima, cosa che forse è troppo complicata per me :-P */
/* creare comando per salvare i topic e proporli come suggerimento */
var smf_mi_msg={
"gohome" : "Vai alla homepage del forum di MozillaItalia",
"gotoboard" : "Vai alla sezione <b>${board}</b> del forum di MozillaItalia",
"show" : "Visualizza <b>${section}</b",
"gotopic" : "Vai a <b>${topic}</b>"
};
var smf_mi_forum_url="http://forum.mozillaitali a.org/";
var smf_mi_board_dict={"Seamonkey":1,"Firefox":2,"Thunderbird":3,"Annunci":4,"Pianeta Mozilla":5,"Altro":7,"Traduzioni":8,"FAQ":9,"Camino":10,"Sunbird e Lightning":11,"Componenti aggiuntivi":12,"Amministrazione":13,"Kompozer":15,"Siti non funzionanti":16,"Mozilla portabile":17,"Isolamento":18,"Cestino":20,"SUMO":25};
var smf_mi_action_dict={"Profilo":"profile","Agenda":"calendar","login":"login","Risposte non lette":"unreadreplies","Nuove discussioni":"unread","easter egg":"about:unknown","Messaggi privati":"pm","Feed RSS":".xml&limit=100;type=rss"};
var smf_mi_topic_dict={"Ultime novità dal Web sul mondo Mozilla":30487,"Software OpenSource e software gratuito":27387,"UserChrome.css How-To" : 17028,"Errori nella traduzione di Firefox 3" : 33957,"Errori nella traduzione di Thunderbird 3.0 pre" : 35309, "La mamma degli imbecilli è veramente sempre incinta" : 27948, "Uniformità nelle risposte" : 23097, "Topic da chiudere? Discutiamone qui." : 21402}
var smf_mi_action_array=new Array();
for (i in smf_mi_action_dict) smf_mi_action_array.push(i);
var smf_mi_topic_array=new Array();
for (i in smf_mi_topic_dict) smf_mi_topic_array.push(i);
var smf_mi_board_array=new Array();
for (i in smf_mi_board_dict) smf_mi_board_array.push(i);
var noun_type_smf_mi_board= new CmdUtils.NounType( "noun_type_smf_mi_board",smf_mi_board_array);
var smf_mi_forum_array=smf_mi_board_array.concat(smf_mi_action_array,smf_mi_topic_array);
var noun_type_smf_mi_forum= new CmdUtils.NounType( "noun_type_smf_mi_forum",smf_mi_forum_array);
CmdUtils.CreateCommand({
name: "mozilla-italia",
synonyms: ["mi"],
icon: "http://forum.mozillaitalia.org/img/mozilla-16.png",
homepage: "http://www.gialloporpora.netsons.org",
description: "Questo comando permette di navigare in modo veloce fra le board del forum di MozillaItalia, accedere all'agenda, accedere al proprio profilo e visualizzare le risposte e le discussioni non lette",
help: "Questo comando permette di navigare in modo veloce fra le board del forum di <b>MozillaItalia</b>, accedere all'agenda, accedere al proprio profilo e visualizzare le risposte e le discussioni non lette",
author: { name: "Sandro Della Giustina", email: "sandrodll@yahoo.it"},
license: "MPL,GPL",
takes: {input: noun_type_smf_mi_forum},
_pm: function(pblock) {
CmdUtils.previewAjax( pblock, {
url: "http://forum.mozillaitalia.org/",
success: function(xml){
regex=/action=pm">(\d+).*(\d+)/;
a=xml.match(regex);
if (a){
pblock.innerHTML="Hai <b>"+a[1]+ "</b>, <b>"+a[2]+"</b> sono nuovi<br><br>Premi invio per leggere messaggi";
}
else pblock.innerHTML="Errore: Eseguire il login per poter accedere ai messaggi privati";
},
error: function(error){
pblock.innerHTML="Server unavalaible";
},
});
},
preview: function(pblock, input) {
if (input.text=="") html=smf_mi_msg["gohome"];
else if (input.text in smf_mi_board_dict) html=CmdUtils.renderTemplate(smf_mi_msg["gotoboard"], {"board" : input.text});
else if (input.text in smf_mi_action_dict) {
html=CmdUtils.renderTemplate(smf_mi_msg["show"], {"section" : input.text});
if (input.text=="Messaggi privati") this._pm(pblock);
}
else if (input.text in smf_mi_topic_dict) html=CmdUtils.renderTemplate(smf_mi_msg["gotopic"],{"topic" : input.text});
pblock.innerHTML = CmdUtils.renderTemplate(html);
},
execute: function( input ){
url=smf_mi_forum_url;
if (input.text in smf_mi_board_dict) url+="index.php?board="+smf_mi_board_dict[input.text];
else if (input.text in smf_mi_action_dict) url+="index.php?action="+smf_mi_action_dict[input.text];
else if (input.text in smf_mi_topic_dict) url=smf_mi_forum_url+"index.php?topic="+smf_mi_topic_dict[input.text]+".new;topicseen#new";
/* Utils.openUrlInBrowser(url); */
CmdUtils.getDocument().location.replace(url);
}
});
CmdUtils.CreateCommand({
name: "modillaitalia-cerca",
synonyms: ["mi-cerca"],
icon: "http://forum.mozillaitalia.org/img/mozilla-16.png",
homepage: "http://www.gialloporpora.netsons.org",
description: "Questo comando permette di cercare utilizzando la ricerca avanzata del forum di MozillaItalia",
help: "È possibile usare due modificatori: «in» e «di» per specificare la board in cui cercare e il nome dell'utente per cercare solo nei messaggi di quell'utente",
author: { name: "Sandro Della Giustina", email: "sandrodll@yahoo.it"},
license: "MPL,GPL",
takes:{input: noun_arb_text},
modifiers:{in:noun_type_smf_mi_board,di:noun_arb_text},
preview: function(pblock, input, modifiers ) {
html="Cerca nel forum di MozillaItalia";
pblock.innerHTML = CmdUtils.renderTemplate(html);
},
execute: function( input, modifiers ){
url=smf_mi_forum_url+"index.php?action=search2&advanced=1&submit=Ricerca&minage=0&maxage=9999&sort=relevance|desc";
url+="&search="+input.text.replace(/ /g,"+");
if (modifiers.di.text) url+="&userspec="+modifiers.di.text;
else url+="&userspec=*";
if (modifiers.in.text) url+="&brd["+smf_mi_board_dict[modifiers.in.text]+"]="+smf_mi_board_dict[modifiers.in.text];
/* Per aprire i link in nuove schede anzichè in quella corrente, r decommenta questa riga */
Utils.openUrlInBrowser(url);
}
});
CmdUtils.CreateCommand({
name: "modillaitalia-apri-diccussione",
synonyms: ["mi-apri-discussione"],
icon: "http://forum.mozillaitalia.org/img/mozilla-16.png",
homepage: "http://www.gialloporpora.netsons.org",
description: "Apre una nuova discussione sul forum di MozillaItalia nella board prescelta",
help: "Apre una nuova discussione sul forum di MozillaItalia nella board prescelta",
author: { name: "Sandro Della Giustina", email: "sandrodll@yahoo.it"},
license: "MPL,GPL",
takes: {input : noun_type_smf_mi_board},
preview: function( pblock, input){
html="Apri una nuova discussione in <b>"+input.text+"</b";
pblock.innerHTML = CmdUtils.renderTemplate(html);
},
execute: function( input ){
url=smf_mi_forum_url+"index.php?action=post";
url+="&board="+smf_mi_board_dict[input.text];
Utils.openUrlInBrowser(url);
}
});
/*Temporaneo, serve solo come aiuto per aggiornare i topic proposti */
/* in realtà bisognerebbe trovare un modo per salvare le info su un file locale o da qualche parte nell'about:config, o sperare si possa usare (non si sa quando) Weave */
CmdUtils.CreateCommand({
name: "mozillaitalia-ottieni-topic-id",
synonyms: ["mi-ottieni-topic-id"],
execute: function(){
var doc = CmdUtils.getDocument();
url=doc.location.href;
code='"'+doc.title+'" : '+url.match(/topic=(\d+)/)[1]; /* senza tanti fastidi visto che è temporanea */
var style='"background-color: #272727; color:#fff;padding: 5px 7px;-moz-border-radius: 10px;width: 200px; height: 120px;font-size: 12px;font-family: Consolas, "Lucida Console", Courier, monospace;"';
CmdUtils.setSelection('<textarea style='+style+'>'+code+'</textarea>');
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment