Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 19-11-2016 20:16:51

Lancelot du Lac
Membre
Lieu : France
Distrib. : Jessie | Stretch
Noyau : Linux 3.16.0-4-amd64 | 4.5.0-1-amd64
(G)UI : ZSH / LXDE, Openbox | KDE
Inscription : 22-02-2016

Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

Bonjour à tous !

Je suis à la recherche d'un logiciel pour gérer sa bibliothèque, avec des livres dedans big_smile
Le seul que j'ai trouvé pour le moment est Alexandria, mais je n'arrive pas à le lancer (et en plus il commence à vieillir). Auriez-vous un autre soft à me conseiller ?
Merci d'avance !

Dernière modification par Lancelot du Lac (20-11-2016 15:59:52)


Dell Inspiron 7500 series - Debian Stretch - KDE/openbox - ZSH
Samsung - Debian Jessie - LXDE/pas de graphique - ZSH

Hors ligne

#2 19-11-2016 23:22:01

Philou92
Adhérent(e)
Lieu : Hauts de Seine
Distrib. : Debian stretch 9.6
Noyau : Linux 4.9.0-8-amd64
(G)UI : Gnome 3.22
Inscription : 29-04-2015

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

Hello,

Il y a calibre

Efficace et relativement universel car disponible sur d'autre plate-forme.

Chaque siècle fera son œuvre, aujourd’hui civique, demain humaine. Aujourd’hui la question du droit, demain la question du salaire. Salaire et droit, au fond c’est le même mot. L’homme ne vit pas pour n’être point payé ; Dieu en donnant la vie contracte une dette ; le droit, c’est le salaire inné ; le salaire, c’est le droit acquis.
             Quatrevingt-treize
             Victor Hugo.

Hors ligne

#3 20-11-2016 04:18:46

nIQnutn
Modeb
Distrib. : Stretch
Noyau : Linux 4.9.0-3-amd64
(G)UI : Gnome
Inscription : 16-03-2012

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

Hors ligne

#4 20-11-2016 09:51:44

Blogus
Membre
Lieu : Au pied de l'arbre...
Distrib. : DFLinux ou Handylinux selon l'humeur
Noyau : 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 17-09-2016

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

Philou92 a écrit :

Hello,

Il y a calibre

Efficace et relativement universel car disponible sur d'autre plate-forme.




+1 wink


L'homme est le seul animal à penser qu'il n'est pas un animal

Hors ligne

#5 20-11-2016 15:18:17

Patriboom
Membre
Lieu : Arctique canadien
Distrib. : Stretch (9.5)
Noyau : Linux 4.9.0-8-amd64
(G)UI : MATE
Inscription : 25-12-2008
Site Web

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

Il y aussi les version Web très complètes et performantes.
Tu peux faire une recherche:   « php gestion bibliothèque livres »
La plupart sont multilingues, multi-usagers, même multi-édifices (pas seulement des rayons, mais des paviillons, des étages, etc.)

Dernière modification par Patriboom (20-11-2016 15:19:23)


Portez la paix
Patrick Allaire, ptre

Hors ligne

#6 20-11-2016 15:21:38

Patriboom
Membre
Lieu : Arctique canadien
Distrib. : Stretch (9.5)
Noyau : Linux 4.9.0-8-amd64
(G)UI : MATE
Inscription : 25-12-2008
Site Web

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]


Portez la paix
Patrick Allaire, ptre

Hors ligne

#7 20-11-2016 15:59:31

Lancelot du Lac
Membre
Lieu : France
Distrib. : Jessie | Stretch
Noyau : Linux 3.16.0-4-amd64 | 4.5.0-1-amd64
(G)UI : ZSH / LXDE, Openbox | KDE
Inscription : 22-02-2016

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

Merci pour vos propositions. Je vais tester gcstar, qui a l'avantage d'être dans les dépôts Stretch.

Dell Inspiron 7500 series - Debian Stretch - KDE/openbox - ZSH
Samsung - Debian Jessie - LXDE/pas de graphique - ZSH

Hors ligne

#8 24-11-2016 20:07:23

Elithrin
Membre
Inscription : 24-11-2016

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

Pratique ça, je me demandais justement si ça existait. Du coup je vais test celui de framasoft

Hors ligne

#9 24-11-2016 21:45:02

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 9 (stretch) 64 bits + backports
Noyau : 4.9.65-3+deb9u2
(G)UI : gnome
Inscription : 21-10-2008

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

Si vous pouvez en faire un tuto d'utilisation dans le wiki df... cool

"Théo et Adama te rappellent pourquoi Zyed et Bouna couraient…"
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

#10 25-11-2016 01:19:15

Philou92
Adhérent(e)
Lieu : Hauts de Seine
Distrib. : Debian stretch 9.6
Noyau : Linux 4.9.0-8-amd64
(G)UI : Gnome 3.22
Inscription : 29-04-2015

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

C'est y pas là un tuto qui l'est bien : https://debian-facile.org/doc:environnements:x11:gcstarscratchhead.gif

Chaque siècle fera son œuvre, aujourd’hui civique, demain humaine. Aujourd’hui la question du droit, demain la question du salaire. Salaire et droit, au fond c’est le même mot. L’homme ne vit pas pour n’être point payé ; Dieu en donnant la vie contracte une dette ; le droit, c’est le salaire inné ; le salaire, c’est le droit acquis.
             Quatrevingt-treize
             Victor Hugo.

Hors ligne

#11 25-11-2016 04:48:02

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 9 (stretch) 64 bits + backports
Noyau : 4.9.65-3+deb9u2
(G)UI : gnome
Inscription : 21-10-2008

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

Il est bien mais le lien d'utilisation est en english.
Ne pourrait-on pas le traduire pour l'essentiel dans le wiki df ? smile

"Théo et Adama te rappellent pourquoi Zyed et Bouna couraient…"
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

#12 08-12-2016 21:14:37

unit
Adhérent(e)
Lieu : Marcq-en-baroeul
Distrib. : Jessie 8.9
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce 4.10
Inscription : 11-03-2010

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

Gcstar est bien fait par contre pour les récupérations des données sur internet chez moi ne fonctionne plus.

Exige beaucoup de toi-même et attends peu des autres. Ainsi beaucoup d'ennuis te seront épargnés.
Confucius.

Hors ligne

#13 04-01-2017 13:02:54

kawer
Adhérent(e)
Lieu : Quelque part vers Gallifrey
Distrib. : Archlinux
Noyau : Current
(G)UI : xfce4
Inscription : 08-10-2013

Re : Gérer sa bibliothèque (une vraie avec des livres en papier) [ résolu]

GCstar fonctionne à nouveau en modifiant le script amazon, voir ici :


package GCPlugins::GCbooks::GCAmazon;

###################################################
#
#  Copyright 2005-2009 Tian
#
#  This file is part of GCstar.
#
#  GCstar is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  GCstar is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with GCstar; if not, write to the Free Software
#  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
#
###################################################

use strict;
use utf8;

use GCPlugins::GCbooks::GCbooksCommon;

{
    package GCPlugins::GCbooks::GCPluginAmazon;
   
    use base qw(GCPlugins::GCbooks::GCbooksPluginsBase);
    use XML::Simple;
    use LWP::Simple qw($ua);
    use Encode;
    use HTML::Entities;
    use GCUtils;

    sub start
    {
        my ($self, $tagname, $attr, $attrseq, $origtext) = @_;
 
        $self->{inside}->{$tagname}++;

        if ($self->{parsingList})
        {
      # Identify beginning of comments
      if (($self->{isComment} == 0) && ($tagname eq 'varkcomment'))
      {
           $self->{isComment} = 1 ;
      }

      # Capture URL of book
      if (($self->{isComment} == 0) && ($self->{isUrl} == 1) && ($tagname eq 'a'))
      {
                 $self->{itemsList}[$self->{itemIdx}]->{url} = $attr->{href};
           $self->{isUrl} = 0 ;
     $self->{isTitle} = 1 ;
     return;
      }

      # Identify beginning of new book (next text is title)
      if (($self->{isComment} == 0) && ($tagname eq 'li') && ($attr->{id} =~ /result_[0-9]+/ ))
      {
     # Create new entry
                 $self->{itemIdx}++;
           $self->{isUrl} = 1 ;
     $self->{isAuthor} = 0 ;
     return ;
      }

      # Identify end of authors list
      if (($self->{isComment} == 0) && ($tagname eq 'varkendauthors') && ($self->{isAuthor} != 0))
      {
     $self->{isAuthor} = 0 ;
     return ;
      }
        }
        else
        {
      # Detection of book themes
      if (($self->{isTheme} == 0) && ($tagname eq 'varkgenre'))
      {
                $self->{isTheme} = 1 ;
                return ;
      }  

      # Detection of book page count
      if (($self->{isPage} == 0) && ($tagname eq 'varkdata'))
      {
                $self->{isPage} = 1 ;
                return ;
      }

      # Detection of authors
      if ($tagname eq 'varkauthor')
      {
                $self->{isAuthor} = 1;
                return ;
      }

      # Capture of image
      if ($tagname eq 'varkimage')
      {
                $attr->{adress} =~ /http.*?\.jpg/;
    $attr->{adress} =~ s|https://images-na.ssl-images-amazon.com/images/I/|http://z2-ec2.images-amazon.com/images/I/|;
    $self->{curInfo}->{cover} = $attr->{adress};
                return ;
      }

      # Detection of book description
      if (($self->{isDescription} == 0) && ($tagname eq 'varkdescription'))
      {
                $self->{isDescription} = 1 ;
                return ;
      }
      if (($self->{isDescription} == 1) && ($tagname eq 'div'))
      {
                $self->{isDescription} = 2 ;
                return ;
      }

      # Detection title
      if (($self->{isTitle} == 0) && ($tagname eq 'varktitle'))
      {
                $self->{isTitle} = 2 ;
                return ;
      }
        }
    }

    sub end
    {
        my ($self, $tagname) = @_;

        $self->{inside}->{$tagname}--;

        if ($self->{parsingList})
        {
      # Identify end of comments
      if (($self->{isComment} == 1) && ($tagname eq 'varkcomment'))
      {
           $self->{isComment} = 0 ;
      }
        }

        else
        {
      # Finishing themes analysis
      if (($self->{isTheme} != 0) && ($tagname eq 'li'))
      {
                $self->{isTheme} = 0 ;
                return ;
      }

      # Finishing description analysis
      if (($self->{isDescription} != 0) && ($tagname eq 'div'))
      {
                $self->{isDescription} = 0 ;
                return ;
      }      
        }
    }

    sub text
    {
        my ($self, $origtext) = @_;


        if ($self->{parsingList})
        {
      # Remove blanks before and after string
            $origtext =~ s/^\s+//;
            $origtext =~ s/\s+$//g;

      # Capture of book title
      if (($self->{isComment} == 0) && ($self->{isTitle} == 1) && ($origtext ne ''))
      {
                $self->{itemsList}[$self->{itemIdx}]->{title} = $origtext;
                $self->{isTitle} = 0 ;
                $self->{isPublication} = 1 ;
                return ;
      }

      # Capture of book publication date
      if (($self->{isComment} == 0) && ($self->{isPublication} == 1) && ($origtext ne ''))
      {
                $self->{itemsList}[$self->{itemIdx}]->{publication} = $origtext;
                $self->{isAuthor} = 1 ;
                $self->{isPublication} = 0 ;
                return ;
      }
   
      # Avoid a text area before the first author
      if (($self->{isComment} == 0) && ($self->{isAuthor} == 1) && ($origtext ne ''))
      {
                $self->{isAuthor} = 2 ;
                return ;
      }

      # Capture of authors
      if (($self->{isComment} == 0) && ($self->{isAuthor} == 2) && ($origtext ne ''))
      {
                if ($self->{itemsList}[$self->{itemIdx}]->{authors} eq '')
                {
                    $self->{itemsList}[$self->{itemIdx}]->{authors} = $origtext;
    }
    else
    {
       $self->{itemsList}[$self->{itemIdx}]->{authors} .= " " . $origtext;
    }
    return;
      }

        }
        else
        {
      # Remove blanks before and after string
            $origtext =~ s/^\s+//;
            $origtext =~ s/\s+$//g;

      # Capture of title
      if (($self->{isTitle} == 2) && ($origtext ne ''))
      {
                $self->{isTitle} = 0 ;
                $self->{curInfo}->{title} = $origtext;
                return ;
      }

      # Capture of page number
      if (($self->{isPage} == 1) && ($origtext =~ /^[0-9]+/))
      {
                $self->{curInfo}->{pages} = $origtext;
                $self->{isPage} = 0 ;
                return ;
      }

      # Capture of editor and publication date
      if (($self->{isEditor} == 0) && ($origtext eq $self->getTranslation(1)))
      {

                $self->{isEditor} = 1 ;
                return ;
      }
      if (($self->{isEditor} == 1) && ($origtext ne ''))
      {
    my @array = split('\(',$origtext);
    $array[1] =~ s/\)//g;
    $array[0] =~ s/^\s+//;
    $array[0] =~ s/\s+$//g;
    $array[0] =~ s/\;//g;
    $array[1] =~ s/^\s+//;
    $array[1] =~ s/\s+$//g;
                $self->{curInfo}->{publisher} = $array[0];
    $self->{curInfo}->{publication} = $array[1];
                $self->{isEditor} = 0 ;
                return ;
      }

      # Capture of language
      if (($self->{isLanguage} == 0) && ($origtext eq $self->getTranslation(2)))
      {
                $self->{isLanguage} = 1 ;
                return ;
      }
      if (($self->{isLanguage} == 1) && ($origtext ne ''))
      {
                $self->{curInfo}->{language} = $origtext;
                $self->{isLanguage} = 0 ;
                return ;
      }

      # Capture of ISBN
      if (($self->{isISBN} == 0) && ($origtext eq $self->getTranslation(3)))
      {
                $self->{isISBN} =1 ;
                return ;
      }
      if (($self->{isISBN} == 1) && ($origtext ne ''))
      {
    $origtext =~ s|-||gi;
                $self->{curInfo}->{isbn} = $origtext;
    $self->{isISBN} = 0 ;
                return ;
      }

      # Capture of book dimensions
      if (($self->{isSize} == 0) && ($origtext eq $self->getTranslation(4)))
      {
                $self->{isSize} = 1 ;
                return ;
      }
      if (($self->{isSize} == 1) && ($origtext ne ''))
      {
                $self->{curInfo}->{format} = $origtext;
                $self->{isSize} = 0 ;
                return ;
      }


      # Detection of themes
      if (($origtext eq '>') && ($self->{isTheme} == 1))
      {
                $self->{isTheme} = 2 ;
                return ;
      }

      # Capture of themes
      if (($self->{isTheme} == 2) && ($origtext ne ''))
            {
                if ($self->{curInfo}->{genre} eq '')
                {
                   $self->{curInfo}->{genre} = $origtext;
                }
    else
    {
       $self->{curInfo}->{genre} .= ", " . $origtext;
    }
    $self->{isTheme} = 1 ;
    return;
            }

      # Capture of authors
      if (($self->{isAuthor} == 1) && ($origtext ne '') && ($origtext =~ /^(?:(?!Ajax).)*$/))
            {
    # Lower case for author names, except for first letters
    $origtext =~ s/([[:alpha:]]+)/ucfirst(lc $1)/egi;
                if ($self->{curInfo}->{authors} eq '')
                {
                   $self->{curInfo}->{authors} = $origtext;
                }
    else
    {
       $self->{curInfo}->{authors} .= ", " . $origtext;
    }
    $self->{isAuthor} = 0 ;
    return;
            }

      # Capture of description
      if (($self->{isDescription} == 2) && ($origtext ne ''))
      {
                if ($self->{curInfo}->{description} eq '')
                {
                   $self->{curInfo}->{description} = $origtext;
                }
    else
    {
       $self->{curInfo}->{description} .= $origtext;
    }
                return ;
      }
        }
    }


 
    sub new
    {
        my $proto = shift;
        my $class = ref($proto) || $proto;
        my $self  = $class->SUPER::new();
        bless ($self, $class);

        $self->{hasField} = {
            title => 1,
            authors => 1,
            publication => 1,
            format => 0,
            edition => 0,
        };

        $self->{isComment} = 0;
  $self->{isUrl} = 0;
  $self->{isTitle} = 0;
  $self->{isPublication} = 0;
  $self->{isAuthor} = 0;
        $self->{isPage} = 0;
        $self->{isEditor} = 0;
        $self->{isISBN} = 0;
        $self->{isDescription} = 0;
  $self->{isLanguage} = 0 ;
  $self->{isTheme} = 0 ;

        return $self;
    }
   
    sub getItemUrl
    {
  my ($self, $url) = @_; 
        return $url;
    }

    sub preProcess
    {
        my ($self, $html) = @_;

  if ($self->{parsingList})
        {
      # Analysis of results must be disabled during comments
            $html =~ s|<!--|<varkcomment>|gi;
            $html =~ s|-->|</varkcomment>|gi;
      # Remove other commercial offers
      $html =~ s|END SPONSORED LINKS SCRIPT.*||s;
      # End of authors listing detection
      $html =~ s|</span></div></div><div class="a-row"><div class="a-column a-span7"><div class="a-row a-spacing-none">|<varkendauthors>|gi;
      $html =~ s|<h3 class="a-size-small a-color-null s-inline  a-text-normal">|<varkendauthors>|gi;
      $html =~ s|<div class="a-row a-spacing-mini">|<varkendauthors>|gi;
        }
        else
        {
      # Beginning of book data : pages, editor, publication date, ISBN, dimensions
      $html =~ s|<td class="bucket">|<varkdata>|gi;
      # Beginning and end of book description
      $html =~ s|<script id="bookDesc_override_CSS" type="text/undefined">|<varkdescription>|;
      #$html =~ s|<div id="bookDesc_outer_postBodyPS" style="overflow: hidden; z-index: 1; height: 0px; display: block;">|</varkdescription>|;
      # Beginning of book title
      $html =~ s|<div id="booksTitle" class="feature" data-feature-name="booksTitle">|<varktitle>|gi;
      # Beginning of book themes
      $html =~ s|<ul class="zg_hrsr">|<varkgenre>|gi;
      # Beginning of authors
      $html =~ s|<span class="author notFaded" data-width="">|<varkauthor>|gi;
            # Beginning of image
            $html =~ s|class="a-dynamic-image image-stretch-vertical frontImage" id="imgBlkFront" data-a-dynamic-image="{&quot;|><varkimage adress="|;

      $html =~ s|<BR>||gi;
      $html =~ s|<I>||gi;
      $html =~ s|</I>||gi;
            $html =~ s|\x{8C}|OE|gi;
            $html =~ s|\x{9C}|oe|gi;
            $html =~ s|&#146;|'|gi;

  }
        return $html;
    }

    sub getSearchUrl
    {
    my ($self, $word) = @_;
    return 'http://' . $self->baseWWWamazonUrl . '/s/ref=nb_sb_noss_1?url=search-alias=stripbooks&field-keywords=' . "$word";
    }
   
    sub baseWWWamazonUrl
    {  
    return "www.amazon.com";    
    }    

    sub getName
    {
        return "Amazon (US)";
    }
   
    sub getAuthor
    {
        return 'Varkolak';
    }
   
    sub getLang
    {
        return 'EN';
    }

    sub getCharset
    {
        my $self = shift;
        return "ISO-8859-15";
    }
   
    sub getSearchFieldsArray
    {
        return ['title', 'authors', 'isbn'];
    }

    # Used to get the local translation of editor, language, ISBN, product dimension, series
    sub getTranslation
    {
         my $param = $_[1];

   if ($param == 1)
   {
    return 'Publisher:';
   }
   elsif ($param == 2)
   {
    return 'Language:';
   }
   elsif ($param == 3)
   {
    return 'ISBN-13:';
   }
   elsif ($param == 4)
   {
    return 'Product Dimensions:';
   }
   elsif ($param == 5)
   {
    return 'Series:';
   }
    }

}
1;
 



A placer dans :


/usr/share/gcstar/lib/GCPlugins/GCbooks/GCAmazon.pm
/usr/share/gcstar/lib/GCPlugins/GCfilms/GCAmazon.pm
/usr/share/gcstar/lib/GCPlugins/GCgames/GCAmazon.pm
 

Dernière modification par kawer (07-01-2017 19:19:28)


Ce n'est pas un signe de bonne santé mentale d'être bien adapté à une société malade -Cit. Jiddu Krishnamurti

Hors ligne

Pied de page des forums