Refactors the indexing and the syntax

Human queries are now in french. Sorry for that
This commit is contained in:
2016-01-21 16:27:38 +01:00
parent dc0830a559
commit 0d3e8b922a
6 changed files with 316 additions and 336 deletions

View File

@@ -34,30 +34,32 @@ type Link struct {
// This is basically the data we store on bdgest.com, and that we want
// in our system to be retrieve from
type Album struct {
ID AlbumID `bl_name:"id" bl_index:"false" bl_include_all:"false"`
ISBN string `bl_name:"isbn" bl_analyzer:"keyword" bl_include_all:"false"`
Series string `bl_name:"série" bl_analyzer:"fr"`
Title string `bl_name:"titre" bl_analyzer:"fr"`
Num int `bl_name:"num" bl_index:"false" bl_include_all:"false"`
NumA string `bl_name:"num_a" bl_index:"false" bl_include_all:"false"`
State AlbumState `bl_name:"state" bl_index:"false" bl_include_all:"false"`
ID AlbumID
ISBN string
Series string `json:"série"`
Title string `json:"titre"`
Num int
NumA string
State AlbumState
Editor string `bl_name:"editor" bl_analyzer:"simple"`
Collection string `bl_name:"collection" bl_analyzer:"fr"`
Editor string `json:"éditeur"`
Collection string `json:"collection"`
SatID string `bl_name:"cote" bl_analyzer:"keyword"`
SatID string `json:"ref"`
LegalDeposit time.Time `bl_name:"dl" bl_index:"false" bl_include_all:"false"`
PrintDate time.Time `bl_name:"ai" bl_index:"false" bl_include_all:"false"`
PurchaseDate time.Time `bl_name:"achat" bl_index:"false" bl_include_all:"false"`
LegalDeposit time.Time
PrintDate time.Time
PurchaseDate time.Time
CoverURL string `bl_name:"cover" bl_index:"false" bl_include_all:"false"`
Description string `bl_name:"description" bl_analyzer:"fr"`
Note float64 `bl_name:"note" bl_index:"false" bl_include_all:"false"`
CoverURL string
Description string `json:"description"`
Note float64
Scenarist []Link `bl_name:"scenario" bl_analyzer:"simple"`
Designer []Link `bl_name:"dessins" bl_analyzer:"simple"`
Colorist []Link `bl_name:"couleurs" bl_analyzer:"simple"`
Scenarists []string `json:"scenario"`
Designers []string `json:"dessins"`
Colorists []string `json:"couleurs"`
FetchDate time.Time `bl_name:"old" bl_index:"false" bl_include_all:"false"`
Links map[string]string
FetchDate time.Time
}

View File

@@ -99,6 +99,7 @@ func (g *AlbumDescriptionGetter) Get(a *Album) error {
details := map[string][]*goquery.Selection{}
previous := ""
a.Links = map[string]string{}
doc.Find("div.detail-album ul.infos-albums li").Each(func(i int, s *goquery.Selection) {
labelSelection := s.Find("label")
if labelSelection.Size() != 1 {
@@ -121,7 +122,8 @@ func (g *AlbumDescriptionGetter) Get(a *Album) error {
for _, s := range sList {
l := linkFromSelection(s.Find("a"))
if len(l.Title) > 0 {
a.Scenarist = append(a.Scenarist, l)
a.Scenarists = append(a.Scenarists, l.Title)
a.Links[l.Title] = l.Target
}
}
errors <- nil
@@ -137,7 +139,8 @@ func (g *AlbumDescriptionGetter) Get(a *Album) error {
for _, s := range sList {
l := linkFromSelection(s.Find("a"))
if len(l.Title) > 0 {
a.Designer = append(a.Designer, l)
a.Designers = append(a.Designers, l.Title)
a.Links[l.Title] = l.Target
}
}
errors <- nil
@@ -153,7 +156,8 @@ func (g *AlbumDescriptionGetter) Get(a *Album) error {
for _, s := range sList {
l := linkFromSelection(s.Find("a"))
if len(l.Title) > 0 {
a.Colorist = append(a.Colorist, l)
a.Colorists = append(a.Colorists, l.Title)
a.Links[l.Title] = l.Target
}
}
errors <- nil

View File

@@ -44,18 +44,50 @@ func (s *BleveIndexerSuite) TestCanDeleteAlbum(c *C) {
func (s *BleveIndexerSuite) TestCanSearch(c *C) {
data := map[string]map[AlbumID]bool{
"frégate": map[AlbumID]bool{albumsDataTest[10].ID: true},
"Éditeur:Dupuis": map[AlbumID]bool{8179: true, 9935: true, 160366: true},
// Research by amny keyword (here in the description
"frégate": map[AlbumID]bool{84448: true},
// Research by editor
"éditeur:Dupuis": map[AlbumID]bool{8179: true, 9935: true, 160366: true},
// Research by Title
"titre:\"Mortes saisons\"": map[AlbumID]bool{8179: true},
// Keyword can appear in both Title and Description
"pour mourir": map[AlbumID]bool{44989: true, 84448: true, 160366: true, 19762: true},
// Or in the collection
"écho savanes": map[AlbumID]bool{15875: true},
// May not find anything, but never fails
"FOOOOOOOBAAAAAR": map[AlbumID]bool{},
// Or we can only look for collection field
"collection:Dupuis": map[AlbumID]bool{160366: true},
// Maybe we are only inderested in scenarist
"scenario:plantu": map[AlbumID]bool{58595: true},
// Or designer
"dessins:berthet": map[AlbumID]bool{8179: true},
// or colorist, but Trondheim does not does color ;)
"couleurs:trondheim": map[AlbumID]bool{},
// or any of that fields, yes Trondheim do draw some comics ;)
"trondheim": map[AlbumID]bool{160366: true},
// or we just want to look up a reference
"CHI-23": map[AlbumID]bool{46005: true},
// or more explicitely
"ref:BERT-9": map[AlbumID]bool{8179: true},
// or we are just interested in good comics
"Note:>4": map[AlbumID]bool{52100: true, 19762: true, 160366: true},
// or bad ones
"Note:<2": map[AlbumID]bool{754: true, 32043: true},
}
start := time.Now()
for q, expected := range data {
res, err := s.i.Search(q)
if c.Check(err, IsNil) == true {
if c.Check(len(res), Equals, len(expected)) == true {
if c.Check(len(res), Equals, len(expected), Commentf("Query: %s", q)) == true {
for _, resAlbum := range res {
_, ok := expected[resAlbum.ID]
c.Check(ok, Equals, true, Commentf("Looking for %d in %s", resAlbum.ID, expected))
c.Check(ok, Equals, true, Commentf("Query: %s, got %d instead of %v", q, resAlbum.ID, expected))
}
} else {
log.Printf("Got %d result(s)", len(res))
for i, a := range res {
log.Printf(" - %d: %d: %s", i, a.ID, a.Title)
}
}
}

View File

@@ -75,7 +75,7 @@ func GetCsvData() *bytes.Buffer {
m := rxSatID.FindStringSubmatch(a.SatID)
if m == nil {
panic(fmt.Sprintf("should not happen with %#v", a))
panic(fmt.Sprintf("Could not read regexp %#v", a))
}
fmt.Fprintf(res, ";%d;%s;;;%s;;;;%s;%s;;;\"foo\";;;ALBUM\n", a.State, a.PurchaseDate.Format("02/01/2006"), "", m[1], m[2])
}

View File

@@ -39,30 +39,44 @@ func buildAlbumMapping() *bleve.IndexMapping {
keywordFieldMapping.Analyzer = keyword_analyzer.Name
keywordFieldMapping.IncludeInAll = false
numericMappingDisabled := bleve.NewNumericFieldMapping()
numericMappingDisabled.Index = false
numericMappingDisabled.IncludeInAll = false
numericDisabled := bleve.NewNumericFieldMapping()
numericDisabled.Index = false
numericDisabled.Store = false
numericDisabled.IncludeInAll = false
textDisabled := bleve.NewTextFieldMapping()
textDisabled.Index = false
textDisabled.Store = false
textDisabled.IncludeInAll = false
dateStore := bleve.NewDateTimeFieldMapping()
dateStore.Index = false
dateStore.IncludeInAll = false
dateDisabled := bleve.NewDateTimeFieldMapping()
dateDisabled.Index = false
dateDisabled.Store = false
dateDisabled.IncludeInAll = false
albumMapping := bleve.NewDocumentStaticMapping()
albumMapping.AddFieldMappingsAt("ID", numericMappingDisabled)
albumMapping.AddFieldMappingsAt("ID", numericDisabled)
albumMapping.AddFieldMappingsAt("ISBN", keywordFieldMapping)
albumMapping.AddFieldMappingsAt("Series", frenchTextMapping)
albumMapping.AddFieldMappingsAt("Title", frenchTextMapping)
albumMapping.AddFieldMappingsAt("Num", numericMappingDisabled)
albumMapping.AddFieldMappingsAt("Num", numericDisabled)
albumMapping.AddFieldMappingsAt("NumA", textDisabled)
albumMapping.AddFieldMappingsAt("State", numericDisabled)
albumMapping.AddFieldMappingsAt("Editor", simpleMapping)
albumMapping.AddFieldMappingsAt("Collection", frenchTextMapping)
albumMapping.AddFieldMappingsAt("SatID", keywordFieldMapping)
albumMapping.AddFieldMappingsAt("Description", frenchTextMapping)
albumMapping.AddFieldMappingsAt("LegalDeposit", dateDisabled)
albumMapping.AddFieldMappingsAt("PrintDate", dateDisabled)
albumMapping.AddFieldMappingsAt("PurchaseDate", dateDisabled)
albumMapping.AddFieldMappingsAt("CoverURL", dateDisabled)
albumMapping.AddFieldMappingsAt("Note", bleve.NewNumericFieldMapping())
albumMapping.AddFieldMappingsAt("Scenarists", simpleMapping)
albumMapping.AddFieldMappingsAt("Designers", simpleMapping)
albumMapping.AddFieldMappingsAt("Colorists", simpleMapping)
albumMapping.AddFieldMappingsAt("Colorists", textDisabled)
albumMapping.AddFieldMappingsAt("FetchDate", dateDisabled)
indexMapping := bleve.NewIndexMapping()
indexMapping.AddDocumentMapping("album", albumMapping)
@@ -170,6 +184,7 @@ func (i *bleveIndexer) Search(query string) ([]*Album, error) {
if err != nil {
return res, err
}
res = append(res, a)
}

527
testdata/albums.json vendored
View File

@@ -2,533 +2,460 @@
{
"ID": 8179,
"ISBN": "2-8001-1161-5",
"Series": "Mortes saisons",
"Title": "Mortes saisons",
"rie": "Mortes saisons",
"titre": "Mortes saisons",
"Num": -1,
"NumA": "",
"State": 0,
"Author": "",
"Editor": "Dupuis",
"Collection": "Berthet",
"SatID": "BERT-9",
"éditeur": "Dupuis",
"collection": "Berthet",
"ref": "BERT-9",
"LegalDeposit": "1985-10-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2013-09-04T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/Couv_8179.jpg",
"Description": "",
"description": "",
"Note": 3.4,
"Scenarist": [
{
"Title": "Andreas",
"Target": "http://www.bedetheque.com/auteur-267-BD-Andreas.html"
}
],
"Designer": [
{
"Title": "Berthet, Philippe",
"Target": "http://www.bedetheque.com/auteur-13-BD-Berthet-Philippe.html"
}
],
"Colorist": [
{
"Title": "Berthet, Philippe",
"Target": "http://www.bedetheque.com/auteur-13-BD-Berthet-Philippe.html"
}
],
"scenario": [
"Andreas"
],
"dessins": [
"Berthet, Philippe"
],
"couleurs": [
"Berthet, Philippe"
],
"Links": {
"Andreas":"http://www.bedetheque.com/auteur-267-BD-Andreas.html",
"Berthet, Philippe": "http://www.bedetheque.com/auteur-13-BD-Berthet-Philippe.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 44989,
"ISBN": "2-205-01493-5",
"Series": "Abel Dopeulapeul",
"Title": "Sale temps pour mourir",
"rie": "Abel Dopeulapeul",
"titre": "Sale temps pour mourir",
"Num": 2,
"NumA": "",
"State": 0,
"Author": "",
"Editor": "Dargaud",
"Collection": "Collection Pilote",
"SatID": "ZCO-35",
"éditeur": "Dargaud",
"collection": "collection Pilote",
"ref": "ZCO-35",
"LegalDeposit": "1979-01-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2013-09-04T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/abeldopeulapeul02.JPG",
"Description": "",
"description": "",
"Note": 4,
"Scenarist": [
{
"Title": "Loro",
"Target": "http://www.bedetheque.com/auteur-839-BD-Loro.html"
}
"scenario": [
"Loro"
],
"Designer": [
{
"Title": "Loro",
"Target": "http://www.bedetheque.com/auteur-839-BD-Loro.html"
}
"dessins": [
"Loro"
],
"Links": {
"Loro": "http://www.bedetheque.com/auteur-839-BD-Loro.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 58595,
"ISBN": "",
"Series": "(AUT) Plantu",
"Title": "Des fourmis dans les jambes",
"rie": "(AUT) Plantu",
"titre": "Des fourmis dans les jambes",
"Num": -1,
"NumA": "1989",
"State": 0,
"Author": "",
"Editor": "Le Monde",
"Collection": "",
"SatID": "HUMO-17",
"éditeur": "Le Monde",
"collection": "",
"ref": "HUMO-17",
"LegalDeposit": "0001-01-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2013-12-07T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/plantufourmicouverture.JPG",
"Description": "",
"description": "",
"Note": 3,
"Scenarist": [
{
"Title": "Plantu",
"Target": "http://www.bedetheque.com/auteur-5996-BD-Plantu.html"
}
"scenario": [
"Plantu"
],
"Designer": [
{
"Title": "Plantu",
"Target": "http://www.bedetheque.com/auteur-5996-BD-Plantu.html"
}
"dessins": [
"Plantu"
],
"Colorist": [
{
"Title": "\u003cN\u0026B\u003e",
"Target": "http://www.bedetheque.com/auteur-477-BD-NB.html"
}
"couleurs": [
"\u003cN\u0026B\u003e"
],
"Links" : {
"Plantu": "http://www.bedetheque.com/auteur-5996-BD-Plantu.html",
"\u003cN\u0026B\u003e": "http://www.bedetheque.com/auteur-477-BD-NB.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 19762,
"ISBN": "2869679858",
"Series": "Darken",
"Title": "Mangeforêt",
"rie": "Darken",
"titre": "Mangeforêt",
"Num": 2,
"NumA": "",
"State": 0,
"Author": "",
"Editor": "Vents d'Ouest",
"Collection": "",
"SatID": "DARK-2",
"éditeur": "Vents d'Ouest",
"collection": "",
"ref": "DARK-2",
"LegalDeposit": "2002-09-01T00:00:00Z",
"PrintDate": "2002-09-01T00:00:00Z",
"PurchaseDate": "2013-09-06T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/Darken02_22102002.jpg",
"Description": "Kelmar le Darken a retrouvé Lorik, son frère, engagé dans la résistance au Nouvel Ordre Humain. Celui-ci aurait découvert l'endroit où leur mère est tenue prisonnière : le Mangeforêt, un monstre mécanique qui défriche la forêt héossienne et sert de bagne aux autochtones récalcitrants. Mais pour les chefs de la résistance, ce n'est pas un objectif prioritaire. Alors Kelmar part à l'assaut de la machine avec Langue Agile la voleuse feling, Doonda la Woon, et une poignée d'enfants-soldats. Et s'il avait été prévu dès le début... Lire la suite",
"description": "Kelmar le Darken a retrouvé Lorik, son frère, engagé dans la résistance au Nouvel Ordre Humain. Celui-ci aurait découvert l'endroit où leur mère est tenue prisonnière : le Mangeforêt, un monstre mécanique qui défriche la forêt héossienne et sert de bagne aux autochtones récalcitrants. Mais pour les chefs de la résistance, ce n'est pas un objectif prioritaire. Alors Kelmar part à l'assaut de la machine avec Langue Agile la voleuse feling, Doonda la Woon, et une poignée d'enfants-soldats. Et s'il avait été prévu dès le début... Lire la suite",
"Note": 5,
"Scenarist": [
{
"Title": "Polouchine, Igor",
"Target": "http://www.bedetheque.com/auteur-2556-BD-Polouchine-Igor.html"
},
{
"Title": "Rastoin, Bernard",
"Target": "http://www.bedetheque.com/auteur-31834-BD-Rastoin-Bernard.html"
}
"scenario": [
"Polouchine, Igor",
"Rastoin, Bernard"
],
"Designer": [
{
"Title": "Swal, Christophe",
"Target": "http://www.bedetheque.com/auteur-2557-BD-Swal-Christophe.html"
}
"dessins": [
"Swal, Christophe"
],
"Colorist": [
{
"Title": "Robert, Jacky",
"Target": "http://www.bedetheque.com/auteur-820-BD-Robert-Jacky.html"
}
"couleurs": [
"Robert, Jacky"
],
"Links": {
"Polouchine, Igor": "http://www.bedetheque.com/auteur-2556-BD-Polouchine-Igor.html",
"Rastoin, Bernard": "http://www.bedetheque.com/auteur-31834-BD-Rastoin-Bernard.html",
"Swal, Christophe": "http://www.bedetheque.com/auteur-2557-BD-Swal-Christophe.html",
"Robert, Jacky": "http://www.bedetheque.com/auteur-820-BD-Robert-Jacky.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 9935,
"ISBN": "2-8001-1956-X",
"Series": "Bizu",
"Title": "La croisière fantôme",
"rie": "Bizu",
"titre": "La croisière fantôme",
"Num": 5,
"NumA": "3",
"State": 0,
"Author": "",
"Editor": "Dupuis",
"Collection": "",
"SatID": "ZJE-17",
"éditeur": "Dupuis",
"collection": "",
"ref": "ZJE-17",
"LegalDeposit": "1992-10-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2013-10-31T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/bizu05.jpg",
"Description": "",
"description": "",
"Note": 3,
"Scenarist": [
{
"Title": "Fournier, Jean-Claude",
"Target": "http://www.bedetheque.com/auteur-755-BD-Fournier-Jean-Claude.html"
}
"scenario": [
"Fournier, Jean-Claude"
],
"Designer": [
{
"Title": "Fournier, Jean-Claude",
"Target": "http://www.bedetheque.com/auteur-755-BD-Fournier-Jean-Claude.html"
}
"dessins": [
"Fournier, Jean-Claude"
],
"Colorist": [
{
"Title": "D'Authenay, Anne-Marie",
"Target": "http://www.bedetheque.com/auteur-550-BD-D-Authenay-Anne-Marie.html"
}
"couleurs": [
"D'Authenay, Anne-Marie"
],
"Links": {
"Fournier, Jean-Claude": "http://www.bedetheque.com/auteur-755-BD-Fournier-Jean-Claude.html",
"D'Authenay, Anne-Marie":"http://www.bedetheque.com/auteur-550-BD-D-Authenay-Anne-Marie.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 164,
"ISBN": "2723414132",
"Series": "Eaux de Mortelune (Les)",
"Title": "Vague à lames",
"rie": "Eaux de Mortelune (Les)",
"titre": "Vague à lames",
"Num": 5,
"NumA": "",
"State": 0,
"Author": "",
"Editor": "Glénat",
"Collection": "Caractère",
"SatID": "EAU-5",
"éditeur": "Glénat",
"collection": "Caractère",
"ref": "EAU-5",
"LegalDeposit": "1992-02-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2013-09-06T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/Couv_164.jpg",
"Description": "",
"description": "",
"Note": 3.9,
"Scenarist": [
{
"Title": "Cothias, Patrick",
"Target": "http://www.bedetheque.com/auteur-36-BD-Cothias-Patrick.html"
}
"scenario": [
"Cothias, Patrick"
],
"Designer": [
{
"Title": "Adamov, Philippe",
"Target": "http://www.bedetheque.com/auteur-471-BD-Adamov-Philippe.html"
}
"dessins": [
"Adamov, Philippe"
],
"Colorist": [
{
"Title": "Adamov, Philippe",
"Target": "http://www.bedetheque.com/auteur-471-BD-Adamov-Philippe.html"
}
"couleurs": [
"Adamov, Philippe"
],
"Links": {
"Cothias, Patrick": "http://www.bedetheque.com/auteur-36-BD-Cothias-Patrick.html",
"Adamov, Philippe": "http://www.bedetheque.com/auteur-471-BD-Adamov-Philippe.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 22737,
"ISBN": "2-205-05335-3",
"Series": "Kenya",
"Title": "Rencontres",
"rie": "Kenya",
"titre": "Rencontres",
"Num": 2,
"NumA": "",
"State": 0,
"Author": "",
"Editor": "Dargaud",
"Collection": "",
"SatID": "KEN-2",
"éditeur": "Dargaud",
"collection": "",
"ref": "KEN-2",
"LegalDeposit": "2003-01-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2013-09-03T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/kenyaco02.jpg",
"Description": "",
"description": "",
"Note": 4,
"Scenarist": [
{
"Title": "Leo",
"Target": "http://www.bedetheque.com/auteur-97-BD-Leo.html"
},
{
"Title": "Rodolphe",
"Target": "http://www.bedetheque.com/auteur-128-BD-Rodolphe.html"
}
"scenario": [
"Leo",
"Rodolphe"
],
"Designer": [
{
"Title": "Leo",
"Target": "http://www.bedetheque.com/auteur-97-BD-Leo.html"
}
"dessins": [
"Leo"
],
"Colorist": [
{
"Title": "Scarlett",
"Target": "http://www.bedetheque.com/auteur-1296-BD-Scarlett.html"
}
"couleurs": [
"Scarlett"
],
"Links": {
"Leo": "http://www.bedetheque.com/auteur-97-BD-Leo.html",
"Rodolphe": "http://www.bedetheque.com/auteur-128-BD-Rodolphe.html",
"Scarlett": "http://www.bedetheque.com/auteur-1296-BD-Scarlett.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 32043,
"ISBN": "2226144196",
"Series": "Accros de ...",
"Title": "Rap",
"rie": "Accros de ...",
"titre": "Rap",
"Num": 2,
"NumA": "",
"State": 0,
"Author": "",
"Editor": "Albin Michel",
"Collection": "",
"SatID": "ACC-2",
"éditeur": "Albin Michel",
"collection": "",
"ref": "ACC-2",
"LegalDeposit": "2003-12-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2013-09-04T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/accrocderap.jpg",
"Description": "",
"description": "",
"Note": -1,
"Scenarist": [
{
"Title": "Harty",
"Target": "http://www.bedetheque.com/auteur-6505-BD-Harty.html"
}
"scenario": [
"Harty"
],
"Designer": [
{
"Title": "Joan",
"Target": "http://www.bedetheque.com/auteur-4285-BD-Joan.html"
}
"dessins": [
"Joan"
],
"Colorist": [
{
"Title": "Ptiluc",
"Target": "http://www.bedetheque.com/auteur-125-BD-Ptiluc.html"
}
"couleurs": [
"Ptiluc"
],
"Links": {
"Harty": "http://www.bedetheque.com/auteur-6505-BD-Harty.html",
"Joan": "http://www.bedetheque.com/auteur-4285-BD-Joan.html",
"Ptiluc": "http://www.bedetheque.com/auteur-125-BD-Ptiluc.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 46005,
"ISBN": "",
"Series": "Chick Bill",
"Title": "Le témoin du Rio Grande",
"rie": "Chick Bill",
"titre": "Le témoin du Rio Grande",
"Num": 23,
"NumA": "40",
"State": 0,
"Author": "",
"Editor": "Lombard",
"Collection": "",
"SatID": "CHI-23",
"éditeur": "Lombard",
"collection": "",
"ref": "CHI-23",
"LegalDeposit": "1978-03-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2013-09-06T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/Couv_46005.jpg",
"Description": "",
"description": "",
"Note": 3,
"Scenarist": [
{
"Title": "Tibet",
"Target": "http://www.bedetheque.com/auteur-1791-BD-Tibet.html"
}
"scenario": [
"Tibet"
],
"Designer": [
{
"Title": "Tibet",
"Target": "http://www.bedetheque.com/auteur-1791-BD-Tibet.html"
}
"dessins": [
"Tibet"
],
"Colorist": [
{
"Title": "Tibet",
"Target": "http://www.bedetheque.com/auteur-1791-BD-Tibet.html"
}
"couleurs": [
"Tibet"
],
"Links": {
"Tibet": "http://www.bedetheque.com/auteur-1791-BD-Tibet.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 15875,
"ISBN": "2-226-04878-2",
"Series": "Donc, Jean",
"Title": "...donc, Jean.",
"rie": "Donc, Jean",
"titre": "...donc, Jean.",
"Num": -1,
"NumA": "",
"State": 0,
"Author": "",
"Editor": "Albin Michel",
"Collection": "L'Écho des Savanes",
"SatID": "VEY-09",
"éditeur": "Albin Michel",
"collection": "L'Écho des Savanes",
"ref": "VEY-09",
"LegalDeposit": "1990-10-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2013-12-02T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/Couv_15875.jpg",
"Description": "",
"description": "",
"Note": 4,
"Scenarist": [
{
"Title": "Veyron, Martin",
"Target": "http://www.bedetheque.com/auteur-1491-BD-Veyron-Martin.html"
}
"scenario": [
"Veyron, Martin"
],
"Designer": [
{
"Title": "Veyron, Martin",
"Target": "http://www.bedetheque.com/auteur-1491-BD-Veyron-Martin.html"
}
"dessins": [
"Veyron, Martin"
],
"Colorist": [
{
"Title": "\u003cBichromie\u003e",
"Target": "http://www.bedetheque.com/auteur-6563-BD-Bichromie.html"
}
"couleurs": [
"\u003cBichromie\u003e"
],
"Links": {
"Veyron, Martin": "http://www.bedetheque.com/auteur-1491-BD-Veyron-Martin.html",
"\u003cBichromie\u003e": "http://www.bedetheque.com/auteur-6563-BD-Bichromie.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 84448,
"ISBN": "978-2-353-57030-0",
"Series": "Black Crow",
"Title": "Black Crow raconte L'Hermione - La Conspiration pour la liberté",
"rie": "Black Crow",
"titre": "Black Crow raconte L'Hermione - La Conspiration pour la liberté",
"Num": -1,
"NumA": "HS",
"State": 0,
"Author": "",
"Editor": "Glénat",
"Collection": "Chasse-marée",
"SatID": "CROW-HS",
"éditeur": "Glénat",
"collection": "Chasse-marée",
"ref": "CROW-HS",
"LegalDeposit": "2009-02-01T00:00:00Z",
"PrintDate": "2009-03-01T00:00:00Z",
"PurchaseDate": "2013-10-14T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/84448_c.jpg",
"Description": "À travers lhistoire dune frégate, devenez le témoin de lindépendance du peuple américain au siècle des lumières. En 1778, dans l'arsenal de Rochefort la frégate LHermione est mise en chantier daprès les plans de lingénieur Chevillard Aîné. Pendant près dun an, charpentiers, perceurs, calfats, forgerons et bagnards se relaient pour construire ce navire de près de 45 mètres, doté dune voilure de 1500 m2, de 26 canons pouvant tirer des boulets de 12 livres. En 1779, Gilbert Motier, marquis de La Fayette, cherche... Lire la suite",
"description": "À travers lhistoire dune frégate, devenez le témoin de lindépendance du peuple américain au siècle des lumières. En 1778, dans l'arsenal de Rochefort la frégate LHermione est mise en chantier daprès les plans de lingénieur Chevillard Aîné. Pendant près dun an, charpentiers, perceurs, calfats, forgerons et bagnards se relaient pour construire ce navire de près de 45 mètres, doté dune voilure de 1500 m2, de 26 canons pouvant tirer des boulets de 12 livres. En 1779, Gilbert Motier, marquis de La Fayette, cherche... Lire la suite",
"Note": 3.7,
"Scenarist": [
{
"Title": "Delitte, Jean-Yves",
"Target": "http://www.bedetheque.com/auteur-808-BD-Delitte-Jean-Yves.html"
}
"scenario": [
"Delitte, Jean-Yves"
],
"Designer": [
{
"Title": "Delitte, Jean-Yves",
"Target": "http://www.bedetheque.com/auteur-808-BD-Delitte-Jean-Yves.html"
}
"dessins": [
"Delitte, Jean-Yves"
],
"Colorist": [
{
"Title": "Delitte, Jean-Yves",
"Target": "http://www.bedetheque.com/auteur-808-BD-Delitte-Jean-Yves.html"
}
"couleurs": [
"Delitte, Jean-Yves"
],
"Links": {
"Delitte, Jean-Yves":"http://www.bedetheque.com/auteur-808-BD-Delitte-Jean-Yves.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 160366,
"ISBN": "978-2-8001-5099-4",
"Series": "Ralph Azham",
"Title": "Noires sont les étoiles",
"rie": "Ralph Azham",
"titre": "Noires sont les étoiles",
"Num": 3,
"NumA": "",
"State": 0,
"Author": "",
"Editor": "Dupuis",
"Collection": "Dupuis ",
"SatID": "RALP-03",
"éditeur": "Dupuis",
"collection": "Dupuis ",
"ref": "RALP-03",
"LegalDeposit": "2012-04-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2014-03-31T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/Couv_160366.jpg",
"Description": "Ralph, toujours accompagné par les magiciens Yassou et maître Migachi, a décidé de voler la couronne de Tanghor, dont le pouvoir pourrait rendre la mémoire à sa soeur. Il s'associe à trois voleurs rencontrés sur le bord de la route et se rend à Onophalae, où la couronne magique est conservée en haut d'un pic particulièrement bien protégé. Du moins pour le commun des mortels, car rien ne résiste aux méthodes non- conventionnelles de Ralph. De son côté, le père de Ralph, qui a survécu à l'effondrement du barrage, s'installe à... Lire la suite",
"description": "Ralph, toujours accompagné par les magiciens Yassou et maître Migachi, a décidé de voler la couronne de Tanghor, dont le pouvoir pourrait rendre la mémoire à sa soeur. Il s'associe à trois voleurs rencontrés sur le bord de la route et se rend à Onophalae, où la couronne magique est conservée en haut d'un pic particulièrement bien protégé. Du moins pour le commun des mortels, car rien ne résiste aux méthodes non- conventionnelles de Ralph. De son côté, le père de Ralph, qui a survécu à l'effondrement du barrage, s'installe à... Lire la suite",
"Note": 4.1,
"Scenarist": [
{
"Title": "Trondheim, Lewis",
"Target": "http://www.bedetheque.com/auteur-145-BD-Trondheim-Lewis.html"
}
"scenario": [
"Trondheim, Lewis"
],
"Designer": [
{
"Title": "Trondheim, Lewis",
"Target": "http://www.bedetheque.com/auteur-145-BD-Trondheim-Lewis.html"
}
"dessins": [
"Trondheim, Lewis"
],
"Colorist": [
{
"Title": "Findakly, Brigitte",
"Target": "http://www.bedetheque.com/auteur-1382-BD-Findakly-Brigitte.html"
}
"couleurs": [
"Findakly, Brigitte"
],
"Links": {
"Trondheim, Lewis": "http://www.bedetheque.com/auteur-145-BD-Trondheim-Lewis.html",
"Findakly, Brigitte": "http://www.bedetheque.com/auteur-1382-BD-Findakly-Brigitte.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 754,
"ISBN": "2-7234-1576-7",
"Series": "Max",
"Title": "Bleu d'orient",
"rie": "Max",
"titre": "Bleu d'orient",
"Num": 2,
"NumA": "",
"State": 0,
"Author": "",
"Editor": "Glénat",
"Collection": "Grafica",
"SatID": "MAX-2",
"éditeur": "Glénat",
"collection": "Grafica",
"ref": "MAX-2",
"LegalDeposit": "1993-05-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2013-09-03T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/Couv_754.jpg",
"Description": "",
"description": "",
"Note": -1,
"Scenarist": [
{
"Title": "Bruyninx, Marc",
"Target": "http://www.bedetheque.com/auteur-17-BD-Bruyninx-Marc.html"
}
"scenario": [
"Bruyninx, Marc"
],
"Designer": [
{
"Title": "Bruyninx, Marc",
"Target": "http://www.bedetheque.com/auteur-17-BD-Bruyninx-Marc.html"
}
"dessins": [
"Bruyninx, Marc"
],
"Links": {
"Bruyninx, Marc": "http://www.bedetheque.com/auteur-17-BD-Bruyninx-Marc.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
},
{
"ID": 52100,
"ISBN": "2849461008",
"Series": "Yiu",
"Title": "La chute de l'empire évangéliste",
"rie": "Yiu",
"titre": "La chute de l'empire évangéliste",
"Num": 5,
"NumA": "",
"State": 0,
"Author": "",
"Editor": "Soleil Productions",
"Collection": "",
"SatID": "YIU-5",
"éditeur": "Soleil Productions",
"collection": "",
"ref": "YIU-5",
"LegalDeposit": "2005-11-01T00:00:00Z",
"PrintDate": "0001-01-01T00:00:00Z",
"PurchaseDate": "2013-09-04T00:00:00Z",
"CoverURL": "http://www.bedetheque.com/media/Couvertures/Couv_52100.jpg",
"Description": "",
"description": "",
"Note": 4.4,
"Scenarist": [
{
"Title": "Téhy",
"Target": "http://www.bedetheque.com/auteur-205-BD-Tehy.html"
},
{
"Title": "Vee, J.M.",
"Target": "http://www.bedetheque.com/auteur-8231-BD-Vee-JM.html"
}
"scenario": [
"Téhy",
"Vee, J.M."
],
"Designer": [
{
"Title": "Guénet, Nicolas",
"Target": "http://www.bedetheque.com/auteur-2601-BD-Guenet-Nicolas.html"
}
"dessins": [
"Guénet, Nicolas"
],
"Colorist": [
{
"Title": "Guénet, Nicolas",
"Target": "http://www.bedetheque.com/auteur-2601-BD-Guenet-Nicolas.html"
}
"couleurs": [
"Guénet, Nicolas"
],
"Links" : {
"Téhy": "http://www.bedetheque.com/auteur-205-BD-Tehy.html",
"Vee, J.M.": "http://www.bedetheque.com/auteur-8231-BD-Vee-JM.html",
"Guénet, Nicolas": "http://www.bedetheque.com/auteur-2601-BD-Guenet-Nicolas.html"
},
"FetchDate": "0001-01-01T00:00:00Z"
}
]