summaryrefslogtreecommitdiff
path: root/debian/patches/16-fix_isbndb_plugin.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/16-fix_isbndb_plugin.patch')
-rw-r--r--debian/patches/16-fix_isbndb_plugin.patch252
1 files changed, 252 insertions, 0 deletions
diff --git a/debian/patches/16-fix_isbndb_plugin.patch b/debian/patches/16-fix_isbndb_plugin.patch
new file mode 100644
index 0000000..a845326
--- /dev/null
+++ b/debian/patches/16-fix_isbndb_plugin.patch
@@ -0,0 +1,252 @@
+Description: fix ISBNdb book plugin
+Author: Marc Deslauriers <marc.deslauriers@canonical.com>
+Forwarded: http://forums.gcstar.org/viewtopic.php?id=18072
+
+Index: gcstar-1.7.0/lib/gcstar/GCPlugins/GCbooks/GCISBNdb.pm
+===================================================================
+--- gcstar-1.7.0.orig/lib/gcstar/GCPlugins/GCbooks/GCISBNdb.pm 2011-07-17 08:23:00.000000000 -0400
++++ gcstar-1.7.0/lib/gcstar/GCPlugins/GCbooks/GCISBNdb.pm 2013-08-07 16:47:41.752463960 -0400
+@@ -42,49 +42,51 @@
+ if ($self->{parsingList})
+ {
+
+- if (($tagname eq 'div') && ($attr->{class} eq 'bookInfo') && ($self->{searchField} ne 'isbn'))
++ if (($tagname eq 'div') && ($attr->{class} eq 'bookSnippetBasic'))
+ {
+ $self->{isBook} = 1 ;
+ }
+- elsif (($tagname eq 'a') && ( index($attr->{href},"/d/book/") >= 0) && ($self->{isBook}))
++ elsif (($tagname eq 'a') && ( index($attr->{href},"/book/") >= 0) && ($self->{isBook}))
+ {
+ $self->{itemIdx}++;
+- $self->{itemsList}[$self->{itemIdx}]->{url} = "http://isbndb.com" . $attr->{href};
++ $self->{itemsList}[$self->{itemIdx}]->{url} = $attr->{href};
++ }
++ elsif (($tagname eq 'h1') && ($self->{isBook}))
++ {
+ $self->{isTitle} = 1 ;
+ }
+- elsif (($tagname eq 'a') && ( index($attr->{href},"/d/person/") >= 0) && ($self->{isBook}))
++ elsif (($tagname eq 'a') && ( index($attr->{href},"/author/") >= 0) && ($self->{isBook}))
+ {
+ $self->{isAuthor} = 1 ;
+ }
+- elsif (($tagname eq 'a') && ( index($attr->{href},"/d/publisher/") >= 0) && ($self->{isBook}))
++ elsif (($tagname eq 'a') && ( index($attr->{href},"/publisher/") >= 0) && ($self->{isBook}))
+ {
+ $self->{isPublisher} = 1 ;
+ }
+- elsif (($tagname eq 'a') && ( index($attr->{onclick},"isbndbTrackBuy") >= 0) && ($self->{itemIdx} eq '-1'))
+- {
+- $self->{itemIdx}++;
+- $self->{itemsList}[$self->{itemIdx}]->{url} = $self->{loadedUrl} ;
+- }
+- elsif (($tagname eq 'span') && ($attr->{class} eq 'inactive'))
++ elsif ($tagname eq 'span')
+ {
+ $self->{isBook} = 0 ;
+ }
+ }
+ else
+ {
+- if ($tagname eq 'title')
++ if (($tagname eq 'div') && ($attr->{class} eq 'bookSnippetBasic'))
++ {
++ $self->{isBook} = 1 ;
++ }
++ if (($tagname eq 'h1') && ($self->{isBook}))
+ {
+ $self->{isTitle} = 1 ;
+ }
+- elsif (($tagname eq 'a') && ( index($attr->{href},"/d/person/") >= 0))
++ elsif (($tagname eq 'a') && ( index($attr->{href},"/author/") >= 0))
+ {
+ $self->{isAuthor} = 1 ;
+ }
+- elsif (($tagname eq 'a') && ( index($attr->{href},"/d/publisher/") >= 0))
++ elsif (($tagname eq 'a') && ( index($attr->{href},"/publisher/") >= 0))
+ {
+ $self->{isPublisher} = 1 ;
+ }
+- elsif (($tagname eq 'a') && ( index($attr->{href},"/c/Library_Shelves/Dewey") >= 0))
++ elsif (($tagname eq 'a') && ( index($attr->{href},"/subject/") >= 0))
+ {
+ $self->{isGenre} = 1 ;
+ }
+@@ -104,6 +106,10 @@
+ $self->{curInfo}->{cover} = $array[0];
+ }
+ }
++ elsif (($tagname eq 'div') && ($attr->{id} eq 'rightColumn'))
++ {
++ $self->{isBook} = 0 ;
++ }
+ }
+ }
+
+@@ -127,14 +133,34 @@
+ }
+ elsif ($self->{isAuthor})
+ {
++ my @nom_prenom = split(/,/,$origtext);
++ # Enleve les blancs en debut de chaine
++ $nom_prenom[0] =~ s/^\s//;
++ $nom_prenom[1] =~ s/^\s//;
++ # Enleve les blancs en fin de chaine
++ $nom_prenom[0] =~ s/\s+$//;
++ $nom_prenom[1] =~ s/\s+$//;
+ if ($self->{itemsList}[$self->{itemIdx}]->{authors} eq '')
+ {
+- $self->{itemsList}[$self->{itemIdx}]->{authors} = $origtext;
++ if ($nom_prenom[1] ne '')
++ {
++ $self->{itemsList}[$self->{itemIdx}]->{authors} = $nom_prenom[1] ." " . $nom_prenom[0];
++ }
++ else
++ {
++ $self->{itemsList}[$self->{itemIdx}]->{authors} = $nom_prenom[0];
++ }
+ }
+ else
+ {
+- $self->{itemsList}[$self->{itemIdx}]->{authors} .= ', ';
+- $self->{itemsList}[$self->{itemIdx}]->{authors} .= $origtext;
++ if ($nom_prenom[1] ne '')
++ {
++ $self->{itemsList}[$self->{itemIdx}]->{authors} .= ", " . $nom_prenom[1] ." " . $nom_prenom[0];
++ }
++ else
++ {
++ $self->{itemsList}[$self->{itemIdx}]->{authors} .= ", " . $nom_prenom[0];
++ }
+ }
+ $self->{isAuthor} = 0 ;
+ }
+@@ -157,8 +183,35 @@
+ }
+ elsif ($self->{isAuthor})
+ {
+- $self->{curInfo}->{authors} .= $origtext;
+- $self->{curInfo}->{authors} .= ",";
++ my @nom_prenom = split(/,/,$origtext);
++ # Enleve les blancs en debut de chaine
++ $nom_prenom[0] =~ s/^\s//;
++ $nom_prenom[1] =~ s/^\s//;
++ # Enleve les blancs en fin de chaine
++ $nom_prenom[0] =~ s/\s+$//;
++ $nom_prenom[1] =~ s/\s+$//;
++ if ($self->{curInfo}->{authors} eq '')
++ {
++ if ($nom_prenom[1] ne '')
++ {
++ $self->{curInfo}->{authors} = $nom_prenom[1] ." " . $nom_prenom[0];
++ }
++ else
++ {
++ $self->{curInfo}->{authors} = $nom_prenom[0];
++ }
++ }
++ else
++ {
++ if ($nom_prenom[1] ne '')
++ {
++ $self->{curInfo}->{authors} .= ", " . $nom_prenom[1] ." " . $nom_prenom[0];
++ }
++ else
++ {
++ $self->{curInfo}->{authors} .= ", " . $nom_prenom[0];
++ }
++ }
+ $self->{isAuthor} = 0 ;
+ }
+ elsif ($self->{isPublisher})
+@@ -168,9 +221,9 @@
+ }
+ elsif ($self->{isAnalyse})
+ {
+- $self->{isFormat} = 1 if ($origtext =~ m/Book Details:/i);
+- $self->{isDescription} = 1 if ($origtext =~ m/Notes:/i);
+- $self->{isDescription} = 1 if ($origtext =~ m/Summary:/i);
++ $self->{isFormat} = 1 if ($origtext =~ m/Book Details/i);
++ $self->{isDescription} = 1 if ($origtext =~ m/Notes/i);
++ $self->{isDescription} = 1 if ($origtext =~ m/Summary/i);
+
+ $self->{isAnalyse} = 0 ;
+ }
+@@ -233,14 +286,25 @@
+ }
+ elsif ($self->{isGenre})
+ {
+- my @array = split(/--/,$origtext);
++ $origtext =~ s/ -- /\//gi;
+
+- $self->{curInfo}->{genre} = $array[1];
+ # Enleve les blancs en debut de chaine
+- $self->{curInfo}->{genre} =~ s/^\s+//;
++ $origtext =~ s/^\s+//;
++ # Enleve les blancs en fin de chaine
++ $origtext =~ s/\s+$//g;
++
++ if ($self->{curInfo}->{genre} eq '')
++ {
++ $self->{curInfo}->{genre} = $origtext;
++ }
++ else
++ {
++ $self->{curInfo}->{genre} .= ", " . $origtext;
++ }
+ $self->{isGenre} = 0 ;
+ }
+- elsif (($origtext =~ m/ISBN:/i) && ($self->{curInfo}->{isbn} eq ''))
++ elsif ((($origtext =~ m/ISBN10:/i) && ($self->{curInfo}->{isbn} eq '')) ||
++ ($origtext =~ m/ISBN13:/i))
+ {
+ my @array = split(/:/,$origtext);
+
+@@ -297,7 +361,10 @@
+ else
+ {
+ $html =~ s|<u>||gi;
+- $html =~ s|<li>|\n* |gi;
++ $html =~ s|<li>||gi;
++ $html =~ s|</li>||gi;
++ $html =~ s|<ul>||gi;
++ $html =~ s|</ul>||gi;
+ $html =~ s|<br>|\n|gi;
+ $html =~ s|<br />|\n|gi;
+ $html =~ s|<b>||gi;
+@@ -312,7 +379,7 @@
+ $html =~ s|&#133;|...|gi;
+ $html =~ s|\x{8C}|OE|gi;
+ $html =~ s|\x{9C}|oe|gi;
+-
++ $html =~ s|\x{94}|\n|gi;
+ }
+
+ return $html;
+@@ -321,14 +388,13 @@
+ sub getSearchUrl
+ {
+ my ($self, $word) = @_;
+-
+ if ($self->{searchField} eq 'isbn')
+ {
+- return "http://isbndb.com/search-all.html?kw=" .$word;
++ return "http://isbndb.com/search/all?query=" .$word;
+ }
+ else
+ {
+- return "http://isbndb.com/search-title.html?kw=" .$word ."&isn=";
++ return "http://isbndb.com/search/books/1?query=" .$word;
+ }
+
+ }
+@@ -348,7 +414,7 @@
+ sub getCharset
+ {
+ my $self = shift;
+- return "ISO-8859-15";
++ return "UTF-8";
+ }
+
+ sub getAuthor