Posts tagged plugin

sshot_81

EPrints Plugin – Users Mass Mailer

0

Nella gestione di un repository istituzionale ad accesso aperto come OASI, basato su ePrints, vi può essere la necessità di inviare una mail a tutti gli utenti (o ad una particolare categoria) per notificare eventuali manutenzioni, upgrade, disservizi o novità importanti.

Nativamente ePrints non consente di effettuare un Mass Mailing così un tale Greg Brian ha creato uno script che permette di inviare, da consolle, notifiche globali agli utenti.

Indubbiamente interessante ed utile, anche se poter disporre di tale funzionalità dall’interfaccia di gestione del repository è infinitamente più comodo. Così, prendendo spunto dal suo lavoro, modus operandi tipico del mondo open source, ho lavorato ad un Plugin che permettesse di inviare mail a tutti gli utenti o solamente ad una determinata categoria di essi.

Il risultato è un plugin estremamente semplice da usare, come si può vedere dallo screenshot.

Se siete interessati, potete scaricare le istruzioni ed il codice da questo link: http://files.eprints.org/593/

ESSPER

EPrints: ESSPER Import Plugins

0

Come sapete sono alle prese con EPrints in merito ad un importante progetto dell’Università di Siena. Attualmente sto dedicando tanto tempo allo sviluppo di nuovi plugin e sistemi per importare metadati relativi alle pubblicazioni che i Ns docenti e ricercatori hanno in giro per il mondo di Internet, tra cui la banca dati dell’Associazione ESSPER. Come fare per importare i metadati presenti su questa banca dati ? Beh, non c’è il modo di esportare, come per altre, in formati standard quali BibTeX o MARC ma, solamente per chi è iscritto, si può esportare in RefWorks. Insomma, EPrintsamente parlando, un disastro :-D .

Nella pagina però noto una certa regolarità nella presentazione dei metadati, oltre alla possibilità di recuperare ciascun record direttamente dal parametro GET codice dell’URL, così decido di dare una sbirciata al sorgente html. Noto che non vi sono particolari difficoltà nella realizzazione di un semplice parser, basato sulle Regular Expressions, per catturare i metadati che ci interessano. Così decido di fare un tentativo e scrivo qualche riga di codice in Perl:

my $browser = LWP::UserAgent->new;
my $url = "http://www.biblio.liuc.it/scripts/essper/ricerca.asp?tipo=scheda&codice=150406";
my $response = $browser->get( $url );
my $plain_text = HTML::FormatText->new(leftmargin => 0, rightmargin => 256)->format(parse_html($response->content));
my %fields = ();
my @vars = split(/\n/,$plain_text);
foreach (@vars) {
    my $line = $_;
    if($line =~ m/^\s*(Autori|Titolo|Periodico|Anno|Volume|Fascicolo|Pagina iniziale|Pagina finale|SICI):\s*(.*)\s*$/) {
        print "$1: $2\n";
        $fields{$1} = $2;
   }
}

Carramba…funziona ! Praticamente nessun magheggio strano: faccio un fetch dell’html della pagina, elimino tutti i tags ed il codice html (HTML::FormatText) ed eseguo una operazione di matching riga per riga usando le perl Re salvando i metadati e relativo valore dentro una lista hash.

Riesco pertanto ad estrarre i seguenti metadati:

  • Titolo
  • Autori
  • Rivista
  • Anno
  • Pagina iniziale, pagina finale, volume, serie, fascicolo
  • ISSN (direttamente dal SICI)

Interessante approfondire quest’ultimo punto sull’estrazione dell’ISSN. Il SICI contiene sia ISSN della rivista che altri dati univoci dell’articolo, organizzati in maniera univoca. Attraverso una espressione regolare riesco ad estrapolare l’ISSN:

my $sici = $fields{SICI};
if($sici =~ m/^(\d+)-(\d+).*\s*$/) {
  print "ISSN: $1-$2\n";
}

A questo punto sviluppare un plugin di importazione per EPrints è un gioco da ragazzi: devo preoccparmi esclusivamente di fare l’override delle classi new, input_fh e convert_input, aggiungendo alcuni controlli per verificare che l’utente inserisca o l’URL completo (da cui poi estrapolo il numero del documento) o direttamente il numero:

if ($ids =~ /^http:.*/) {
  my $query = CGI->new("$ids");
  $ids = $query->param('codice');
}

if (!($ids =~ /^\d+/)) {
  print "Invalid ID: $ids\n";
}

ed alla fine ecco a voi il Plugin di Import EssPer.pm pronto per essere copiato dentro /perl_lib/EPrints/Plugin/Import/ !

Openitaly4WP

1

logo_75x75In questi giorni ho lavorato al mio primo plugin per WordPress: Openitaly4WP. Questo plugin, attivato già su questo sito (lo vedete in basso sulla sidebar) permette di visualizzare le risorse turistiche italiane a seconda del criterio impostato dall’utente. In più è anche possibile (anora in fase di testing) visualizzare le risorse preferite di un certo utente registrato su OpenItaly.net.

Il plugin sfrutta l’interfaccia XMl-RPC messa a disposizione da OpenItaly e già sfruttata da Openitaly for BB, il programma per i Blackberry sviluppato dalla DataFox.

Ciunque fosse interessato a sviluppare programmi, plugin o altro usando OpenItaly può contattarmi per ricevere, gratuitamente, le specifiche del servizio XML-RPC.

Comunque, scrivere questo plugin è stata l’occasione per scoprire, ed apprezzare, ancora di più WordPress !

Go to Top