summaryrefslogtreecommitdiff
path: root/dotfiles/system/.config/calibre/plugins/Barnes & Noble.zip
blob: 9c3932d67b7528270bf2939fb27f32a0bd5fc830 (plain)
ofshex dumpascii
0000 50 4b 03 04 14 00 00 00 00 00 86 a0 ac 5a 3d 20 12 41 67 05 00 00 67 05 00 00 12 00 00 00 74 72 PK...........Z=..Ag...g.......tr
0020 61 6e 73 6c 61 74 69 6f 6e 73 2f 64 65 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 00 anslations/de.mo................
0040 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00 D...............l...=...m.......
0060 ab 00 00 00 3e 00 00 00 65 01 00 00 7a 00 00 00 a4 01 00 00 98 01 00 00 1f 02 00 00 43 00 00 00 ....>...e...z...............C...
0080 b8 03 00 00 b9 00 00 00 fc 03 00 00 47 00 00 00 b6 04 00 00 68 00 00 00 fe 04 00 00 00 47 65 74 ............G.......h........Get
00a0 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 .all.contributing.authors.(e.g..
00c0 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65 editors,.illustrators.etc).Incre
00e0 61 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d asing.this.value.will.consider.m
0100 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 ore.editions.but.also.increase.s
0120 65 61 72 63 68 20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 earch.times...This.will.increase
0140 20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 .the.potential.likelihood.of.get
0160 74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f ting.a.larger.cover.image.but.do
0180 65 73 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74 es.not.guarantee.it..Maximum.tit
01a0 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c le/author.search.matches.to.eval
01c0 75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70 uate.(1.=.fastest):.When.this.op
01e0 74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65 tion.is.checked,.all.authors.are
0200 20 72 65 74 72 69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 .retrieved...When.unchecked.(def
0220 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 ault).only.the.primary.author(s)
0240 20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f .are.returned..Project-Id-Versio
0260 6e 3a 20 50 41 43 4b 41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d n:.PACKAGE.VERSION.POT-Creation-
0280 44 61 74 65 3a 20 32 30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52 Date:.2024-03-24.17:55+1000.PO-R
02a0 65 76 69 73 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30 evision-Date:.2022-09-08.19:50+0
02c0 30 30 30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20 46 6c 6f 72 65 6e 7a 20 56 69 6c 000.Last-Translator:.Florenz.Vil
02e0 6c 65 67 61 73 2c 20 32 30 32 34 0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 47 65 72 6d 61 legas,.2024.Language-Team:.Germa
0300 6e 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c n.(https://app.transifex.com/cal
0320 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 64 65 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 ibre/teams/19337/de/).MIME-Versi
0340 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e on:.1.0.Content-Type:.text/plain
0360 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 ;.charset=UTF-8.Content-Transfer
0380 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 -Encoding:.8bit.Generated-By:.py
03a0 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20 64 65 0a 50 6c 75 72 gettext.py.1.5.Language:.de.Plur
03c0 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d 32 3b 20 70 6c 75 72 61 6c 3d 28 6e 20 al-Forms:.nplurals=2;.plural=(n.
03e0 21 3d 20 31 29 3b 0a 00 45 72 68 c3 a4 6c 74 20 61 6c 6c 65 20 6d 69 74 77 69 72 6b 65 6e 64 65 !=.1);..Erh..lt.alle.mitwirkende
0400 6e 20 41 75 74 6f 72 65 6e 20 28 7a 2e 42 2e 20 48 65 72 61 75 73 67 65 62 65 72 2c 20 5a 65 69 n.Autoren.(z.B..Herausgeber,.Zei
0420 63 68 6e 65 72 20 75 73 77 2e 29 00 45 69 6e 20 68 c3 b6 68 65 72 65 72 20 57 65 72 74 20 68 69 chner.usw.).Ein.h..herer.Wert.hi
0440 65 72 20 62 65 72 c3 bc 63 6b 73 69 63 68 74 69 67 74 20 6d 65 68 72 20 45 64 69 74 69 6f 6e 65 er.ber..cksichtigt.mehr.Editione
0460 6e 2c 20 76 65 72 6c c3 a4 6e 67 65 72 74 20 61 62 65 72 20 61 75 63 68 20 64 69 65 20 53 75 63 n,.verl..ngert.aber.auch.die.Suc
0480 68 7a 65 69 74 65 6e 2e 0a 0a 44 69 65 73 20 65 72 68 c3 b6 68 74 20 64 69 65 20 57 61 68 72 73 hzeiten...Dies.erh..ht.die.Wahrs
04a0 63 68 65 69 6e 6c 69 63 68 6b 65 69 74 20 61 75 66 20 65 69 6e 20 67 72 c3 b6 c3 9f 65 72 65 73 cheinlichkeit.auf.ein.gr....eres
04c0 20 54 69 74 65 6c 62 69 6c 64 2c 20 67 61 72 61 6e 74 69 65 72 74 20 65 73 20 61 62 65 72 20 6e .Titelbild,.garantiert.es.aber.n
04e0 69 63 68 74 2e 00 4d 61 78 69 6d 61 6c 65 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 53 75 63 68 icht..Maximale.title/author.Such
0500 74 72 65 66 66 65 72 20 7a 75 72 20 42 65 73 74 c3 a4 74 69 67 75 6e 67 20 28 31 20 3d 20 61 6d treffer.zur.Best..tigung.(1.=.am
0520 20 73 63 68 6e 65 6c 6c 73 74 65 6e 29 00 4c c3 a4 64 74 20 61 6c 6c 65 20 41 75 74 6f 72 65 6e .schnellsten).L..dt.alle.Autoren
0540 20 77 65 6e 6e 20 61 6b 74 69 76 69 65 72 74 2e 0a 0a 57 65 6e 6e 20 6e 69 63 68 74 20 61 6b 74 .wenn.aktiviert...Wenn.nicht.akt
0560 69 76 69 65 72 74 20 28 53 74 61 6e 64 61 72 64 29 20 77 65 72 64 65 6e 20 6e 75 72 20 64 69 65 iviert.(Standard).werden.nur.die
0580 20 48 61 75 70 74 61 75 74 6f 72 65 6e 20 67 65 6c 61 64 65 6e 2e 00 50 4b 03 04 14 00 00 00 00 .Hauptautoren.geladen..PK.......
05a0 00 86 a0 ac 5a ef c8 59 08 19 06 00 00 19 06 00 00 12 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e ....Z..Y.............translation
05c0 73 2f 65 73 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00 s/es.mo................D........
05e0 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 .......l...=...m...........>...e
0600 01 00 00 7a 00 00 00 a4 01 00 00 c9 01 00 00 1f 02 00 00 54 00 00 00 e9 03 00 00 e3 00 00 00 3e ...z...............T...........>
0620 04 00 00 61 00 00 00 22 05 00 00 94 00 00 00 84 05 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 ...a..."............Get.all.cont
0640 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 ributing.authors.(e.g..editors,.
0660 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 illustrators.etc).Increasing.thi
0680 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 s.value.will.consider.more.editi
06a0 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d ons.but.also.increase.search.tim
06c0 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 es...This.will.increase.the.pote
06e0 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 ntial.likelihood.of.getting.a.la
0700 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 rger.cover.image.but.does.not.gu
0720 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 arantee.it..Maximum.title/author
0740 20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d .search.matches.to.evaluate.(1.=
0760 20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 .fastest):.When.this.option.is.c
0780 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65 hecked,.all.authors.are.retrieve
07a0 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c d...When.unchecked.(default).onl
07c0 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75 y.the.primary.author(s).are.retu
07e0 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 rned..Project-Id-Version:.PACKAG
0800 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 E.VERSION.POT-Creation-Date:.202
0820 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 4-03-24.17:55+1000.PO-Revision-D
0840 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d ate:.2022-09-08.19:50+0000.Last-
0860 54 72 61 6e 73 6c 61 74 6f 72 3a 20 4a 65 6c 6c 62 79 20 3c 6a 65 6c 6c 62 79 40 79 61 68 6f 6f Translator:.Jellby.<jellby@yahoo
0880 2e 63 6f 6d 3e 2c 20 32 30 32 34 0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 53 70 61 6e 69 .com>,.2024.Language-Team:.Spani
08a0 73 68 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 sh.(https://app.transifex.com/ca
08c0 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 65 73 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 libre/teams/19337/es/).MIME-Vers
08e0 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 ion:.1.0.Content-Type:.text/plai
0900 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 n;.charset=UTF-8.Content-Transfe
0920 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 r-Encoding:.8bit.Generated-By:.p
0940 79 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20 65 73 0a 50 6c 75 ygettext.py.1.5.Language:.es.Plu
0960 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d 33 3b 20 70 6c 75 72 61 6c 3d 6e 20 ral-Forms:.nplurals=3;.plural=n.
0980 3d 3d 20 31 20 3f 20 30 20 3a 20 6e 20 21 3d 20 30 20 26 26 20 6e 20 25 20 31 30 30 30 30 30 30 ==.1.?.0.:.n.!=.0.&&.n.%.1000000
09a0 20 3d 3d 20 30 20 3f 20 31 20 3a 20 32 3b 0a 00 4f 62 74 65 6e 65 72 20 74 6f 64 6f 73 20 6c 6f .==.0.?.1.:.2;..Obtener.todos.lo
09c0 73 20 61 75 74 6f 72 65 73 20 63 6f 6e 74 72 69 62 75 79 65 6e 74 65 73 20 28 70 6f 72 20 65 6a s.autores.contribuyentes.(por.ej
09e0 65 6d 70 6c 6f 2c 20 65 64 69 74 6f 72 65 73 2c 20 69 6c 75 73 74 72 61 64 6f 72 65 73 2c 20 65 emplo,.editores,.ilustradores,.e
0a00 74 63 2e 29 00 53 69 20 73 65 20 61 75 6d 65 6e 74 61 20 65 73 74 65 20 76 61 6c 6f 72 20 73 65 tc.).Si.se.aumenta.este.valor.se
0a20 20 63 6f 6e 73 69 64 65 72 61 72 c3 a1 6e 20 6d c3 a1 73 20 65 64 69 63 69 6f 6e 65 73 20 70 65 .considerar..n.m..s.ediciones.pe
0a40 72 6f 20 74 61 6d 62 69 c3 a9 6e 20 61 75 6d 65 6e 74 61 72 c3 a1 6e 20 6c 6f 73 20 74 69 65 6d ro.tambi..n.aumentar..n.los.tiem
0a60 70 6f 73 20 64 65 20 62 c3 ba 73 71 75 65 64 61 2e 0a 0a 45 73 74 6f 20 69 6e 63 72 65 6d 65 6e pos.de.b..squeda...Esto.incremen
0a80 74 61 72 c3 a1 20 70 6f 74 65 6e 63 69 61 6c 6d 65 6e 74 65 20 6c 61 20 70 72 6f 62 61 62 69 6c tar...potencialmente.la.probabil
0aa0 69 64 61 64 20 64 65 20 6f 62 74 65 6e 65 72 20 75 6e 61 20 69 6d 61 67 65 6e 20 64 65 20 70 6f idad.de.obtener.una.imagen.de.po
0ac0 72 74 61 64 61 20 6d c3 a1 73 20 67 72 61 6e 64 65 2e 0a 70 65 72 6f 20 6e 6f 20 6c 6f 20 67 61 rtada.m..s.grande..pero.no.lo.ga
0ae0 72 61 6e 74 69 7a 61 2e 00 4d c3 a1 78 69 6d 6f 20 6e c3 ba 6d 65 72 6f 20 64 65 20 63 6f 69 6e rantiza..M..ximo.n..mero.de.coin
0b00 63 69 64 65 6e 63 69 61 73 20 64 65 20 62 c3 ba 73 71 75 65 64 61 20 64 65 20 74 c3 ad 74 75 6c cidencias.de.b..squeda.de.t..tul
0b20 6f 20 6f 20 61 75 74 6f 72 20 70 61 72 61 20 65 76 61 6c 75 61 72 20 28 31 20 3d 20 6d c3 a1 73 o.o.autor.para.evaluar.(1.=.m..s
0b40 20 72 c3 a1 70 69 64 6f 29 3a 00 43 75 61 6e 64 6f 20 73 65 20 6d 61 72 63 61 20 65 73 74 61 20 .r..pido):.Cuando.se.marca.esta.
0b60 6f 70 63 69 c3 b3 6e 2c 20 73 65 20 72 65 63 75 70 65 72 61 6e 20 74 6f 64 6f 73 20 6c 6f 73 20 opci..n,.se.recuperan.todos.los.
0b80 61 75 74 6f 72 65 73 2e 0a 0a 43 75 61 6e 64 6f 20 6e 6f 20 65 73 74 c3 a1 20 6d 61 72 63 61 64 autores...Cuando.no.est...marcad
0ba0 61 20 28 70 72 65 64 65 74 65 72 6d 69 6e 61 64 6f 29 2c 20 73 c3 b3 6c 6f 20 73 65 20 64 65 76 a.(predeterminado),.s..lo.se.dev
0bc0 75 65 6c 76 65 6e 20 6c 6f 73 20 61 75 74 6f 72 65 73 20 70 72 69 6e 63 69 70 61 6c 65 73 2e 00 uelven.los.autores.principales..
0be0 50 4b 03 04 14 00 00 00 00 00 86 a0 ac 5a 45 90 fc 94 8b 05 00 00 8b 05 00 00 12 00 00 00 74 72 PK...........ZE...............tr
0c00 61 6e 73 6c 61 74 69 6f 6e 73 2f 66 69 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 00 anslations/fi.mo................
0c20 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00 D...............l...=...m.......
0c40 ab 00 00 00 3e 00 00 00 65 01 00 00 7a 00 00 00 a4 01 00 00 9b 01 00 00 1f 02 00 00 38 00 00 00 ....>...e...z...............8...
0c60 bb 03 00 00 bc 00 00 00 f4 03 00 00 4b 00 00 00 b1 04 00 00 8d 00 00 00 fd 04 00 00 00 47 65 74 ............K................Get
0c80 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 .all.contributing.authors.(e.g..
0ca0 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65 editors,.illustrators.etc).Incre
0cc0 61 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d asing.this.value.will.consider.m
0ce0 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 ore.editions.but.also.increase.s
0d00 65 61 72 63 68 20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 earch.times...This.will.increase
0d20 20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 .the.potential.likelihood.of.get
0d40 74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f ting.a.larger.cover.image.but.do
0d60 65 73 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74 es.not.guarantee.it..Maximum.tit
0d80 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c le/author.search.matches.to.eval
0da0 75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70 uate.(1.=.fastest):.When.this.op
0dc0 74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65 tion.is.checked,.all.authors.are
0de0 20 72 65 74 72 69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 .retrieved...When.unchecked.(def
0e00 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 ault).only.the.primary.author(s)
0e20 20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f .are.returned..Project-Id-Versio
0e40 6e 3a 20 50 41 43 4b 41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d n:.PACKAGE.VERSION.POT-Creation-
0e60 44 61 74 65 3a 20 32 30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52 Date:.2024-03-24.17:55+1000.PO-R
0e80 65 76 69 73 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30 evision-Date:.2022-09-08.19:50+0
0ea0 30 30 30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20 56 65 69 6b 6b 6f 20 4d 75 75 72 000.Last-Translator:.Veikko.Muur
0ec0 69 6b 61 69 6e 65 6e 2c 20 32 30 32 34 0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 46 69 6e ikainen,.2024.Language-Team:.Fin
0ee0 6e 69 73 68 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f nish.(https://app.transifex.com/
0f00 63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 66 69 2f 29 0a 4d 49 4d 45 2d 56 65 calibre/teams/19337/fi/).MIME-Ve
0f20 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c rsion:.1.0.Content-Type:.text/pl
0f40 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 ain;.charset=UTF-8.Content-Trans
0f60 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a fer-Encoding:.8bit.Generated-By:
0f80 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20 66 69 0a 50 .pygettext.py.1.5.Language:.fi.P
0fa0 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d 32 3b 20 70 6c 75 72 61 6c 3d lural-Forms:.nplurals=2;.plural=
0fc0 28 6e 20 21 3d 20 31 29 3b 0a 00 48 61 65 20 6b 61 69 6b 6b 69 20 74 65 6b 69 6a c3 a4 74 20 28 (n.!=.1);..Hae.kaikki.tekij..t.(
0fe0 65 73 69 6d 2e 20 74 6f 69 6d 69 74 74 61 6a 61 74 2c 20 6b 75 76 69 74 74 61 6a 61 74 20 6a 6e esim..toimittajat,.kuvittajat.jn
1000 65 2e 29 00 4a 6f 73 20 74 c3 a4 74 c3 a4 20 61 72 76 6f 61 20 6b 61 73 76 61 74 65 74 61 61 6e e.).Jos.t..t...arvoa.kasvatetaan
1020 2c 20 6f 74 65 74 61 61 6e 20 68 75 6f 6d 69 6f 6f 6e 20 65 6e 65 6d 6d c3 a4 6e 20 70 61 69 6e ,.otetaan.huomioon.enemm..n.pain
1040 6f 6b 73 69 61 2c 20 6d 75 74 74 61 20 6d 79 c3 b6 73 20 68 61 6b 75 61 6a 61 74 20 70 69 74 65 oksia,.mutta.my..s.hakuajat.pite
1060 6e 65 76 c3 a4 74 2e 0a 0a 54 c3 a4 6d c3 a4 20 6c 69 73 c3 a4 c3 a4 20 73 75 75 72 65 6d 6d 61 nev..t...T..m...lis.....suuremma
1080 6e 20 6b 61 6e 73 69 6b 75 76 61 6e 20 73 61 61 6d 69 73 65 6e 20 74 6f 64 65 6e 6e c3 a4 6b c3 n.kansikuvan.saamisen.todenn..k.
10a0 b6 69 73 79 79 74 74 c3 a4 2e 0a 6d 75 74 74 61 20 65 69 20 74 61 6b 61 61 20 73 69 74 c3 a4 2e .isyytt....mutta.ei.takaa.sit...
10c0 00 41 72 76 69 6f 69 74 61 76 69 65 6e 20 6f 74 73 69 6b 6f 6e 2f 74 65 6b 69 6a c3 a4 6e 20 68 .Arvioitavien.otsikon/tekij..n.h
10e0 61 6b 75 6f 73 75 75 6b 73 69 65 6e 20 65 6e 69 6d 6d c3 a4 69 73 6d c3 a4 c3 a4 72 c3 a4 20 28 akuosuuksien.enimm..ism....r...(
1100 31 20 3d 20 6e 6f 70 65 69 6e 29 3a 00 4b 75 6e 20 74 c3 a4 6d c3 a4 20 76 61 69 68 74 6f 65 68 1.=.nopein):.Kun.t..m...vaihtoeh
1120 74 6f 20 6f 6e 20 76 61 6c 69 74 74 75 6e 61 2c 20 6b 61 69 6b 6b 69 20 6b 69 72 6a 6f 69 74 74 to.on.valittuna,.kaikki.kirjoitt
1140 61 6a 61 74 20 68 61 65 74 61 61 6e 2e 0a 0a 4b 75 6e 20 74 c3 a4 74 c3 a4 20 65 69 20 6f 6c 65 ajat.haetaan...Kun.t..t...ei.ole
1160 20 76 61 6c 69 74 74 75 20 28 6f 6c 65 74 75 73 29 2c 20 76 61 69 6e 20 65 6e 73 69 73 69 6a 61 .valittu.(oletus),.vain.ensisija
1180 69 73 65 74 20 74 65 6b 69 6a c3 a4 74 20 70 61 6c 61 75 74 65 74 61 61 6e 2e 00 50 4b 03 04 14 iset.tekij..t.palautetaan..PK...
11a0 00 00 00 00 00 86 a0 ac 5a a4 b4 0f e4 4b 06 00 00 4b 06 00 00 12 00 00 00 74 72 61 6e 73 6c 61 ........Z....K...K.......transla
11c0 74 69 6f 6e 73 2f 66 72 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 00 44 00 00 00 00 tions/fr.mo................D....
11e0 00 00 00 00 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e ...........l...=...m...........>
1200 00 00 00 65 01 00 00 7a 00 00 00 a4 01 00 00 e4 01 00 00 1f 02 00 00 5c 00 00 00 04 04 00 00 e8 ...e...z...............\........
1220 00 00 00 61 04 00 00 5d 00 00 00 4a 05 00 00 a2 00 00 00 a8 05 00 00 00 47 65 74 20 61 6c 6c 20 ...a...]...J............Get.all.
1240 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f contributing.authors.(e.g..edito
1260 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65 61 73 69 6e 67 rs,.illustrators.etc).Increasing
1280 20 74 68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 .this.value.will.consider.more.e
12a0 64 69 74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 65 61 72 63 68 ditions.but.also.increase.search
12c0 20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 .times...This.will.increase.the.
12e0 70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20 potential.likelihood.of.getting.
1300 61 20 6c 61 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f a.larger.cover.image.but.does.no
1320 74 20 67 75 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 t.guarantee.it..Maximum.title/au
1340 74 68 6f 72 20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20 thor.search.matches.to.evaluate.
1360 28 31 20 3d 20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 (1.=.fastest):.When.this.option.
1380 69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65 20 72 65 74 72 is.checked,.all.authors.are.retr
13a0 69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 61 75 6c 74 29 ieved...When.unchecked.(default)
13c0 20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 20 61 72 65 20 .only.the.primary.author(s).are.
13e0 72 65 74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 returned..Project-Id-Version:.PA
1400 43 4b 41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a CKAGE.VERSION.POT-Creation-Date:
1420 20 32 30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69 .2024-03-24.17:55+1000.PO-Revisi
1440 6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c on-Date:.2022-09-08.19:50+0000.L
1460 61 73 74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20 57 61 6c 74 65 72 20 50 61 74 65 72 6e 6f 20 3c ast-Translator:.Walter.Paterno.<
1480 77 61 6c 74 65 72 2e 70 61 74 65 72 6e 6f 40 67 6d 61 69 6c 2e 63 6f 6d 3e 2c 20 32 30 32 32 0a walter.paterno@gmail.com>,.2022.
14a0 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 46 72 65 6e 63 68 20 28 68 74 74 70 73 3a 2f 2f 61 Language-Team:.French.(https://a
14c0 70 70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 pp.transifex.com/calibre/teams/1
14e0 39 33 33 37 2f 66 72 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 9337/fr/).MIME-Version:.1.0.Cont
1500 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 ent-Type:.text/plain;.charset=UT
1520 46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 F-8.Content-Transfer-Encoding:.8
1540 62 69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 bit.Generated-By:.pygettext.py.1
1560 2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20 66 72 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 .5.Language:.fr.Plural-Forms:.np
1580 6c 75 72 61 6c 73 3d 33 3b 20 70 6c 75 72 61 6c 3d 28 6e 20 3d 3d 20 30 20 7c 7c 20 6e 20 3d 3d lurals=3;.plural=(n.==.0.||.n.==
15a0 20 31 29 20 3f 20 30 20 3a 20 6e 20 21 3d 20 30 20 26 26 20 6e 20 25 20 31 30 30 30 30 30 30 20 .1).?.0.:.n.!=.0.&&.n.%.1000000.
15c0 3d 3d 20 30 20 3f 20 31 20 3a 20 32 3b 0a 00 4f 62 74 65 6e 65 7a 20 74 6f 75 73 20 6c 65 73 20 ==.0.?.1.:.2;..Obtenez.tous.les.
15e0 61 75 74 65 75 72 73 20 63 6f 6e 74 72 69 62 75 74 65 75 72 73 20 28 70 61 72 20 65 78 65 6d 70 auteurs.contributeurs.(par.exemp
1600 6c 65 2c 20 6c 65 73 20 c3 a9 64 69 74 65 75 72 73 2c 20 6c 65 73 20 69 6c 6c 75 73 74 72 61 74 le,.les...diteurs,.les.illustrat
1620 65 75 72 73 2c 20 65 74 63 2e 29 00 4c 27 61 75 67 6d 65 6e 74 61 74 69 6f 6e 20 64 65 20 63 65 eurs,.etc.).L'augmentation.de.ce
1640 74 74 65 20 76 61 6c 65 75 72 20 70 72 65 6e 64 72 61 20 65 6e 20 63 6f 6d 70 74 65 20 70 6c 75 tte.valeur.prendra.en.compte.plu
1660 73 20 64 27 c3 a9 64 69 74 69 6f 6e 73 20 6d 61 69 73 20 61 75 67 6d 65 6e 74 65 72 61 20 c3 a9 s.d'..ditions.mais.augmentera...
1680 67 61 6c 65 6d 65 6e 74 20 6c 65 73 20 74 65 6d 70 73 20 64 65 20 72 65 63 68 65 72 63 68 65 2e galement.les.temps.de.recherche.
16a0 0a 0a 43 65 6c 61 20 61 75 67 6d 65 6e 74 65 72 61 20 6c 61 20 70 72 6f 62 61 62 69 6c 69 74 c3 ..Cela.augmentera.la.probabilit.
16c0 a9 20 70 6f 74 65 6e 74 69 65 6c 6c 65 20 64 27 6f 62 74 65 6e 69 72 20 75 6e 65 20 69 6d 61 67 ..potentielle.d'obtenir.une.imag
16e0 65 20 64 65 20 63 6f 75 76 65 72 74 75 72 65 20 70 6c 75 73 20 67 72 61 6e 64 65 0a 6d 61 69 73 e.de.couverture.plus.grande.mais
1700 20 6e 65 20 6c 65 20 67 61 72 61 6e 74 69 74 20 70 61 73 2e 00 4e 6f 6d 62 72 65 20 6d 61 78 69 .ne.le.garantit.pas..Nombre.maxi
1720 6d 61 6c 20 64 65 20 63 6f 72 72 65 73 70 6f 6e 64 61 6e 63 65 73 20 64 65 20 72 65 63 68 65 72 mal.de.correspondances.de.recher
1740 63 68 65 20 74 69 74 72 65 2f 61 75 74 65 75 72 20 c3 a0 20 c3 a9 76 61 6c 75 65 72 20 28 31 20 che.titre/auteur......valuer.(1.
1760 3d 20 6c 65 20 70 6c 75 73 20 72 61 70 69 64 65 29 3a 00 4c 6f 72 73 71 75 65 20 63 65 74 74 65 =.le.plus.rapide):.Lorsque.cette
1780 20 6f 70 74 69 6f 6e 20 65 73 74 20 63 6f 63 68 c3 a9 65 2c 20 74 6f 75 73 20 6c 65 73 20 61 75 .option.est.coch..e,.tous.les.au
17a0 74 65 75 72 73 20 73 6f 6e 74 20 72 c3 a9 63 75 70 c3 a9 72 c3 a9 73 2e 0a 0a 4c 6f 72 73 71 75 teurs.sont.r..cup..r..s...Lorsqu
17c0 27 65 6c 6c 65 20 6e 27 65 73 74 20 70 61 73 20 63 6f 63 68 c3 a9 65 20 28 70 61 72 20 64 c3 a9 'elle.n'est.pas.coch..e.(par.d..
17e0 66 61 75 74 29 2c 20 73 65 75 6c 73 20 6c 65 73 20 61 75 74 65 75 72 28 73 29 20 70 72 69 6e 63 faut),.seuls.les.auteur(s).princ
1800 69 70 61 75 78 20 73 6f 6e 74 20 72 65 6e 76 6f 79 c3 a9 73 2e 00 50 4b 03 04 14 00 00 00 00 00 ipaux.sont.renvoy..s..PK........
1820 86 a0 ac 5a fa 03 c8 3b c2 05 00 00 c2 05 00 00 12 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 ...Z...;............translations
1840 2f 67 6c 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 /gl.mo................D.........
1860 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 ......l...=...m...........>...e.
1880 00 00 7a 00 00 00 a4 01 00 00 a2 01 00 00 1f 02 00 00 51 00 00 00 c2 03 00 00 be 00 00 00 14 04 ..z...............Q.............
18a0 00 00 5c 00 00 00 d3 04 00 00 91 00 00 00 30 05 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 ..\...........0....Get.all.contr
18c0 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 ibuting.authors.(e.g..editors,.i
18e0 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 llustrators.etc).Increasing.this
1900 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f .value.will.consider.more.editio
1920 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 ns.but.also.increase.search.time
1940 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e s...This.will.increase.the.poten
1960 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 tial.likelihood.of.getting.a.lar
1980 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 ger.cover.image.but.does.not.gua
19a0 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 rantee.it..Maximum.title/author.
19c0 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 search.matches.to.evaluate.(1.=.
19e0 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 fastest):.When.this.option.is.ch
1a00 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 ecked,.all.authors.are.retrieved
1a20 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 ...When.unchecked.(default).only
1a40 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 .the.primary.author(s).are.retur
1a60 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 ned..Project-Id-Version:.PACKAGE
1a80 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 .VERSION.POT-Creation-Date:.2024
1aa0 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 -03-24.17:55+1000.PO-Revision-Da
1ac0 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 te:.2022-09-08.19:50+0000.Last-T
1ae0 72 61 6e 73 6c 61 74 6f 72 3a 20 6e 69 6e 20 68 75 6d 20 3c 6e 69 6e 68 75 6d 40 67 6d 78 2e 63 ranslator:.nin.hum.<ninhum@gmx.c
1b00 6f 6d 3e 2c 20 32 30 32 34 0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 47 61 6c 69 63 69 61 om>,.2024.Language-Team:.Galicia
1b20 6e 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c n.(https://app.transifex.com/cal
1b40 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 67 6c 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 ibre/teams/19337/gl/).MIME-Versi
1b60 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e on:.1.0.Content-Type:.text/plain
1b80 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 ;.charset=UTF-8.Content-Transfer
1ba0 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 -Encoding:.8bit.Generated-By:.py
1bc0 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20 67 6c 0a 50 6c 75 72 gettext.py.1.5.Language:.gl.Plur
1be0 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d 32 3b 20 70 6c 75 72 61 6c 3d 28 6e 20 al-Forms:.nplurals=2;.plural=(n.
1c00 21 3d 20 31 29 3b 0a 00 4f 62 74 c3 a9 6e 20 74 6f 64 6f 73 20 6f 73 20 61 75 74 6f 72 65 73 20 !=.1);..Obt..n.todos.os.autores.
1c20 71 75 65 20 63 6f 6c 61 62 6f 72 61 6e 20 28 70 6f 72 20 65 78 65 6d 70 6c 6f 2c 20 65 64 69 74 que.colaboran.(por.exemplo,.edit
1c40 6f 72 65 73 2c 20 69 6c 75 73 74 72 61 64 6f 72 65 73 2c 20 65 74 63 2e 29 00 41 75 6d 65 6e 74 ores,.ilustradores,.etc.).Aument
1c60 61 72 20 65 73 74 65 20 76 61 6c 6f 72 20 74 65 72 c3 a1 20 65 6e 20 63 6f 6e 74 61 20 6d c3 a1 ar.este.valor.ter...en.conta.m..
1c80 69 73 20 65 64 69 63 69 c3 b3 6e 73 20 70 65 72 6f 20 74 61 6d c3 a9 6e 20 61 75 6d 65 6e 74 61 is.edici..ns.pero.tam..n.aumenta
1ca0 72 c3 a1 20 6f 73 20 74 65 6d 70 6f 73 20 64 65 20 62 75 73 63 61 2e 0a 0a 49 73 74 6f 20 61 75 r...os.tempos.de.busca...Isto.au
1cc0 6d 65 6e 74 61 72 c3 a1 20 61 20 70 72 6f 62 61 62 69 6c 69 64 61 64 65 20 64 65 20 6f 62 74 65 mentar...a.probabilidade.de.obte
1ce0 72 20 75 6e 68 61 20 69 6d 61 78 65 20 64 65 20 70 6f 72 74 61 64 61 20 6d c3 a1 69 73 20 67 72 r.unha.imaxe.de.portada.m..is.gr
1d00 61 6e 64 65 0a 70 65 72 6f 20 6e 6f 6e 20 6f 20 67 61 72 61 6e 74 65 2e 00 4e c3 ba 6d 65 72 6f ande.pero.non.o.garante..N..mero
1d20 20 6d c3 a1 78 69 6d 6f 20 64 65 20 63 6f 69 6e 63 69 64 65 6e 63 69 61 73 20 64 65 20 62 75 73 .m..ximo.de.coincidencias.de.bus
1d40 63 61 20 64 65 20 74 c3 ad 74 75 6c 6f 2f 61 75 74 6f 72 20 70 61 72 61 20 61 76 61 6c 69 61 72 ca.de.t..tulo/autor.para.avaliar
1d60 20 28 31 20 3d 20 6d c3 a1 69 73 20 72 c3 a1 70 69 64 6f 29 3a 00 43 61 6e 64 6f 20 65 73 74 61 .(1.=.m..is.r..pido):.Cando.esta
1d80 20 6f 70 63 69 c3 b3 6e 20 65 73 74 c3 a1 20 6d 61 72 63 61 64 61 2c 20 74 6f 64 6f 73 20 6f 73 .opci..n.est...marcada,.todos.os
1da0 20 61 75 74 6f 72 65 73 20 73 6f 6e 20 72 65 63 75 70 65 72 61 64 6f 73 2e 0a 0a 43 61 6e 64 6f .autores.son.recuperados...Cando
1dc0 20 73 65 20 64 65 73 6d 61 72 63 61 20 28 70 72 65 64 65 74 65 72 6d 69 6e 61 64 6f 29 2c 20 73 .se.desmarca.(predeterminado),.s
1de0 c3 b3 20 73 65 20 64 65 76 6f 6c 76 65 6e 20 6f 73 20 61 75 74 6f 72 28 65 73 29 20 70 72 69 6e ...se.devolven.os.autor(es).prin
1e00 63 69 70 61 69 73 2e 00 50 4b 03 04 14 00 00 00 00 00 87 a0 ac 5a 68 a2 95 1f f6 05 00 00 f6 05 cipais..PK...........Zh.........
1e20 00 00 12 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 6a 61 2e 6d 6f de 12 04 95 00 00 00 00 ......translations/ja.mo........
1e40 05 00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 ........D...............l...=...
1e60 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 00 00 7a 00 00 00 a4 01 00 00 a0 01 00 00 m...........>...e...z...........
1e80 1f 02 00 00 69 00 00 00 c0 03 00 00 d7 00 00 00 2a 04 00 00 4f 00 00 00 02 05 00 00 a3 00 00 00 ....i...........*...O...........
1ea0 52 05 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 R....Get.all.contributing.author
1ec0 73 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 s.(e.g..editors,.illustrators.et
1ee0 63 29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f c).Increasing.this.value.will.co
1f00 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e nsider.more.editions.but.also.in
1f20 63 72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 crease.search.times...This.will.
1f40 69 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f increase.the.potential.likelihoo
1f60 64 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 d.of.getting.a.larger.cover.imag
1f80 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 e.but.does.not.guarantee.it..Max
1fa0 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 imum.title/author.search.matches
1fc0 20 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e .to.evaluate.(1.=.fastest):.When
1fe0 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 .this.option.is.checked,.all.aut
2000 68 6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 hors.are.retrieved...When.unchec
2020 6b 65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 ked.(default).only.the.primary.a
2040 75 74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 uthor(s).are.returned..Project-I
2060 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 d-Version:.PACKAGE.VERSION.POT-C
2080 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 reation-Date:.2024-03-24.17:55+1
20a0 30 30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 000.PO-Revision-Date:.2022-09-08
20c0 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20 50 6b 31 .19:50+0000.Last-Translator:.Pk1
20e0 31 20 3c 65 70 69 63 70 6b 6d 6e 31 31 40 6f 75 74 6c 6f 6f 6b 2e 63 6f 6d 3e 2c 20 32 30 32 32 1.<epicpkmn11@outlook.com>,.2022
2100 0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 4a 61 70 61 6e 65 73 65 20 28 68 74 74 70 73 3a .Language-Team:.Japanese.(https:
2120 2f 2f 61 70 70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65 2f 74 65 61 6d //app.transifex.com/calibre/team
2140 73 2f 31 39 33 33 37 2f 6a 61 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 s/19337/ja/).MIME-Version:.1.0.C
2160 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74 ontent-Type:.text/plain;.charset
2180 3d 55 54 46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 =UTF-8.Content-Transfer-Encoding
21a0 3a 20 38 62 69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 67 65 74 74 65 78 74 2e 70 :.8bit.Generated-By:.pygettext.p
21c0 79 20 31 2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20 6a 61 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a y.1.5.Language:.ja.Plural-Forms:
21e0 20 6e 70 6c 75 72 61 6c 73 3d 31 3b 20 70 6c 75 72 61 6c 3d 30 3b 0a 00 e5 85 a8 e3 81 a6 e3 81 .nplurals=1;.plural=0;..........
2200 ae e8 b2 a2 e7 8c ae e3 81 99 e3 82 8b e8 91 97 e8 80 85 e3 82 92 e5 8f 96 e5 be 97 e3 81 97 e3 ................................
2220 81 be e3 81 99 ef bc 88 e4 be 8b ef bc 9a e3 82 a8 e3 83 87 e3 82 a3 e3 82 bf e3 83 bc e3 80 81 ................................
2240 e3 82 a4 e3 83 a9 e3 82 b9 e3 83 88 e3 83 ac e3 83 bc e3 82 bf e3 83 bc e3 81 aa e3 81 a9 ef bc ................................
2260 89 00 e3 81 93 e3 82 8c e3 82 92 e4 b8 8a e3 81 92 e3 82 8b e3 81 a8 e3 80 81 e3 82 82 e3 81 a3 ................................
2280 e3 81 a8 e3 82 a8 e3 83 87 e3 82 a3 e3 82 b7 e3 83 a7 e3 83 b3 e3 82 92 e7 a2 ba e8 aa 8d e3 81 ................................
22a0 99 e3 82 8b e3 81 8c e6 a4 9c e7 b4 a2 e6 99 82 e9 96 93 e3 82 92 e4 b8 8a e3 81 92 e3 82 89 e3 ................................
22c0 82 8c e3 82 8b e3 80 82 0a 0a e3 82 88 e3 82 8a e5 a4 a7 e3 81 8d e3 81 aa e8 a1 a8 e7 b4 99 e7 ................................
22e0 94 bb e5 83 8f e3 81 8c e5 be 97 e3 82 89 e3 82 8c e3 82 8b e5 8f af e8 83 bd e6 80 a7 e3 82 92 ................................
2300 e4 b8 8a e3 81 92 e3 82 8b e3 81 8c e3 80 81 e4 bf 9d e8 a8 bc e3 81 99 e3 82 8b e3 82 82 e3 81 ................................
2320 ae e3 81 a7 e3 81 af e3 81 82 e3 82 8a e3 81 be e3 81 9b e3 82 93 e3 80 82 00 e3 82 bf e3 82 a4 ................................
2340 e3 83 88 e3 83 ab e3 83 bb e8 91 97 e8 80 85 e3 81 ae e6 a4 9c e7 b4 a2 e3 82 92 e5 ae 9f e8 a1 ................................
2360 8c e3 81 97 e3 81 be e3 81 99 e3 81 ae e6 9c 80 e5 a4 a7 e6 95 b0 ef bc 88 31 20 3d 20 e9 ab 98 .........................1.=....
2380 e9 80 9f ef bc 89 ef bc 9a 00 e3 81 93 e3 82 8c e3 82 92 e3 83 81 e3 82 a7 e3 83 83 e3 82 af e3 ................................
23a0 81 99 e3 82 8b e3 81 a8 e3 80 81 e5 85 a8 e3 81 a6 e3 81 ae e8 91 97 e8 80 85 e3 81 8c e5 8f 96 ................................
23c0 e5 be 97 e3 81 95 e3 82 8c e3 81 be e3 81 99 e3 80 82 0a 0a e3 83 81 e3 82 a7 e3 83 83 e3 82 af ................................
23e0 e8 a7 a3 e9 99 a4 e3 81 99 e3 82 8b 28 e3 83 87 e3 83 95 e3 82 a9 e3 83 ab e3 83 88 29 e3 81 a8 ............(...............)...
2400 e3 80 81 e4 b8 bb e3 81 aa e8 91 97 e8 80 85 e3 81 ae e3 81 bf e3 81 8c e5 8f 96 e5 be 97 e3 81 ................................
2420 95 e3 82 8c e3 81 be e3 81 99 e3 80 82 00 50 4b 03 04 14 00 00 00 00 00 87 a0 ac 5a c7 30 7a b3 ..............PK...........Z.0z.
2440 77 05 00 00 77 05 00 00 12 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 6e 6c 2e 6d 6f de 12 w...w.......translations/nl.mo..
2460 04 95 00 00 00 00 05 00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6c 00 ..............D...............l.
2480 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 00 00 7a 00 00 00 a4 01 ..=...m...........>...e...z.....
24a0 00 00 9e 01 00 00 1f 02 00 00 44 00 00 00 be 03 00 00 b4 00 00 00 03 04 00 00 47 00 00 00 b8 04 ..........D...............G.....
24c0 00 00 76 00 00 00 00 05 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 ..v........Get.all.contributing.
24e0 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 authors.(e.g..editors,.illustrat
2500 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 20 77 ors.etc).Increasing.this.value.w
2520 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 75 74 20 61 ill.consider.more.editions.but.a
2540 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 lso.increase.search.times...This
2560 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b .will.increase.the.potential.lik
2580 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 63 6f 76 65 elihood.of.getting.a.larger.cove
25a0 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 20 69 r.image.but.does.not.guarantee.i
25c0 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 20 6d t..Maximum.title/author.search.m
25e0 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73 74 29 atches.to.evaluate.(1.=.fastest)
2600 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c 20 61 :.When.this.option.is.checked,.a
2620 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 ll.authors.are.retrieved...When.
2640 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70 72 69 unchecked.(default).only.the.pri
2660 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 00 50 72 6f mary.author(s).are.returned..Pro
2680 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20 56 45 52 53 49 4f 4e ject-Id-Version:.PACKAGE.VERSION
26a0 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d 30 33 2d 32 34 20 31 .POT-Creation-Date:.2024-03-24.1
26c0 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 7:55+1000.PO-Revision-Date:.2022
26e0 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c 61 74 6f -09-08.19:50+0000.Last-Translato
2700 72 3a 20 70 65 74 65 72 20 3c 6b 6c 6d 40 64 69 74 62 65 6e 69 6b 2e 62 65 3e 2c 20 32 30 32 32 r:.peter.<klm@ditbenik.be>,.2022
2720 0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 44 75 74 63 68 20 28 68 74 74 70 73 3a 2f 2f 61 .Language-Team:.Dutch.(https://a
2740 70 70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 pp.transifex.com/calibre/teams/1
2760 39 33 33 37 2f 6e 6c 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 9337/nl/).MIME-Version:.1.0.Cont
2780 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 ent-Type:.text/plain;.charset=UT
27a0 46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 F-8.Content-Transfer-Encoding:.8
27c0 62 69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 bit.Generated-By:.pygettext.py.1
27e0 2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20 6e 6c 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 .5.Language:.nl.Plural-Forms:.np
2800 6c 75 72 61 6c 73 3d 32 3b 20 70 6c 75 72 61 6c 3d 28 6e 20 21 3d 20 31 29 3b 0a 00 48 61 61 6c lurals=2;.plural=(n.!=.1);..Haal
2820 20 61 6c 6c 65 20 62 69 6a 64 72 61 67 65 6e 64 65 20 61 75 74 65 75 72 73 20 6f 70 20 28 62 76 .alle.bijdragende.auteurs.op.(bv
2840 2e 20 62 65 77 65 72 6b 65 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73 2c 20 65 6e 7a 2e 29 ..bewerkers,.illustrators,.enz.)
2860 00 44 65 7a 65 20 77 61 61 72 64 65 20 76 65 72 68 6f 67 65 6e 20 6e 65 65 6d 74 20 6d 65 65 72 .Deze.waarde.verhogen.neemt.meer
2880 20 65 64 69 74 69 65 73 20 69 6e 20 6f 76 65 72 77 65 67 69 6e 67 20 6d 61 61 72 20 76 65 72 68 .edities.in.overweging.maar.verh
28a0 6f 6f 67 74 20 6f 6f 6b 20 7a 6f 65 6b 74 69 6a 64 65 6e 2e 0a 0a 44 69 74 20 76 65 72 67 72 6f oogt.ook.zoektijden...Dit.vergro
28c0 6f 74 20 20 64 65 20 6b 61 6e 73 20 6f 70 20 68 65 74 20 76 69 6e 64 65 6e 20 76 61 6e 20 65 65 ot..de.kans.op.het.vinden.van.ee
28e0 6e 20 67 72 6f 74 65 72 65 20 6f 6d 73 6c 61 67 61 66 62 65 65 6c 64 69 6e 67 0a 6d 61 61 72 20 n.grotere.omslagafbeelding.maar.
2900 67 65 65 66 74 20 67 65 65 6e 20 20 67 61 72 61 6e 74 69 65 2e 00 4d 61 78 69 6d 75 6d 20 61 61 geeft.geen..garantie..Maximum.aa
2920 6e 74 61 6c 20 74 65 20 6f 76 65 72 77 65 67 65 6e 20 74 69 74 65 6c 2f 61 75 74 65 75 72 20 7a ntal.te.overwegen.titel/auteur.z
2940 6f 65 6b 6f 76 65 72 65 65 6e 6b 6f 6d 73 74 65 6e 20 28 31 3d 73 6e 65 6c 73 74 29 3a 00 41 6c oekovereenkomsten.(1=snelst):.Al
2960 73 20 64 65 7a 65 20 6f 70 74 69 65 20 69 73 20 61 61 6e 67 65 76 69 6e 6b 74 20 77 6f 72 64 65 s.deze.optie.is.aangevinkt.worde
2980 6e 20 61 6c 6c 65 20 61 75 74 65 75 72 73 20 6f 70 67 65 68 61 61 6c 64 2e 0a 0a 4e 69 65 74 20 n.alle.auteurs.opgehaald...Niet.
29a0 61 61 6e 76 69 6e 6b 65 6e 20 28 73 74 61 6e 64 61 61 72 64 29 20 67 65 65 66 74 20 65 6e 6b 65 aanvinken.(standaard).geeft.enke
29c0 6c 20 64 65 20 68 6f 6f 66 64 61 75 74 65 75 72 28 73 29 2e 00 50 4b 03 04 14 00 00 00 00 00 87 l.de.hoofdauteur(s)..PK.........
29e0 a0 ac 5a 61 3a 02 b5 60 06 00 00 60 06 00 00 12 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f ..Za:..`...`.......translations/
2a00 70 6c 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 00 pl.mo................D..........
2a20 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 00 .....l...=...m...........>...e..
2a40 00 7a 00 00 00 a4 01 00 00 42 02 00 00 1f 02 00 00 3f 00 00 00 62 04 00 00 e0 00 00 00 a2 04 00 .z.......B.......?...b..........
2a60 00 4c 00 00 00 83 05 00 00 8f 00 00 00 d0 05 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69 .L................Get.all.contri
2a80 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c buting.authors.(e.g..editors,.il
2aa0 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20 lustrators.etc).Increasing.this.
2ac0 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e value.will.consider.more.edition
2ae0 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73 s.but.also.increase.search.times
2b00 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74 ...This.will.increase.the.potent
2b20 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67 ial.likelihood.of.getting.a.larg
2b40 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72 er.cover.image.but.does.not.guar
2b60 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73 antee.it..Maximum.title/author.s
2b80 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66 earch.matches.to.evaluate.(1.=.f
2ba0 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65 astest):.When.this.option.is.che
2bc0 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e cked,.all.authors.are.retrieved.
2be0 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20 ..When.unchecked.(default).only.
2c00 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 6e the.primary.author(s).are.return
2c20 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20 ed..Project-Id-Version:.PACKAGE.
2c40 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d VERSION.POT-Creation-Date:.2024-
2c60 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74 03-24.17:55+1000.PO-Revision-Dat
2c80 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72 e:.2022-09-08.19:50+0000.Last-Tr
2ca0 61 6e 73 6c 61 74 6f 72 3a 20 4d 61 72 63 69 6e 20 4b 6f 7a 69 6f c5 82 20 3c 6b 6f 7a 69 6f 6c anslator:.Marcin.Kozio...<koziol
2cc0 2e 6d 61 72 74 69 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 2c 20 32 30 32 33 0a 4c 61 6e 67 75 61 67 .martin@gmail.com>,.2023.Languag
2ce0 65 2d 54 65 61 6d 3a 20 50 6f 6c 69 73 68 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e e-Team:.Polish.(https://app.tran
2d00 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 70 6c sifex.com/calibre/teams/19337/pl
2d20 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 /).MIME-Version:.1.0.Content-Typ
2d40 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e e:.text/plain;.charset=UTF-8.Con
2d60 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e tent-Transfer-Encoding:.8bit.Gen
2d80 65 72 61 74 65 64 2d 42 79 3a 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67 erated-By:.pygettext.py.1.5.Lang
2da0 75 61 67 65 3a 20 70 6c 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d uage:.pl.Plural-Forms:.nplurals=
2dc0 34 3b 20 70 6c 75 72 61 6c 3d 28 6e 3d 3d 31 20 3f 20 30 20 3a 20 28 6e 25 31 30 3e 3d 32 20 26 4;.plural=(n==1.?.0.:.(n%10>=2.&
2de0 26 20 6e 25 31 30 3c 3d 34 29 20 26 26 20 28 6e 25 31 30 30 3c 31 32 20 7c 7c 20 6e 25 31 30 30 &.n%10<=4).&&.(n%100<12.||.n%100
2e00 3e 31 34 29 20 3f 20 31 20 3a 20 6e 21 3d 31 20 26 26 20 28 6e 25 31 30 3e 3d 30 20 26 26 20 6e >14).?.1.:.n!=1.&&.(n%10>=0.&&.n
2e20 25 31 30 3c 3d 31 29 20 7c 7c 20 28 6e 25 31 30 3e 3d 35 20 26 26 20 6e 25 31 30 3c 3d 39 29 20 %10<=1).||.(n%10>=5.&&.n%10<=9).
2e40 7c 7c 20 28 6e 25 31 30 30 3e 3d 31 32 20 26 26 20 6e 25 31 30 30 3c 3d 31 34 29 20 3f 20 32 20 ||.(n%100>=12.&&.n%100<=14).?.2.
2e60 3a 20 33 29 3b 0a 00 50 6f 62 69 65 72 7a 20 77 73 7a 79 73 74 6b 69 63 68 20 61 75 74 6f 72 c3 :.3);..Pobierz.wszystkich.autor.
2e80 b3 77 20 28 6e 70 2e 20 65 64 79 74 6f 72 c3 b3 77 2c 20 69 6c 75 73 74 72 61 74 6f 72 c3 b3 77 .w.(np..edytor..w,.ilustrator..w
2ea0 20 69 74 70 2e 29 00 5a 77 69 c4 99 6b 73 7a 65 6e 69 65 20 74 65 6a 20 77 61 72 74 6f c5 9b 63 .itp.).Zwi..kszenie.tej.warto..c
2ec0 69 20 73 70 6f 77 6f 64 75 6a 65 20 75 77 7a 67 6c c4 99 64 6e 69 65 6e 69 65 20 77 69 c4 99 6b i.spowoduje.uwzgl..dnienie.wi..k
2ee0 73 7a 65 6a 20 6c 69 63 7a 62 79 20 77 79 64 61 c5 84 2c 20 61 6c 65 20 74 61 6b c5 bc 65 20 77 szej.liczby.wyda..,.ale.tak..e.w
2f00 79 64 c5 82 75 c5 bc 79 20 63 7a 61 73 20 77 79 73 7a 75 6b 69 77 61 6e 69 61 2e 0a 0a 5a 77 69 yd..u..y.czas.wyszukiwania...Zwi
2f20 c4 99 6b 73 7a 79 20 74 6f 20 70 6f 74 65 6e 63 6a 61 6c 6e 65 20 70 72 61 77 64 6f 70 6f 64 6f ..kszy.to.potencjalne.prawdopodo
2f40 62 69 65 c5 84 73 74 77 6f 20 75 7a 79 73 6b 61 6e 69 61 20 77 69 c4 99 6b 73 7a 65 67 6f 20 6f bie..stwo.uzyskania.wi..kszego.o
2f60 62 72 61 7a 75 20 6f 6b c5 82 61 64 6b 69 0a 61 6c 65 20 74 65 67 6f 20 6e 69 65 20 67 77 61 72 brazu.ok..adki.ale.tego.nie.gwar
2f80 61 6e 74 75 6a 65 2e 00 4d 61 6b 73 79 6d 61 6c 6e 61 20 69 6c 6f c5 9b c4 87 20 64 6f 70 61 73 antuje..Maksymalna.ilo.....dopas
2fa0 6f 77 61 c5 84 20 74 79 74 75 c5 82 2f 61 75 74 6f 72 20 64 6f 20 6f 73 7a 61 63 6f 77 61 6e 69 owa...tytu../autor.do.oszacowani
2fc0 61 20 28 31 20 3d 20 6e 61 6a 73 7a 79 62 63 69 65 6a 29 3a 00 47 64 79 20 6f 70 63 6a 61 20 6a a.(1.=.najszybciej):.Gdy.opcja.j
2fe0 65 73 74 20 7a 61 7a 6e 61 63 7a 6f 6e 61 2c 20 70 6f 62 69 65 72 61 6e 69 20 73 c4 85 20 77 73 est.zaznaczona,.pobierani.s...ws
3000 7a 79 73 63 79 20 61 75 74 6f 72 7a 79 2e 0a 0a 47 64 79 20 6f 70 63 6a 61 20 6a 65 73 74 20 6f zyscy.autorzy...Gdy.opcja.jest.o
3020 64 7a 6e 61 63 7a 6f 6e 61 20 28 64 6f 6d 79 c5 9b 6c 6e 69 65 29 20 7a 77 72 61 63 61 6e 79 20 dznaczona.(domy..lnie).zwracany.
3040 6a 65 73 74 20 74 79 6c 6b 6f 20 67 c5 82 c3 b3 77 6e 79 20 61 75 74 6f 72 20 28 61 75 74 6f 72 jest.tylko.g....wny.autor.(autor
3060 7a 79 29 2e 00 50 4b 03 04 14 00 00 00 00 00 87 a0 ac 5a 19 79 dd 7f 51 06 00 00 51 06 00 00 12 zy)..PK...........Z.y..Q...Q....
3080 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 70 74 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 ...translations/pt.mo...........
30a0 00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 .....D...............l...=...m..
30c0 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 00 00 7a 00 00 00 a4 01 00 00 e5 01 00 00 1f 02 00 .........>...e...z..............
30e0 00 4b 00 00 00 05 04 00 00 cb 00 00 00 51 04 00 00 6e 00 00 00 1d 05 00 00 c4 00 00 00 8c 05 00 .K...........Q...n..............
3100 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 ..Get.all.contributing.authors.(
3120 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00 e.g..editors,.illustrators.etc).
3140 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 Increasing.this.value.will.consi
3160 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 der.more.editions.but.also.incre
3180 61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 ase.search.times...This.will.inc
31a0 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f rease.the.potential.likelihood.o
31c0 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 f.getting.a.larger.cover.image.b
31e0 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 ut.does.not.guarantee.it..Maximu
3200 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f m.title/author.search.matches.to
3220 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 .evaluate.(1.=.fastest):.When.th
3240 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 is.option.is.checked,.all.author
3260 73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 s.are.retrieved...When.unchecked
3280 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 .(default).only.the.primary.auth
32a0 6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 or(s).are.returned..Project-Id-V
32c0 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 ersion:.PACKAGE.VERSION.POT-Crea
32e0 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 tion-Date:.2024-03-24.17:55+1000
3300 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 .PO-Revision-Date:.2022-09-08.19
3320 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20 50 61 75 6c 6f 20 :50+0000.Last-Translator:.Paulo.
3340 50 65 72 65 69 72 61 20 3c 70 61 75 6c 6f 69 7a 69 64 6f 72 6f 40 67 6d 61 69 6c 2e 63 6f 6d 3e Pereira.<pauloizidoro@gmail.com>
3360 2c 20 32 30 32 34 0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 50 6f 72 74 75 67 75 65 73 65 ,.2024.Language-Team:.Portuguese
3380 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 .(https://app.transifex.com/cali
33a0 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 70 74 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f bre/teams/19337/pt/).MIME-Versio
33c0 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b n:.1.0.Content-Type:.text/plain;
33e0 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d .charset=UTF-8.Content-Transfer-
3400 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 67 Encoding:.8bit.Generated-By:.pyg
3420 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20 70 74 0a 50 6c 75 72 61 ettext.py.1.5.Language:.pt.Plura
3440 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d 33 3b 20 70 6c 75 72 61 6c 3d 28 6e 20 3d l-Forms:.nplurals=3;.plural=(n.=
3460 3d 20 30 20 7c 7c 20 6e 20 3d 3d 20 31 29 20 3f 20 30 20 3a 20 6e 20 21 3d 20 30 20 26 26 20 6e =.0.||.n.==.1).?.0.:.n.!=.0.&&.n
3480 20 25 20 31 30 30 30 30 30 30 20 3d 3d 20 30 20 3f 20 31 20 3a 20 32 3b 0a 00 4f 62 74 65 72 20 .%.1000000.==.0.?.1.:.2;..Obter.
34a0 6f 73 20 6e 6f 6d 65 73 20 64 65 20 74 6f 64 6f 73 20 6f 73 20 63 6f 6c 61 62 6f 72 61 64 6f 72 os.nomes.de.todos.os.colaborador
34c0 65 73 20 28 65 78 2e 20 65 64 69 74 6f 72 65 73 2c 20 69 6c 75 73 74 72 61 64 6f 72 65 73 2c 20 es.(ex..editores,.ilustradores,.
34e0 65 74 63 2e 29 00 49 6e 63 72 65 6d 65 6e 74 61 6e 64 6f 2d 73 65 20 65 73 74 65 20 76 61 6c 6f etc.).Incrementando-se.este.valo
3500 72 2c 20 73 65 72 c3 a3 6f 20 63 6f 6e 73 69 64 65 72 61 64 61 73 20 6d 61 69 73 20 65 64 69 c3 r,.ser..o.consideradas.mais.edi.
3520 a7 c3 b5 65 73 2c 20 70 6f 72 c3 a9 6d 20 6f 20 74 65 6d 70 6f 20 64 65 20 70 65 73 71 75 69 73 ...es,.por..m.o.tempo.de.pesquis
3540 61 20 74 61 6d 62 c3 a9 6d 20 61 75 6d 65 6e 74 61 72 c3 a1 2e 0a 0a 49 73 74 6f 20 61 75 6d 65 a.tamb..m.aumentar.....Isto.aume
3560 6e 74 61 72 c3 a1 20 70 6f 73 73 69 62 69 6c 69 64 61 64 65 20 64 65 20 73 65 20 6f 62 74 65 72 ntar...possibilidade.de.se.obter
3580 20 69 6d 61 67 65 6e 73 20 6d 61 69 6f 72 65 73 20 64 61 73 20 63 61 70 61 73 20 6d 61 73 20 6e .imagens.maiores.das.capas.mas.n
35a0 c3 a3 6f 20 c3 a9 20 67 61 72 61 6e 74 69 64 6f 2e 00 51 75 61 6e 74 69 64 61 64 65 20 6d c3 a1 ..o....garantido..Quantidade.m..
35c0 78 69 6d 61 20 64 65 20 63 6f 72 72 65 73 70 6f 6e 64 c3 aa 6e 63 69 61 73 20 64 65 20 70 65 73 xima.de.correspond..ncias.de.pes
35e0 71 75 69 73 61 20 70 6f 72 20 74 c3 ad 74 75 6c 6f 2f 61 75 74 6f 72 20 61 20 73 65 72 65 6d 20 quisa.por.t..tulo/autor.a.serem.
3600 63 6f 6e 73 69 64 65 72 61 64 61 73 20 28 31 20 3d 20 6d 61 69 73 20 72 c3 a1 70 69 64 6f 29 3a consideradas.(1.=.mais.r..pido):
3620 00 51 75 61 6e 64 6f 20 65 73 74 61 20 6f 70 c3 a7 c3 a3 6f 20 65 73 74 69 76 65 72 20 6d 61 72 .Quando.esta.op....o.estiver.mar
3640 63 61 64 61 2c 20 73 65 72 c3 a3 6f 20 6f 62 74 69 64 6f 73 20 74 6f 64 6f 73 20 6f 73 20 6e 6f cada,.ser..o.obtidos.todos.os.no
3660 6d 65 73 20 64 65 20 61 75 74 6f 72 65 73 20 65 20 63 6f 6c 61 62 6f 72 61 64 6f 72 65 73 2e 0a mes.de.autores.e.colaboradores..
3680 0a 45 73 74 61 6e 64 6f 20 64 65 73 6d 61 72 63 61 64 61 20 28 63 6f 6e 66 69 67 75 72 61 c3 a7 .Estando.desmarcada.(configura..
36a0 c3 a3 6f 20 70 61 64 72 c3 a3 6f 29 2c 20 61 70 65 6e 61 73 20 6f 73 20 6e 6f 6d 65 73 20 64 6f ..o.padr..o),.apenas.os.nomes.do
36c0 73 20 61 75 74 6f 72 65 73 20 70 72 69 6e 63 69 70 61 69 73 20 73 65 72 c3 a3 6f 20 63 61 70 74 s.autores.principais.ser..o.capt
36e0 61 64 6f 73 2e 00 50 4b 03 04 14 00 00 00 00 00 87 a0 ac 5a b6 eb de 20 42 06 00 00 42 06 00 00 ados..PK...........Z....B...B...
3700 15 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 70 74 5f 42 52 2e 6d 6f de 12 04 95 00 00 00 ....translations/pt_BR.mo.......
3720 00 05 00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 .........D...............l...=..
3740 00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 00 00 7a 00 00 00 a4 01 00 00 d3 01 00 .m...........>...e...z..........
3760 00 1f 02 00 00 4b 00 00 00 f3 03 00 00 d2 00 00 00 3f 04 00 00 67 00 00 00 12 05 00 00 c7 00 00 .....K...........?...g..........
3780 00 7a 05 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f .z....Get.all.contributing.autho
37a0 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 rs.(e.g..editors,.illustrators.e
37c0 74 63 29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 tc).Increasing.this.value.will.c
37e0 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 onsider.more.editions.but.also.i
3800 6e 63 72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c ncrease.search.times...This.will
3820 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f .increase.the.potential.likeliho
3840 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 od.of.getting.a.larger.cover.ima
3860 67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 ge.but.does.not.guarantee.it..Ma
3880 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 20 6d 61 74 63 68 65 ximum.title/author.search.matche
38a0 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73 74 29 3a 00 57 68 65 s.to.evaluate.(1.=.fastest):.Whe
38c0 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 n.this.option.is.checked,.all.au
38e0 74 68 6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 thors.are.retrieved...When.unche
3900 63 6b 65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 cked.(default).only.the.primary.
3920 61 75 74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d author(s).are.returned..Project-
3940 49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d Id-Version:.PACKAGE.VERSION.POT-
3960 43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b Creation-Date:.2024-03-24.17:55+
3980 31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 1000.PO-Revision-Date:.2022-09-0
39a0 38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20 43 6d 8.19:50+0000.Last-Translator:.Cm
39c0 20 46 79 2c 20 32 30 32 32 0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 50 6f 72 74 75 67 75 .Fy,.2022.Language-Team:.Portugu
39e0 65 73 65 20 28 42 72 61 7a 69 6c 29 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73 69 ese.(Brazil).(https://app.transi
3a00 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 70 74 5f 42 fex.com/calibre/teams/19337/pt_B
3a20 52 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 R/).MIME-Version:.1.0.Content-Ty
3a40 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f pe:.text/plain;.charset=UTF-8.Co
3a60 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 ntent-Transfer-Encoding:.8bit.Ge
3a80 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e nerated-By:.pygettext.py.1.5.Lan
3aa0 67 75 61 67 65 3a 20 70 74 5f 42 52 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 guage:.pt_BR.Plural-Forms:.nplur
3ac0 61 6c 73 3d 33 3b 20 70 6c 75 72 61 6c 3d 28 6e 20 3d 3d 20 30 20 7c 7c 20 6e 20 3d 3d 20 31 29 als=3;.plural=(n.==.0.||.n.==.1)
3ae0 20 3f 20 30 20 3a 20 6e 20 21 3d 20 30 20 26 26 20 6e 20 25 20 31 30 30 30 30 30 30 20 3d 3d 20 .?.0.:.n.!=.0.&&.n.%.1000000.==.
3b00 30 20 3f 20 31 20 3a 20 32 3b 0a 00 4f 62 74 65 72 20 6f 73 20 6e 6f 6d 65 73 20 64 65 20 74 6f 0.?.1.:.2;..Obter.os.nomes.de.to
3b20 64 6f 73 20 6f 73 20 63 6f 6c 61 62 6f 72 61 64 6f 72 65 73 20 28 65 2e 67 2e 20 65 64 69 74 6f dos.os.colaboradores.(e.g..edito
3b40 72 65 73 2c 20 69 6c 75 73 74 72 61 64 6f 72 65 73 20 65 74 63 2e 29 00 49 6e 63 72 65 6d 65 6e res,.ilustradores.etc.).Incremen
3b60 74 61 6e 64 6f 2d 73 65 20 65 73 74 65 20 76 61 6c 6f 72 2c 20 73 65 72 c3 a3 6f 20 63 6f 6e 73 tando-se.este.valor,.ser..o.cons
3b80 69 64 65 72 61 64 61 73 20 6d 61 69 73 20 65 64 69 c3 a7 c3 b5 65 73 2c 20 70 6f 72 c3 a9 6d 20 ideradas.mais.edi....es,.por..m.
3ba0 61 20 64 75 72 61 c3 a7 c3 a3 6f 20 64 61 73 20 62 75 73 63 61 73 20 74 61 6d 62 c3 a9 6d 20 61 a.dura....o.das.buscas.tamb..m.a
3bc0 75 6d 65 6e 74 61 72 c3 a1 2e 0a 0a 49 73 74 6f 20 61 75 6d 65 6e 74 61 72 c3 a1 20 61 73 20 70 umentar.....Isto.aumentar...as.p
3be0 6f 73 73 69 62 69 6c 69 64 61 64 65 73 20 64 65 20 73 65 20 6f 62 74 65 72 20 69 6d 61 67 65 6e ossibilidades.de.se.obter.imagen
3c00 73 20 6d 61 69 6f 72 65 73 20 64 61 73 20 63 61 70 61 73 0a 6d 61 73 20 6e c3 a3 6f 20 c3 a9 20 s.maiores.das.capas.mas.n..o....
3c20 67 61 72 61 6e 74 69 64 6f 2e 00 51 75 61 6e 74 69 64 61 64 65 20 6d c3 a1 78 69 6d 61 20 64 65 garantido..Quantidade.m..xima.de
3c40 20 63 6f 72 72 65 73 70 6f 6e 64 c3 aa 6e 63 69 61 73 20 64 65 20 62 75 73 63 61 20 74 c3 ad 74 .correspond..ncias.de.busca.t..t
3c60 75 6c 6f 2f 61 75 74 6f 72 20 61 20 73 65 72 65 6d 20 63 6f 6e 73 69 64 65 72 61 64 61 73 20 28 ulo/autor.a.serem.consideradas.(
3c80 31 20 3d 20 6d 61 69 73 20 72 c3 a1 70 69 64 6f 29 3a 00 51 75 61 6e 64 6f 20 65 73 74 61 20 6f 1.=.mais.r..pido):.Quando.esta.o
3ca0 70 c3 a7 c3 a3 6f 20 65 73 74 69 76 65 72 20 6d 61 72 63 61 64 61 2c 20 74 6f 64 6f 73 20 6f 73 p....o.estiver.marcada,.todos.os
3cc0 20 6e 6f 6d 65 73 20 64 65 20 61 75 74 6f 72 65 73 20 65 20 63 6f 6c 61 62 6f 72 61 64 6f 72 65 .nomes.de.autores.e.colaboradore
3ce0 73 20 73 65 72 c3 a3 6f 20 6f 62 74 69 64 6f 73 2e 0a 0a 45 73 74 61 6e 64 6f 20 64 65 73 6d 61 s.ser..o.obtidos...Estando.desma
3d00 72 63 61 64 61 20 28 63 6f 6e 66 69 67 75 72 61 c3 a7 c3 a3 6f 20 70 61 64 72 c3 a3 6f 29 2c 20 rcada.(configura....o.padr..o),.
3d20 73 6f 6d 65 6e 74 65 20 6f 73 20 6e 6f 6d 65 73 20 64 6f 73 20 61 75 74 6f 72 65 73 20 70 72 69 somente.os.nomes.dos.autores.pri
3d40 6e 63 69 70 61 69 73 20 73 65 72 c3 a3 6f 20 72 65 74 6f 72 6e 61 64 6f 73 2e 00 50 4b 03 04 14 ncipais.ser..o.retornados..PK...
3d60 00 00 00 00 00 e0 35 28 55 55 1a 5c 16 06 01 00 00 06 01 00 00 16 00 00 00 74 72 61 6e 73 6c 61 ......5(UU.\.............transla
3d80 74 69 6f 6e 73 2f 52 45 41 44 4d 45 2e 6d 64 23 20 54 72 61 6e 73 6c 61 74 69 6f 6e 73 0d 0a 0d tions/README.md#.Translations...
3da0 0a 49 66 20 79 6f 75 27 72 65 20 69 6e 74 65 72 65 73 74 65 64 20 69 6e 20 68 65 6c 70 69 6e 67 .If.you're.interested.in.helping
3dc0 20 70 72 6f 76 69 64 65 20 74 72 61 6e 73 6c 61 74 69 6f 6e 73 20 66 6f 72 20 74 68 69 73 20 70 .provide.translations.for.this.p
3de0 72 6f 6a 65 63 74 2c 0d 0a 70 6c 65 61 73 65 20 75 73 65 20 74 68 65 0d 0a 5b 54 72 61 6e 73 69 roject,..please.use.the..[Transi
3e00 66 65 78 5d 28 68 74 74 70 73 3a 2f 2f 77 77 77 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 70 fex](https://www.transifex.com/p
3e20 72 6f 6a 65 63 74 73 2f 70 2f 63 61 6c 69 62 72 65 2d 70 6c 75 67 69 6e 73 2f 72 65 73 6f 75 72 rojects/p/calibre-plugins/resour
3e40 63 65 73 2f 29 0d 0a 77 65 62 73 69 74 65 20 74 6f 20 61 64 64 20 74 72 61 6e 73 6c 61 74 69 6f ces/)..website.to.add.translatio
3e60 6e 73 20 74 6f 20 74 68 69 73 2c 20 6f 72 20 6f 74 68 65 72 20 63 61 6c 69 62 72 65 20 70 6c 75 ns.to.this,.or.other.calibre.plu
3e80 67 69 6e 73 20 74 68 61 74 20 73 75 70 70 6f 72 74 20 69 74 2e 50 4b 03 04 14 00 00 00 00 00 87 gins.that.support.it.PK.........
3ea0 a0 ac 5a 19 b1 5d 0d fc 06 00 00 fc 06 00 00 12 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f ..Z..].............translations/
3ec0 72 75 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 00 ru.mo................D..........
3ee0 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 00 .....l...=...m...........>...e..
3f00 00 7a 00 00 00 a4 01 00 00 19 02 00 00 1f 02 00 00 6b 00 00 00 39 04 00 00 22 01 00 00 a5 04 00 .z...............k...9..."......
3f20 00 6d 00 00 00 c8 05 00 00 c5 00 00 00 36 06 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69 .m...........6....Get.all.contri
3f40 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c buting.authors.(e.g..editors,.il
3f60 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20 lustrators.etc).Increasing.this.
3f80 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e value.will.consider.more.edition
3fa0 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73 s.but.also.increase.search.times
3fc0 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74 ...This.will.increase.the.potent
3fe0 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67 ial.likelihood.of.getting.a.larg
4000 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72 er.cover.image.but.does.not.guar
4020 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73 antee.it..Maximum.title/author.s
4040 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66 earch.matches.to.evaluate.(1.=.f
4060 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65 astest):.When.this.option.is.che
4080 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e cked,.all.authors.are.retrieved.
40a0 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20 ..When.unchecked.(default).only.
40c0 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 6e the.primary.author(s).are.return
40e0 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20 ed..Project-Id-Version:.PACKAGE.
4100 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d VERSION.POT-Creation-Date:.2024-
4120 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74 03-24.17:55+1000.PO-Revision-Dat
4140 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72 e:.2022-09-08.19:50+0000.Last-Tr
4160 61 6e 73 6c 61 74 6f 72 3a 20 43 61 61 72 6d 69 2c 20 32 30 32 32 0a 4c 61 6e 67 75 61 67 65 2d anslator:.Caarmi,.2022.Language-
4180 54 65 61 6d 3a 20 52 75 73 73 69 61 6e 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73 Team:.Russian.(https://app.trans
41a0 69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 72 75 2f ifex.com/calibre/teams/19337/ru/
41c0 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 ).MIME-Version:.1.0.Content-Type
41e0 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e 74 :.text/plain;.charset=UTF-8.Cont
4200 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e 65 ent-Transfer-Encoding:.8bit.Gene
4220 72 61 74 65 64 2d 42 79 3a 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67 75 rated-By:.pygettext.py.1.5.Langu
4240 61 67 65 3a 20 72 75 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d 34 age:.ru.Plural-Forms:.nplurals=4
4260 3b 20 70 6c 75 72 61 6c 3d 28 6e 25 31 30 3d 3d 31 20 26 26 20 6e 25 31 30 30 21 3d 31 31 20 3f ;.plural=(n%10==1.&&.n%100!=11.?
4280 20 30 20 3a 20 6e 25 31 30 3e 3d 32 20 26 26 20 6e 25 31 30 3c 3d 34 20 26 26 20 28 6e 25 31 30 .0.:.n%10>=2.&&.n%10<=4.&&.(n%10
42a0 30 3c 31 32 20 7c 7c 20 6e 25 31 30 30 3e 31 34 29 20 3f 20 31 20 3a 20 6e 25 31 30 3d 3d 30 20 0<12.||.n%100>14).?.1.:.n%10==0.
42c0 7c 7c 20 28 6e 25 31 30 3e 3d 35 20 26 26 20 6e 25 31 30 3c 3d 39 29 20 7c 7c 20 28 6e 25 31 30 ||.(n%10>=5.&&.n%10<=9).||.(n%10
42e0 30 3e 3d 31 31 20 26 26 20 6e 25 31 30 30 3c 3d 31 34 29 3f 20 32 20 3a 20 33 29 3b 0a 00 d0 97 0>=11.&&.n%100<=14)?.2.:.3);....
4300 d0 b0 d0 b3 d1 80 d1 83 d0 b6 d0 b0 d1 82 d1 8c 20 d0 b2 d1 81 d0 b5 d1 85 20 d1 81 d0 be d0 b0 ................................
4320 d0 b2 d1 82 d0 be d1 80 d0 be d0 b2 20 28 d1 80 d0 b5 d0 b4 d0 b0 d0 ba d1 82 d0 be d1 80 d0 be .............(..................
4340 d0 b2 2c 20 d0 b8 d0 bb d0 bb d1 8e d1 81 d1 82 d1 80 d0 b0 d1 82 d0 be d1 80 d0 be d0 b2 20 d0 ..,.............................
4360 b8 20 d1 82 2e d0 b4 2e 29 00 d0 a3 d0 b2 d0 b5 d0 bb d0 b8 d1 87 d0 b5 d0 bd d0 b8 d0 b5 20 d0 ........).......................
4380 b4 d0 b0 d0 bd d0 bd d0 be d0 b3 d0 be 20 d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8 d1 8f 20 d1 ................................
43a0 80 d0 b0 d1 81 d1 81 d0 bc d0 be d1 82 d1 80 d0 b8 d1 82 20 d0 b1 d0 be d0 bb d1 8c d1 88 d0 b5 ................................
43c0 20 d0 b8 d0 b7 d0 b4 d0 b0 d0 bd d0 b8 d0 b9 2c 20 d0 bd d0 be 20 d1 83 d0 b2 d0 b5 d0 bb d0 b8 ...............,................
43e0 d1 87 d0 b8 d1 82 0a d0 b2 d1 80 d0 b5 d0 bc d1 8f 20 d0 bf d0 be d0 b8 d1 81 d0 ba d0 b0 2e 0a ................................
4400 0a d0 ad d1 82 d0 be 20 d1 83 d0 b2 d0 b5 d0 bb d0 b8 d1 87 d0 b8 d1 82 20 d1 88 d0 b0 d0 bd d1 ................................
4420 81 d1 8b 20 d0 bd d0 b0 d0 b9 d1 82 d0 b8 20 d0 be d0 b1 d0 bb d0 be d0 b6 d0 ba d1 83 20 d0 b1 ................................
4440 d0 be d0 bb d1 8c d1 88 d0 b5 d0 b3 d0 be 20 d1 80 d0 b0 d0 b7 d0 bc d0 b5 d1 80 d0 b0 2c 20 d0 .............................,..
4460 bd d0 be 20 d0 bd d0 b5 20 d0 b3 d0 b0 d1 80 d0 b0 d0 bd d1 82 d0 b8 d1 80 d1 83 d0 b5 d1 82 20 ................................
4480 0a d1 8d d1 82 d0 be d0 b3 d0 be 2e 00 d0 9c d0 b0 d0 ba d1 81 2e 20 d1 87 d0 b8 d1 81 d0 bb d0 ................................
44a0 be 20 d1 81 d0 be d0 b2 d0 bf d0 b0 d0 b4 d0 b5 d0 bd d0 b8 d0 b9 20 d0 bf d0 be 20 d0 bd d0 b0 ................................
44c0 d0 b7 d0 b2 d0 b0 d0 bd d0 b8 d1 8e 2f d0 b0 d0 b2 d1 82 d0 be d1 80 d1 83 20 28 31 20 3d 20 d0 ............/.............(1.=..
44e0 b1 d1 8b d1 81 d1 82 d1 80 d0 b5 d0 b5 20 d0 b2 d1 81 d0 b5 d0 b3 d0 be 29 3a 00 d0 95 d1 81 d0 ........................):......
4500 bb d0 b8 20 d0 be d1 82 d0 bc d0 b5 d1 87 d0 b5 d0 bd d0 be 2c 20 d1 82 d0 be 20 d0 b7 d0 b0 d0 ....................,...........
4520 b3 d1 80 d1 83 d0 b6 d0 b0 d1 82 d1 8c 20 d0 b2 d1 81 d0 b5 d1 85 20 d1 81 d0 be d0 b0 d0 b2 d1 ................................
4540 82 d0 be d1 80 d0 be d0 b2 2e 0a 0a d0 95 d1 81 d0 bb d0 b8 20 d1 81 d0 bd d1 8f d1 82 d0 be 20 ................................
4560 28 d0 bf d0 be 20 d1 83 d0 bc d0 be d0 bb d1 87 d0 b0 d0 bd d0 b8 d1 8e 29 2c 20 d1 82 d0 be 20 (.......................),......
4580 d0 b7 d0 b0 d0 b3 d1 80 d1 83 d0 b6 d0 b0 d1 82 d1 8c 20 d1 82 d0 be d0 bb d1 8c d0 ba d0 be 20 ................................
45a0 d0 be d1 81 d0 bd d0 be d0 b2 d0 bd d1 8b d1 85 20 d0 b0 d0 b2 d1 82 d0 be d1 80 d0 be d0 b2 2e ................................
45c0 00 50 4b 03 04 14 00 00 00 00 00 87 a0 ac 5a c8 30 37 e8 a2 09 00 00 a2 09 00 00 12 00 00 00 74 .PK...........Z.07.............t
45e0 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 74 61 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 ranslations/ta.mo...............
4600 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 .D...............l...=...m......
4620 00 ab 00 00 00 3e 00 00 00 65 01 00 00 7a 00 00 00 a4 01 00 00 c2 01 00 00 1f 02 00 00 0b 01 00 .....>...e...z..................
4640 00 e2 03 00 00 34 02 00 00 ee 04 00 00 c2 00 00 00 23 07 00 00 bb 01 00 00 e6 07 00 00 00 47 65 .....4...........#............Ge
4660 74 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e t.all.contributing.authors.(e.g.
4680 20 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 .editors,.illustrators.etc).Incr
46a0 65 61 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 easing.this.value.will.consider.
46c0 6d 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 more.editions.but.also.increase.
46e0 73 65 61 72 63 68 20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 search.times...This.will.increas
4700 65 20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 e.the.potential.likelihood.of.ge
4720 74 74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 tting.a.larger.cover.image.but.d
4740 6f 65 73 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 oes.not.guarantee.it..Maximum.ti
4760 74 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 tle/author.search.matches.to.eva
4780 6c 75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f luate.(1.=.fastest):.When.this.o
47a0 70 74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 ption.is.checked,.all.authors.ar
47c0 65 20 72 65 74 72 69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 e.retrieved...When.unchecked.(de
47e0 66 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 fault).only.the.primary.author(s
4800 29 20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 ).are.returned..Project-Id-Versi
4820 6f 6e 3a 20 50 41 43 4b 41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e on:.PACKAGE.VERSION.POT-Creation
4840 2d 44 61 74 65 3a 20 32 30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d -Date:.2024-03-24.17:55+1000.PO-
4860 52 65 76 69 73 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b Revision-Date:.2022-09-08.19:50+
4880 30 30 30 30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20 e0 ae a4 e0 ae ae e0 ae bf e0 0000.Last-Translator:...........
48a0 ae b4 e0 af 8d e0 ae a8 e0 af 87 e0 ae b0 e0 ae ae e0 af 8d 20 e0 ae 90 20 3c 61 6e 69 73 68 70 .........................<anishp
48c0 72 61 62 75 2e 74 40 67 6d 61 69 6c 2e 63 6f 6d 3e 2c 20 32 30 32 33 0a 4c 61 6e 67 75 61 67 65 rabu.t@gmail.com>,.2023.Language
48e0 2d 54 65 61 6d 3a 20 54 61 6d 69 6c 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73 69 -Team:.Tamil.(https://app.transi
4900 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 74 61 2f 29 fex.com/calibre/teams/19337/ta/)
4920 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a .MIME-Version:.1.0.Content-Type:
4940 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e 74 65 .text/plain;.charset=UTF-8.Conte
4960 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e 65 72 nt-Transfer-Encoding:.8bit.Gener
4980 61 74 65 64 2d 42 79 3a 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67 75 61 ated-By:.pygettext.py.1.5.Langua
49a0 67 65 3a 20 74 61 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d 32 3b ge:.ta.Plural-Forms:.nplurals=2;
49c0 20 70 6c 75 72 61 6c 3d 28 6e 20 21 3d 20 31 29 3b 0a 00 e0 ae aa e0 ae 99 e0 af 8d e0 ae 95 e0 .plural=(n.!=.1);...............
49e0 ae b3 e0 ae bf e0 ae 95 e0 af 8d e0 ae 95 e0 af 81 e0 ae ae e0 af 8d 20 e0 ae 85 e0 ae a9 e0 af ................................
4a00 88 e0 ae a4 e0 af 8d e0 ae a4 e0 af 81 20 e0 ae 86 e0 ae 9a e0 ae bf e0 ae b0 e0 ae bf e0 ae af ................................
4a20 e0 ae b0 e0 af 8d e0 ae 95 e0 ae b3 e0 af 88 e0 ae af e0 af 81 e0 ae ae e0 af 8d 20 e0 ae aa e0 ................................
4a40 af 86 e0 ae b1 e0 af 81 e0 ae 99 e0 af 8d e0 ae 95 e0 ae b3 e0 af 8d 20 28 e0 ae 8e 2e e0 ae 95 ........................(.......
4a60 e0 ae be 2e 20 e0 ae a4 e0 af 8a e0 ae 95 e0 af 81 e0 ae aa e0 af 8d e0 ae aa e0 ae be e0 ae b3 ................................
4a80 e0 ae b0 e0 af 8d e0 ae 95 e0 ae b3 e0 af 8d 2c 20 e0 ae 87 e0 ae b2 e0 af 8d e0 ae b2 e0 ae b8 ...............,................
4aa0 e0 af 8d e0 ae 9f e0 af 8d e0 ae b0 e0 af 87 e0 ae 9f e0 af 8d e0 ae 9f e0 ae b0 e0 af 8d e0 ae ................................
4ac0 95 e0 ae b3 e0 af 8d 20 e0 ae aa e0 af 8b e0 ae a9 e0 af 8d e0 ae b1 e0 ae b5 e0 af 88 29 00 e0 .............................)..
4ae0 ae 87 e0 ae a8 e0 af 8d e0 ae a4 20 e0 ae ae e0 ae a4 e0 ae bf e0 ae aa e0 af 8d e0 ae aa e0 af ................................
4b00 88 20 e0 ae 85 e0 ae a4 e0 ae bf e0 ae 95 e0 ae b0 e0 ae bf e0 ae aa e0 af 8d e0 ae aa e0 ae a4 ................................
4b20 e0 af 81 20 e0 ae ae e0 af 87 e0 ae b2 e0 af 81 e0 ae ae e0 af 8d 20 e0 ae aa e0 ae a4 e0 ae bf ................................
4b40 e0 ae aa e0 af 8d e0 ae aa e0 af 81 e0 ae 95 e0 ae b3 e0 af 88 e0 ae 95 e0 af 8d 20 e0 ae 95 e0 ................................
4b60 ae b0 e0 af 81 e0 ae a4 e0 af 8d e0 ae a4 e0 ae bf e0 ae b2 e0 af 8d 20 e0 ae 95 e0 af 8a e0 ae ................................
4b80 b3 e0 af 8d e0 ae b3 e0 af 81 e0 ae ae e0 af 8d 2c 20 e0 ae 86 e0 ae a9 e0 ae be e0 ae b2 e0 af ................,...............
4ba0 8d 20 e0 ae a4 e0 af 87 e0 ae 9f e0 ae b2 e0 af 8d 20 e0 ae a8 e0 af 87 e0 ae b0 e0 ae 99 e0 af ................................
4bc0 8d e0 ae 95 e0 ae b3 e0 af 88 e0 ae af e0 af 81 e0 ae ae e0 af 8d 20 e0 ae 85 e0 ae a4 e0 ae bf ................................
4be0 e0 ae 95 e0 ae b0 e0 ae bf e0 ae 95 e0 af 8d e0 ae 95 e0 af 81 e0 ae ae e0 af 8d 2e 20 0a 0a 20 ................................
4c00 e0 ae 87 e0 ae a4 e0 af 81 20 e0 ae 92 e0 ae b0 e0 af 81 20 e0 ae aa e0 af 86 e0 ae b0 e0 ae bf ................................
4c20 e0 ae af 20 e0 ae 95 e0 ae b5 e0 ae b0 e0 af 8d 20 e0 ae aa e0 ae 9f e0 ae a4 e0 af 8d e0 ae a4 ................................
4c40 e0 af 88 e0 ae aa e0 af 8d 20 e0 ae aa e0 af 86 e0 ae b1 e0 af 81 e0 ae b5 e0 ae a4 e0 ae b1 e0 ................................
4c60 af 8d e0 ae 95 e0 ae be e0 ae a9 20 e0 ae b5 e0 ae be e0 ae af e0 af 8d e0 ae aa e0 af 8d e0 ae ................................
4c80 aa e0 af 88 20 e0 ae 85 e0 ae a4 e0 ae bf e0 ae 95 e0 ae b0 e0 ae bf e0 ae 95 e0 af 8d e0 ae 95 ................................
4ca0 e0 af 81 e0 ae ae e0 af 8d 20 0a 20 e0 ae 86 e0 ae a9 e0 ae be e0 ae b2 e0 af 8d 20 e0 ae 85 e0 ................................
4cc0 ae a4 e0 ae b1 e0 af 8d e0 ae 95 e0 af 81 20 e0 ae 89 e0 ae a4 e0 af 8d e0 ae a4 e0 ae b0 e0 ae ................................
4ce0 b5 e0 ae be e0 ae a4 e0 ae ae e0 af 8d 20 e0 ae 85 e0 ae b3 e0 ae bf e0 ae 95 e0 af 8d e0 ae 95 ................................
4d00 e0 ae b5 e0 ae bf e0 ae b2 e0 af 8d e0 ae b2 e0 af 88 2e 00 e0 ae ae e0 ae a4 e0 ae bf e0 ae aa ................................
4d20 e0 af 8d e0 ae aa e0 af 80 e0 ae 9f e0 af 81 20 e0 ae 9a e0 af 86 e0 ae af e0 af 8d e0 ae af 20 ................................
4d40 e0 ae 85 e0 ae a4 e0 ae bf e0 ae 95 e0 ae aa e0 ae 9f e0 af 8d e0 ae 9a 20 e0 ae a4 e0 ae b2 e0 ................................
4d60 af 88 e0 ae aa e0 af 8d e0 ae aa e0 af 81 2f e0 ae 86 e0 ae 9a e0 ae bf e0 ae b0 e0 ae bf e0 ae ............../.................
4d80 af e0 ae b0 e0 af 8d 20 e0 ae a4 e0 af 87 e0 ae 9f e0 ae b2 e0 af 8d 20 e0 ae aa e0 af 8a e0 ae ................................
4da0 b0 e0 af 81 e0 ae a4 e0 af 8d e0 ae a4 e0 ae 99 e0 af 8d e0 ae 95 e0 ae b3 e0 af 8d 20 28 31 20 .............................(1.
4dc0 3d 20 e0 ae b5 e0 af 87 e0 ae 95 e0 ae ae e0 ae be e0 ae a9 29 3a 00 e0 ae 87 e0 ae a8 e0 af 8d =...................):..........
4de0 e0 ae a4 20 e0 ae b5 e0 ae bf e0 ae b0 e0 af 81 e0 ae aa e0 af 8d e0 ae aa e0 ae ae e0 af 8d 20 ................................
4e00 e0 ae 9a e0 ae b0 e0 ae bf e0 ae aa e0 ae be e0 ae b0 e0 af 8d e0 ae 95 e0 af 8d e0 ae 95 e0 ae ................................
4e20 aa e0 af 8d e0 ae aa e0 ae 9f e0 af 8d e0 ae 9f e0 ae be e0 ae b2 e0 af 8d 2c 20 e0 ae 85 e0 ae .........................,......
4e40 a9 e0 af 88 e0 ae a4 e0 af 8d e0 ae a4 e0 af 81 20 e0 ae 86 e0 ae 9a e0 ae bf e0 ae b0 e0 ae bf ................................
4e60 e0 ae af e0 ae b0 e0 af 8d e0 ae 95 e0 ae b3 e0 af 81 e0 ae ae e0 af 8d 20 e0 ae ae e0 af 80 e0 ................................
4e80 ae 9f e0 af 8d e0 ae 9f e0 af 86 e0 ae 9f e0 af 81 e0 ae 95 e0 af 8d e0 ae 95 e0 ae aa e0 af 8d ................................
4ea0 e0 ae aa e0 ae 9f e0 af 81 e0 ae b5 e0 ae be e0 ae b0 e0 af 8d e0 ae 95 e0 ae b3 e0 af 8d 2e 0a ................................
4ec0 0a e0 ae a4 e0 af 87 e0 ae b0 e0 af 8d e0 ae b5 e0 af 81 20 e0 ae 9a e0 af 86 e0 ae af e0 af 8d ................................
4ee0 e0 ae af e0 ae aa e0 af 8d e0 ae aa e0 ae 9f e0 ae be e0 ae a4 e0 ae aa e0 af 8b e0 ae a4 e0 af ................................
4f00 81 20 28 e0 ae 87 e0 ae af e0 ae b2 e0 af 8d e0 ae aa e0 af 81 e0 ae a8 e0 ae bf e0 ae b2 e0 af ..(.............................
4f20 88 29 20 e0 ae ae e0 af 81 e0 ae a4 e0 ae a9 e0 af 8d e0 ae ae e0 af 88 20 e0 ae 86 e0 ae 9a e0 .)..............................
4f40 ae bf e0 ae b0 e0 ae bf e0 ae af e0 ae b0 e0 af 8d 28 e0 ae 95 e0 ae b3 e0 af 8d 29 20 e0 ae ae .................(.........)....
4f60 e0 ae 9f e0 af 8d e0 ae 9f e0 af 81 e0 ae ae e0 af 87 20 e0 ae a4 e0 ae bf e0 ae b0 e0 af 81 e0 ................................
4f80 ae ae e0 af 8d e0 ae aa e0 af 81 e0 ae ae e0 af 8d 2e 00 50 4b 03 04 14 00 00 00 00 00 87 a0 ac ...................PK...........
4fa0 5a 45 1b ed ed 98 05 00 00 98 05 00 00 12 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 74 72 ZE...............translations/tr
4fc0 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 .mo................D............
4fe0 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 00 00 7a ...l...=...m...........>...e...z
5000 00 00 00 a4 01 00 00 94 01 00 00 1f 02 00 00 49 00 00 00 b4 03 00 00 bc 00 00 00 fe 03 00 00 50 ...............I...............P
5020 00 00 00 bb 04 00 00 8b 00 00 00 0c 05 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 ................Get.all.contribu
5040 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 ting.authors.(e.g..editors,.illu
5060 73 74 72 61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20 76 61 strators.etc).Increasing.this.va
5080 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 lue.will.consider.more.editions.
50a0 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73 2e 0a but.also.increase.search.times..
50c0 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74 69 61 .This.will.increase.the.potentia
50e0 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67 65 72 l.likelihood.of.getting.a.larger
5100 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72 61 6e .cover.image.but.does.not.guaran
5120 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 tee.it..Maximum.title/author.sea
5140 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66 61 73 rch.matches.to.evaluate.(1.=.fas
5160 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65 63 6b test):.When.this.option.is.check
5180 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e 0a 0a ed,.all.authors.are.retrieved...
51a0 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 When.unchecked.(default).only.th
51c0 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 6e 65 64 e.primary.author(s).are.returned
51e0 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20 56 45 ..Project-Id-Version:.PACKAGE.VE
5200 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d 30 33 RSION.POT-Creation-Date:.2024-03
5220 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74 65 3a -24.17:55+1000.PO-Revision-Date:
5240 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72 61 6e .2022-09-08.19:50+0000.Last-Tran
5260 73 6c 61 74 6f 72 3a 20 42 6f 72 61 20 41 74 c4 b1 63 c4 b1 2c 20 32 30 32 33 0a 4c 61 6e 67 75 slator:.Bora.At..c..,.2023.Langu
5280 61 67 65 2d 54 65 61 6d 3a 20 54 75 72 6b 69 73 68 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 age-Team:.Turkish.(https://app.t
52a0 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 ransifex.com/calibre/teams/19337
52c0 2f 74 72 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d /tr/).MIME-Version:.1.0.Content-
52e0 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a Type:.text/plain;.charset=UTF-8.
5300 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a Content-Transfer-Encoding:.8bit.
5320 47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c Generated-By:.pygettext.py.1.5.L
5340 61 6e 67 75 61 67 65 3a 20 74 72 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 anguage:.tr.Plural-Forms:.nplura
5360 6c 73 3d 32 3b 20 70 6c 75 72 61 6c 3d 28 6e 20 3e 20 31 29 3b 0a 00 4b 61 74 6b c4 b1 64 61 20 ls=2;.plural=(n.>.1);..Katk..da.
5380 62 75 6c 75 6e 61 6e 20 74 c3 bc 6d 20 79 61 7a 61 72 6c 61 72 c4 b1 20 61 6c c4 b1 6e 20 28 c3 bulunan.t..m.yazarlar...al..n.(.
53a0 b6 72 2e 20 79 61 79 c4 b1 6d 63 c4 b1 6c 61 72 2c 20 c3 a7 69 7a 65 72 6c 65 72 20 76 62 2e 29 .r..yay..mc..lar,...izerler.vb.)
53c0 00 42 75 20 64 65 c4 9f 65 72 69 20 61 72 74 c4 b1 72 6d 61 6b 2c 20 64 61 68 61 20 66 61 7a 6c .Bu.de..eri.art..rmak,.daha.fazl
53e0 61 20 73 c3 bc 72 c3 bc 6d c3 bc 20 64 69 6b 6b 61 74 65 20 61 6c c4 b1 72 20 61 6e 63 61 6b 20 a.s..r..m...dikkate.al..r.ancak.
5400 61 72 61 6d 61 20 73 c3 bc 72 65 6c 65 72 69 20 64 65 20 61 72 74 c4 b1 72 c4 b1 72 2e 0a 0a 42 arama.s..releri.de.art..r..r...B
5420 75 2c 20 64 61 68 61 20 62 c3 bc 79 c3 bc 6b 20 62 69 72 20 6b 61 70 61 6b 20 72 65 73 6d 69 20 u,.daha.b..y..k.bir.kapak.resmi.
5440 65 6c 64 65 20 65 74 6d 65 20 6f 6c 61 73 c4 b1 6c c4 b1 c4 9f c4 b1 6e c4 b1 20 61 72 74 c4 b1 elde.etme.olas..l......n...art..
5460 72 61 63 61 6b 74 c4 b1 72 20 0a 61 6d 61 20 67 61 72 61 6e 74 69 20 65 74 6d 65 7a 2e 00 44 65 racakt..r..ama.garanti.etmez..De
5480 c4 9f 65 72 6c 65 6e 64 69 72 69 6c 65 63 65 6b 20 65 6e 20 66 61 7a 6c 61 20 62 61 c5 9f 6c c4 ..erlendirilecek.en.fazla.ba..l.
54a0 b1 6b 2f 79 61 7a 61 72 20 61 72 61 6d 61 20 65 c5 9f 6c 65 c5 9f 6d 65 6c 65 72 69 20 28 31 20 .k/yazar.arama.e..le..meleri.(1.
54c0 3d 20 65 6e 20 68 c4 b1 7a 6c c4 b1 29 3a 00 42 75 20 73 65 c3 a7 65 6e 65 6b 20 69 c5 9f 61 72 =.en.h..zl..):.Bu.se..enek.i..ar
54e0 65 74 6c 65 6e 64 69 c4 9f 69 6e 64 65 20 74 c3 bc 6d 20 79 61 7a 61 72 6c 61 72 20 61 6c c4 b1 etlendi..inde.t..m.yazarlar.al..
5500 6e c4 b1 72 2e 20 0a 0a c4 b0 c5 9f 61 72 65 74 6c 65 6e 6d 65 64 69 c4 9f 69 6e 64 65 20 28 76 n..r........aretlenmedi..inde.(v
5520 61 72 73 61 79 c4 b1 6c 61 6e 29 2c 20 79 61 6c 6e c4 b1 7a 63 61 20 62 69 72 69 6e 63 69 6c 20 arsay..lan),.yaln..zca.birincil.
5540 79 61 7a 61 72 28 6c 61 72 29 20 64 c3 b6 6e 64 c3 bc 72 c3 bc 6c c3 bc 72 2e 00 50 4b 03 04 14 yazar(lar).d..nd..r..l..r..PK...
5560 00 00 00 00 00 87 a0 ac 5a a5 fd 37 25 39 08 00 00 39 08 00 00 12 00 00 00 74 72 61 6e 73 6c 61 ........Z..7%9...9.......transla
5580 74 69 6f 6e 73 2f 75 6b 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 00 44 00 00 00 00 tions/uk.mo................D....
55a0 00 00 00 00 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e ...........l...=...m...........>
55c0 00 00 00 65 01 00 00 7a 00 00 00 a4 01 00 00 8a 02 00 00 1f 02 00 00 6d 00 00 00 aa 04 00 00 77 ...e...z...............m.......w
55e0 01 00 00 18 05 00 00 a2 00 00 00 90 06 00 00 05 01 00 00 33 07 00 00 00 47 65 74 20 61 6c 6c 20 ...................3....Get.all.
5600 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f contributing.authors.(e.g..edito
5620 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65 61 73 69 6e 67 rs,.illustrators.etc).Increasing
5640 20 74 68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 .this.value.will.consider.more.e
5660 64 69 74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 65 61 72 63 68 ditions.but.also.increase.search
5680 20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 .times...This.will.increase.the.
56a0 70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20 potential.likelihood.of.getting.
56c0 61 20 6c 61 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f a.larger.cover.image.but.does.no
56e0 74 20 67 75 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 t.guarantee.it..Maximum.title/au
5700 74 68 6f 72 20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20 thor.search.matches.to.evaluate.
5720 28 31 20 3d 20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 (1.=.fastest):.When.this.option.
5740 69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65 20 72 65 74 72 is.checked,.all.authors.are.retr
5760 69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 61 75 6c 74 29 ieved...When.unchecked.(default)
5780 20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 20 61 72 65 20 .only.the.primary.author(s).are.
57a0 72 65 74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 returned..Project-Id-Version:.PA
57c0 43 4b 41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a CKAGE.VERSION.POT-Creation-Date:
57e0 20 32 30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69 .2024-03-24.17:55+1000.PO-Revisi
5800 6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c on-Date:.2022-09-08.19:50+0000.L
5820 61 73 74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20 59 75 72 69 20 43 68 6f 72 6e 6f 69 76 61 6e 20 ast-Translator:.Yuri.Chornoivan.
5840 3c 79 75 72 63 68 6f 72 40 75 6b 72 2e 6e 65 74 3e 2c 20 32 30 32 32 0a 4c 61 6e 67 75 61 67 65 <yurchor@ukr.net>,.2022.Language
5860 2d 54 65 61 6d 3a 20 55 6b 72 61 69 6e 69 61 6e 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 -Team:.Ukrainian.(https://app.tr
5880 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f ansifex.com/calibre/teams/19337/
58a0 75 6b 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 uk/).MIME-Version:.1.0.Content-T
58c0 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 ype:.text/plain;.charset=UTF-8.C
58e0 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 ontent-Transfer-Encoding:.8bit.G
5900 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 enerated-By:.pygettext.py.1.5.La
5920 6e 67 75 61 67 65 3a 20 75 6b 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c nguage:.uk.Plural-Forms:.nplural
5940 73 3d 34 3b 20 70 6c 75 72 61 6c 3d 28 6e 20 25 20 31 20 3d 3d 20 30 20 26 26 20 6e 20 25 20 31 s=4;.plural=(n.%.1.==.0.&&.n.%.1
5960 30 20 3d 3d 20 31 20 26 26 20 6e 20 25 20 31 30 30 20 21 3d 20 31 31 20 3f 20 30 20 3a 20 6e 20 0.==.1.&&.n.%.100.!=.11.?.0.:.n.
5980 25 20 31 20 3d 3d 20 30 20 26 26 20 6e 20 25 20 31 30 20 3e 3d 20 32 20 26 26 20 6e 20 25 20 31 %.1.==.0.&&.n.%.10.>=.2.&&.n.%.1
59a0 30 20 3c 3d 20 34 20 26 26 20 28 6e 20 25 20 31 30 30 20 3c 20 31 32 20 7c 7c 20 6e 20 25 20 31 0.<=.4.&&.(n.%.100.<.12.||.n.%.1
59c0 30 30 20 3e 20 31 34 29 20 3f 20 31 20 3a 20 6e 20 25 20 31 20 3d 3d 20 30 20 26 26 20 28 6e 20 00.>.14).?.1.:.n.%.1.==.0.&&.(n.
59e0 25 20 31 30 20 3d 3d 30 20 7c 7c 20 28 6e 20 25 20 31 30 20 3e 3d 35 20 26 26 20 6e 20 25 20 31 %.10.==0.||.(n.%.10.>=5.&&.n.%.1
5a00 30 20 3c 3d 39 29 20 7c 7c 20 28 6e 20 25 20 31 30 30 20 3e 3d 31 31 20 26 26 20 6e 20 25 20 31 0.<=9).||.(n.%.100.>=11.&&.n.%.1
5a20 30 30 20 3c 3d 31 34 20 29 29 20 3f 20 32 3a 20 33 29 3b 0a 00 d0 9e d1 82 d1 80 d0 b8 d0 bc d0 00.<=14.)).?.2:.3);.............
5a40 b0 d1 82 d0 b8 20 d1 83 d1 81 d1 96 d1 85 20 d0 b0 d0 b2 d1 82 d0 be d1 80 d1 96 d0 b2 20 28 d1 ..............................(.
5a60 82 d0 be d0 b1 d1 82 d0 be 20 d1 80 d0 b5 d0 b4 d0 b0 d0 ba d1 82 d0 be d1 80 d1 96 d0 b2 2c 20 ..............................,.
5a80 d1 96 d0 bb d1 8e d1 81 d1 82 d1 80 d0 b0 d1 82 d0 be d1 80 d1 96 d0 b2 20 d1 82 d0 be d1 89 d0 ................................
5aa0 be 29 00 d0 97 d0 b1 d1 96 d0 bb d1 8c d1 88 d0 b5 d0 bd d0 bd d1 8f 20 d1 86 d1 8c d0 be d0 b3 .)..............................
5ac0 d0 be 20 d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 bd d1 8f 20 d0 b7 d0 b1 d1 96 d0 bb d1 8c d1 88 ................................
5ae0 d0 b8 d1 82 d1 8c 20 d0 ba d1 96 d0 bb d1 8c d0 ba d1 96 d1 81 d1 82 d1 8c 20 d0 b2 d0 b8 d0 b4 ................................
5b00 d0 b0 d0 bd d1 8c 2c 20 d0 b0 d0 bb d0 b5 20 d1 82 d0 b0 d0 ba d0 be d0 b6 20 d0 b7 d0 b1 d1 96 ......,.........................
5b20 d0 bb d1 8c d1 88 d0 b8 d1 82 d0 b8 20 d1 82 d1 80 d0 b8 d0 b2 d0 b0 d0 bb d1 96 d1 81 d1 82 d1 ................................
5b40 8c 20 d0 bf d0 be d1 88 d1 83 d0 ba d1 83 2e 0a 0a d0 97 d0 b1 d1 96 d0 bb d1 8c d1 88 d0 b5 d0 ................................
5b60 bd d0 bd d1 8f 20 d0 bf d1 80 d0 b8 d0 b7 d0 b2 d0 b5 d0 b4 d0 b5 20 d0 b4 d0 be 20 d0 b1 d1 96 ................................
5b80 d0 bb d1 8c d1 88 d0 be d1 97 20 d0 bf d0 be d1 82 d0 b5 d0 bd d1 86 d1 96 d0 b9 d0 bd d0 be d1 ................................
5ba0 97 20 d0 b9 d0 bc d0 be d0 b2 d1 96 d1 80 d0 bd d0 be d1 81 d1 82 d1 96 20 d0 b7 d0 bd d0 b0 d0 ................................
5bc0 b9 d1 82 d0 b8 20 d0 b1 d1 96 d0 bb d1 8c d1 88 d0 b5 20 d0 b7 d0 be d0 b1 d1 80 d0 b0 d0 b6 d0 ................................
5be0 b5 d0 bd d0 bd d1 8f 20 d0 be d0 b1 d0 ba d0 bb d0 b0 d0 b4 d0 b8 d0 bd d0 ba d0 b8 2c 0a d0 b0 ............................,...
5c00 d0 bb d0 b5 20 d1 86 d0 b5 20 d0 bd d0 b5 20 d1 82 d0 be d1 87 d0 bd d0 be 2e 00 d0 9c d0 b0 d0 ................................
5c20 ba d1 81 d0 b8 d0 bc d0 b0 d0 bb d1 8c d0 bd d0 b0 20 d0 ba d1 96 d0 bb d1 8c d0 ba d1 96 d1 81 ................................
5c40 d1 82 d1 8c 20 d0 b2 d1 96 d0 b4 d0 bf d0 be d0 b2 d1 96 d0 b4 d0 bd d0 b8 d0 ba d1 96 d0 b2 20 ................................
5c60 d0 bf d0 be d1 88 d1 83 d0 ba d1 83 20 d0 b7 d0 b0 20 d0 bd d0 b0 d0 b7 d0 b2 d0 be d1 8e 2f d0 ............................../.
5c80 b0 d0 b2 d1 82 d0 be d1 80 d0 be d0 bc 20 d0 b4 d0 bb d1 8f 20 d0 be d0 b1 d1 80 d0 be d0 b1 d0 ................................
5ca0 ba d0 b8 20 28 31 20 3d 20 d0 bd d0 b0 d0 b9 d1 88 d0 b2 d0 b8 d0 b4 d1 88 d0 b5 29 3a 00 d0 af ....(1.=...................):...
5cc0 d0 ba d1 89 d0 be 20 d0 bf d0 be d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 be 20 d1 86 d0 b5 d0 b9 ................................
5ce0 20 d0 bf d1 83 d0 bd d0 ba d1 82 2c 20 d0 b1 d1 83 d0 b4 d0 b5 20 d0 be d1 82 d1 80 d0 b8 d0 bc ...........,....................
5d00 d0 b0 d0 bd d0 be 20 d0 b4 d0 b0 d0 bd d1 96 20 d1 83 d1 81 d1 96 d1 85 20 d0 b0 d0 b2 d1 82 d0 ................................
5d20 be d1 80 d1 96 d0 b2 2e 0a 0a d0 af d0 ba d1 89 d0 be 20 d0 bf d1 83 d0 bd d0 ba d1 82 20 d0 bd ................................
5d40 d0 b5 20 d0 bf d0 be d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 be 20 28 d1 82 d0 b8 d0 bf d0 be d0 ......................(.........
5d60 b2 d0 b8 d0 b9 20 d0 b2 d0 b0 d1 80 d1 96 d0 b0 d0 bd d1 82 29 2c 20 d0 b1 d1 83 d0 b4 d0 b5 20 ....................),..........
5d80 d0 be d1 82 d1 80 d0 b8 d0 bc d0 b0 d0 bd d0 be 20 d0 bb d0 b8 d1 88 d0 b5 20 d0 b4 d0 b0 d0 bd ................................
5da0 d1 96 20 d0 be d1 81 d0 bd d0 be d0 b2 d0 bd d0 b8 d1 85 20 d0 b0 d0 b2 d1 82 d0 be d1 80 d1 96 ................................
5dc0 d0 b2 2e 00 50 4b 03 04 14 00 00 00 00 00 87 a0 ac 5a 60 34 7a d9 55 05 00 00 55 05 00 00 15 00 ....PK...........Z`4z.U...U.....
5de0 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 7a 68 5f 43 4e 2e 6d 6f de 12 04 95 00 00 00 00 05 ..translations/zh_CN.mo.........
5e00 00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d .......D...............l...=...m
5e20 00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 00 00 7a 00 00 00 a4 01 00 00 b0 01 00 00 1f ...........>...e...z............
5e40 02 00 00 39 00 00 00 d0 03 00 00 93 00 00 00 0a 04 00 00 3e 00 00 00 9e 04 00 00 77 00 00 00 dd ...9...............>.......w....
5e60 04 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 ....Get.all.contributing.authors
5e80 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 .(e.g..editors,.illustrators.etc
5ea0 29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e ).Increasing.this.value.will.con
5ec0 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 sider.more.editions.but.also.inc
5ee0 72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 rease.search.times...This.will.i
5f00 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 ncrease.the.potential.likelihood
5f20 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 .of.getting.a.larger.cover.image
5f40 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 .but.does.not.guarantee.it..Maxi
5f60 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 mum.title/author.search.matches.
5f80 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 to.evaluate.(1.=.fastest):.When.
5fa0 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 this.option.is.checked,.all.auth
5fc0 6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b ors.are.retrieved...When.uncheck
5fe0 65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 ed.(default).only.the.primary.au
6000 74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 thor(s).are.returned..Project-Id
6020 2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 -Version:.PACKAGE.VERSION.POT-Cr
6040 65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 eation-Date:.2024-03-24.17:55+10
6060 30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 00.PO-Revision-Date:.2022-09-08.
6080 31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20 74 6f 6e 79 19:50+0000.Last-Translator:.tony
60a0 20 73 68 65 6e 20 3c 61 6e 74 68 61 6e 6e 79 40 68 6f 74 6d 61 69 6c 2e 63 6f 6d 3e 2c 20 32 30 .shen.<anthanny@hotmail.com>,.20
60c0 32 34 0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 43 68 69 6e 65 73 65 20 28 43 68 69 6e 61 24.Language-Team:.Chinese.(China
60e0 29 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c ).(https://app.transifex.com/cal
6100 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 7a 68 5f 43 4e 2f 29 0a 4d 49 4d 45 2d 56 65 ibre/teams/19337/zh_CN/).MIME-Ve
6120 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c rsion:.1.0.Content-Type:.text/pl
6140 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 ain;.charset=UTF-8.Content-Trans
6160 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a fer-Encoding:.8bit.Generated-By:
6180 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20 7a 68 5f 43 .pygettext.py.1.5.Language:.zh_C
61a0 4e 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d 31 3b 20 70 6c 75 72 N.Plural-Forms:.nplurals=1;.plur
61c0 61 6c 3d 30 3b 0a 00 e8 8e b7 e5 8f 96 e6 89 80 e6 9c 89 e8 b4 a1 e7 8c ae e4 bd 9c e8 80 85 ef al=0;...........................
61e0 bc 88 e4 be 8b e5 a6 82 e7 bc 96 e8 be 91 e3 80 81 e6 8f 92 e7 94 bb e5 ae b6 e7 ad 89 ef bc 89 ................................
6200 00 e5 a2 9e e5 8a a0 e6 ad a4 e5 80 bc e5 b0 86 e8 80 83 e8 99 91 e6 9b b4 e5 a4 9a e7 89 88 e6 ................................
6220 9c ac ef bc 8c e4 bd 86 e4 b9 9f e4 bc 9a e5 a2 9e e5 8a a0 e6 90 9c e7 b4 a2 e6 97 b6 e9 97 b4 ................................
6240 e3 80 82 0a 0a e8 bf 99 e5 b0 86 e5 a2 9e e5 8a a0 e8 8e b7 e5 be 97 e6 9b b4 e5 a4 a7 e5 b0 81 ................................
6260 e9 9d a2 e5 9b be e5 83 8f e7 9a 84 e6 bd 9c e5 9c a8 e5 8f af e8 83 bd e6 80 a7 0a e4 bd 86 e4 ................................
6280 b8 8d e4 bf 9d e8 af 81 e8 bf 99 e4 b8 80 e7 82 b9 e3 80 82 00 e8 a6 81 e8 af 84 e4 bc b0 e7 9a ................................
62a0 84 e6 9c 80 e5 a4 a7 e6 a0 87 e9 a2 98 2f e4 bd 9c e8 80 85 e6 90 9c e7 b4 a2 e5 8c b9 e9 85 8d ............./..................
62c0 ef bc 88 31 20 3d 20 e6 9c 80 e5 bf ab ef bc 89 ef bc 9a 00 e8 8b a5 e9 80 89 e4 b8 ad ef bc 8c ...1.=..........................
62e0 e5 b0 86 e4 b8 8b e8 bd bd e5 85 a8 e9 83 a8 e4 bd 9c e8 80 85 e4 bf a1 e6 81 af e3 80 82 0a 0a ................................
6300 e8 8b a5 e6 9c aa e9 80 89 e4 b8 ad ef bc 88 e9 bb 98 e8 ae a4 ef bc 89 ef bc 8c e4 bb 85 e4 b8 ................................
6320 8b e8 bd bd e4 b8 bb e8 a6 81 e4 bd 9c e8 80 85 ef bc 88 e6 88 96 e4 bd 9c e8 80 85 e4 bb ac ef ................................
6340 bc 89 e4 bf a1 e6 81 af e3 80 82 00 50 4b 03 04 14 00 00 00 00 00 0e 22 35 55 9f 9e 33 d9 1f 05 ............PK........."5U..3...
6360 00 00 1f 05 00 00 17 00 00 00 63 6f 6d 6d 6f 6e 5f 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 70 ..........common_compatibility.p
6380 79 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 79 74 68 6f 6e 0a 23 20 76 69 6d 3a 66 69 6c y#!/usr/bin/env.python.#.vim:fil
63a0 65 65 6e 63 6f 64 69 6e 67 3d 55 54 46 2d 38 3a 74 73 3d 34 3a 73 77 3d 34 3a 73 74 61 3a 65 74 eencoding=UTF-8:ts=4:sw=4:sta:et
63c0 3a 73 74 73 3d 34 3a 61 69 0a 66 72 6f 6d 20 5f 5f 66 75 74 75 72 65 5f 5f 20 69 6d 70 6f 72 74 :sts=4:ai.from.__future__.import
63e0 20 28 75 6e 69 63 6f 64 65 5f 6c 69 74 65 72 61 6c 73 2c 20 64 69 76 69 73 69 6f 6e 2c 20 61 62 .(unicode_literals,.division,.ab
6400 73 6f 6c 75 74 65 5f 69 6d 70 6f 72 74 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 solute_import,..................
6420 20 20 20 20 20 20 20 70 72 69 6e 74 5f 66 75 6e 63 74 69 6f 6e 29 0a 0a 5f 5f 6c 69 63 65 6e 73 .......print_function)..__licens
6440 65 5f 5f 20 20 20 3d 20 27 47 50 4c 20 76 33 27 0a 5f 5f 63 6f 70 79 72 69 67 68 74 5f 5f 20 3d e__...=.'GPL.v3'.__copyright__.=
6460 20 27 32 30 32 32 2c 20 47 72 61 6e 74 20 44 72 61 6b 65 27 0a 0a 23 20 4d 61 69 6e 74 61 69 6e .'2022,.Grant.Drake'..#.Maintain
6480 20 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 6f 6c .backwards.compatibility.with.ol
64a0 64 65 72 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 51 74 20 61 6e 64 20 63 61 6c 69 62 72 65 2e 0a der.versions.of.Qt.and.calibre..
64c0 74 72 79 3a 0a 20 20 20 20 66 72 6f 6d 20 71 74 2e 63 6f 72 65 20 69 6d 70 6f 72 74 20 51 53 69 try:.....from.qt.core.import.QSi
64e0 7a 65 50 6f 6c 69 63 79 2c 20 51 54 65 78 74 45 64 69 74 2c 20 51 74 0a 65 78 63 65 70 74 20 49 zePolicy,.QTextEdit,.Qt.except.I
6500 6d 70 6f 72 74 45 72 72 6f 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mportError:.....................
6520 20 20 20 0a 20 20 20 20 66 72 6f 6d 20 50 79 51 74 35 2e 51 74 20 69 6d 70 6f 72 74 20 51 53 69 ........from.PyQt5.Qt.import.QSi
6540 7a 65 50 6f 6c 69 63 79 2c 20 51 54 65 78 74 45 64 69 74 2c 20 51 74 0a 0a 74 72 79 3a 0a 20 20 zePolicy,.QTextEdit,.Qt..try:...
6560 20 20 71 53 69 7a 65 50 6f 6c 69 63 79 5f 4d 69 6e 69 6d 75 6d 20 3d 20 51 53 69 7a 65 50 6f 6c ..qSizePolicy_Minimum.=.QSizePol
6580 69 63 79 2e 50 6f 6c 69 63 79 2e 4d 69 6e 69 6d 75 6d 0a 20 20 20 20 71 53 69 7a 65 50 6f 6c 69 icy.Policy.Minimum.....qSizePoli
65a0 63 79 5f 4d 61 78 69 6d 75 6d 20 3d 20 51 53 69 7a 65 50 6f 6c 69 63 79 2e 50 6f 6c 69 63 79 2e cy_Maximum.=.QSizePolicy.Policy.
65c0 4d 61 78 69 6d 75 6d 0a 20 20 20 20 71 53 69 7a 65 50 6f 6c 69 63 79 5f 45 78 70 61 6e 64 69 6e Maximum.....qSizePolicy_Expandin
65e0 67 20 3d 20 51 53 69 7a 65 50 6f 6c 69 63 79 2e 50 6f 6c 69 63 79 2e 45 78 70 61 6e 64 69 6e 67 g.=.QSizePolicy.Policy.Expanding
6600 0a 20 20 20 20 71 53 69 7a 65 50 6f 6c 69 63 79 5f 50 72 65 66 65 72 72 65 64 20 3d 20 51 53 69 .....qSizePolicy_Preferred.=.QSi
6620 7a 65 50 6f 6c 69 63 79 2e 50 6f 6c 69 63 79 2e 50 72 65 66 65 72 72 65 64 0a 20 20 20 20 71 53 zePolicy.Policy.Preferred.....qS
6640 69 7a 65 50 6f 6c 69 63 79 5f 49 67 6e 6f 72 65 64 20 3d 20 51 53 69 7a 65 50 6f 6c 69 63 79 2e izePolicy_Ignored.=.QSizePolicy.
6660 50 6f 6c 69 63 79 2e 49 67 6e 6f 72 65 64 0a 65 78 63 65 70 74 3a 0a 20 20 20 20 71 53 69 7a 65 Policy.Ignored.except:.....qSize
6680 50 6f 6c 69 63 79 5f 4d 69 6e 69 6d 75 6d 20 3d 20 51 53 69 7a 65 50 6f 6c 69 63 79 2e 4d 69 6e Policy_Minimum.=.QSizePolicy.Min
66a0 69 6d 75 6d 0a 20 20 20 20 71 53 69 7a 65 50 6f 6c 69 63 79 5f 4d 61 78 69 6d 75 6d 20 3d 20 51 imum.....qSizePolicy_Maximum.=.Q
66c0 53 69 7a 65 50 6f 6c 69 63 79 2e 4d 61 78 69 6d 75 6d 0a 20 20 20 20 71 53 69 7a 65 50 6f 6c 69 SizePolicy.Maximum.....qSizePoli
66e0 63 79 5f 45 78 70 61 6e 64 69 6e 67 20 3d 20 51 53 69 7a 65 50 6f 6c 69 63 79 2e 45 78 70 61 6e cy_Expanding.=.QSizePolicy.Expan
6700 64 69 6e 67 0a 20 20 20 20 71 53 69 7a 65 50 6f 6c 69 63 79 5f 50 72 65 66 65 72 72 65 64 20 3d ding.....qSizePolicy_Preferred.=
6720 20 51 53 69 7a 65 50 6f 6c 69 63 79 2e 50 72 65 66 65 72 72 65 64 0a 20 20 20 20 71 53 69 7a 65 .QSizePolicy.Preferred.....qSize
6740 50 6f 6c 69 63 79 5f 49 67 6e 6f 72 65 64 20 3d 20 51 53 69 7a 65 50 6f 6c 69 63 79 2e 49 67 6e Policy_Ignored.=.QSizePolicy.Ign
6760 6f 72 65 64 0a 0a 74 72 79 3a 0a 20 20 20 20 71 54 65 78 74 45 64 69 74 5f 4e 6f 57 72 61 70 20 ored..try:.....qTextEdit_NoWrap.
6780 3d 20 51 54 65 78 74 45 64 69 74 2e 4c 69 6e 65 57 72 61 70 4d 6f 64 65 2e 4e 6f 57 72 61 70 0a =.QTextEdit.LineWrapMode.NoWrap.
67a0 65 78 63 65 70 74 3a 0a 20 20 20 20 71 54 65 78 74 45 64 69 74 5f 4e 6f 57 72 61 70 20 3d 20 51 except:.....qTextEdit_NoWrap.=.Q
67c0 54 65 78 74 45 64 69 74 2e 4e 6f 57 72 61 70 0a 0a 74 72 79 3a 0a 20 20 20 20 71 74 44 72 6f 70 TextEdit.NoWrap..try:.....qtDrop
67e0 41 63 74 69 6f 6e 43 6f 70 79 41 63 74 69 6f 6e 20 3d 20 51 74 2e 44 72 6f 70 41 63 74 69 6f 6e ActionCopyAction.=.Qt.DropAction
6800 2e 43 6f 70 79 41 63 74 69 6f 6e 0a 20 20 20 20 71 74 44 72 6f 70 41 63 74 69 6f 6e 4d 6f 76 65 .CopyAction.....qtDropActionMove
6820 41 63 74 69 6f 6e 20 3d 20 51 74 2e 44 72 6f 70 41 63 74 69 6f 6e 2e 4d 6f 76 65 41 63 74 69 6f Action.=.Qt.DropAction.MoveActio
6840 6e 0a 65 78 63 65 70 74 3a 0a 20 20 20 20 71 74 44 72 6f 70 41 63 74 69 6f 6e 43 6f 70 79 41 63 n.except:.....qtDropActionCopyAc
6860 74 69 6f 6e 20 3d 20 51 74 2e 43 6f 70 79 41 63 74 69 6f 6e 0a 20 20 20 20 71 74 44 72 6f 70 41 tion.=.Qt.CopyAction.....qtDropA
6880 63 74 69 6f 6e 4d 6f 76 65 41 63 74 69 6f 6e 20 3d 20 51 74 2e 4d 6f 76 65 41 63 74 69 6f 6e 0a ctionMoveAction.=.Qt.MoveAction.
68a0 50 4b 03 04 14 00 00 00 00 00 87 a0 ac 5a 55 6a 15 1b 4f 2e 00 00 4f 2e 00 00 11 00 00 00 63 6f PK...........ZUj..O...O.......co
68c0 6d 6d 6f 6e 5f 64 69 61 6c 6f 67 73 2e 70 79 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 79 mmon_dialogs.py#!/usr/bin/env.py
68e0 74 68 6f 6e 0d 0a 23 20 76 69 6d 3a 66 69 6c 65 65 6e 63 6f 64 69 6e 67 3d 55 54 46 2d 38 3a 74 thon..#.vim:fileencoding=UTF-8:t
6900 73 3d 34 3a 73 77 3d 34 3a 73 74 61 3a 65 74 3a 73 74 73 3d 34 3a 61 69 0d 0a 66 72 6f 6d 20 5f s=4:sw=4:sta:et:sts=4:ai..from._
6920 5f 66 75 74 75 72 65 5f 5f 20 69 6d 70 6f 72 74 20 28 75 6e 69 63 6f 64 65 5f 6c 69 74 65 72 61 _future__.import.(unicode_litera
6940 6c 73 2c 20 64 69 76 69 73 69 6f 6e 2c 20 61 62 73 6f 6c 75 74 65 5f 69 6d 70 6f 72 74 2c 0d 0a ls,.division,.absolute_import,..
6960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 66 75 ........................print_fu
6980 6e 63 74 69 6f 6e 29 0d 0a 0d 0a 5f 5f 6c 69 63 65 6e 73 65 5f 5f 20 20 20 3d 20 27 47 50 4c 20 nction)....__license__...=.'GPL.
69a0 76 33 27 0d 0a 5f 5f 63 6f 70 79 72 69 67 68 74 5f 5f 20 3d 20 27 32 30 32 32 2c 20 47 72 61 6e v3'..__copyright__.=.'2022,.Gran
69c0 74 20 44 72 61 6b 65 27 0d 0a 0d 0a 23 20 63 61 6c 69 62 72 65 20 50 79 74 68 6f 6e 20 33 20 63 t.Drake'....#.calibre.Python.3.c
69e0 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 0d 0a 69 6d 70 6f 72 74 20 73 69 78 0d 0a 66 72 6f 6d 20 ompatibility...import.six..from.
6a00 73 69 78 20 69 6d 70 6f 72 74 20 74 65 78 74 5f 74 79 70 65 20 61 73 20 75 6e 69 63 6f 64 65 0d six.import.text_type.as.unicode.
6a20 0a 0d 0a 74 72 79 3a 0d 0a 20 20 20 20 66 72 6f 6d 20 71 74 2e 63 6f 72 65 20 69 6d 70 6f 72 74 ...try:......from.qt.core.import
6a40 20 28 51 44 69 61 6c 6f 67 2c 20 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e 42 6f 78 2c 20 51 56 42 .(QDialog,.QDialogButtonBox,.QVB
6a60 6f 78 4c 61 79 6f 75 74 2c 20 51 48 42 6f 78 4c 61 79 6f 75 74 2c 20 0d 0a 20 20 20 20 20 20 20 oxLayout,.QHBoxLayout,..........
6a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 51 4c 69 73 74 57 69 64 67 65 74 2c 20 51 50 .................QListWidget,.QP
6aa0 72 6f 67 72 65 73 73 42 61 72 2c 20 51 41 62 73 74 72 61 63 74 49 74 65 6d 56 69 65 77 2c 20 51 rogressBar,.QAbstractItemView,.Q
6ac0 54 65 78 74 45 64 69 74 2c 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 TextEdit,.......................
6ae0 20 20 20 20 51 49 63 6f 6e 2c 20 51 41 70 70 6c 69 63 61 74 69 6f 6e 2c 20 51 74 2c 20 51 54 65 ....QIcon,.QApplication,.Qt,.QTe
6b00 78 74 42 72 6f 77 73 65 72 2c 20 51 53 69 7a 65 2c 20 51 4c 61 62 65 6c 29 0d 0a 65 78 63 65 70 xtBrowser,.QSize,.QLabel)..excep
6b20 74 20 49 6d 70 6f 72 74 45 72 72 6f 72 3a 0d 0a 20 20 20 20 66 72 6f 6d 20 50 79 51 74 35 2e 51 t.ImportError:......from.PyQt5.Q
6b40 74 20 69 6d 70 6f 72 74 20 28 51 44 69 61 6c 6f 67 2c 20 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e t.import.(QDialog,.QDialogButton
6b60 42 6f 78 2c 20 51 56 42 6f 78 4c 61 79 6f 75 74 2c 20 51 48 42 6f 78 4c 61 79 6f 75 74 2c 20 0d Box,.QVBoxLayout,.QHBoxLayout,..
6b80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 51 4c 69 73 74 57 69 .........................QListWi
6ba0 64 67 65 74 2c 20 51 50 72 6f 67 72 65 73 73 42 61 72 2c 20 51 41 62 73 74 72 61 63 74 49 74 65 dget,.QProgressBar,.QAbstractIte
6bc0 6d 56 69 65 77 2c 20 51 54 65 78 74 45 64 69 74 2c 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 mView,.QTextEdit,...............
6be0 20 20 20 20 20 20 20 20 20 20 20 20 51 49 63 6f 6e 2c 20 51 41 70 70 6c 69 63 61 74 69 6f 6e 2c ............QIcon,.QApplication,
6c00 20 51 74 2c 20 51 54 65 78 74 42 72 6f 77 73 65 72 2c 20 51 53 69 7a 65 2c 20 51 4c 61 62 65 6c .Qt,.QTextBrowser,.QSize,.QLabel
6c20 29 0d 0a 0d 0a 74 72 79 3a 0d 0a 20 20 20 20 6c 6f 61 64 5f 74 72 61 6e 73 6c 61 74 69 6f 6e 73 )....try:......load_translations
6c40 28 29 0d 0a 65 78 63 65 70 74 20 4e 61 6d 65 45 72 72 6f 72 3a 0d 0a 20 20 20 20 70 61 73 73 20 ()..except.NameError:......pass.
6c60 23 20 6c 6f 61 64 5f 74 72 61 6e 73 6c 61 74 69 6f 6e 73 28 29 20 0d 0a 0d 0a 66 72 6f 6d 20 63 #.load_translations().....from.c
6c80 61 6c 69 62 72 65 2e 67 75 69 32 20 69 6d 70 6f 72 74 20 67 70 72 65 66 73 2c 20 69 6e 66 6f 5f alibre.gui2.import.gprefs,.info_
6ca0 64 69 61 6c 6f 67 2c 20 41 70 70 6c 69 63 61 74 69 6f 6e 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 dialog,.Application..from.calibr
6cc0 65 2e 67 75 69 32 2e 6b 65 79 62 6f 61 72 64 20 69 6d 70 6f 72 74 20 53 68 6f 72 74 63 75 74 43 e.gui2.keyboard.import.ShortcutC
6ce0 6f 6e 66 69 67 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 5f 70 6c 75 67 69 6e 73 2e 62 61 72 6e onfig..from.calibre_plugins.barn
6d00 65 73 5f 6e 6f 62 6c 65 2e 63 6f 6d 6d 6f 6e 5f 69 63 6f 6e 73 20 69 6d 70 6f 72 74 20 67 65 74 es_noble.common_icons.import.get
6d20 5f 69 63 6f 6e 0d 0a 0d 0a 0d 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d _icon......#.-------------------
6d40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 20 20 ---------------------------..#..
6d60 20 20 20 20 20 20 20 20 20 20 20 20 20 44 69 61 6c 6f 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 23 .............Dialog.functions..#
6d80 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
6da0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 63 6c 61 73 73 20 53 69 7a 65 50 65 72 ---------------....class.SizePer
6dc0 73 69 73 74 65 64 44 69 61 6c 6f 67 28 51 44 69 61 6c 6f 67 29 3a 0d 0a 20 20 20 20 27 27 27 0d sistedDialog(QDialog):......'''.
6de0 0a 20 20 20 20 54 68 69 73 20 64 69 61 6c 6f 67 20 69 73 20 61 20 62 61 73 65 20 63 6c 61 73 73 .....This.dialog.is.a.base.class
6e00 20 66 6f 72 20 61 6e 79 20 64 69 61 6c 6f 67 73 20 74 68 61 74 20 77 61 6e 74 20 74 68 65 69 72 .for.any.dialogs.that.want.their
6e20 20 73 69 7a 65 2f 70 6f 73 69 74 69 6f 6e 0d 0a 20 20 20 20 72 65 73 74 6f 72 65 64 20 77 68 65 .size/position......restored.whe
6e40 6e 20 74 68 65 79 20 61 72 65 20 6e 65 78 74 20 6f 70 65 6e 65 64 2e 0d 0a 20 20 20 20 27 27 27 n.they.are.next.opened.......'''
6e60 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 61 72 65 6e 74 2c ......def.__init__(self,.parent,
6e80 20 75 6e 69 71 75 65 5f 70 72 65 66 5f 6e 61 6d 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 51 44 69 .unique_pref_name):..........QDi
6ea0 61 6c 6f 67 2e 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 61 72 65 6e 74 29 0d 0a 20 20 20 alog.__init__(self,.parent).....
6ec0 20 20 20 20 20 73 65 6c 66 2e 75 6e 69 71 75 65 5f 70 72 65 66 5f 6e 61 6d 65 20 3d 20 75 6e 69 .....self.unique_pref_name.=.uni
6ee0 71 75 65 5f 70 72 65 66 5f 6e 61 6d 65 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 67 65 6f 6d que_pref_name..........self.geom
6f00 20 3d 20 67 70 72 65 66 73 2e 67 65 74 28 75 6e 69 71 75 65 5f 70 72 65 66 5f 6e 61 6d 65 2c 20 .=.gprefs.get(unique_pref_name,.
6f20 4e 6f 6e 65 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 66 69 6e 69 73 68 65 64 2e 63 6f 6e None)..........self.finished.con
6f40 6e 65 63 74 28 73 65 6c 66 2e 64 69 61 6c 6f 67 5f 63 6c 6f 73 69 6e 67 29 0d 0a 0d 0a 20 20 20 nect(self.dialog_closing).......
6f60 20 64 65 66 20 72 65 73 69 7a 65 5f 64 69 61 6c 6f 67 28 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 .def.resize_dialog(self):.......
6f80 20 20 20 69 66 20 73 65 6c 66 2e 67 65 6f 6d 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 ...if.self.geom.is.None:........
6fa0 20 20 20 20 20 20 73 65 6c 66 2e 72 65 73 69 7a 65 28 73 65 6c 66 2e 73 69 7a 65 48 69 6e 74 28 ......self.resize(self.sizeHint(
6fc0 29 29 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 ))..........else:..............s
6fe0 65 6c 66 2e 72 65 73 74 6f 72 65 47 65 6f 6d 65 74 72 79 28 73 65 6c 66 2e 67 65 6f 6d 29 0d 0a elf.restoreGeometry(self.geom)..
7000 0d 0a 20 20 20 20 64 65 66 20 64 69 61 6c 6f 67 5f 63 6c 6f 73 69 6e 67 28 73 65 6c 66 2c 20 72 ......def.dialog_closing(self,.r
7020 65 73 75 6c 74 29 3a 0d 0a 20 20 20 20 20 20 20 20 67 65 6f 6d 20 3d 20 62 79 74 65 61 72 72 61 esult):..........geom.=.bytearra
7040 79 28 73 65 6c 66 2e 73 61 76 65 47 65 6f 6d 65 74 72 79 28 29 29 0d 0a 20 20 20 20 20 20 20 20 y(self.saveGeometry())..........
7060 67 70 72 65 66 73 5b 73 65 6c 66 2e 75 6e 69 71 75 65 5f 70 72 65 66 5f 6e 61 6d 65 5d 20 3d 20 gprefs[self.unique_pref_name].=.
7080 67 65 6f 6d 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 65 72 73 69 73 74 5f 63 75 73 74 6f geom..........self.persist_custo
70a0 6d 5f 70 72 65 66 73 28 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 70 65 72 73 69 73 74 5f 63 75 73 m_prefs()........def.persist_cus
70c0 74 6f 6d 5f 70 72 65 66 73 28 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20 tom_prefs(self):..........'''...
70e0 20 20 20 20 20 20 20 49 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 64 69 61 6c 6f 67 20 69 .......Invoked.when.the.dialog.i
7100 73 20 63 6c 6f 73 69 6e 67 2e 20 4f 76 65 72 72 69 64 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f s.closing..Override.this.functio
7120 6e 20 74 6f 20 63 61 6c 6c 0d 0a 20 20 20 20 20 20 20 20 73 61 76 65 5f 63 75 73 74 6f 6d 5f 70 n.to.call..........save_custom_p
7140 72 65 66 28 29 20 69 66 20 79 6f 75 20 68 61 76 65 20 61 20 73 65 74 74 69 6e 67 20 79 6f 75 20 ref().if.you.have.a.setting.you.
7160 77 61 6e 74 20 70 65 72 73 69 73 74 65 64 20 74 68 61 74 20 79 6f 75 20 63 61 6e 0d 0a 20 20 20 want.persisted.that.you.can.....
7180 20 20 20 20 20 72 65 74 72 69 65 76 65 20 69 6e 20 79 6f 75 72 20 5f 5f 69 6e 69 74 5f 5f 28 29 .....retrieve.in.your.__init__()
71a0 20 75 73 69 6e 67 20 6c 6f 61 64 5f 63 75 73 74 6f 6d 5f 70 72 65 66 28 29 20 77 68 65 6e 20 6e .using.load_custom_pref().when.n
71c0 65 78 74 20 6f 70 65 6e 65 64 0d 0a 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20 ext.opened..........'''.........
71e0 20 70 61 73 73 0d 0a 0d 0a 20 20 20 20 64 65 66 20 6c 6f 61 64 5f 63 75 73 74 6f 6d 5f 70 72 65 .pass........def.load_custom_pre
7200 66 28 73 65 6c 66 2c 20 6e 61 6d 65 2c 20 64 65 66 61 75 6c 74 3d 4e 6f 6e 65 29 3a 0d 0a 20 20 f(self,.name,.default=None):....
7220 20 20 20 20 20 20 72 65 74 75 72 6e 20 67 70 72 65 66 73 2e 67 65 74 28 73 65 6c 66 2e 75 6e 69 ......return.gprefs.get(self.uni
7240 71 75 65 5f 70 72 65 66 5f 6e 61 6d 65 2b 27 3a 27 2b 6e 61 6d 65 2c 20 64 65 66 61 75 6c 74 29 que_pref_name+':'+name,.default)
7260 0d 0a 0d 0a 20 20 20 20 64 65 66 20 73 61 76 65 5f 63 75 73 74 6f 6d 5f 70 72 65 66 28 73 65 6c ........def.save_custom_pref(sel
7280 66 2c 20 6e 61 6d 65 2c 20 76 61 6c 75 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 67 70 72 65 66 73 f,.name,.value):..........gprefs
72a0 5b 73 65 6c 66 2e 75 6e 69 71 75 65 5f 70 72 65 66 5f 6e 61 6d 65 2b 27 3a 27 2b 6e 61 6d 65 5d [self.unique_pref_name+':'+name]
72c0 20 3d 20 76 61 6c 75 65 0d 0a 0d 0a 20 20 20 20 64 65 66 20 68 65 6c 70 5f 6c 69 6e 6b 5f 61 63 .=.value........def.help_link_ac
72e0 74 69 76 61 74 65 64 28 73 65 6c 66 2c 20 75 72 6c 29 3a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 tivated(self,.url):..........if.
7300 73 65 6c 66 2e 70 6c 75 67 69 6e 5f 61 63 74 69 6f 6e 20 69 73 20 6e 6f 74 20 4e 6f 6e 65 3a 0d self.plugin_action.is.not.None:.
7320 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 6c 75 67 69 6e 5f 61 63 74 69 6f 6e 2e .............self.plugin_action.
7340 73 68 6f 77 5f 68 65 6c 70 28 61 6e 63 68 6f 72 3d 73 65 6c 66 2e 68 65 6c 70 5f 61 6e 63 68 6f show_help(anchor=self.help_ancho
7360 72 29 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 20 4b 65 79 62 6f 61 72 64 43 6f 6e 66 69 67 44 69 61 6c r)......class.KeyboardConfigDial
7380 6f 67 28 53 69 7a 65 50 65 72 73 69 73 74 65 64 44 69 61 6c 6f 67 29 3a 0d 0a 20 20 20 20 27 27 og(SizePersistedDialog):......''
73a0 27 0d 0a 20 20 20 20 54 68 69 73 20 64 69 61 6c 6f 67 20 69 73 20 75 73 65 64 20 74 6f 20 61 6c '......This.dialog.is.used.to.al
73c0 6c 6f 77 20 65 64 69 74 69 6e 67 20 6f 66 20 6b 65 79 62 6f 61 72 64 20 73 68 6f 72 74 63 75 74 low.editing.of.keyboard.shortcut
73e0 73 2e 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 s.......'''......def.__init__(se
7400 6c 66 2c 20 67 75 69 2c 20 67 72 6f 75 70 5f 6e 61 6d 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 53 lf,.gui,.group_name):..........S
7420 69 7a 65 50 65 72 73 69 73 74 65 64 44 69 61 6c 6f 67 2e 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 izePersistedDialog.__init__(self
7440 2c 20 67 75 69 2c 20 27 4b 65 79 62 6f 61 72 64 20 73 68 6f 72 74 63 75 74 20 64 69 61 6c 6f 67 ,.gui,.'Keyboard.shortcut.dialog
7460 27 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 67 75 69 20 3d 20 67 75 69 0d 0a 20 20 20 20 ')..........self.gui.=.gui......
7480 20 20 20 20 73 65 6c 66 2e 73 65 74 57 69 6e 64 6f 77 54 69 74 6c 65 28 5f 28 27 4b 65 79 62 6f ....self.setWindowTitle(_('Keybo
74a0 61 72 64 20 73 68 6f 72 74 63 75 74 73 27 29 29 0d 0a 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74 ard.shortcuts'))..........layout
74c0 20 3d 20 51 56 42 6f 78 4c 61 79 6f 75 74 28 73 65 6c 66 29 0d 0a 20 20 20 20 20 20 20 20 73 65 .=.QVBoxLayout(self)..........se
74e0 6c 66 2e 73 65 74 4c 61 79 6f 75 74 28 6c 61 79 6f 75 74 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 lf.setLayout(layout)............
7500 73 65 6c 66 2e 6b 65 79 62 6f 61 72 64 5f 77 69 64 67 65 74 20 3d 20 53 68 6f 72 74 63 75 74 43 self.keyboard_widget.=.ShortcutC
7520 6f 6e 66 69 67 28 73 65 6c 66 29 0d 0a 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74 2e 61 64 64 57 onfig(self)..........layout.addW
7540 69 64 67 65 74 28 73 65 6c 66 2e 6b 65 79 62 6f 61 72 64 5f 77 69 64 67 65 74 29 0d 0a 20 20 20 idget(self.keyboard_widget).....
7560 20 20 20 20 20 73 65 6c 66 2e 67 72 6f 75 70 5f 6e 61 6d 65 20 3d 20 67 72 6f 75 70 5f 6e 61 6d .....self.group_name.=.group_nam
7580 65 0d 0a 0d 0a 20 20 20 20 20 20 20 20 62 75 74 74 6f 6e 5f 62 6f 78 20 3d 20 51 44 69 61 6c 6f e............button_box.=.QDialo
75a0 67 42 75 74 74 6f 6e 42 6f 78 28 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e 42 6f 78 2e 4f 6b 20 7c gButtonBox(QDialogButtonBox.Ok.|
75c0 20 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e 42 6f 78 2e 43 61 6e 63 65 6c 29 0d 0a 20 20 20 20 20 .QDialogButtonBox.Cancel).......
75e0 20 20 20 62 75 74 74 6f 6e 5f 62 6f 78 2e 61 63 63 65 70 74 65 64 2e 63 6f 6e 6e 65 63 74 28 73 ...button_box.accepted.connect(s
7600 65 6c 66 2e 63 6f 6d 6d 69 74 29 0d 0a 20 20 20 20 20 20 20 20 62 75 74 74 6f 6e 5f 62 6f 78 2e elf.commit)..........button_box.
7620 72 65 6a 65 63 74 65 64 2e 63 6f 6e 6e 65 63 74 28 73 65 6c 66 2e 72 65 6a 65 63 74 29 0d 0a 20 rejected.connect(self.reject)...
7640 20 20 20 20 20 20 20 6c 61 79 6f 75 74 2e 61 64 64 57 69 64 67 65 74 28 62 75 74 74 6f 6e 5f 62 .......layout.addWidget(button_b
7660 6f 78 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 20 43 61 75 73 65 20 6f 75 72 20 64 69 61 6c 6f ox)............#.Cause.our.dialo
7680 67 20 73 69 7a 65 20 74 6f 20 62 65 20 72 65 73 74 6f 72 65 64 20 66 72 6f 6d 20 70 72 65 66 73 g.size.to.be.restored.from.prefs
76a0 20 6f 72 20 63 72 65 61 74 65 64 20 6f 6e 20 66 69 72 73 74 20 75 73 61 67 65 0d 0a 20 20 20 20 .or.created.on.first.usage......
76c0 20 20 20 20 73 65 6c 66 2e 72 65 73 69 7a 65 5f 64 69 61 6c 6f 67 28 29 0d 0a 20 20 20 20 20 20 ....self.resize_dialog()........
76e0 20 20 73 65 6c 66 2e 69 6e 69 74 69 61 6c 69 7a 65 28 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 69 ..self.initialize()........def.i
7700 6e 69 74 69 61 6c 69 7a 65 28 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6b nitialize(self):..........self.k
7720 65 79 62 6f 61 72 64 5f 77 69 64 67 65 74 2e 69 6e 69 74 69 61 6c 69 7a 65 28 73 65 6c 66 2e 67 eyboard_widget.initialize(self.g
7740 75 69 2e 6b 65 79 62 6f 61 72 64 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 62 6f ui.keyboard)..........self.keybo
7760 61 72 64 5f 77 69 64 67 65 74 2e 68 69 67 68 6c 69 67 68 74 5f 67 72 6f 75 70 28 73 65 6c 66 2e ard_widget.highlight_group(self.
7780 67 72 6f 75 70 5f 6e 61 6d 65 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 63 6f 6d 6d 69 74 28 73 65 group_name)........def.commit(se
77a0 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 62 6f 61 72 64 5f 77 69 64 67 lf):..........self.keyboard_widg
77c0 65 74 2e 63 6f 6d 6d 69 74 28 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 63 63 65 70 74 et.commit()..........self.accept
77e0 28 29 0d 0a 0d 0a 0d 0a 64 65 66 20 70 72 6f 6d 70 74 5f 66 6f 72 5f 72 65 73 74 61 72 74 28 70 ()......def.prompt_for_restart(p
7800 61 72 65 6e 74 2c 20 74 69 74 6c 65 2c 20 6d 65 73 73 61 67 65 29 3a 0d 0a 20 20 20 20 64 20 3d arent,.title,.message):......d.=
7820 20 69 6e 66 6f 5f 64 69 61 6c 6f 67 28 70 61 72 65 6e 74 2c 20 74 69 74 6c 65 2c 20 6d 65 73 73 .info_dialog(parent,.title,.mess
7840 61 67 65 2c 20 73 68 6f 77 5f 63 6f 70 79 5f 62 75 74 74 6f 6e 3d 46 61 6c 73 65 29 0d 0a 20 20 age,.show_copy_button=False)....
7860 20 20 62 20 3d 20 64 2e 62 62 2e 61 64 64 42 75 74 74 6f 6e 28 5f 28 27 52 65 73 74 61 72 74 20 ..b.=.d.bb.addButton(_('Restart.
7880 63 61 6c 69 62 72 65 20 6e 6f 77 27 29 2c 20 64 2e 62 62 2e 41 63 63 65 70 74 52 6f 6c 65 29 0d calibre.now'),.d.bb.AcceptRole).
78a0 0a 20 20 20 20 62 2e 73 65 74 49 63 6f 6e 28 51 49 63 6f 6e 28 49 28 27 6c 74 2e 70 6e 67 27 29 .....b.setIcon(QIcon(I('lt.png')
78c0 29 29 0d 0a 20 20 20 20 64 2e 64 6f 5f 72 65 73 74 61 72 74 20 3d 20 46 61 6c 73 65 0d 0a 20 20 ))......d.do_restart.=.False....
78e0 20 20 64 65 66 20 72 66 28 29 3a 0d 0a 20 20 20 20 20 20 20 20 64 2e 64 6f 5f 72 65 73 74 61 72 ..def.rf():..........d.do_restar
7900 74 20 3d 20 54 72 75 65 0d 0a 20 20 20 20 62 2e 63 6c 69 63 6b 65 64 2e 63 6f 6e 6e 65 63 74 28 t.=.True......b.clicked.connect(
7920 72 66 29 0d 0a 20 20 20 20 64 2e 73 65 74 5f 64 65 74 61 69 6c 73 28 27 27 29 0d 0a 20 20 20 20 rf)......d.set_details('')......
7940 64 2e 65 78 65 63 5f 28 29 0d 0a 20 20 20 20 62 2e 63 6c 69 63 6b 65 64 2e 64 69 73 63 6f 6e 6e d.exec_()......b.clicked.disconn
7960 65 63 74 28 29 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 64 2e 64 6f 5f 72 65 73 74 61 72 74 0d 0a ect()......return.d.do_restart..
7980 0d 0a 0d 0a 63 6c 61 73 73 20 50 72 65 66 73 56 69 65 77 65 72 44 69 61 6c 6f 67 28 53 69 7a 65 ....class.PrefsViewerDialog(Size
79a0 50 65 72 73 69 73 74 65 64 44 69 61 6c 6f 67 29 3a 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 PersistedDialog):........def.__i
79c0 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 67 75 69 2c 20 6e 61 6d 65 73 70 61 63 65 29 3a 0d 0a 20 20 nit__(self,.gui,.namespace):....
79e0 20 20 20 20 20 20 53 69 7a 65 50 65 72 73 69 73 74 65 64 44 69 61 6c 6f 67 2e 5f 5f 69 6e 69 74 ......SizePersistedDialog.__init
7a00 5f 5f 28 73 65 6c 66 2c 20 67 75 69 2c 20 27 50 72 65 66 73 20 56 69 65 77 65 72 20 64 69 61 6c __(self,.gui,.'Prefs.Viewer.dial
7a20 6f 67 27 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 57 69 6e 64 6f 77 54 69 74 6c og')..........self.setWindowTitl
7a40 65 28 5f 28 27 50 72 65 66 65 72 65 6e 63 65 73 20 66 6f 72 3a 27 29 2b 27 20 27 2b 6e 61 6d 65 e(_('Preferences.for:')+'.'+name
7a60 73 70 61 63 65 29 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 67 space)....................self.g
7a80 75 69 20 3d 20 67 75 69 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 64 62 20 3d 20 67 75 69 2e ui.=.gui..........self.db.=.gui.
7aa0 63 75 72 72 65 6e 74 5f 64 62 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6e 61 6d 65 73 70 61 current_db..........self.namespa
7ac0 63 65 20 3d 20 6e 61 6d 65 73 70 61 63 65 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 5f 69 6e ce.=.namespace..........self._in
7ae0 69 74 5f 63 6f 6e 74 72 6f 6c 73 28 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 72 65 73 69 it_controls()..........self.resi
7b00 7a 65 5f 64 69 61 6c 6f 67 28 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 5f 70 6f 70 ze_dialog()............self._pop
7b20 75 6c 61 74 65 5f 73 65 74 74 69 6e 67 73 28 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 73 ulate_settings()............if.s
7b40 65 6c 66 2e 6b 65 79 73 5f 6c 69 73 74 2e 63 6f 75 6e 74 28 29 3a 0d 0a 20 20 20 20 20 20 20 20 elf.keys_list.count():..........
7b60 20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f 6c 69 73 74 2e 73 65 74 43 75 72 72 65 6e 74 52 6f 77 ....self.keys_list.setCurrentRow
7b80 28 30 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 69 6e 69 74 5f 63 6f 6e 74 72 6f 6c 73 28 73 65 (0)........def._init_controls(se
7ba0 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74 20 3d 20 51 56 42 6f 78 4c 61 79 6f lf):..........layout.=.QVBoxLayo
7bc0 75 74 28 73 65 6c 66 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 4c 61 79 6f 75 74 ut(self)..........self.setLayout
7be0 28 6c 61 79 6f 75 74 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 6d 6c 20 3d 20 51 48 42 6f 78 4c 61 (layout)............ml.=.QHBoxLa
7c00 79 6f 75 74 28 29 0d 0a 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74 2e 61 64 64 4c 61 79 6f 75 74 yout()..........layout.addLayout
7c20 28 6d 6c 2c 20 31 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f 6c 69 73 (ml,.1)............self.keys_lis
7c40 74 20 3d 20 51 4c 69 73 74 57 69 64 67 65 74 28 73 65 6c 66 29 0d 0a 20 20 20 20 20 20 20 20 73 t.=.QListWidget(self)..........s
7c60 65 6c 66 2e 6b 65 79 73 5f 6c 69 73 74 2e 73 65 74 53 65 6c 65 63 74 69 6f 6e 4d 6f 64 65 28 51 elf.keys_list.setSelectionMode(Q
7c80 41 62 73 74 72 61 63 74 49 74 65 6d 56 69 65 77 2e 53 69 6e 67 6c 65 53 65 6c 65 63 74 69 6f 6e AbstractItemView.SingleSelection
7ca0 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f 6c 69 73 74 2e 73 65 74 46 69 78 )..........self.keys_list.setFix
7cc0 65 64 57 69 64 74 68 28 31 35 30 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f edWidth(150)..........self.keys_
7ce0 6c 69 73 74 2e 73 65 74 41 6c 74 65 72 6e 61 74 69 6e 67 52 6f 77 43 6f 6c 6f 72 73 28 54 72 75 list.setAlternatingRowColors(Tru
7d00 65 29 0d 0a 20 20 20 20 20 20 20 20 6d 6c 2e 61 64 64 57 69 64 67 65 74 28 73 65 6c 66 2e 6b 65 e)..........ml.addWidget(self.ke
7d20 79 73 5f 6c 69 73 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 76 61 6c 75 65 5f 74 65 78 ys_list)..........self.value_tex
7d40 74 20 3d 20 51 54 65 78 74 45 64 69 74 28 73 65 6c 66 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c t.=.QTextEdit(self)..........sel
7d60 66 2e 76 61 6c 75 65 5f 74 65 78 74 2e 73 65 74 52 65 61 64 4f 6e 6c 79 28 46 61 6c 73 65 29 0d f.value_text.setReadOnly(False).
7d80 0a 20 20 20 20 20 20 20 20 6d 6c 2e 61 64 64 57 69 64 67 65 74 28 73 65 6c 66 2e 76 61 6c 75 65 .........ml.addWidget(self.value
7da0 5f 74 65 78 74 2c 20 31 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 62 75 74 74 6f 6e 5f 62 6f 78 20 _text,.1)............button_box.
7dc0 3d 20 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e 42 6f 78 28 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e =.QDialogButtonBox(QDialogButton
7de0 42 6f 78 2e 4f 6b 20 7c 20 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e 42 6f 78 2e 43 61 6e 63 65 6c Box.Ok.|.QDialogButtonBox.Cancel
7e00 29 0d 0a 20 20 20 20 20 20 20 20 62 75 74 74 6f 6e 5f 62 6f 78 2e 61 63 63 65 70 74 65 64 2e 63 )..........button_box.accepted.c
7e20 6f 6e 6e 65 63 74 28 73 65 6c 66 2e 5f 61 70 70 6c 79 5f 63 68 61 6e 67 65 73 29 0d 0a 20 20 20 onnect(self._apply_changes).....
7e40 20 20 20 20 20 62 75 74 74 6f 6e 5f 62 6f 78 2e 72 65 6a 65 63 74 65 64 2e 63 6f 6e 6e 65 63 74 .....button_box.rejected.connect
7e60 28 73 65 6c 66 2e 72 65 6a 65 63 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6c 65 61 (self.reject)..........self.clea
7e80 72 5f 62 75 74 74 6f 6e 20 3d 20 62 75 74 74 6f 6e 5f 62 6f 78 2e 61 64 64 42 75 74 74 6f 6e 28 r_button.=.button_box.addButton(
7ea0 5f 28 27 43 6c 65 61 72 27 29 2c 20 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e 42 6f 78 2e 52 65 73 _('Clear'),.QDialogButtonBox.Res
7ec0 65 74 52 6f 6c 65 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6c 65 61 72 5f 62 75 74 74 etRole)..........self.clear_butt
7ee0 6f 6e 2e 73 65 74 49 63 6f 6e 28 67 65 74 5f 69 63 6f 6e 28 27 74 72 61 73 68 2e 70 6e 67 27 29 on.setIcon(get_icon('trash.png')
7f00 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6c 65 61 72 5f 62 75 74 74 6f 6e 2e 73 65 74 )..........self.clear_button.set
7f20 54 6f 6f 6c 54 69 70 28 5f 28 27 43 6c 65 61 72 20 61 6c 6c 20 73 65 74 74 69 6e 67 73 20 66 6f ToolTip(_('Clear.all.settings.fo
7f40 72 20 74 68 69 73 20 70 6c 75 67 69 6e 27 29 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 r.this.plugin'))..........self.c
7f60 6c 65 61 72 5f 62 75 74 74 6f 6e 2e 63 6c 69 63 6b 65 64 2e 63 6f 6e 6e 65 63 74 28 73 65 6c 66 lear_button.clicked.connect(self
7f80 2e 5f 63 6c 65 61 72 5f 73 65 74 74 69 6e 67 73 29 0d 0a 20 20 20 20 20 20 20 20 6c 61 79 6f 75 ._clear_settings)..........layou
7fa0 74 2e 61 64 64 57 69 64 67 65 74 28 62 75 74 74 6f 6e 5f 62 6f 78 29 0d 0a 0d 0a 20 20 20 20 64 t.addWidget(button_box)........d
7fc0 65 66 20 5f 70 6f 70 75 6c 61 74 65 5f 73 65 74 74 69 6e 67 73 28 73 65 6c 66 29 3a 0d 0a 20 20 ef._populate_settings(self):....
7fe0 20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f 6c 69 73 74 2e 63 6c 65 61 72 28 29 0d 0a 20 20 ......self.keys_list.clear()....
8000 20 20 20 20 20 20 6e 73 5f 70 72 65 66 69 78 20 3d 20 73 65 6c 66 2e 5f 67 65 74 5f 6e 73 5f 70 ......ns_prefix.=.self._get_ns_p
8020 72 65 66 69 78 28 29 0d 0a 20 20 20 20 20 20 20 20 6b 65 79 73 20 3d 20 73 6f 72 74 65 64 28 5b refix()..........keys.=.sorted([
8040 6b 5b 6c 65 6e 28 6e 73 5f 70 72 65 66 69 78 29 3a 5d 20 66 6f 72 20 6b 20 69 6e 20 73 69 78 2e k[len(ns_prefix):].for.k.in.six.
8060 69 74 65 72 6b 65 79 73 28 73 65 6c 66 2e 64 62 2e 70 72 65 66 73 29 0d 0a 20 20 20 20 20 20 20 iterkeys(self.db.prefs).........
8080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6b 2e 73 74 61 72 74 73 77 69 74 68 28 ................if.k.startswith(
80a0 6e 73 5f 70 72 65 66 69 78 29 5d 29 0d 0a 20 20 20 20 20 20 20 20 66 6f 72 20 6b 65 79 20 69 6e ns_prefix)])..........for.key.in
80c0 20 6b 65 79 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f 6c 69 .keys:..............self.keys_li
80e0 73 74 2e 61 64 64 49 74 65 6d 28 6b 65 79 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6b 65 st.addItem(key)..........self.ke
8100 79 73 5f 6c 69 73 74 2e 73 65 74 4d 69 6e 69 6d 75 6d 57 69 64 74 68 28 73 65 6c 66 2e 6b 65 79 ys_list.setMinimumWidth(self.key
8120 73 5f 6c 69 73 74 2e 73 69 7a 65 48 69 6e 74 46 6f 72 43 6f 6c 75 6d 6e 28 30 29 29 0d 0a 20 20 s_list.sizeHintForColumn(0))....
8140 20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f 6c 69 73 74 2e 63 75 72 72 65 6e 74 52 6f 77 43 ......self.keys_list.currentRowC
8160 68 61 6e 67 65 64 5b 69 6e 74 5d 2e 63 6f 6e 6e 65 63 74 28 73 65 6c 66 2e 5f 63 75 72 72 65 6e hanged[int].connect(self._curren
8180 74 5f 72 6f 77 5f 63 68 61 6e 67 65 64 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 63 75 72 72 65 t_row_changed)........def._curre
81a0 6e 74 5f 72 6f 77 5f 63 68 61 6e 67 65 64 28 73 65 6c 66 2c 20 6e 65 77 5f 72 6f 77 29 3a 0d 0a nt_row_changed(self,.new_row):..
81c0 20 20 20 20 20 20 20 20 69 66 20 6e 65 77 5f 72 6f 77 20 3c 20 30 3a 0d 0a 20 20 20 20 20 20 20 ........if.new_row.<.0:.........
81e0 20 20 20 20 20 73 65 6c 66 2e 76 61 6c 75 65 5f 74 65 78 74 2e 63 6c 65 61 72 28 29 0d 0a 20 20 .....self.value_text.clear()....
8200 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d 0a 20 20 20 20 20 20 20 20 6b 65 79 20 3d 20 ..........return..........key.=.
8220 75 6e 69 63 6f 64 65 28 73 65 6c 66 2e 6b 65 79 73 5f 6c 69 73 74 2e 63 75 72 72 65 6e 74 49 74 unicode(self.keys_list.currentIt
8240 65 6d 28 29 2e 74 65 78 74 28 29 29 0d 0a 20 20 20 20 20 20 20 20 76 61 6c 20 3d 20 73 65 6c 66 em().text())..........val.=.self
8260 2e 64 62 2e 70 72 65 66 73 2e 67 65 74 5f 6e 61 6d 65 73 70 61 63 65 64 28 73 65 6c 66 2e 6e 61 .db.prefs.get_namespaced(self.na
8280 6d 65 73 70 61 63 65 2c 20 6b 65 79 2c 20 27 27 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e mespace,.key,.'')..........self.
82a0 76 61 6c 75 65 5f 74 65 78 74 2e 73 65 74 50 6c 61 69 6e 54 65 78 74 28 73 65 6c 66 2e 64 62 2e value_text.setPlainText(self.db.
82c0 70 72 65 66 73 2e 74 6f 5f 72 61 77 28 76 61 6c 29 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 67 prefs.to_raw(val))........def._g
82e0 65 74 5f 6e 73 5f 70 72 65 66 69 78 28 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 74 et_ns_prefix(self):..........ret
8300 75 72 6e 20 27 6e 61 6d 65 73 70 61 63 65 64 3a 25 73 3a 27 25 20 73 65 6c 66 2e 6e 61 6d 65 73 urn.'namespaced:%s:'%.self.names
8320 70 61 63 65 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 61 70 70 6c 79 5f 63 68 61 6e 67 65 73 28 73 pace........def._apply_changes(s
8340 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 67 75 69 32 elf):..........from.calibre.gui2
8360 2e 64 69 61 6c 6f 67 73 2e 63 6f 6e 66 69 72 6d 5f 64 65 6c 65 74 65 20 69 6d 70 6f 72 74 20 63 .dialogs.confirm_delete.import.c
8380 6f 6e 66 69 72 6d 0d 0a 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 20 3d 20 27 3c 70 3e 27 2b onfirm..........message.=.'<p>'+
83a0 5f 28 27 41 72 65 20 79 6f 75 20 73 75 72 65 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 68 61 6e _('Are.you.sure.you.want.to.chan
83c0 67 65 20 79 6f 75 72 20 73 65 74 74 69 6e 67 73 20 69 6e 20 74 68 69 73 20 6c 69 62 72 61 72 79 ge.your.settings.in.this.library
83e0 20 66 6f 72 20 74 68 69 73 20 70 6c 75 67 69 6e 3f 27 29 2b 27 3c 2f 70 3e 27 20 5c 0d 0a 20 20 .for.this.plugin?')+'</p>'.\....
8400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 3c 70 3e 27 2b 5f 28 27 41 6e 79 20 73 65 74 ................'<p>'+_('Any.set
8420 74 69 6e 67 73 20 69 6e 20 6f 74 68 65 72 20 6c 69 62 72 61 72 69 65 73 20 6f 72 20 73 74 6f 72 tings.in.other.libraries.or.stor
8440 65 64 20 69 6e 20 61 20 4a 53 4f 4e 20 66 69 6c 65 20 69 6e 20 79 6f 75 72 20 63 61 6c 69 62 72 ed.in.a.JSON.file.in.your.calibr
8460 65 20 70 6c 75 67 69 6e 73 20 27 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.plugins.'.\...................
8480 20 27 66 6f 6c 64 65 72 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 74 6f 75 63 68 65 64 2e 27 29 2b .'folder.will.not.be.touched.')+
84a0 27 3c 2f 70 3e 27 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 3c 3e 27 '</p>'.\....................'<>'
84c0 2b 5f 28 27 59 6f 75 20 6d 75 73 74 20 72 65 73 74 61 72 74 20 63 61 6c 69 62 72 65 20 61 66 74 +_('You.must.restart.calibre.aft
84e0 65 72 77 61 72 64 73 2e 27 29 2b 27 3c 2f 70 3e 27 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f erwards.')+'</p>'..........if.no
8500 74 20 63 6f 6e 66 69 72 6d 28 6d 65 73 73 61 67 65 2c 20 73 65 6c 66 2e 6e 61 6d 65 73 70 61 63 t.confirm(message,.self.namespac
8520 65 2b 27 5f 63 6c 65 61 72 5f 73 65 74 74 69 6e 67 73 27 2c 20 73 65 6c 66 29 3a 0d 0a 20 20 20 e+'_clear_settings',.self):.....
8540 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d 0a 0d 0a 20 20 20 20 20 20 20 20 76 61 6c 20 3d .........return............val.=
8560 20 73 65 6c 66 2e 64 62 2e 70 72 65 66 73 2e 72 61 77 5f 74 6f 5f 6f 62 6a 65 63 74 28 75 6e 69 .self.db.prefs.raw_to_object(uni
8580 63 6f 64 65 28 73 65 6c 66 2e 76 61 6c 75 65 5f 74 65 78 74 2e 74 6f 50 6c 61 69 6e 54 65 78 74 code(self.value_text.toPlainText
85a0 28 29 29 29 0d 0a 20 20 20 20 20 20 20 20 6b 65 79 20 3d 20 75 6e 69 63 6f 64 65 28 73 65 6c 66 ()))..........key.=.unicode(self
85c0 2e 6b 65 79 73 5f 6c 69 73 74 2e 63 75 72 72 65 6e 74 49 74 65 6d 28 29 2e 74 65 78 74 28 29 29 .keys_list.currentItem().text())
85e0 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 64 62 2e 70 72 65 66 73 2e 73 65 74 5f 6e 61 6d 65 ..........self.db.prefs.set_name
8600 73 70 61 63 65 64 28 73 65 6c 66 2e 6e 61 6d 65 73 70 61 63 65 2c 20 6b 65 79 2c 20 76 61 6c 29 spaced(self.namespace,.key,.val)
8620 0d 0a 0d 0a 20 20 20 20 20 20 20 20 72 65 73 74 61 72 74 20 3d 20 70 72 6f 6d 70 74 5f 66 6f 72 ............restart.=.prompt_for
8640 5f 72 65 73 74 61 72 74 28 73 65 6c 66 2c 20 5f 28 27 53 65 74 74 69 6e 67 73 20 63 68 61 6e 67 _restart(self,._('Settings.chang
8660 65 64 27 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ed'),...........................
8680 20 20 27 3c 70 3e 27 2b 5f 28 27 53 65 74 74 69 6e 67 73 20 66 6f 72 20 74 68 69 73 20 70 6c 75 ..'<p>'+_('Settings.for.this.plu
86a0 67 69 6e 20 69 6e 20 74 68 69 73 20 6c 69 62 72 61 72 79 20 68 61 76 65 20 62 65 65 6e 20 63 68 gin.in.this.library.have.been.ch
86c0 61 6e 67 65 64 2e 27 29 2b 27 3c 2f 70 3e 27 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 anged.')+'</p>'.\...............
86e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 3c 70 3e 27 2b 5f 28 27 50 6c 65 61 73 65 20 72 65 ..............'<p>'+_('Please.re
8700 73 74 61 72 74 20 63 61 6c 69 62 72 65 20 6e 6f 77 2e 27 29 2b 27 3c 2f 70 3e 27 29 0d 0a 20 20 start.calibre.now.')+'</p>')....
8720 20 20 20 20 20 20 73 65 6c 66 2e 63 6c 6f 73 65 28 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 72 ......self.close()..........if.r
8740 65 73 74 61 72 74 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 67 75 69 2e 71 75 estart:..............self.gui.qu
8760 69 74 28 72 65 73 74 61 72 74 3d 54 72 75 65 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 63 6c 65 it(restart=True)........def._cle
8780 61 72 5f 73 65 74 74 69 6e 67 73 28 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 66 72 6f 6d ar_settings(self):..........from
87a0 20 63 61 6c 69 62 72 65 2e 67 75 69 32 2e 64 69 61 6c 6f 67 73 2e 63 6f 6e 66 69 72 6d 5f 64 65 .calibre.gui2.dialogs.confirm_de
87c0 6c 65 74 65 20 69 6d 70 6f 72 74 20 63 6f 6e 66 69 72 6d 0d 0a 20 20 20 20 20 20 20 20 6d 65 73 lete.import.confirm..........mes
87e0 73 61 67 65 20 3d 20 27 3c 70 3e 27 2b 5f 28 27 41 72 65 20 79 6f 75 20 73 75 72 65 20 79 6f 75 sage.=.'<p>'+_('Are.you.sure.you
8800 20 77 61 6e 74 20 74 6f 20 63 6c 65 61 72 20 79 6f 75 72 20 73 65 74 74 69 6e 67 73 20 69 6e 20 .want.to.clear.your.settings.in.
8820 74 68 69 73 20 6c 69 62 72 61 72 79 20 66 6f 72 20 74 68 69 73 20 70 6c 75 67 69 6e 3f 27 29 2b this.library.for.this.plugin?')+
8840 27 3c 2f 70 3e 27 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 3c 70 3e '</p>'.\....................'<p>
8860 27 2b 5f 28 27 41 6e 79 20 73 65 74 74 69 6e 67 73 20 69 6e 20 6f 74 68 65 72 20 6c 69 62 72 61 '+_('Any.settings.in.other.libra
8880 72 69 65 73 20 6f 72 20 73 74 6f 72 65 64 20 69 6e 20 61 20 4a 53 4f 4e 20 66 69 6c 65 20 69 6e ries.or.stored.in.a.JSON.file.in
88a0 20 79 6f 75 72 20 63 61 6c 69 62 72 65 20 70 6c 75 67 69 6e 73 20 27 20 5c 0d 0a 20 20 20 20 20 .your.calibre.plugins.'.\.......
88c0 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6c 64 65 72 20 77 69 6c 6c 20 6e 6f 74 20 62 65 .............'folder.will.not.be
88e0 20 74 6f 75 63 68 65 64 2e 27 29 2b 27 3c 2f 70 3e 27 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20 .touched.')+'</p>'.\............
8900 20 20 20 20 20 20 20 20 27 3c 70 3e 27 2b 5f 28 27 59 6f 75 20 6d 75 73 74 20 72 65 73 74 61 72 ........'<p>'+_('You.must.restar
8920 74 20 63 61 6c 69 62 72 65 20 61 66 74 65 72 77 61 72 64 73 2e 27 29 2b 27 3c 2f 70 3e 27 0d 0a t.calibre.afterwards.')+'</p>'..
8940 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 63 6f 6e 66 69 72 6d 28 6d 65 73 73 61 67 65 2c 20 ........if.not.confirm(message,.
8960 73 65 6c 66 2e 6e 61 6d 65 73 70 61 63 65 2b 27 5f 63 6c 65 61 72 5f 73 65 74 74 69 6e 67 73 27 self.namespace+'_clear_settings'
8980 2c 20 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d 0a 0d 0a ,.self):..............return....
89a0 20 20 20 20 20 20 20 20 6e 73 5f 70 72 65 66 69 78 20 3d 20 73 65 6c 66 2e 5f 67 65 74 5f 6e 73 ........ns_prefix.=.self._get_ns
89c0 5f 70 72 65 66 69 78 28 29 0d 0a 20 20 20 20 20 20 20 20 6b 65 79 73 20 3d 20 5b 6b 20 66 6f 72 _prefix()..........keys.=.[k.for
89e0 20 6b 20 69 6e 20 73 69 78 2e 69 74 65 72 6b 65 79 73 28 73 65 6c 66 2e 64 62 2e 70 72 65 66 73 .k.in.six.iterkeys(self.db.prefs
8a00 29 20 69 66 20 6b 2e 73 74 61 72 74 73 77 69 74 68 28 6e 73 5f 70 72 65 66 69 78 29 5d 0d 0a 20 ).if.k.startswith(ns_prefix)]...
8a20 20 20 20 20 20 20 20 66 6f 72 20 6b 20 69 6e 20 6b 65 79 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 .......for.k.in.keys:...........
8a40 20 20 20 64 65 6c 20 73 65 6c 66 2e 64 62 2e 70 72 65 66 73 5b 6b 5d 0d 0a 20 20 20 20 20 20 20 ...del.self.db.prefs[k].........
8a60 20 73 65 6c 66 2e 5f 70 6f 70 75 6c 61 74 65 5f 73 65 74 74 69 6e 67 73 28 29 0d 0a 20 20 20 20 .self._populate_settings()......
8a80 20 20 20 20 72 65 73 74 61 72 74 20 3d 20 70 72 6f 6d 70 74 5f 66 6f 72 5f 72 65 73 74 61 72 74 ....restart.=.prompt_for_restart
8aa0 28 73 65 6c 66 2c 20 5f 28 27 53 65 74 74 69 6e 67 73 20 64 65 6c 65 74 65 64 27 29 2c 0d 0a 20 (self,._('Settings.deleted'),...
8ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 3c 70 3e 27 2b ..........................'<p>'+
8ae0 5f 28 27 41 6c 6c 20 73 65 74 74 69 6e 67 73 20 66 6f 72 20 74 68 69 73 20 70 6c 75 67 69 6e 20 _('All.settings.for.this.plugin.
8b00 69 6e 20 74 68 69 73 20 6c 69 62 72 61 72 79 20 68 61 76 65 20 62 65 65 6e 20 63 6c 65 61 72 65 in.this.library.have.been.cleare
8b20 64 2e 27 29 2b 27 3c 2f 70 3e 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d.')+'</p>'.....................
8b40 20 20 20 20 20 20 20 20 27 3c 70 3e 27 2b 5f 28 27 50 6c 65 61 73 65 20 72 65 73 74 61 72 74 20 ........'<p>'+_('Please.restart.
8b60 63 61 6c 69 62 72 65 20 6e 6f 77 2e 27 29 2b 27 3c 2f 70 3e 27 29 0d 0a 20 20 20 20 20 20 20 20 calibre.now.')+'</p>')..........
8b80 73 65 6c 66 2e 63 6c 6f 73 65 28 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 72 65 73 74 61 72 74 self.close()..........if.restart
8ba0 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 67 75 69 2e 71 75 69 74 28 72 65 73 :..............self.gui.quit(res
8bc0 74 61 72 74 3d 54 72 75 65 29 0d 0a 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 20 50 72 6f 67 72 65 73 73 tart=True)........class.Progress
8be0 42 61 72 44 69 61 6c 6f 67 28 51 44 69 61 6c 6f 67 29 3a 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 BarDialog(QDialog):......def.__i
8c00 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 61 72 65 6e 74 3d 4e 6f 6e 65 2c 20 6d 61 78 5f 69 74 65 nit__(self,.parent=None,.max_ite
8c20 6d 73 3d 31 30 30 2c 20 77 69 6e 64 6f 77 5f 74 69 74 6c 65 3d 27 50 72 6f 67 72 65 73 73 20 42 ms=100,.window_title='Progress.B
8c40 61 72 27 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 4c 61 ar',...................label='La
8c60 62 65 6c 20 67 6f 65 73 20 68 65 72 65 27 2c 20 6f 6e 5f 74 6f 70 3d 46 61 6c 73 65 29 3a 0d 0a bel.goes.here',.on_top=False):..
8c80 20 20 20 20 20 20 20 20 69 66 20 6f 6e 5f 74 6f 70 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ........if.on_top:..............
8ca0 73 75 70 65 72 28 50 72 6f 67 72 65 73 73 42 61 72 44 69 61 6c 6f 67 2c 20 73 65 6c 66 29 2e 5f super(ProgressBarDialog,.self)._
8cc0 5f 69 6e 69 74 5f 5f 28 70 61 72 65 6e 74 3d 70 61 72 65 6e 74 2c 20 66 6c 61 67 73 3d 51 74 2e _init__(parent=parent,.flags=Qt.
8ce0 57 69 6e 64 6f 77 53 74 61 79 73 4f 6e 54 6f 70 48 69 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 65 WindowStaysOnTopHint)..........e
8d00 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 75 70 65 72 28 50 72 6f 67 72 65 73 73 lse:..............super(Progress
8d20 42 61 72 44 69 61 6c 6f 67 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f 28 70 61 72 65 6e 74 BarDialog,.self).__init__(parent
8d40 3d 70 61 72 65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 70 70 6c 69 63 61 74 69 =parent)..........self.applicati
8d60 6f 6e 20 3d 20 41 70 70 6c 69 63 61 74 69 6f 6e 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 on.=.Application..........self.s
8d80 65 74 57 69 6e 64 6f 77 54 69 74 6c 65 28 77 69 6e 64 6f 77 5f 74 69 74 6c 65 29 0d 0a 20 20 20 etWindowTitle(window_title).....
8da0 20 20 20 20 20 73 65 6c 66 2e 6c 20 3d 20 51 56 42 6f 78 4c 61 79 6f 75 74 28 73 65 6c 66 29 0d .....self.l.=.QVBoxLayout(self).
8dc0 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 4c 61 79 6f 75 74 28 73 65 6c 66 2e 6c 29 0d .........self.setLayout(self.l).
8de0 0a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 61 62 65 6c 20 3d 20 51 4c 61 62 65 6c 28 6c ...........self.label.=.QLabel(l
8e00 61 62 65 6c 29 0d 0a 23 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 61 62 65 6c 2e 73 65 74 41 abel)..#.........self.label.setA
8e20 6c 69 67 6e 6d 65 6e 74 28 51 74 2e 41 6c 69 67 6e 48 43 65 6e 74 65 72 29 0d 0a 20 20 20 20 20 lignment(Qt.AlignHCenter).......
8e40 20 20 20 73 65 6c 66 2e 6c 2e 61 64 64 57 69 64 67 65 74 28 73 65 6c 66 2e 6c 61 62 65 6c 29 0d ...self.l.addWidget(self.label).
8e60 0a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 72 6f 67 72 65 73 73 42 61 72 20 3d 20 51 50 ...........self.progressBar.=.QP
8e80 72 6f 67 72 65 73 73 42 61 72 28 73 65 6c 66 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 rogressBar(self)..........self.p
8ea0 72 6f 67 72 65 73 73 42 61 72 2e 73 65 74 52 61 6e 67 65 28 30 2c 20 6d 61 78 5f 69 74 65 6d 73 rogressBar.setRange(0,.max_items
8ec0 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 72 6f 67 72 65 73 73 42 61 72 2e 73 65 74 56 )..........self.progressBar.setV
8ee0 61 6c 75 65 28 30 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 2e 61 64 64 57 69 64 67 65 alue(0)..........self.l.addWidge
8f00 74 28 73 65 6c 66 2e 70 72 6f 67 72 65 73 73 42 61 72 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 69 t(self.progressBar)........def.i
8f20 6e 63 72 65 6d 65 6e 74 28 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 72 ncrement(self):..........self.pr
8f40 6f 67 72 65 73 73 42 61 72 2e 73 65 74 56 61 6c 75 65 28 73 65 6c 66 2e 70 72 6f 67 72 65 73 73 ogressBar.setValue(self.progress
8f60 42 61 72 2e 76 61 6c 75 65 28 29 20 2b 20 31 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 72 Bar.value().+.1)..........self.r
8f80 65 66 72 65 73 68 28 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 72 65 66 72 65 73 68 28 73 65 6c 66 efresh()........def.refresh(self
8fa0 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 70 70 6c 69 63 61 74 69 6f 6e 2e 70 72 6f ):..........self.application.pro
8fc0 63 65 73 73 45 76 65 6e 74 73 28 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 73 65 74 5f 6c 61 62 65 cessEvents()........def.set_labe
8fe0 6c 28 73 65 6c 66 2c 20 76 61 6c 75 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 61 l(self,.value):..........self.la
9000 62 65 6c 2e 73 65 74 54 65 78 74 28 76 61 6c 75 65 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 bel.setText(value)..........self
9020 2e 72 65 66 72 65 73 68 28 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 6c 65 66 74 5f 61 6c 69 67 6e .refresh()........def.left_align
9040 5f 6c 61 62 65 6c 28 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 61 62 65 _label(self):..........self.labe
9060 6c 2e 73 65 74 41 6c 69 67 6e 6d 65 6e 74 28 51 74 2e 41 6c 69 67 6e 4c 65 66 74 20 29 0d 0a 0d l.setAlignment(Qt.AlignLeft.)...
9080 0a 20 20 20 20 64 65 66 20 73 65 74 5f 6d 61 78 69 6d 75 6d 28 73 65 6c 66 2c 20 76 61 6c 75 65 .....def.set_maximum(self,.value
90a0 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 72 6f 67 72 65 73 73 42 61 72 2e 73 65 74 ):..........self.progressBar.set
90c0 4d 61 78 69 6d 75 6d 28 76 61 6c 75 65 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 72 65 66 Maximum(value)..........self.ref
90e0 72 65 73 68 28 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 73 65 74 5f 76 61 6c 75 65 28 73 65 6c 66 resh()........def.set_value(self
9100 2c 20 76 61 6c 75 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 72 6f 67 72 65 73 73 ,.value):..........self.progress
9120 42 61 72 2e 73 65 74 56 61 6c 75 65 28 76 61 6c 75 65 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c Bar.setValue(value)..........sel
9140 66 2e 72 65 66 72 65 73 68 28 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 73 65 74 5f 70 72 6f 67 72 f.refresh()........def.set_progr
9160 65 73 73 5f 66 6f 72 6d 61 74 28 73 65 6c 66 2c 20 70 72 6f 67 72 65 73 73 5f 66 6f 72 6d 61 74 ess_format(self,.progress_format
9180 3d 4e 6f 6e 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 70 61 73 73 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 =None):..........pass......class
91a0 20 56 69 65 77 4c 6f 67 44 69 61 6c 6f 67 28 51 44 69 61 6c 6f 67 29 3a 0d 0a 0d 0a 20 20 20 20 .ViewLogDialog(QDialog):........
91c0 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 74 69 74 6c 65 2c 20 68 74 6d 6c 2c 20 def.__init__(self,.title,.html,.
91e0 70 61 72 65 6e 74 3d 4e 6f 6e 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 51 44 69 61 6c 6f 67 2e 5f parent=None):..........QDialog._
9200 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 61 72 65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73 _init__(self,.parent)..........s
9220 65 6c 66 2e 6c 20 3d 20 6c 20 3d 20 51 56 42 6f 78 4c 61 79 6f 75 74 28 29 0d 0a 20 20 20 20 20 elf.l.=.l.=.QVBoxLayout().......
9240 20 20 20 73 65 6c 66 2e 73 65 74 4c 61 79 6f 75 74 28 6c 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 ...self.setLayout(l)............
9260 73 65 6c 66 2e 74 62 20 3d 20 51 54 65 78 74 42 72 6f 77 73 65 72 28 73 65 6c 66 29 0d 0a 20 20 self.tb.=.QTextBrowser(self)....
9280 20 20 20 20 20 20 51 41 70 70 6c 69 63 61 74 69 6f 6e 2e 73 65 74 4f 76 65 72 72 69 64 65 43 75 ......QApplication.setOverrideCu
92a0 72 73 6f 72 28 51 74 2e 57 61 69 74 43 75 72 73 6f 72 29 0d 0a 20 20 20 20 20 20 20 20 23 20 52 rsor(Qt.WaitCursor)..........#.R
92c0 61 74 68 65 72 20 74 68 61 6e 20 66 6f 72 6d 61 74 74 69 6e 67 20 74 68 65 20 74 65 78 74 20 69 ather.than.formatting.the.text.i
92e0 6e 20 3c 70 72 65 3e 20 62 6c 6f 63 6b 73 20 6c 69 6b 65 20 74 68 65 20 63 61 6c 69 62 72 65 0d n.<pre>.blocks.like.the.calibre.
9300 0a 20 20 20 20 20 20 20 20 23 20 56 69 65 77 4c 6f 67 20 64 6f 65 73 2c 20 69 6e 73 74 65 61 64 .........#.ViewLog.does,.instead
9320 20 6a 75 73 74 20 66 6f 72 6d 61 74 20 69 74 20 69 6e 73 69 64 65 20 64 69 76 73 20 74 6f 20 6b .just.format.it.inside.divs.to.k
9340 65 65 70 20 73 74 79 6c 65 20 66 6f 72 6d 61 74 74 69 6e 67 0d 0a 20 20 20 20 20 20 20 20 68 74 eep.style.formatting..........ht
9360 6d 6c 20 3d 20 68 74 6d 6c 2e 72 65 70 6c 61 63 65 28 27 5c 74 27 2c 27 26 6e 62 73 70 3b 26 6e ml.=.html.replace('\t','&nbsp;&n
9380 62 73 70 3b 26 6e 62 73 70 3b 26 6e 62 73 70 3b 27 29 2e 72 65 70 6c 61 63 65 28 27 5c 6e 27 2c bsp;&nbsp;&nbsp;').replace('\n',
93a0 20 27 3c 62 72 2f 3e 27 29 0d 0a 20 20 20 20 20 20 20 20 68 74 6d 6c 20 3d 20 68 74 6d 6c 2e 72 .'<br/>')..........html.=.html.r
93c0 65 70 6c 61 63 65 28 27 3e 20 27 2c 27 3e 26 6e 62 73 70 3b 27 29 0d 0a 20 20 20 20 20 20 20 20 eplace('>.','>&nbsp;')..........
93e0 73 65 6c 66 2e 74 62 2e 73 65 74 48 74 6d 6c 28 27 3c 64 69 76 3e 25 73 3c 2f 64 69 76 3e 27 20 self.tb.setHtml('<div>%s</div>'.
9400 25 20 68 74 6d 6c 29 0d 0a 20 20 20 20 20 20 20 20 51 41 70 70 6c 69 63 61 74 69 6f 6e 2e 72 65 %.html)..........QApplication.re
9420 73 74 6f 72 65 4f 76 65 72 72 69 64 65 43 75 72 73 6f 72 28 29 0d 0a 20 20 20 20 20 20 20 20 6c storeOverrideCursor()..........l
9440 2e 61 64 64 57 69 64 67 65 74 28 73 65 6c 66 2e 74 62 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 73 .addWidget(self.tb)............s
9460 65 6c 66 2e 62 62 20 3d 20 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e 42 6f 78 28 51 44 69 61 6c 6f elf.bb.=.QDialogButtonBox(QDialo
9480 67 42 75 74 74 6f 6e 42 6f 78 2e 4f 6b 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 62 62 2e gButtonBox.Ok)..........self.bb.
94a0 61 63 63 65 70 74 65 64 2e 63 6f 6e 6e 65 63 74 28 73 65 6c 66 2e 61 63 63 65 70 74 29 0d 0a 20 accepted.connect(self.accept)...
94c0 20 20 20 20 20 20 20 73 65 6c 66 2e 62 62 2e 72 65 6a 65 63 74 65 64 2e 63 6f 6e 6e 65 63 74 28 .......self.bb.rejected.connect(
94e0 73 65 6c 66 2e 72 65 6a 65 63 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 70 79 5f self.reject)..........self.copy_
9500 62 75 74 74 6f 6e 20 3d 20 73 65 6c 66 2e 62 62 2e 61 64 64 42 75 74 74 6f 6e 28 5f 28 27 43 6f button.=.self.bb.addButton(_('Co
9520 70 79 20 74 6f 20 63 6c 69 70 62 6f 61 72 64 27 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 py.to.clipboard'),..............
9540 20 20 20 20 73 65 6c 66 2e 62 62 2e 41 63 74 69 6f 6e 52 6f 6c 65 29 0d 0a 20 20 20 20 20 20 20 ....self.bb.ActionRole).........
9560 20 73 65 6c 66 2e 63 6f 70 79 5f 62 75 74 74 6f 6e 2e 73 65 74 49 63 6f 6e 28 51 49 63 6f 6e 28 .self.copy_button.setIcon(QIcon(
9580 49 28 27 65 64 69 74 2d 63 6f 70 79 2e 70 6e 67 27 29 29 29 0d 0a 20 20 20 20 20 20 20 20 73 65 I('edit-copy.png')))..........se
95a0 6c 66 2e 63 6f 70 79 5f 62 75 74 74 6f 6e 2e 63 6c 69 63 6b 65 64 2e 63 6f 6e 6e 65 63 74 28 73 lf.copy_button.clicked.connect(s
95c0 65 6c 66 2e 63 6f 70 79 5f 74 6f 5f 63 6c 69 70 62 6f 61 72 64 29 0d 0a 20 20 20 20 20 20 20 20 elf.copy_to_clipboard)..........
95e0 6c 2e 61 64 64 57 69 64 67 65 74 28 73 65 6c 66 2e 62 62 29 0d 0a 20 20 20 20 20 20 20 20 73 65 l.addWidget(self.bb)..........se
9600 6c 66 2e 73 65 74 4d 6f 64 61 6c 28 46 61 6c 73 65 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 lf.setModal(False)..........self
9620 2e 72 65 73 69 7a 65 28 51 53 69 7a 65 28 37 30 30 2c 20 35 30 30 29 29 0d 0a 20 20 20 20 20 20 .resize(QSize(700,.500))........
9640 20 20 73 65 6c 66 2e 73 65 74 57 69 6e 64 6f 77 54 69 74 6c 65 28 74 69 74 6c 65 29 0d 0a 20 20 ..self.setWindowTitle(title)....
9660 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 57 69 6e 64 6f 77 49 63 6f 6e 28 51 49 63 6f 6e 28 49 ......self.setWindowIcon(QIcon(I
9680 28 27 64 65 62 75 67 2e 70 6e 67 27 29 29 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 68 ('debug.png')))..........self.sh
96a0 6f 77 28 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 63 6f 70 79 5f 74 6f 5f 63 6c 69 70 62 6f 61 72 ow()........def.copy_to_clipboar
96c0 64 28 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 74 78 74 20 3d 20 73 65 6c 66 2e 74 62 2e d(self):..........txt.=.self.tb.
96e0 74 6f 50 6c 61 69 6e 54 65 78 74 28 29 0d 0a 20 20 20 20 20 20 20 20 51 41 70 70 6c 69 63 61 74 toPlainText()..........QApplicat
9700 69 6f 6e 2e 63 6c 69 70 62 6f 61 72 64 28 29 2e 73 65 74 54 65 78 74 28 74 78 74 29 0d 0a 50 4b ion.clipboard().setText(txt)..PK
9720 03 04 14 00 00 00 00 00 97 a3 33 55 39 8a c0 f7 60 11 00 00 60 11 00 00 0f 00 00 00 63 6f 6d 6d ..........3U9...`...`.......comm
9740 6f 6e 5f 69 63 6f 6e 73 2e 70 79 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 79 74 68 6f 6e on_icons.py#!/usr/bin/env.python
9760 0a 23 20 76 69 6d 3a 66 69 6c 65 65 6e 63 6f 64 69 6e 67 3d 55 54 46 2d 38 3a 74 73 3d 34 3a 73 .#.vim:fileencoding=UTF-8:ts=4:s
9780 77 3d 34 3a 73 74 61 3a 65 74 3a 73 74 73 3d 34 3a 61 69 0a 66 72 6f 6d 20 5f 5f 66 75 74 75 72 w=4:sta:et:sts=4:ai.from.__futur
97a0 65 5f 5f 20 69 6d 70 6f 72 74 20 28 75 6e 69 63 6f 64 65 5f 6c 69 74 65 72 61 6c 73 2c 20 64 69 e__.import.(unicode_literals,.di
97c0 76 69 73 69 6f 6e 2c 20 61 62 73 6f 6c 75 74 65 5f 69 6d 70 6f 72 74 2c 0a 20 20 20 20 20 20 20 vision,.absolute_import,........
97e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 66 75 6e 63 74 69 6f 6e 29 .................print_function)
9800 0a 0a 5f 5f 6c 69 63 65 6e 73 65 5f 5f 20 20 20 3d 20 27 47 50 4c 20 76 33 27 0a 5f 5f 63 6f 70 ..__license__...=.'GPL.v3'.__cop
9820 79 72 69 67 68 74 5f 5f 20 3d 20 27 32 30 32 32 2c 20 47 72 61 6e 74 20 44 72 61 6b 65 27 0a 0a yright__.=.'2022,.Grant.Drake'..
9840 69 6d 70 6f 72 74 20 6f 73 0a 0a 23 20 63 61 6c 69 62 72 65 20 50 79 74 68 6f 6e 20 33 20 63 6f import.os..#.calibre.Python.3.co
9860 6d 70 61 74 69 62 69 6c 69 74 79 2e 0a 69 6d 70 6f 72 74 20 73 69 78 0a 0a 74 72 79 3a 0a 20 20 mpatibility..import.six..try:...
9880 20 20 66 72 6f 6d 20 71 74 2e 63 6f 72 65 20 69 6d 70 6f 72 74 20 28 51 49 63 6f 6e 2c 20 51 50 ..from.qt.core.import.(QIcon,.QP
98a0 69 78 6d 61 70 29 0a 65 78 63 65 70 74 20 49 6d 70 6f 72 74 45 72 72 6f 72 3a 0a 20 20 20 20 66 ixmap).except.ImportError:.....f
98c0 72 6f 6d 20 50 79 51 74 35 2e 51 74 20 69 6d 70 6f 72 74 20 28 51 49 63 6f 6e 2c 20 51 50 69 78 rom.PyQt5.Qt.import.(QIcon,.QPix
98e0 6d 61 70 29 0a 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 63 6f 6e 73 74 61 6e 74 73 20 69 6d 70 map)..from.calibre.constants.imp
9900 6f 72 74 20 69 73 77 69 6e 64 6f 77 73 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 63 6f 6e 73 74 ort.iswindows.from.calibre.const
9920 61 6e 74 73 20 69 6d 70 6f 72 74 20 6e 75 6d 65 72 69 63 5f 76 65 72 73 69 6f 6e 20 61 73 20 63 ants.import.numeric_version.as.c
9940 61 6c 69 62 72 65 5f 76 65 72 73 69 6f 6e 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 75 74 69 6c alibre_version.from.calibre.util
9960 73 2e 63 6f 6e 66 69 67 20 69 6d 70 6f 72 74 20 63 6f 6e 66 69 67 5f 64 69 72 0a 0a 23 20 2d 2d s.config.import.config_dir..#.--
9980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
99a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 20 20 20 20 20 20 20 20 20 47 6c 6f 62 61 6c 20 72 ------------.#..........Global.r
99c0 65 73 6f 75 72 63 65 73 20 2f 20 73 74 61 74 65 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d esources./.state.#.-------------
99e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
9a00 2d 0a 0a 23 20 47 6c 6f 62 61 6c 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 6f 75 72 20 70 6c -..#.Global.definition.of.our.pl
9a20 75 67 69 6e 20 6e 61 6d 65 2e 20 55 73 65 64 20 66 6f 72 20 63 6f 6d 6d 6f 6e 20 66 75 6e 63 74 ugin.name..Used.for.common.funct
9a40 69 6f 6e 73 20 74 68 61 74 20 72 65 71 75 69 72 65 20 74 68 69 73 2e 0a 70 6c 75 67 69 6e 5f 6e ions.that.require.this..plugin_n
9a60 61 6d 65 20 3d 20 4e 6f 6e 65 0a 23 20 47 6c 6f 62 61 6c 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f ame.=.None.#.Global.definition.o
9a80 66 20 6f 75 72 20 70 6c 75 67 69 6e 20 72 65 73 6f 75 72 63 65 73 2e 20 55 73 65 64 20 74 6f 20 f.our.plugin.resources..Used.to.
9aa0 73 68 61 72 65 20 62 65 74 77 65 65 6e 20 74 68 65 20 78 78 78 41 63 74 69 6f 6e 20 61 6e 64 20 share.between.the.xxxAction.and.
9ac0 78 78 78 42 61 73 65 0a 23 20 63 6c 61 73 73 65 73 20 69 66 20 79 6f 75 20 6e 65 65 64 20 61 6e xxxBase.#.classes.if.you.need.an
9ae0 79 20 7a 69 70 20 69 6d 61 67 65 73 20 74 6f 20 62 65 20 64 69 73 70 6c 61 79 65 64 20 6f 6e 20 y.zip.images.to.be.displayed.on.
9b00 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 64 69 61 6c 6f 67 2e 0a 70 6c 75 67 69 6e the.configuration.dialog..plugin
9b20 5f 69 63 6f 6e 5f 72 65 73 6f 75 72 63 65 73 20 3d 20 7b 7d 0a 0a 64 65 66 20 73 65 74 5f 70 6c _icon_resources.=.{}..def.set_pl
9b40 75 67 69 6e 5f 69 63 6f 6e 5f 72 65 73 6f 75 72 63 65 73 28 6e 61 6d 65 2c 20 72 65 73 6f 75 72 ugin_icon_resources(name,.resour
9b60 63 65 73 29 3a 0a 20 20 20 20 27 27 27 0a 20 20 20 20 53 65 74 20 6f 75 72 20 67 6c 6f 62 61 6c ces):.....'''.....Set.our.global
9b80 20 73 74 6f 72 65 20 6f 66 20 70 6c 75 67 69 6e 20 6e 61 6d 65 20 61 6e 64 20 69 63 6f 6e 20 72 .store.of.plugin.name.and.icon.r
9ba0 65 73 6f 75 72 63 65 73 20 66 6f 72 20 73 68 61 72 69 6e 67 20 62 65 74 77 65 65 6e 0a 20 20 20 esources.for.sharing.between....
9bc0 20 74 68 65 20 49 6e 74 65 72 66 61 63 65 41 63 74 69 6f 6e 20 63 6c 61 73 73 20 77 68 69 63 68 .the.InterfaceAction.class.which
9be0 20 72 65 61 64 73 20 74 68 65 6d 20 61 6e 64 20 74 68 65 20 43 6f 6e 66 69 67 57 69 64 67 65 74 .reads.them.and.the.ConfigWidget
9c00 0a 20 20 20 20 69 66 20 6e 65 65 64 65 64 20 66 6f 72 20 75 73 65 20 6f 6e 20 74 68 65 20 63 75 .....if.needed.for.use.on.the.cu
9c20 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 64 69 61 6c 6f 67 20 66 6f 72 20 74 68 69 73 20 70 6c 75 67 stomization.dialog.for.this.plug
9c40 69 6e 2e 0a 20 20 20 20 27 27 27 0a 20 20 20 20 67 6c 6f 62 61 6c 20 70 6c 75 67 69 6e 5f 69 63 in......'''.....global.plugin_ic
9c60 6f 6e 5f 72 65 73 6f 75 72 63 65 73 2c 20 70 6c 75 67 69 6e 5f 6e 61 6d 65 0a 20 20 20 20 70 6c on_resources,.plugin_name.....pl
9c80 75 67 69 6e 5f 6e 61 6d 65 20 3d 20 6e 61 6d 65 0a 20 20 20 20 70 6c 75 67 69 6e 5f 69 63 6f 6e ugin_name.=.name.....plugin_icon
9ca0 5f 72 65 73 6f 75 72 63 65 73 20 3d 20 72 65 73 6f 75 72 63 65 73 0a 0a 23 20 2d 2d 2d 2d 2d 2d _resources.=.resources..#.------
9cc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
9ce0 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 20 20 20 20 20 20 20 20 20 49 63 6f 6e 20 4d 61 6e 61 67 65 6d --------.#..........Icon.Managem
9d00 65 6e 74 20 66 75 6e 63 74 69 6f 6e 73 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ent.functions.#.----------------
9d20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a ------------------------------..
9d40 64 65 66 20 67 65 74 5f 69 63 6f 6e 5f 36 5f 32 5f 70 6c 75 73 28 69 63 6f 6e 5f 6e 61 6d 65 29 def.get_icon_6_2_plus(icon_name)
9d60 3a 0a 20 20 20 20 27 27 27 0a 20 20 20 20 52 65 74 72 69 65 76 65 20 61 20 51 49 63 6f 6e 20 66 :.....'''.....Retrieve.a.QIcon.f
9d80 6f 72 20 74 68 65 20 6e 61 6d 65 64 20 69 6d 61 67 65 20 66 72 6f 6d 0a 20 20 20 20 31 2e 20 43 or.the.named.image.from.....1..C
9da0 61 6c 69 62 72 65 27 73 20 69 6d 61 67 65 20 63 61 63 68 65 0a 20 20 20 20 32 2e 20 72 65 73 6f alibre's.image.cache.....2..reso
9dc0 75 72 63 65 73 2f 69 6d 61 67 65 73 0a 20 20 20 20 33 2e 20 74 68 65 20 69 63 6f 6e 20 74 68 65 urces/images.....3..the.icon.the
9de0 6d 65 0a 20 20 20 20 34 2e 20 74 68 65 20 70 6c 75 67 69 6e 20 7a 69 70 0a 20 20 20 20 4f 6e 6c me.....4..the.plugin.zip.....Onl
9e00 79 20 70 6c 75 67 69 6e 20 7a 69 70 20 68 61 73 20 69 6d 61 67 65 73 2f 20 69 6e 20 74 68 65 20 y.plugin.zip.has.images/.in.the.
9e20 69 6d 61 67 65 20 6e 61 6d 65 20 66 6f 72 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62 image.name.for.backward.compatib
9e40 69 6c 69 74 79 2e 0a 20 20 20 20 27 27 27 0a 20 20 20 20 69 63 6f 6e 20 3d 20 4e 6f 6e 65 0a 20 ility......'''.....icon.=.None..
9e60 20 20 20 69 66 20 69 63 6f 6e 5f 6e 61 6d 65 3a 0a 20 20 20 20 20 20 20 20 69 63 6f 6e 20 3d 20 ...if.icon_name:.........icon.=.
9e80 51 49 63 6f 6e 2e 69 63 28 69 63 6f 6e 5f 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 23 23 20 62 QIcon.ic(icon_name).........##.b
9ea0 6f 74 68 20 2e 69 63 20 61 6e 64 20 67 65 74 5f 69 63 6f 6e 73 20 72 65 74 75 72 6e 20 61 6e 20 oth..ic.and.get_icons.return.an.
9ec0 65 6d 70 74 79 20 51 49 63 6f 6e 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e 0a 20 20 20 20 20 20 empty.QIcon.if.not.found........
9ee0 20 20 69 66 20 6e 6f 74 20 69 63 6f 6e 20 6f 72 20 69 63 6f 6e 2e 69 73 4e 75 6c 6c 28 29 3a 0a ..if.not.icon.or.icon.isNull():.
9f00 20 20 20 20 20 20 20 20 20 20 20 20 69 63 6f 6e 20 3d 20 67 65 74 5f 69 63 6f 6e 73 28 69 63 6f ............icon.=.get_icons(ico
9f20 6e 5f 6e 61 6d 65 2e 72 65 70 6c 61 63 65 28 27 69 6d 61 67 65 73 2f 27 2c 27 27 29 2c 20 70 6c n_name.replace('images/',''),.pl
9f40 75 67 69 6e 5f 6e 61 6d 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ugin_name,......................
9f60 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 74 72 61 63 65 62 61 63 6b 73 5f 66 6f 72 5f 6d 69 73 ........print_tracebacks_for_mis
9f80 73 69 6e 67 5f 72 65 73 6f 75 72 63 65 73 3d 46 61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 69 66 sing_resources=False).........if
9fa0 20 6e 6f 74 20 69 63 6f 6e 20 6f 72 20 69 63 6f 6e 2e 69 73 4e 75 6c 6c 28 29 3a 0a 20 20 20 20 .not.icon.or.icon.isNull():.....
9fc0 20 20 20 20 20 20 20 20 69 63 6f 6e 20 3d 20 67 65 74 5f 69 63 6f 6e 73 28 69 63 6f 6e 5f 6e 61 ........icon.=.get_icons(icon_na
9fe0 6d 65 2c 20 70 6c 75 67 69 6e 5f 6e 61 6d 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 me,.plugin_name,................
a000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 74 72 61 63 65 62 61 63 6b 73 5f 66 ..............print_tracebacks_f
a020 6f 72 5f 6d 69 73 73 69 6e 67 5f 72 65 73 6f 75 72 63 65 73 3d 46 61 6c 73 65 29 0a 20 20 20 20 or_missing_resources=False).....
a040 69 66 20 6e 6f 74 20 69 63 6f 6e 3a 0a 20 20 20 20 20 20 20 20 69 63 6f 6e 20 3d 20 51 49 63 6f if.not.icon:.........icon.=.QIco
a060 6e 28 29 0a 20 20 20 20 72 65 74 75 72 6e 20 69 63 6f 6e 0a 0a 64 65 66 20 67 65 74 5f 69 63 6f n().....return.icon..def.get_ico
a080 6e 5f 6f 6c 64 28 69 63 6f 6e 5f 6e 61 6d 65 29 3a 0a 20 20 20 20 27 27 27 0a 20 20 20 20 52 65 n_old(icon_name):.....'''.....Re
a0a0 74 72 69 65 76 65 20 61 20 51 49 63 6f 6e 20 66 6f 72 20 74 68 65 20 6e 61 6d 65 64 20 69 6d 61 trieve.a.QIcon.for.the.named.ima
a0c0 67 65 20 66 72 6f 6d 20 74 68 65 20 7a 69 70 20 66 69 6c 65 20 69 66 20 69 74 20 65 78 69 73 74 ge.from.the.zip.file.if.it.exist
a0e0 73 2c 0a 20 20 20 20 6f 72 20 69 66 20 6e 6f 74 20 74 68 65 6e 20 66 72 6f 6d 20 43 61 6c 69 62 s,.....or.if.not.then.from.Calib
a100 72 65 27 73 20 69 6d 61 67 65 20 63 61 63 68 65 2e 0a 20 20 20 20 27 27 27 0a 20 20 20 20 69 66 re's.image.cache......'''.....if
a120 20 69 63 6f 6e 5f 6e 61 6d 65 3a 0a 20 20 20 20 20 20 20 20 70 69 78 6d 61 70 20 3d 20 67 65 74 .icon_name:.........pixmap.=.get
a140 5f 70 69 78 6d 61 70 28 69 63 6f 6e 5f 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 69 66 20 70 69 _pixmap(icon_name).........if.pi
a160 78 6d 61 70 20 69 73 20 4e 6f 6e 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 4c 6f 6f 6b xmap.is.None:.............#.Look
a180 20 69 6e 20 43 61 6c 69 62 72 65 27 73 20 63 61 63 68 65 20 66 6f 72 20 74 68 65 20 69 63 6f 6e .in.Calibre's.cache.for.the.icon
a1a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 51 49 63 6f 6e 28 49 28 69 63 6f 6e .............return.QIcon(I(icon
a1c0 5f 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 _name)).........else:...........
a1e0 20 20 72 65 74 75 72 6e 20 51 49 63 6f 6e 28 70 69 78 6d 61 70 29 0a 20 20 20 20 72 65 74 75 72 ..return.QIcon(pixmap).....retur
a200 6e 20 51 49 63 6f 6e 28 29 0a 0a 64 65 66 20 67 65 74 5f 70 69 78 6d 61 70 28 69 63 6f 6e 5f 6e n.QIcon()..def.get_pixmap(icon_n
a220 61 6d 65 29 3a 0a 20 20 20 20 27 27 27 0a 20 20 20 20 52 65 74 72 69 65 76 65 20 61 20 51 50 69 ame):.....'''.....Retrieve.a.QPi
a240 78 6d 61 70 20 66 6f 72 20 74 68 65 20 6e 61 6d 65 64 20 69 6d 61 67 65 0a 20 20 20 20 41 6e 79 xmap.for.the.named.image.....Any
a260 20 69 63 6f 6e 73 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 74 68 65 20 70 6c 75 67 69 6e 20 6d .icons.belonging.to.the.plugin.m
a280 75 73 74 20 62 65 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 27 69 6d 61 67 65 73 2f 27 0a 20 ust.be.prefixed.with.'images/'..
a2a0 20 20 20 27 27 27 0a 20 20 20 20 67 6c 6f 62 61 6c 20 70 6c 75 67 69 6e 5f 69 63 6f 6e 5f 72 65 ...'''.....global.plugin_icon_re
a2c0 73 6f 75 72 63 65 73 2c 20 70 6c 75 67 69 6e 5f 6e 61 6d 65 0a 20 20 20 20 69 66 20 6e 6f 74 20 sources,.plugin_name.....if.not.
a2e0 69 63 6f 6e 5f 6e 61 6d 65 2e 73 74 61 72 74 73 77 69 74 68 28 27 69 6d 61 67 65 73 2f 27 29 3a icon_name.startswith('images/'):
a300 0a 20 20 20 20 20 20 20 20 23 20 57 65 20 6b 6e 6f 77 20 74 68 69 73 20 69 73 20 64 65 66 69 6e .........#.We.know.this.is.defin
a320 69 74 65 6c 79 20 6e 6f 74 20 61 6e 20 69 63 6f 6e 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 74 itely.not.an.icon.belonging.to.t
a340 68 69 73 20 70 6c 75 67 69 6e 0a 20 20 20 20 20 20 20 20 70 69 78 6d 61 70 20 3d 20 51 50 69 78 his.plugin.........pixmap.=.QPix
a360 6d 61 70 28 29 0a 20 20 20 20 20 20 20 20 70 69 78 6d 61 70 2e 6c 6f 61 64 28 49 28 69 63 6f 6e map().........pixmap.load(I(icon
a380 5f 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 70 69 78 6d 61 70 0a 0a 20 _name)).........return.pixmap...
a3a0 20 20 20 23 20 43 68 65 63 6b 20 74 6f 20 73 65 65 20 77 68 65 74 68 65 72 20 74 68 65 20 69 63 ...#.Check.to.see.whether.the.ic
a3c0 6f 6e 20 65 78 69 73 74 73 20 61 73 20 61 20 43 61 6c 69 62 72 65 20 72 65 73 6f 75 72 63 65 0a on.exists.as.a.Calibre.resource.
a3e0 20 20 20 20 23 20 54 68 69 73 20 77 69 6c 6c 20 65 6e 61 62 6c 65 20 73 6b 69 6e 6e 69 6e 67 20 ....#.This.will.enable.skinning.
a400 69 66 20 74 68 65 20 75 73 65 72 20 73 74 6f 72 65 73 20 69 63 6f 6e 73 20 77 69 74 68 69 6e 20 if.the.user.stores.icons.within.
a420 61 20 66 6f 6c 64 65 72 20 6c 69 6b 65 3a 0a 20 20 20 20 23 20 2e 2e 2e 5c 41 70 70 44 61 74 61 a.folder.like:.....#....\AppData
a440 5c 52 6f 61 6d 69 6e 67 5c 63 61 6c 69 62 72 65 5c 72 65 73 6f 75 72 63 65 73 5c 69 6d 61 67 65 \Roaming\calibre\resources\image
a460 73 5c 50 6c 75 67 69 6e 20 4e 61 6d 65 5c 0a 20 20 20 20 69 66 20 70 6c 75 67 69 6e 5f 6e 61 6d s\Plugin.Name\.....if.plugin_nam
a480 65 3a 0a 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 5f 69 6d 61 67 65 73 5f 64 69 72 20 3d 20 67 65 e:.........local_images_dir.=.ge
a4a0 74 5f 6c 6f 63 61 6c 5f 69 6d 61 67 65 73 5f 64 69 72 28 70 6c 75 67 69 6e 5f 6e 61 6d 65 29 0a t_local_images_dir(plugin_name).
a4c0 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 5f 69 6d 61 67 65 5f 70 61 74 68 20 3d 20 6f 73 2e 70 61 ........local_image_path.=.os.pa
a4e0 74 68 2e 6a 6f 69 6e 28 6c 6f 63 61 6c 5f 69 6d 61 67 65 73 5f 64 69 72 2c 20 69 63 6f 6e 5f 6e th.join(local_images_dir,.icon_n
a500 61 6d 65 2e 72 65 70 6c 61 63 65 28 27 69 6d 61 67 65 73 2f 27 2c 20 27 27 29 29 0a 20 20 20 20 ame.replace('images/',.'')).....
a520 20 20 20 20 69 66 20 6f 73 2e 70 61 74 68 2e 65 78 69 73 74 73 28 6c 6f 63 61 6c 5f 69 6d 61 67 ....if.os.path.exists(local_imag
a540 65 5f 70 61 74 68 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 69 78 6d 61 70 20 3d 20 51 50 e_path):.............pixmap.=.QP
a560 69 78 6d 61 70 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 69 78 6d 61 70 2e 6c 6f 61 64 28 ixmap().............pixmap.load(
a580 6c 6f 63 61 6c 5f 69 6d 61 67 65 5f 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 local_image_path).............re
a5a0 74 75 72 6e 20 70 69 78 6d 61 70 0a 0a 20 20 20 20 23 20 41 73 20 77 65 20 64 69 64 20 6e 6f 74 turn.pixmap......#.As.we.did.not
a5c0 20 66 69 6e 64 20 61 6e 20 69 63 6f 6e 20 65 6c 73 65 77 68 65 72 65 2c 20 6c 6f 6f 6b 20 77 69 .find.an.icon.elsewhere,.look.wi
a5e0 74 68 69 6e 20 6f 75 72 20 7a 69 70 20 72 65 73 6f 75 72 63 65 73 0a 20 20 20 20 69 66 20 69 63 thin.our.zip.resources.....if.ic
a600 6f 6e 5f 6e 61 6d 65 20 69 6e 20 70 6c 75 67 69 6e 5f 69 63 6f 6e 5f 72 65 73 6f 75 72 63 65 73 on_name.in.plugin_icon_resources
a620 3a 0a 20 20 20 20 20 20 20 20 70 69 78 6d 61 70 20 3d 20 51 50 69 78 6d 61 70 28 29 0a 20 20 20 :.........pixmap.=.QPixmap()....
a640 20 20 20 20 20 70 69 78 6d 61 70 2e 6c 6f 61 64 46 72 6f 6d 44 61 74 61 28 70 6c 75 67 69 6e 5f .....pixmap.loadFromData(plugin_
a660 69 63 6f 6e 5f 72 65 73 6f 75 72 63 65 73 5b 69 63 6f 6e 5f 6e 61 6d 65 5d 29 0a 20 20 20 20 20 icon_resources[icon_name])......
a680 20 20 20 72 65 74 75 72 6e 20 70 69 78 6d 61 70 0a 20 20 20 20 72 65 74 75 72 6e 20 4e 6f 6e 65 ...return.pixmap.....return.None
a6a0 0a 0a 64 65 66 20 67 65 74 5f 6c 6f 63 61 6c 5f 69 6d 61 67 65 73 5f 64 69 72 28 73 75 62 66 6f ..def.get_local_images_dir(subfo
a6c0 6c 64 65 72 3d 4e 6f 6e 65 29 3a 0a 20 20 20 20 27 27 27 0a 20 20 20 20 52 65 74 75 72 6e 73 20 lder=None):.....'''.....Returns.
a6e0 61 20 70 61 74 68 20 74 6f 20 74 68 65 20 75 73 65 72 27 73 20 6c 6f 63 61 6c 20 72 65 73 6f 75 a.path.to.the.user's.local.resou
a700 72 63 65 73 2f 69 6d 61 67 65 73 20 66 6f 6c 64 65 72 0a 20 20 20 20 49 66 20 61 20 73 75 62 66 rces/images.folder.....If.a.subf
a720 6f 6c 64 65 72 20 6e 61 6d 65 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 73 70 65 63 69 66 69 65 older.name.parameter.is.specifie
a740 64 2c 20 61 70 70 65 6e 64 73 20 74 68 69 73 20 74 6f 20 74 68 65 20 70 61 74 68 0a 20 20 20 20 d,.appends.this.to.the.path.....
a760 27 27 27 0a 20 20 20 20 69 6d 61 67 65 73 5f 64 69 72 20 3d 20 6f 73 2e 70 61 74 68 2e 6a 6f 69 '''.....images_dir.=.os.path.joi
a780 6e 28 63 6f 6e 66 69 67 5f 64 69 72 2c 20 27 72 65 73 6f 75 72 63 65 73 2f 69 6d 61 67 65 73 27 n(config_dir,.'resources/images'
a7a0 29 0a 20 20 20 20 69 66 20 73 75 62 66 6f 6c 64 65 72 3a 0a 20 20 20 20 20 20 20 20 69 6d 61 67 ).....if.subfolder:.........imag
a7c0 65 73 5f 64 69 72 20 3d 20 6f 73 2e 70 61 74 68 2e 6a 6f 69 6e 28 69 6d 61 67 65 73 5f 64 69 72 es_dir.=.os.path.join(images_dir
a7e0 2c 20 73 75 62 66 6f 6c 64 65 72 29 0a 20 20 20 20 69 66 20 69 73 77 69 6e 64 6f 77 73 3a 0a 20 ,.subfolder).....if.iswindows:..
a800 20 20 20 20 20 20 20 69 6d 61 67 65 73 5f 64 69 72 20 3d 20 6f 73 2e 70 61 74 68 2e 6e 6f 72 6d .......images_dir.=.os.path.norm
a820 70 61 74 68 28 69 6d 61 67 65 73 5f 64 69 72 29 0a 20 20 20 20 72 65 74 75 72 6e 20 69 6d 61 67 path(images_dir).....return.imag
a840 65 73 5f 64 69 72 0a 0a 69 66 20 63 61 6c 69 62 72 65 5f 76 65 72 73 69 6f 6e 20 3e 3d 20 28 36 es_dir..if.calibre_version.>=.(6
a860 2c 32 2c 30 29 3a 0a 20 20 20 20 67 65 74 5f 69 63 6f 6e 20 3d 20 67 65 74 5f 69 63 6f 6e 5f 36 ,2,0):.....get_icon.=.get_icon_6
a880 5f 32 5f 70 6c 75 73 0a 65 6c 73 65 3a 0a 20 20 20 20 67 65 74 5f 69 63 6f 6e 20 3d 20 67 65 74 _2_plus.else:.....get_icon.=.get
a8a0 5f 69 63 6f 6e 5f 6f 6c 64 0a 0a 50 4b 03 04 14 00 00 00 00 00 87 a0 ac 5a 3d 30 d6 d8 2d 16 00 _icon_old..PK...........Z=0..-..
a8c0 00 2d 16 00 00 0f 00 00 00 63 6f 6d 6d 6f 6e 5f 6d 65 6e 75 73 2e 70 79 23 21 2f 75 73 72 2f 62 .-.......common_menus.py#!/usr/b
a8e0 69 6e 2f 65 6e 76 20 70 79 74 68 6f 6e 0d 0a 23 20 76 69 6d 3a 66 69 6c 65 65 6e 63 6f 64 69 6e in/env.python..#.vim:fileencodin
a900 67 3d 55 54 46 2d 38 3a 74 73 3d 34 3a 73 77 3d 34 3a 73 74 61 3a 65 74 3a 73 74 73 3d 34 3a 61 g=UTF-8:ts=4:sw=4:sta:et:sts=4:a
a920 69 0d 0a 66 72 6f 6d 20 5f 5f 66 75 74 75 72 65 5f 5f 20 69 6d 70 6f 72 74 20 28 75 6e 69 63 6f i..from.__future__.import.(unico
a940 64 65 5f 6c 69 74 65 72 61 6c 73 2c 20 64 69 76 69 73 69 6f 6e 2c 20 61 62 73 6f 6c 75 74 65 5f de_literals,.division,.absolute_
a960 69 6d 70 6f 72 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 import,.........................
a980 20 70 72 69 6e 74 5f 66 75 6e 63 74 69 6f 6e 29 0d 0a 0d 0a 5f 5f 6c 69 63 65 6e 73 65 5f 5f 20 .print_function)....__license__.
a9a0 20 20 3d 20 27 47 50 4c 20 76 33 27 0d 0a 5f 5f 63 6f 70 79 72 69 67 68 74 5f 5f 20 3d 20 27 32 ..=.'GPL.v3'..__copyright__.=.'2
a9c0 30 32 32 2c 20 47 72 61 6e 74 20 44 72 61 6b 65 27 0d 0a 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 022,.Grant.Drake'....from.calibr
a9e0 65 2e 67 75 69 32 2e 61 63 74 69 6f 6e 73 20 69 6d 70 6f 72 74 20 6d 65 6e 75 5f 61 63 74 69 6f e.gui2.actions.import.menu_actio
aa00 6e 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 63 6f 6e 73 n_unique_name..from.calibre.cons
aa20 74 61 6e 74 73 20 69 6d 70 6f 72 74 20 6e 75 6d 65 72 69 63 5f 76 65 72 73 69 6f 6e 20 61 73 20 tants.import.numeric_version.as.
aa40 63 61 6c 69 62 72 65 5f 76 65 72 73 69 6f 6e 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 5f 70 6c calibre_version..from.calibre_pl
aa60 75 67 69 6e 73 2e 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 2e 63 6f 6d 6d 6f 6e 5f 69 63 6f 6e 73 20 ugins.barnes_noble.common_icons.
aa80 69 6d 70 6f 72 74 20 67 65 74 5f 69 63 6f 6e 0d 0a 0d 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d import.get_icon....#.-----------
aaa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
aac0 2d 2d 2d 0d 0a 23 20 20 20 20 20 20 20 20 20 20 47 6c 6f 62 61 6c 20 72 65 73 6f 75 72 63 65 73 ---..#..........Global.resources
aae0 20 2f 20 73 74 61 74 65 0d 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ./.state..#.--------------------
ab00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 23 20 --------------------------....#.
ab20 47 6c 6f 62 61 6c 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 6f 75 72 20 6d 65 6e 75 20 61 63 Global.definition.of.our.menu.ac
ab40 74 69 6f 6e 73 2e 20 55 73 65 64 20 74 6f 20 65 6e 73 75 72 65 20 77 65 20 63 61 6e 20 63 6c 65 tions..Used.to.ensure.we.can.cle
ab60 61 6e 6c 79 20 75 6e 72 65 67 69 73 74 65 72 0d 0a 23 20 6b 65 79 62 6f 61 72 64 20 73 68 6f 72 anly.unregister..#.keyboard.shor
ab80 74 63 75 74 73 20 77 68 65 6e 20 72 65 62 75 69 6c 64 69 6e 67 20 6f 75 72 20 6d 65 6e 75 73 2e tcuts.when.rebuilding.our.menus.
aba0 0d 0a 70 6c 75 67 69 6e 5f 6d 65 6e 75 5f 61 63 74 69 6f 6e 73 20 3d 20 5b 5d 0d 0a 0d 0a 23 20 ..plugin_menu_actions.=.[]....#.
abc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
abe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 --------------..#...............
ac00 20 4d 65 6e 75 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .Menu.functions..#.-------------
ac20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
ac40 2d 0d 0a 0d 0a 64 65 66 20 75 6e 72 65 67 69 73 74 65 72 5f 6d 65 6e 75 5f 61 63 74 69 6f 6e 73 -....def.unregister_menu_actions
ac60 28 69 61 29 3a 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 46 6f 72 20 70 6c 75 67 69 6e 73 20 (ia):......'''......For.plugins.
ac80 74 68 61 74 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 72 65 62 75 69 6c 64 20 74 68 65 69 72 20 6d that.dynamically.rebuild.their.m
aca0 65 6e 75 73 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 61 6e 79 enus,.we.need.to.ensure.that.any
acc0 0d 0a 20 20 20 20 6b 65 79 62 6f 61 72 64 20 73 68 6f 72 74 63 75 74 73 20 61 72 65 20 75 6e 72 ......keyboard.shortcuts.are.unr
ace0 65 67 69 73 74 65 72 65 64 20 66 6f 72 20 74 68 65 6d 20 65 61 63 68 20 74 69 6d 65 2e 0d 0a 20 egistered.for.them.each.time....
ad00 20 20 20 4d 61 6b 65 20 73 75 72 65 20 74 6f 20 63 61 6c 6c 20 74 68 69 73 20 62 65 66 6f 72 65 ...Make.sure.to.call.this.before
ad20 20 2e 63 6c 65 61 72 28 29 20 6f 66 20 74 68 65 20 6d 65 6e 75 20 69 74 65 6d 73 2e 0d 0a 20 20 ..clear().of.the.menu.items.....
ad40 20 20 27 27 27 0d 0a 20 20 20 20 67 6c 6f 62 61 6c 20 70 6c 75 67 69 6e 5f 6d 65 6e 75 5f 61 63 ..'''......global.plugin_menu_ac
ad60 74 69 6f 6e 73 0d 0a 20 20 20 20 66 6f 72 20 61 63 74 69 6f 6e 20 69 6e 20 70 6c 75 67 69 6e 5f tions......for.action.in.plugin_
ad80 6d 65 6e 75 5f 61 63 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 68 61 73 61 74 74 menu_actions:..........if.hasatt
ada0 72 28 61 63 74 69 6f 6e 2c 20 27 63 61 6c 69 62 72 65 5f 73 68 6f 72 74 63 75 74 5f 75 6e 69 71 r(action,.'calibre_shortcut_uniq
adc0 75 65 5f 6e 61 6d 65 27 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 61 2e 67 75 69 2e 6b ue_name'):..............ia.gui.k
ade0 65 79 62 6f 61 72 64 2e 75 6e 72 65 67 69 73 74 65 72 5f 73 68 6f 72 74 63 75 74 28 61 63 74 69 eyboard.unregister_shortcut(acti
ae00 6f 6e 2e 63 61 6c 69 62 72 65 5f 73 68 6f 72 74 63 75 74 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 29 on.calibre_shortcut_unique_name)
ae20 0d 0a 20 20 20 20 20 20 20 20 23 20 73 74 61 72 74 69 6e 67 20 69 6e 20 63 61 6c 69 62 72 65 20 ..........#.starting.in.calibre.
ae40 32 2e 31 30 2e 30 2c 20 61 63 74 69 6f 6e 73 20 61 72 65 20 72 65 67 69 73 74 65 72 73 20 61 74 2.10.0,.actions.are.registers.at
ae60 0d 0a 20 20 20 20 20 20 20 20 23 20 74 68 65 20 74 6f 70 20 67 75 69 20 6c 65 76 65 6c 20 66 6f ..........#.the.top.gui.level.fo
ae80 72 20 4f 53 58 27 20 62 65 6e 65 66 69 74 2e 0d 0a 20 20 20 20 20 20 20 20 69 66 20 63 61 6c 69 r.OSX'.benefit...........if.cali
aea0 62 72 65 5f 76 65 72 73 69 6f 6e 20 3e 3d 20 28 32 2c 31 30 2c 30 29 3a 0d 0a 20 20 20 20 20 20 bre_version.>=.(2,10,0):........
aec0 20 20 20 20 20 20 69 61 2e 67 75 69 2e 72 65 6d 6f 76 65 41 63 74 69 6f 6e 28 61 63 74 69 6f 6e ......ia.gui.removeAction(action
aee0 29 0d 0a 20 20 20 20 70 6c 75 67 69 6e 5f 6d 65 6e 75 5f 61 63 74 69 6f 6e 73 20 3d 20 5b 5d 0d )......plugin_menu_actions.=.[].
af00 0a 0d 0a 0d 0a 64 65 66 20 63 72 65 61 74 65 5f 6d 65 6e 75 5f 61 63 74 69 6f 6e 5f 75 6e 69 71 .....def.create_menu_action_uniq
af20 75 65 28 69 61 2c 20 70 61 72 65 6e 74 5f 6d 65 6e 75 2c 20 6d 65 6e 75 5f 74 65 78 74 2c 20 69 ue(ia,.parent_menu,.menu_text,.i
af40 6d 61 67 65 3d 4e 6f 6e 65 2c 20 74 6f 6f 6c 74 69 70 3d 4e 6f 6e 65 2c 0d 0a 20 20 20 20 20 20 mage=None,.tooltip=None,........
af60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 72 74 63 75 74 3d 4e 6f 6e 65 2c 20 .................shortcut=None,.
af80 74 72 69 67 67 65 72 65 64 3d 4e 6f 6e 65 2c 20 69 73 5f 63 68 65 63 6b 65 64 3d 4e 6f 6e 65 2c triggered=None,.is_checked=None,
afa0 20 73 68 6f 72 74 63 75 74 5f 6e 61 6d 65 3d 4e 6f 6e 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 .shortcut_name=None,............
afc0 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 69 71 75 65 5f 6e 61 6d 65 3d 4e 6f 6e 65 2c 20 66 .............unique_name=None,.f
afe0 61 76 6f 75 72 69 74 65 73 5f 6d 65 6e 75 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 3d 4e 6f 6e 65 29 avourites_menu_unique_name=None)
b000 3a 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 43 72 65 61 74 65 20 61 20 6d 65 6e 75 20 61 63 :......'''......Create.a.menu.ac
b020 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 63 72 69 74 65 72 69 61 tion.with.the.specified.criteria
b040 20 61 6e 64 20 61 63 74 69 6f 6e 2c 20 75 73 69 6e 67 20 74 68 65 20 6e 65 77 0d 0a 20 20 20 20 .and.action,.using.the.new......
b060 49 6e 74 65 72 66 61 63 65 41 63 74 69 6f 6e 2e 63 72 65 61 74 65 5f 6d 65 6e 75 5f 61 63 74 69 InterfaceAction.create_menu_acti
b080 6f 6e 28 29 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 65 6e 73 75 72 65 73 20 74 68 61 74 on().function.which.ensures.that
b0a0 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 0d 0a 20 20 20 20 77 68 65 74 68 65 72 20 61 20 73 68 .regardless.of......whether.a.sh
b0c0 6f 72 74 63 75 74 20 69 73 20 73 70 65 63 69 66 69 65 64 20 69 74 20 77 69 6c 6c 20 61 70 70 65 ortcut.is.specified.it.will.appe
b0e0 61 72 20 69 6e 20 50 72 65 66 65 72 65 6e 63 65 73 2d 3e 4b 65 79 62 6f 61 72 64 0d 0a 0d 0a 20 ar.in.Preferences->Keyboard.....
b100 20 20 20 46 6f 72 20 61 20 66 75 6c 6c 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 ...For.a.full.description.of.the
b120 20 70 61 72 61 6d 65 74 65 72 73 2c 20 73 65 65 3a 20 63 61 6c 69 62 72 65 5c 5c 67 75 69 32 5c .parameters,.see:.calibre\\gui2\
b140 5c 61 63 74 69 6f 6e 73 5c 5c 5f 5f 69 6e 69 74 5f 5f 2e 70 79 0d 0a 20 20 20 20 27 27 27 0d 0a \actions\\__init__.py......'''..
b160 20 20 20 20 6f 72 69 67 5f 73 68 6f 72 74 63 75 74 20 3d 20 73 68 6f 72 74 63 75 74 0d 0a 20 20 ....orig_shortcut.=.shortcut....
b180 20 20 6b 62 20 3d 20 69 61 2e 67 75 69 2e 6b 65 79 62 6f 61 72 64 0d 0a 20 20 20 20 69 66 20 75 ..kb.=.ia.gui.keyboard......if.u
b1a0 6e 69 71 75 65 5f 6e 61 6d 65 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 75 6e 69 nique_name.is.None:..........uni
b1c0 71 75 65 5f 6e 61 6d 65 20 3d 20 6d 65 6e 75 5f 74 65 78 74 0d 0a 20 20 20 20 69 66 20 6e 6f 74 que_name.=.menu_text......if.not
b1e0 20 73 68 6f 72 74 63 75 74 20 3d 3d 20 46 61 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 66 75 6c .shortcut.==.False:..........ful
b200 6c 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 20 3d 20 6d 65 6e 75 5f 61 63 74 69 6f 6e 5f 75 6e 69 71 l_unique_name.=.menu_action_uniq
b220 75 65 5f 6e 61 6d 65 28 69 61 2c 20 75 6e 69 71 75 65 5f 6e 61 6d 65 29 0d 0a 20 20 20 20 20 20 ue_name(ia,.unique_name)........
b240 20 20 69 66 20 66 75 6c 6c 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 20 69 6e 20 6b 62 2e 73 68 6f 72 ..if.full_unique_name.in.kb.shor
b260 74 63 75 74 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 72 74 63 75 74 20 3d 20 46 tcuts:..............shortcut.=.F
b280 61 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 alse..........else:.............
b2a0 20 69 66 20 73 68 6f 72 74 63 75 74 20 69 73 20 6e 6f 74 20 4e 6f 6e 65 20 61 6e 64 20 6e 6f 74 .if.shortcut.is.not.None.and.not
b2c0 20 73 68 6f 72 74 63 75 74 20 3d 3d 20 46 61 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 .shortcut.==.False:.............
b2e0 20 20 20 20 20 69 66 20 6c 65 6e 28 73 68 6f 72 74 63 75 74 29 20 3d 3d 20 30 3a 0d 0a 20 20 20 .....if.len(shortcut).==.0:.....
b300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 72 74 63 75 74 20 3d 20 4e 6f 6e 65 .................shortcut.=.None
b320 0d 0a 0d 0a 20 20 20 20 69 66 20 73 68 6f 72 74 63 75 74 5f 6e 61 6d 65 20 69 73 20 4e 6f 6e 65 ........if.shortcut_name.is.None
b340 3a 0d 0a 20 20 20 20 20 20 20 20 73 68 6f 72 74 63 75 74 5f 6e 61 6d 65 20 3d 20 6d 65 6e 75 5f :..........shortcut_name.=.menu_
b360 74 65 78 74 2e 72 65 70 6c 61 63 65 28 27 26 27 2c 27 27 29 0d 0a 0d 0a 20 20 20 20 69 66 20 63 text.replace('&','')........if.c
b380 61 6c 69 62 72 65 5f 76 65 72 73 69 6f 6e 20 3e 3d 20 28 35 2c 34 2c 30 29 3a 0d 0a 20 20 20 20 alibre_version.>=.(5,4,0):......
b3a0 20 20 20 20 23 20 54 68 65 20 70 65 72 73 69 73 74 5f 73 68 6f 72 74 63 75 74 20 70 61 72 61 6d ....#.The.persist_shortcut.param
b3c0 65 74 65 72 20 6f 6e 6c 79 20 61 64 64 65 64 20 66 72 6f 6d 20 35 2e 34 2e 30 20 6f 6e 77 61 72 eter.only.added.from.5.4.0.onwar
b3e0 64 73 2e 0d 0a 20 20 20 20 20 20 20 20 23 20 55 73 65 64 20 73 6f 20 74 68 61 74 20 73 68 6f 72 ds...........#.Used.so.that.shor
b400 74 63 75 74 73 20 73 70 65 63 69 66 69 63 20 74 6f 20 6f 74 68 65 72 20 6c 69 62 72 61 72 69 65 tcuts.specific.to.other.librarie
b420 73 20 61 72 65 6e 27 74 20 64 69 73 63 61 72 64 65 64 2e 0d 0a 20 20 20 20 20 20 20 20 61 63 20 s.aren't.discarded...........ac.
b440 3d 20 69 61 2e 63 72 65 61 74 65 5f 6d 65 6e 75 5f 61 63 74 69 6f 6e 28 70 61 72 65 6e 74 5f 6d =.ia.create_menu_action(parent_m
b460 65 6e 75 2c 20 75 6e 69 71 75 65 5f 6e 61 6d 65 2c 20 6d 65 6e 75 5f 74 65 78 74 2c 20 69 63 6f enu,.unique_name,.menu_text,.ico
b480 6e 3d 4e 6f 6e 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n=None,.........................
b4a0 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 72 74 63 75 74 3d 73 68 6f 72 74 63 75 74 2c 20 64 ............shortcut=shortcut,.d
b4c0 65 73 63 72 69 70 74 69 6f 6e 3d 74 6f 6f 6c 74 69 70 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 escription=tooltip,.............
b4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 69 67 67 65 72 65 ........................triggere
b500 64 3d 74 72 69 67 67 65 72 65 64 2c 20 73 68 6f 72 74 63 75 74 5f 6e 61 6d 65 3d 73 68 6f 72 74 d=triggered,.shortcut_name=short
b520 63 75 74 5f 6e 61 6d 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cut_name,.......................
b540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 65 72 73 69 73 74 5f 73 68 6f 72 74 63 75 74 3d 54 ..............persist_shortcut=T
b560 72 75 65 29 0d 0a 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 61 63 20 3d 20 69 61 rue)......else:..........ac.=.ia
b580 2e 63 72 65 61 74 65 5f 6d 65 6e 75 5f 61 63 74 69 6f 6e 28 70 61 72 65 6e 74 5f 6d 65 6e 75 2c .create_menu_action(parent_menu,
b5a0 20 75 6e 69 71 75 65 5f 6e 61 6d 65 2c 20 6d 65 6e 75 5f 74 65 78 74 2c 20 69 63 6f 6e 3d 4e 6f .unique_name,.menu_text,.icon=No
b5c0 6e 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ne,.............................
b5e0 20 20 20 20 20 20 20 20 73 68 6f 72 74 63 75 74 3d 73 68 6f 72 74 63 75 74 2c 20 64 65 73 63 72 ........shortcut=shortcut,.descr
b600 69 70 74 69 6f 6e 3d 74 6f 6f 6c 74 69 70 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 iption=tooltip,.................
b620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 69 67 67 65 72 65 64 3d 74 72 ....................triggered=tr
b640 69 67 67 65 72 65 64 2c 20 73 68 6f 72 74 63 75 74 5f 6e 61 6d 65 3d 73 68 6f 72 74 63 75 74 5f iggered,.shortcut_name=shortcut_
b660 6e 61 6d 65 29 0d 0a 20 20 20 20 69 66 20 73 68 6f 72 74 63 75 74 20 3d 3d 20 46 61 6c 73 65 20 name)......if.shortcut.==.False.
b680 61 6e 64 20 6e 6f 74 20 6f 72 69 67 5f 73 68 6f 72 74 63 75 74 20 3d 3d 20 46 61 6c 73 65 3a 0d and.not.orig_shortcut.==.False:.
b6a0 0a 20 20 20 20 20 20 20 20 69 66 20 61 63 2e 63 61 6c 69 62 72 65 5f 73 68 6f 72 74 63 75 74 5f .........if.ac.calibre_shortcut_
b6c0 75 6e 69 71 75 65 5f 6e 61 6d 65 20 69 6e 20 69 61 2e 67 75 69 2e 6b 65 79 62 6f 61 72 64 2e 73 unique_name.in.ia.gui.keyboard.s
b6e0 68 6f 72 74 63 75 74 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6b 62 2e 72 65 70 6c 61 63 hortcuts:..............kb.replac
b700 65 5f 61 63 74 69 6f 6e 28 61 63 2e 63 61 6c 69 62 72 65 5f 73 68 6f 72 74 63 75 74 5f 75 6e 69 e_action(ac.calibre_shortcut_uni
b720 71 75 65 5f 6e 61 6d 65 2c 20 61 63 29 0d 0a 20 20 20 20 69 66 20 69 6d 61 67 65 3a 0d 0a 20 20 que_name,.ac)......if.image:....
b740 20 20 20 20 20 20 61 63 2e 73 65 74 49 63 6f 6e 28 67 65 74 5f 69 63 6f 6e 28 69 6d 61 67 65 29 ......ac.setIcon(get_icon(image)
b760 29 0d 0a 20 20 20 20 69 66 20 69 73 5f 63 68 65 63 6b 65 64 20 69 73 20 6e 6f 74 20 4e 6f 6e 65 )......if.is_checked.is.not.None
b780 3a 0d 0a 20 20 20 20 20 20 20 20 61 63 2e 73 65 74 43 68 65 63 6b 61 62 6c 65 28 54 72 75 65 29 :..........ac.setCheckable(True)
b7a0 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 73 5f 63 68 65 63 6b 65 64 3a 0d 0a 20 20 20 20 20 20 ..........if.is_checked:........
b7c0 20 20 20 20 20 20 61 63 2e 73 65 74 43 68 65 63 6b 65 64 28 54 72 75 65 29 0d 0a 20 20 20 20 23 ......ac.setChecked(True)......#
b7e0 20 46 6f 72 20 75 73 65 20 62 79 20 74 68 65 20 46 61 76 6f 75 72 69 74 65 73 20 4d 65 6e 75 20 .For.use.by.the.Favourites.Menu.
b800 70 6c 75 67 69 6e 2e 20 49 66 20 74 68 69 73 20 6d 65 6e 75 20 61 63 74 69 6f 6e 20 68 61 73 20 plugin..If.this.menu.action.has.
b820 74 65 78 74 0d 0a 20 20 20 20 23 20 74 68 61 74 20 69 73 20 6e 6f 74 20 63 6f 6e 73 74 61 6e 74 text......#.that.is.not.constant
b840 20 74 68 72 6f 75 67 68 20 74 68 65 20 6c 69 66 65 20 6f 66 20 74 68 69 73 20 70 6c 75 67 69 6e .through.the.life.of.this.plugin
b860 2c 20 74 68 65 6e 20 77 65 20 6e 65 65 64 0d 0a 20 20 20 20 23 20 74 6f 20 61 74 74 72 69 62 75 ,.then.we.need......#.to.attribu
b880 74 65 20 69 74 20 77 69 74 68 20 73 6f 6d 65 74 68 69 6e 67 20 74 68 61 74 20 77 69 6c 6c 20 62 te.it.with.something.that.will.b
b8a0 65 20 63 6f 6e 73 74 61 6e 74 20 74 68 61 74 20 74 68 65 0d 0a 20 20 20 20 23 20 46 61 76 6f 75 e.constant.that.the......#.Favou
b8c0 72 69 74 65 73 20 4d 65 6e 75 20 70 6c 75 67 69 6e 20 63 61 6e 20 75 73 65 20 74 6f 20 69 64 65 rites.Menu.plugin.can.use.to.ide
b8e0 6e 74 69 66 79 20 69 74 2e 0d 0a 20 20 20 20 69 66 20 66 61 76 6f 75 72 69 74 65 73 5f 6d 65 6e ntify.it.......if.favourites_men
b900 75 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 3a 0d 0a 20 20 20 20 20 20 20 20 61 63 2e 66 61 76 6f 75 u_unique_name:..........ac.favou
b920 72 69 74 65 73 5f 6d 65 6e 75 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 20 3d 20 66 61 76 6f 75 72 69 rites_menu_unique_name.=.favouri
b940 74 65 73 5f 6d 65 6e 75 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 0d 0a 0d 0a 20 20 20 20 23 20 41 70 tes_menu_unique_name........#.Ap
b960 70 65 6e 64 20 74 6f 20 6f 75 72 20 6c 69 73 74 20 6f 66 20 61 63 74 69 6f 6e 73 20 66 6f 72 20 pend.to.our.list.of.actions.for.
b980 74 68 69 73 20 70 6c 75 67 69 6e 20 74 6f 20 75 6e 72 65 67 69 73 74 65 72 20 77 68 65 6e 20 6d this.plugin.to.unregister.when.m
b9a0 65 6e 75 20 72 65 62 75 69 6c 74 0d 0a 20 20 20 20 67 6c 6f 62 61 6c 20 70 6c 75 67 69 6e 5f 6d enu.rebuilt......global.plugin_m
b9c0 65 6e 75 5f 61 63 74 69 6f 6e 73 0d 0a 20 20 20 20 70 6c 75 67 69 6e 5f 6d 65 6e 75 5f 61 63 74 enu_actions......plugin_menu_act
b9e0 69 6f 6e 73 2e 61 70 70 65 6e 64 28 61 63 29 0d 0a 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 61 63 ions.append(ac)........return.ac
ba00 0d 0a 0d 0a 0d 0a 64 65 66 20 63 72 65 61 74 65 5f 6d 65 6e 75 5f 69 74 65 6d 28 69 61 2c 20 70 ......def.create_menu_item(ia,.p
ba20 61 72 65 6e 74 5f 6d 65 6e 75 2c 20 6d 65 6e 75 5f 74 65 78 74 2c 20 69 6d 61 67 65 3d 4e 6f 6e arent_menu,.menu_text,.image=Non
ba40 65 2c 20 74 6f 6f 6c 74 69 70 3d 4e 6f 6e 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e,.tooltip=None,................
ba60 20 20 20 20 20 20 20 73 68 6f 72 74 63 75 74 3d 28 29 2c 20 74 72 69 67 67 65 72 65 64 3d 4e 6f .......shortcut=(),.triggered=No
ba80 6e 65 2c 20 69 73 5f 63 68 65 63 6b 65 64 3d 4e 6f 6e 65 29 3a 0d 0a 20 20 20 20 27 27 27 0d 0a ne,.is_checked=None):......'''..
baa0 20 20 20 20 43 72 65 61 74 65 20 61 20 6d 65 6e 75 20 61 63 74 69 6f 6e 20 77 69 74 68 20 74 68 ....Create.a.menu.action.with.th
bac0 65 20 73 70 65 63 69 66 69 65 64 20 63 72 69 74 65 72 69 61 20 61 6e 64 20 61 63 74 69 6f 6e 0d e.specified.criteria.and.action.
bae0 0a 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 69 66 20 6e 6f 20 73 68 6f 72 74 63 75 74 20 69 73 .....Note.that.if.no.shortcut.is
bb00 20 73 70 65 63 69 66 69 65 64 2c 20 77 69 6c 6c 20 6e 6f 74 20 61 70 70 65 61 72 20 69 6e 20 50 .specified,.will.not.appear.in.P
bb20 72 65 66 65 72 65 6e 63 65 73 2d 3e 4b 65 79 62 6f 61 72 64 0d 0a 20 20 20 20 54 68 69 73 20 6d references->Keyboard......This.m
bb40 65 74 68 6f 64 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 66 6f 72 20 61 63 ethod.should.only.be.used.for.ac
bb60 74 69 6f 6e 73 20 77 68 69 63 68 20 65 69 74 68 65 72 20 68 61 76 65 20 6e 6f 20 73 68 6f 72 74 tions.which.either.have.no.short
bb80 63 75 74 73 2c 0d 0a 20 20 20 20 6f 72 20 72 65 67 69 73 74 65 72 20 74 68 65 69 72 20 6d 65 6e cuts,......or.register.their.men
bba0 75 73 20 6f 6e 6c 79 20 6f 6e 63 65 2e 20 55 73 65 20 63 72 65 61 74 65 5f 6d 65 6e 75 5f 61 63 us.only.once..Use.create_menu_ac
bbc0 74 69 6f 6e 5f 75 6e 69 71 75 65 20 66 6f 72 20 61 6c 6c 20 65 6c 73 65 2e 0d 0a 0d 0a 20 20 20 tion_unique.for.all.else........
bbe0 20 43 75 72 72 65 6e 74 6c 79 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 .Currently.this.function.is.only
bc00 20 75 73 65 64 20 62 79 20 6f 70 65 6e 5f 77 69 74 68 20 61 6e 64 20 73 65 61 72 63 68 5f 74 68 .used.by.open_with.and.search_th
bc20 65 5f 69 6e 74 65 72 6e 65 74 20 70 6c 75 67 69 6e 73 0d 0a 20 20 20 20 61 6e 64 20 77 6f 75 6c e_internet.plugins......and.woul
bc40 64 20 6c 69 6b 65 20 74 6f 20 69 6e 76 65 73 74 69 67 61 74 65 20 6f 6e 65 20 64 61 79 20 69 66 d.like.to.investigate.one.day.if
bc60 20 69 74 20 63 61 6e 20 62 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 6d 2e 0d 0a 20 .it.can.be.removed.from.them....
bc80 20 20 20 27 27 27 0d 0a 20 20 20 20 69 66 20 73 68 6f 72 74 63 75 74 20 69 73 20 6e 6f 74 20 4e ...'''......if.shortcut.is.not.N
bca0 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6c 65 6e 28 73 68 6f 72 74 63 75 74 29 20 3d one:..........if.len(shortcut).=
bcc0 3d 20 30 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 72 74 63 75 74 20 3d 20 28 29 0d =.0:..............shortcut.=.().
bce0 0a 20 20 20 20 61 63 20 3d 20 69 61 2e 63 72 65 61 74 65 5f 61 63 74 69 6f 6e 28 73 70 65 63 3d .....ac.=.ia.create_action(spec=
bd00 28 6d 65 6e 75 5f 74 65 78 74 2c 20 4e 6f 6e 65 2c 20 74 6f 6f 6c 74 69 70 2c 20 73 68 6f 72 74 (menu_text,.None,.tooltip,.short
bd20 63 75 74 29 2c 0d 0a 20 20 20 20 20 20 20 20 61 74 74 72 3d 6d 65 6e 75 5f 74 65 78 74 29 0d 0a cut),..........attr=menu_text)..
bd40 20 20 20 20 69 66 20 69 6d 61 67 65 3a 0d 0a 20 20 20 20 20 20 20 20 61 63 2e 73 65 74 49 63 6f ....if.image:..........ac.setIco
bd60 6e 28 67 65 74 5f 69 63 6f 6e 28 69 6d 61 67 65 29 29 0d 0a 20 20 20 20 69 66 20 74 72 69 67 67 n(get_icon(image))......if.trigg
bd80 65 72 65 64 20 69 73 20 6e 6f 74 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 61 63 2e 74 72 ered.is.not.None:..........ac.tr
bda0 69 67 67 65 72 65 64 2e 63 6f 6e 6e 65 63 74 28 74 72 69 67 67 65 72 65 64 29 0d 0a 20 20 20 20 iggered.connect(triggered)......
bdc0 69 66 20 69 73 5f 63 68 65 63 6b 65 64 20 69 73 20 6e 6f 74 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 if.is_checked.is.not.None:......
bde0 20 20 20 20 61 63 2e 73 65 74 43 68 65 63 6b 61 62 6c 65 28 54 72 75 65 29 0d 0a 20 20 20 20 20 ....ac.setCheckable(True).......
be00 20 20 20 69 66 20 69 73 5f 63 68 65 63 6b 65 64 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 ...if.is_checked:..............a
be20 63 2e 73 65 74 43 68 65 63 6b 65 64 28 54 72 75 65 29 0d 0a 0d 0a 20 20 20 20 70 61 72 65 6e 74 c.setChecked(True)........parent
be40 5f 6d 65 6e 75 2e 61 64 64 41 63 74 69 6f 6e 28 61 63 29 0d 0a 20 20 20 20 0d 0a 20 20 20 20 23 _menu.addAction(ac)............#
be60 20 41 70 70 65 6e 64 20 74 6f 20 6f 75 72 20 6c 69 73 74 20 6f 66 20 61 63 74 69 6f 6e 73 20 66 .Append.to.our.list.of.actions.f
be80 6f 72 20 74 68 69 73 20 70 6c 75 67 69 6e 20 74 6f 20 75 6e 72 65 67 69 73 74 65 72 20 77 68 65 or.this.plugin.to.unregister.whe
bea0 6e 20 6d 65 6e 75 20 72 65 62 75 69 6c 74 0d 0a 20 20 20 20 67 6c 6f 62 61 6c 20 70 6c 75 67 69 n.menu.rebuilt......global.plugi
bec0 6e 5f 6d 65 6e 75 5f 61 63 74 69 6f 6e 73 0d 0a 20 20 20 20 70 6c 75 67 69 6e 5f 6d 65 6e 75 5f n_menu_actions......plugin_menu_
bee0 61 63 74 69 6f 6e 73 2e 61 70 70 65 6e 64 28 61 63 29 0d 0a 0d 0a 20 20 20 20 72 65 74 75 72 6e actions.append(ac)........return
bf00 20 61 63 0d 0a 50 4b 03 04 14 00 00 00 00 00 87 a0 ac 5a d5 66 bd bc 73 30 00 00 73 30 00 00 11 .ac..PK...........Z.f..s0..s0...
bf20 00 00 00 63 6f 6d 6d 6f 6e 5f 77 69 64 67 65 74 73 2e 70 79 23 21 2f 75 73 72 2f 62 69 6e 2f 65 ...common_widgets.py#!/usr/bin/e
bf40 6e 76 20 70 79 74 68 6f 6e 0d 0a 23 20 76 69 6d 3a 66 69 6c 65 65 6e 63 6f 64 69 6e 67 3d 55 54 nv.python..#.vim:fileencoding=UT
bf60 46 2d 38 3a 74 73 3d 34 3a 73 77 3d 34 3a 73 74 61 3a 65 74 3a 73 74 73 3d 34 3a 61 69 0d 0a 66 F-8:ts=4:sw=4:sta:et:sts=4:ai..f
bf80 72 6f 6d 20 5f 5f 66 75 74 75 72 65 5f 5f 20 69 6d 70 6f 72 74 20 28 75 6e 69 63 6f 64 65 5f 6c rom.__future__.import.(unicode_l
bfa0 69 74 65 72 61 6c 73 2c 20 64 69 76 69 73 69 6f 6e 2c 20 61 62 73 6f 6c 75 74 65 5f 69 6d 70 6f iterals,.division,.absolute_impo
bfc0 72 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 rt,..........................pri
bfe0 6e 74 5f 66 75 6e 63 74 69 6f 6e 29 0d 0a 0d 0a 5f 5f 6c 69 63 65 6e 73 65 5f 5f 20 20 20 3d 20 nt_function)....__license__...=.
c000 27 47 50 4c 20 76 33 27 0d 0a 5f 5f 63 6f 70 79 72 69 67 68 74 5f 5f 20 3d 20 27 32 30 32 32 2c 'GPL.v3'..__copyright__.=.'2022,
c020 20 47 72 61 6e 74 20 44 72 61 6b 65 27 0d 0a 0d 0a 66 72 6f 6d 20 73 69 78 20 69 6d 70 6f 72 74 .Grant.Drake'....from.six.import
c040 20 74 65 78 74 5f 74 79 70 65 20 61 73 20 75 6e 69 63 6f 64 65 0d 0a 0d 0a 74 72 79 3a 0d 0a 20 .text_type.as.unicode....try:...
c060 20 20 20 66 72 6f 6d 20 71 74 2e 63 6f 72 65 20 69 6d 70 6f 72 74 20 28 51 74 2c 20 51 54 61 62 ...from.qt.core.import.(Qt,.QTab
c080 6c 65 57 69 64 67 65 74 49 74 65 6d 2c 20 51 43 6f 6d 62 6f 42 6f 78 2c 20 51 48 42 6f 78 4c 61 leWidgetItem,.QComboBox,.QHBoxLa
c0a0 79 6f 75 74 2c 20 51 4c 61 62 65 6c 2c 20 51 46 6f 6e 74 2c 20 0d 0a 20 20 20 20 20 20 20 20 20 yout,.QLabel,.QFont,............
c0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 51 44 61 74 65 54 69 6d 65 2c 20 51 53 74 79 6c 65 ...............QDateTime,.QStyle
c0e0 64 49 74 65 6d 44 65 6c 65 67 61 74 65 2c 20 51 4c 69 6e 65 45 64 69 74 29 0d 0a 65 78 63 65 70 dItemDelegate,.QLineEdit)..excep
c100 74 20 49 6d 70 6f 72 74 45 72 72 6f 72 3a 0d 0a 20 20 20 20 66 72 6f 6d 20 50 79 51 74 35 2e 51 t.ImportError:......from.PyQt5.Q
c120 74 20 69 6d 70 6f 72 74 20 28 51 74 2c 20 51 54 61 62 6c 65 57 69 64 67 65 74 49 74 65 6d 2c 20 t.import.(Qt,.QTableWidgetItem,.
c140 51 43 6f 6d 62 6f 42 6f 78 2c 20 51 48 42 6f 78 4c 61 79 6f 75 74 2c 20 51 4c 61 62 65 6c 2c 20 QComboBox,.QHBoxLayout,.QLabel,.
c160 51 46 6f 6e 74 2c 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 QFont,..........................
c180 20 51 44 61 74 65 54 69 6d 65 2c 20 51 53 74 79 6c 65 64 49 74 65 6d 44 65 6c 65 67 61 74 65 2c .QDateTime,.QStyledItemDelegate,
c1a0 20 51 4c 69 6e 65 45 64 69 74 29 0d 0a 0d 0a 74 72 79 3a 0d 0a 20 20 20 20 6c 6f 61 64 5f 74 72 .QLineEdit)....try:......load_tr
c1c0 61 6e 73 6c 61 74 69 6f 6e 73 28 29 0d 0a 65 78 63 65 70 74 20 4e 61 6d 65 45 72 72 6f 72 3a 0d anslations()..except.NameError:.
c1e0 0a 20 20 20 20 70 61 73 73 20 23 20 6c 6f 61 64 5f 74 72 61 6e 73 6c 61 74 69 6f 6e 73 28 29 20 .....pass.#.load_translations().
c200 61 64 64 65 64 20 69 6e 20 63 61 6c 69 62 72 65 20 31 2e 39 0d 0a 0d 0a 66 72 6f 6d 20 63 61 6c added.in.calibre.1.9....from.cal
c220 69 62 72 65 2e 67 75 69 32 20 69 6d 70 6f 72 74 20 65 72 72 6f 72 5f 64 69 61 6c 6f 67 2c 20 55 ibre.gui2.import.error_dialog,.U
c240 4e 44 45 46 49 4e 45 44 5f 51 44 41 54 45 54 49 4d 45 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 NDEFINED_QDATETIME..from.calibre
c260 2e 75 74 69 6c 73 2e 64 61 74 65 20 69 6d 70 6f 72 74 20 6e 6f 77 2c 20 66 6f 72 6d 61 74 5f 64 .utils.date.import.now,.format_d
c280 61 74 65 2c 20 55 4e 44 45 46 49 4e 45 44 5f 44 41 54 45 0d 0a 0d 0a 66 72 6f 6d 20 63 61 6c 69 ate,.UNDEFINED_DATE....from.cali
c2a0 62 72 65 5f 70 6c 75 67 69 6e 73 2e 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 2e 63 6f 6d 6d 6f 6e 5f bre_plugins.barnes_noble.common_
c2c0 69 63 6f 6e 73 20 69 6d 70 6f 72 74 20 67 65 74 5f 70 69 78 6d 61 70 0d 0a 0d 0a 23 20 67 65 74 icons.import.get_pixmap....#.get
c2e0 5f 64 61 74 65 5f 66 6f 72 6d 61 74 0d 0a 23 0d 0a 23 20 43 68 65 63 6b 61 62 6c 65 54 61 62 6c _date_format..#..#.CheckableTabl
c300 65 57 69 64 67 65 74 49 74 65 6d 0d 0a 23 20 44 61 74 65 44 65 6c 65 67 61 74 65 0d 0a 23 20 44 eWidgetItem..#.DateDelegate..#.D
c320 61 74 65 54 61 62 6c 65 57 69 64 67 65 74 49 74 65 6d 0d 0a 23 20 49 6d 61 67 65 54 69 74 6c 65 ateTableWidgetItem..#.ImageTitle
c340 4c 61 79 6f 75 74 0d 0a 23 20 52 65 61 64 4f 6e 6c 79 54 61 62 6c 65 57 69 64 67 65 74 49 74 65 Layout..#.ReadOnlyTableWidgetIte
c360 6d 0d 0a 23 20 52 65 61 64 4f 6e 6c 79 54 65 78 74 49 63 6f 6e 57 69 64 67 65 74 49 74 65 6d 0d m..#.ReadOnlyTextIconWidgetItem.
c380 0a 23 20 52 65 61 64 4f 6e 6c 79 43 68 65 63 6b 61 62 6c 65 54 61 62 6c 65 57 69 64 67 65 74 49 .#.ReadOnlyCheckableTableWidgetI
c3a0 74 65 6d 0d 0a 23 20 54 65 78 74 49 63 6f 6e 57 69 64 67 65 74 49 74 65 6d 0d 0a 23 0d 0a 23 20 tem..#.TextIconWidgetItem..#..#.
c3c0 43 75 73 74 6f 6d 43 6f 6c 75 6d 6e 43 6f 6d 62 6f 42 6f 78 0d 0a 23 20 4b 65 79 56 61 6c 75 65 CustomColumnComboBox..#.KeyValue
c3e0 43 6f 6d 62 6f 42 6f 78 0d 0a 23 20 4e 6f 57 68 65 65 6c 43 6f 6d 62 6f 42 6f 78 0d 0a 23 20 52 ComboBox..#.NoWheelComboBox..#.R
c400 65 61 64 4f 6e 6c 79 4c 69 6e 65 45 64 69 74 0d 0a 0d 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d eadOnlyLineEdit....#.-----------
c420 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
c440 2d 2d 2d 0d 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 73 0d 0a ---..#...............Functions..
c460 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d #.------------------------------
c480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 64 65 66 20 67 65 74 5f 64 61 74 65 ----------------....def.get_date
c4a0 5f 66 6f 72 6d 61 74 28 74 77 65 61 6b 5f 6e 61 6d 65 3d 27 67 75 69 5f 74 69 6d 65 73 74 61 6d _format(tweak_name='gui_timestam
c4c0 70 5f 64 69 73 70 6c 61 79 5f 66 6f 72 6d 61 74 27 2c 20 64 65 66 61 75 6c 74 5f 66 6d 74 3d 27 p_display_format',.default_fmt='
c4e0 64 64 20 4d 4d 4d 20 79 79 79 79 27 29 3a 0d 0a 20 20 20 20 66 72 6f 6d 20 63 61 6c 69 62 72 65 dd.MMM.yyyy'):......from.calibre
c500 2e 75 74 69 6c 73 2e 63 6f 6e 66 69 67 20 69 6d 70 6f 72 74 20 74 77 65 61 6b 73 0d 0a 20 20 20 .utils.config.import.tweaks.....
c520 20 66 6f 72 6d 61 74 20 3d 20 74 77 65 61 6b 73 5b 74 77 65 61 6b 5f 6e 61 6d 65 5d 0d 0a 20 20 .format.=.tweaks[tweak_name]....
c540 20 20 69 66 20 66 6f 72 6d 61 74 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 66 6f ..if.format.is.None:..........fo
c560 72 6d 61 74 20 3d 20 64 65 66 61 75 6c 74 5f 66 6d 74 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 66 rmat.=.default_fmt......return.f
c580 6f 72 6d 61 74 20 0d 0a 0d 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ormat.....#.--------------------
c5a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 20 20 20 --------------------------..#...
c5c0 20 20 20 20 20 20 20 20 20 20 20 20 57 69 64 67 65 74 73 0d 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d ............Widgets..#.---------
c5e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
c600 2d 2d 2d 2d 2d 0d 0a 0d 0a 63 6c 61 73 73 20 43 68 65 63 6b 61 62 6c 65 54 61 62 6c 65 57 69 64 -----....class.CheckableTableWid
c620 67 65 74 49 74 65 6d 28 51 54 61 62 6c 65 57 69 64 67 65 74 49 74 65 6d 29 3a 0d 0a 20 20 20 20 getItem(QTableWidgetItem):......
c640 27 27 27 0d 0a 20 20 20 20 46 6f 72 20 75 73 65 20 69 6e 20 61 20 74 61 62 6c 65 20 63 65 6c 6c '''......For.use.in.a.table.cell
c660 2c 20 64 69 73 70 6c 61 79 73 20 61 20 63 68 65 63 6b 62 6f 78 20 74 68 61 74 20 63 61 6e 20 70 ,.displays.a.checkbox.that.can.p
c680 6f 74 65 6e 74 69 61 6c 6c 79 20 62 65 20 74 72 69 73 74 61 74 65 0d 0a 20 20 20 20 27 27 27 0d otentially.be.tristate......'''.
c6a0 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 63 68 65 63 6b 65 64 3d .....def.__init__(self,.checked=
c6c0 46 61 6c 73 65 2c 20 69 73 5f 74 72 69 73 74 61 74 65 3d 46 61 6c 73 65 29 3a 0d 0a 20 20 20 20 False,.is_tristate=False):......
c6e0 20 20 20 20 73 75 70 65 72 28 43 68 65 63 6b 61 62 6c 65 54 61 62 6c 65 57 69 64 67 65 74 49 74 ....super(CheckableTableWidgetIt
c700 65 6d 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f 28 27 27 29 0d 0a 20 20 20 20 20 20 20 20 em,.self).__init__('')..........
c720 74 72 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 46 6c 61 67 73 28 try:..............self.setFlags(
c740 51 74 2e 49 74 65 6d 46 6c 61 67 2e 49 74 65 6d 49 73 53 65 6c 65 63 74 61 62 6c 65 20 7c 20 51 Qt.ItemFlag.ItemIsSelectable.|.Q
c760 74 2e 49 74 65 6d 46 6c 61 67 2e 49 74 65 6d 49 73 55 73 65 72 43 68 65 63 6b 61 62 6c 65 20 7c t.ItemFlag.ItemIsUserCheckable.|
c780 20 51 74 2e 49 74 65 6d 46 6c 61 67 2e 49 74 65 6d 49 73 45 6e 61 62 6c 65 64 20 29 0d 0a 20 20 .Qt.ItemFlag.ItemIsEnabled.)....
c7a0 20 20 20 20 20 20 65 78 63 65 70 74 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e ......except:..............self.
c7c0 73 65 74 46 6c 61 67 73 28 51 74 2e 49 74 65 6d 46 6c 61 67 73 28 51 74 2e 49 74 65 6d 49 73 53 setFlags(Qt.ItemFlags(Qt.ItemIsS
c7e0 65 6c 65 63 74 61 62 6c 65 20 7c 20 51 74 2e 49 74 65 6d 49 73 55 73 65 72 43 68 65 63 6b 61 62 electable.|.Qt.ItemIsUserCheckab
c800 6c 65 20 7c 20 51 74 2e 49 74 65 6d 49 73 45 6e 61 62 6c 65 64 20 29 29 0d 0a 20 20 20 20 20 20 le.|.Qt.ItemIsEnabled.))........
c820 20 20 69 66 20 69 73 5f 74 72 69 73 74 61 74 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 ..if.is_tristate:..............s
c840 65 6c 66 2e 73 65 74 46 6c 61 67 73 28 73 65 6c 66 2e 66 6c 61 67 73 28 29 20 7c 20 51 74 2e 49 elf.setFlags(self.flags().|.Qt.I
c860 74 65 6d 46 6c 61 67 2e 49 74 65 6d 49 73 55 73 65 72 54 72 69 73 74 61 74 65 29 0d 0a 20 20 20 temFlag.ItemIsUserTristate).....
c880 20 20 20 20 20 69 66 20 63 68 65 63 6b 65 64 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 .....if.checked:..............se
c8a0 6c 66 2e 73 65 74 43 68 65 63 6b 53 74 61 74 65 28 51 74 2e 43 68 65 63 6b 65 64 29 0d 0a 20 20 lf.setCheckState(Qt.Checked)....
c8c0 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 73 5f 74 ......else:..............if.is_t
c8e0 72 69 73 74 61 74 65 20 61 6e 64 20 63 68 65 63 6b 65 64 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 20 ristate.and.checked.is.None:....
c900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 43 68 65 63 6b 53 74 61 74 65 ..............self.setCheckState
c920 28 51 74 2e 50 61 72 74 69 61 6c 6c 79 43 68 65 63 6b 65 64 29 0d 0a 20 20 20 20 20 20 20 20 20 (Qt.PartiallyChecked)...........
c940 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 ...else:..................self.s
c960 65 74 43 68 65 63 6b 53 74 61 74 65 28 51 74 2e 55 6e 63 68 65 63 6b 65 64 29 0d 0a 0d 0a 20 20 etCheckState(Qt.Unchecked)......
c980 20 20 64 65 66 20 67 65 74 5f 62 6f 6f 6c 65 61 6e 5f 76 61 6c 75 65 28 73 65 6c 66 29 3a 0d 0a ..def.get_boolean_value(self):..
c9a0 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 62 6f ........'''..........Return.a.bo
c9c0 6f 6c 65 61 6e 20 76 61 6c 75 65 20 69 6e 64 69 63 61 74 69 6e 67 20 77 68 65 74 68 65 72 20 63 olean.value.indicating.whether.c
c9e0 68 65 63 6b 62 6f 78 20 69 73 20 63 68 65 63 6b 65 64 0d 0a 20 20 20 20 20 20 20 20 49 66 20 74 heckbox.is.checked..........If.t
ca00 68 69 73 20 69 73 20 61 20 74 72 69 73 74 61 74 65 20 63 68 65 63 6b 62 6f 78 2c 20 61 20 70 61 his.is.a.tristate.checkbox,.a.pa
ca20 72 74 69 61 6c 6c 79 20 63 68 65 63 6b 65 64 20 76 61 6c 75 65 20 69 73 20 72 65 74 75 72 6e 65 rtially.checked.value.is.returne
ca40 64 20 61 73 20 4e 6f 6e 65 0d 0a 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20 20 d.as.None..........'''..........
ca60 69 66 20 73 65 6c 66 2e 63 68 65 63 6b 53 74 61 74 65 28 29 20 3d 3d 20 51 74 2e 50 61 72 74 69 if.self.checkState().==.Qt.Parti
ca80 61 6c 6c 79 43 68 65 63 6b 65 64 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e allyChecked:..............return
caa0 20 4e 6f 6e 65 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 .None..........else:............
cac0 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 63 68 65 63 6b 53 74 61 74 65 28 29 20 3d 3d 20 51 74 ..return.self.checkState().==.Qt
cae0 2e 43 68 65 63 6b 65 64 0d 0a 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 67 75 69 32 2e 6c 69 .Checked....from.calibre.gui2.li
cb00 62 72 61 72 79 2e 64 65 6c 65 67 61 74 65 73 20 69 6d 70 6f 72 74 20 44 61 74 65 44 65 6c 65 67 brary.delegates.import.DateDeleg
cb20 61 74 65 20 61 73 20 5f 44 61 74 65 44 65 6c 65 67 61 74 65 0d 0a 63 6c 61 73 73 20 44 61 74 65 ate.as._DateDelegate..class.Date
cb40 44 65 6c 65 67 61 74 65 28 5f 44 61 74 65 44 65 6c 65 67 61 74 65 29 3a 0d 0a 20 20 20 20 27 27 Delegate(_DateDelegate):......''
cb60 27 0d 0a 20 20 20 20 44 65 6c 65 67 61 74 65 20 66 6f 72 20 64 61 74 65 73 2e 20 42 65 63 61 75 '......Delegate.for.dates..Becau
cb80 73 65 20 74 68 69 73 20 64 65 6c 65 67 61 74 65 20 73 74 6f 72 65 73 20 74 68 65 0d 0a 20 20 20 se.this.delegate.stores.the.....
cba0 20 66 6f 72 6d 61 74 20 61 73 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 76 61 72 69 61 62 6c 65 2c .format.as.an.instance.variable,
cbc0 20 61 20 6e 65 77 20 69 6e 73 74 61 6e 63 65 20 6d 75 73 74 20 62 65 20 63 72 65 61 74 65 64 20 .a.new.instance.must.be.created.
cbe0 66 6f 72 20 65 61 63 68 0d 0a 20 20 20 20 63 6f 6c 75 6d 6e 2e 20 54 68 69 73 20 64 69 66 66 65 for.each......column..This.diffe
cc00 72 73 20 66 72 6f 6d 20 61 6c 6c 20 74 68 65 20 6f 74 68 65 72 20 64 65 6c 65 67 61 74 65 73 2e rs.from.all.the.other.delegates.
cc20 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 ......'''......def.__init__(self
cc40 2c 20 70 61 72 65 6e 74 2c 20 66 6d 74 3d 27 64 64 20 4d 4d 4d 20 79 79 79 79 27 2c 20 64 65 66 ,.parent,.fmt='dd.MMM.yyyy',.def
cc60 61 75 6c 74 5f 74 6f 5f 74 6f 64 61 79 3d 54 72 75 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 75 ault_to_today=True):..........su
cc80 70 65 72 28 44 61 74 65 44 65 6c 65 67 61 74 65 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f per(DateDelegate,.self).__init__
cca0 28 70 61 72 65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 64 65 66 61 75 6c 74 5f 74 (parent)..........self.default_t
ccc0 6f 5f 74 6f 64 61 79 20 3d 20 64 65 66 61 75 6c 74 5f 74 6f 5f 74 6f 64 61 79 0d 0a 20 20 20 20 o_today.=.default_to_today......
cce0 20 20 20 20 73 65 6c 66 2e 66 6f 72 6d 61 74 20 3d 20 67 65 74 5f 64 61 74 65 5f 66 6f 72 6d 61 ....self.format.=.get_date_forma
cd00 74 28 64 65 66 61 75 6c 74 5f 66 6d 74 3d 66 6d 74 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 63 72 t(default_fmt=fmt)........def.cr
cd20 65 61 74 65 45 64 69 74 6f 72 28 73 65 6c 66 2c 20 70 61 72 65 6e 74 2c 20 6f 70 74 69 6f 6e 2c eateEditor(self,.parent,.option,
cd40 20 69 6e 64 65 78 29 3a 0d 0a 20 20 20 20 20 20 20 20 71 64 65 20 3d 20 51 53 74 79 6c 65 64 49 .index):..........qde.=.QStyledI
cd60 74 65 6d 44 65 6c 65 67 61 74 65 2e 63 72 65 61 74 65 45 64 69 74 6f 72 28 73 65 6c 66 2c 20 70 temDelegate.createEditor(self,.p
cd80 61 72 65 6e 74 2c 20 6f 70 74 69 6f 6e 2c 20 69 6e 64 65 78 29 0d 0a 20 20 20 20 20 20 20 20 71 arent,.option,.index)..........q
cda0 64 65 2e 73 65 74 44 69 73 70 6c 61 79 46 6f 72 6d 61 74 28 73 65 6c 66 2e 66 6f 72 6d 61 74 29 de.setDisplayFormat(self.format)
cdc0 0d 0a 20 20 20 20 20 20 20 20 71 64 65 2e 73 65 74 4d 69 6e 69 6d 75 6d 44 61 74 65 54 69 6d 65 ..........qde.setMinimumDateTime
cde0 28 55 4e 44 45 46 49 4e 45 44 5f 51 44 41 54 45 54 49 4d 45 29 0d 0a 20 20 20 20 20 20 20 20 71 (UNDEFINED_QDATETIME)..........q
ce00 64 65 2e 73 65 74 53 70 65 63 69 61 6c 56 61 6c 75 65 54 65 78 74 28 5f 28 27 55 6e 64 65 66 69 de.setSpecialValueText(_('Undefi
ce20 6e 65 64 27 29 29 0d 0a 20 20 20 20 20 20 20 20 71 64 65 2e 73 65 74 43 61 6c 65 6e 64 61 72 50 ned'))..........qde.setCalendarP
ce40 6f 70 75 70 28 54 72 75 65 29 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 71 64 65 0d 0a opup(True)..........return.qde..
ce60 0d 0a 20 20 20 20 64 65 66 20 73 65 74 45 64 69 74 6f 72 44 61 74 61 28 73 65 6c 66 2c 20 65 64 ......def.setEditorData(self,.ed
ce80 69 74 6f 72 2c 20 69 6e 64 65 78 29 3a 0d 0a 20 20 20 20 20 20 20 20 76 61 6c 20 3d 20 69 6e 64 itor,.index):..........val.=.ind
cea0 65 78 2e 6d 6f 64 65 6c 28 29 2e 64 61 74 61 28 69 6e 64 65 78 2c 20 51 74 2e 44 69 73 70 6c 61 ex.model().data(index,.Qt.Displa
cec0 79 52 6f 6c 65 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 76 61 6c 20 69 73 20 4e 6f 6e 65 20 6f yRole)..........if.val.is.None.o
cee0 72 20 76 61 6c 20 3d 3d 20 55 4e 44 45 46 49 4e 45 44 5f 51 44 41 54 45 54 49 4d 45 3a 0d 0a 20 r.val.==.UNDEFINED_QDATETIME:...
cf00 20 20 20 20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 2e 64 65 66 61 75 6c 74 5f 74 6f 5f 74 6f ...........if.self.default_to_to
cf20 64 61 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 20 3d 20 73 65 6c 66 day:..................val.=.self
cf40 2e 64 65 66 61 75 6c 74 5f 64 61 74 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 3a .default_date..............else:
cf60 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 20 3d 20 55 4e 44 45 46 49 4e 45 ..................val.=.UNDEFINE
cf80 44 5f 51 44 41 54 45 54 49 4d 45 0d 0a 20 20 20 20 20 20 20 20 65 64 69 74 6f 72 2e 73 65 74 44 D_QDATETIME..........editor.setD
cfa0 61 74 65 54 69 6d 65 28 76 61 6c 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 73 65 74 4d 6f 64 65 6c ateTime(val)........def.setModel
cfc0 44 61 74 61 28 73 65 6c 66 2c 20 65 64 69 74 6f 72 2c 20 6d 6f 64 65 6c 2c 20 69 6e 64 65 78 29 Data(self,.editor,.model,.index)
cfe0 3a 0d 0a 20 20 20 20 20 20 20 20 76 61 6c 20 3d 20 65 64 69 74 6f 72 2e 64 61 74 65 54 69 6d 65 :..........val.=.editor.dateTime
d000 28 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 76 61 6c 20 3c 3d 20 55 4e 44 45 46 49 4e 45 44 5f ()..........if.val.<=.UNDEFINED_
d020 51 44 41 54 45 54 49 4d 45 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 2e 73 65 QDATETIME:..............model.se
d040 74 44 61 74 61 28 69 6e 64 65 78 2c 20 55 4e 44 45 46 49 4e 45 44 5f 51 44 41 54 45 54 49 4d 45 tData(index,.UNDEFINED_QDATETIME
d060 2c 20 51 74 2e 45 64 69 74 52 6f 6c 65 29 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 ,.Qt.EditRole)..........else:...
d080 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 2e 73 65 74 44 61 74 61 28 69 6e 64 65 78 2c 20 ...........model.setData(index,.
d0a0 51 44 61 74 65 54 69 6d 65 28 76 61 6c 29 2c 20 51 74 2e 45 64 69 74 52 6f 6c 65 29 0d 0a 0d 0a QDateTime(val),.Qt.EditRole)....
d0c0 0d 0a 63 6c 61 73 73 20 44 61 74 65 54 61 62 6c 65 57 69 64 67 65 74 49 74 65 6d 28 51 54 61 62 ..class.DateTableWidgetItem(QTab
d0e0 6c 65 57 69 64 67 65 74 49 74 65 6d 29 3a 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 leWidgetItem):........def.__init
d100 5f 5f 28 73 65 6c 66 2c 20 64 61 74 65 5f 72 65 61 64 2c 20 69 73 5f 72 65 61 64 5f 6f 6e 6c 79 __(self,.date_read,.is_read_only
d120 3d 46 61 6c 73 65 2c 20 64 65 66 61 75 6c 74 5f 74 6f 5f 74 6f 64 61 79 3d 46 61 6c 73 65 2c 20 =False,.default_to_today=False,.
d140 66 6d 74 3d 4e 6f 6e 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 64 61 74 65 5f 72 65 61 64 fmt=None):..........if.date_read
d160 20 69 73 20 4e 6f 6e 65 20 6f 72 20 64 61 74 65 5f 72 65 61 64 20 3d 3d 20 55 4e 44 45 46 49 4e .is.None.or.date_read.==.UNDEFIN
d180 45 44 5f 44 41 54 45 20 61 6e 64 20 64 65 66 61 75 6c 74 5f 74 6f 5f 74 6f 64 61 79 3a 0d 0a 20 ED_DATE.and.default_to_today:...
d1a0 20 20 20 20 20 20 20 20 20 20 20 64 61 74 65 5f 72 65 61 64 20 3d 20 6e 6f 77 28 29 0d 0a 20 20 ...........date_read.=.now()....
d1c0 20 20 20 20 20 20 69 66 20 69 73 5f 72 65 61 64 5f 6f 6e 6c 79 3a 0d 0a 20 20 20 20 20 20 20 20 ......if.is_read_only:..........
d1e0 20 20 20 20 73 75 70 65 72 28 44 61 74 65 54 61 62 6c 65 57 69 64 67 65 74 49 74 65 6d 2c 20 73 ....super(DateTableWidgetItem,.s
d200 65 6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f 28 66 6f 72 6d 61 74 5f 64 61 74 65 28 64 61 74 65 5f 72 elf).__init__(format_date(date_r
d220 65 61 64 2c 20 66 6d 74 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 ead,.fmt))..............self.set
d240 46 6c 61 67 73 28 51 74 2e 49 74 65 6d 49 73 53 65 6c 65 63 74 61 62 6c 65 7c 51 74 2e 49 74 65 Flags(Qt.ItemIsSelectable|Qt.Ite
d260 6d 49 73 45 6e 61 62 6c 65 64 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 mIsEnabled)..............self.se
d280 74 44 61 74 61 28 51 74 2e 44 69 73 70 6c 61 79 52 6f 6c 65 2c 20 51 44 61 74 65 54 69 6d 65 28 tData(Qt.DisplayRole,.QDateTime(
d2a0 64 61 74 65 5f 72 65 61 64 29 29 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 date_read))..........else:......
d2c0 20 20 20 20 20 20 20 20 73 75 70 65 72 28 44 61 74 65 54 61 62 6c 65 57 69 64 67 65 74 49 74 65 ........super(DateTableWidgetIte
d2e0 6d 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f 28 27 27 29 0d 0a 20 20 20 20 20 20 20 20 20 m,.self).__init__('')...........
d300 20 20 20 73 65 6c 66 2e 73 65 74 44 61 74 61 28 51 74 2e 44 69 73 70 6c 61 79 52 6f 6c 65 2c 20 ...self.setData(Qt.DisplayRole,.
d320 51 44 61 74 65 54 69 6d 65 28 64 61 74 65 5f 72 65 61 64 29 29 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 QDateTime(date_read))......class
d340 20 49 6d 61 67 65 54 69 74 6c 65 4c 61 79 6f 75 74 28 51 48 42 6f 78 4c 61 79 6f 75 74 29 3a 0d .ImageTitleLayout(QHBoxLayout):.
d360 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 41 20 72 65 75 73 61 62 6c 65 20 6c 61 79 6f 75 74 20 .....'''......A.reusable.layout.
d380 77 69 64 67 65 74 20 64 69 73 70 6c 61 79 69 6e 67 20 61 6e 20 69 6d 61 67 65 20 66 6f 6c 6c 6f widget.displaying.an.image.follo
d3a0 77 65 64 20 62 79 20 61 20 74 69 74 6c 65 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 64 65 66 wed.by.a.title......'''......def
d3c0 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 61 72 65 6e 74 2c 20 69 63 6f 6e 5f 6e 61 6d .__init__(self,.parent,.icon_nam
d3e0 65 2c 20 74 69 74 6c 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 75 70 65 72 28 49 6d 61 67 65 54 e,.title):..........super(ImageT
d400 69 74 6c 65 4c 61 79 6f 75 74 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f 28 29 0d 0a 20 20 itleLayout,.self).__init__()....
d420 20 20 20 20 20 20 73 65 6c 66 2e 74 69 74 6c 65 5f 69 6d 61 67 65 5f 6c 61 62 65 6c 20 3d 20 51 ......self.title_image_label.=.Q
d440 4c 61 62 65 6c 28 70 61 72 65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 75 70 64 61 Label(parent)..........self.upda
d460 74 65 5f 74 69 74 6c 65 5f 69 63 6f 6e 28 69 63 6f 6e 5f 6e 61 6d 65 29 0d 0a 20 20 20 20 20 20 te_title_icon(icon_name)........
d480 20 20 73 65 6c 66 2e 61 64 64 57 69 64 67 65 74 28 73 65 6c 66 2e 74 69 74 6c 65 5f 69 6d 61 67 ..self.addWidget(self.title_imag
d4a0 65 5f 6c 61 62 65 6c 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f 66 6f 6e 74 20 3d e_label)............title_font.=
d4c0 20 51 46 6f 6e 74 28 29 0d 0a 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f 66 6f 6e 74 2e 73 65 74 .QFont()..........title_font.set
d4e0 50 6f 69 6e 74 53 69 7a 65 28 31 36 29 0d 0a 20 20 20 20 20 20 20 20 73 68 65 6c 66 5f 6c 61 62 PointSize(16)..........shelf_lab
d500 65 6c 20 3d 20 51 4c 61 62 65 6c 28 74 69 74 6c 65 2c 20 70 61 72 65 6e 74 29 0d 0a 20 20 20 20 el.=.QLabel(title,.parent)......
d520 20 20 20 20 73 68 65 6c 66 5f 6c 61 62 65 6c 2e 73 65 74 46 6f 6e 74 28 74 69 74 6c 65 5f 66 6f ....shelf_label.setFont(title_fo
d540 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 64 64 57 69 64 67 65 74 28 73 68 65 6c nt)..........self.addWidget(shel
d560 66 5f 6c 61 62 65 6c 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 69 6e 73 65 72 74 53 74 72 f_label)..........self.insertStr
d580 65 74 63 68 28 2d 31 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 75 70 64 61 74 65 5f 74 69 74 6c 65 etch(-1)........def.update_title
d5a0 5f 69 63 6f 6e 28 73 65 6c 66 2c 20 69 63 6f 6e 5f 6e 61 6d 65 29 3a 0d 0a 20 20 20 20 20 20 20 _icon(self,.icon_name):.........
d5c0 20 70 69 78 6d 61 70 20 3d 20 67 65 74 5f 70 69 78 6d 61 70 28 69 63 6f 6e 5f 6e 61 6d 65 29 0d .pixmap.=.get_pixmap(icon_name).
d5e0 0a 20 20 20 20 20 20 20 20 69 66 20 70 69 78 6d 61 70 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 20 20 .........if.pixmap.is.None:.....
d600 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 5f 64 69 61 6c 6f 67 28 73 65 6c 66 2e 70 61 72 65 6e .........error_dialog(self.paren
d620 74 28 29 2c 20 5f 28 27 52 65 73 74 61 72 74 20 72 65 71 75 69 72 65 64 27 29 2c 0d 0a 20 20 20 t(),._('Restart.required'),.....
d640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5f 28 27 54 69 74 6c 65 20 69 ......................_('Title.i
d660 6d 61 67 65 20 6e 6f 74 20 66 6f 75 6e 64 20 2d 20 79 6f 75 20 6d 75 73 74 20 72 65 73 74 61 72 mage.not.found.-.you.must.restar
d680 74 20 43 61 6c 69 62 72 65 20 62 65 66 6f 72 65 20 75 73 69 6e 67 20 74 68 69 73 20 70 6c 75 67 t.Calibre.before.using.this.plug
d6a0 69 6e 21 27 29 2c 20 73 68 6f 77 3d 54 72 75 65 29 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a in!'),.show=True)..........else:
d6c0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 74 69 74 6c 65 5f 69 6d 61 67 65 5f 6c ..............self.title_image_l
d6e0 61 62 65 6c 2e 73 65 74 50 69 78 6d 61 70 28 70 69 78 6d 61 70 29 0d 0a 20 20 20 20 20 20 20 20 abel.setPixmap(pixmap)..........
d700 73 65 6c 66 2e 74 69 74 6c 65 5f 69 6d 61 67 65 5f 6c 61 62 65 6c 2e 73 65 74 4d 61 78 69 6d 75 self.title_image_label.setMaximu
d720 6d 53 69 7a 65 28 33 32 2c 20 33 32 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 74 69 74 6c mSize(32,.32)..........self.titl
d740 65 5f 69 6d 61 67 65 5f 6c 61 62 65 6c 2e 73 65 74 53 63 61 6c 65 64 43 6f 6e 74 65 6e 74 73 28 e_image_label.setScaledContents(
d760 54 72 75 65 29 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 20 52 65 61 64 4f 6e 6c 79 54 61 62 6c 65 57 69 True)......class.ReadOnlyTableWi
d780 64 67 65 74 49 74 65 6d 28 51 54 61 62 6c 65 57 69 64 67 65 74 49 74 65 6d 29 3a 0d 0a 20 20 20 dgetItem(QTableWidgetItem):.....
d7a0 20 27 27 27 0d 0a 20 20 20 20 46 6f 72 20 75 73 65 20 69 6e 20 61 20 74 61 62 6c 65 20 63 65 6c .'''......For.use.in.a.table.cel
d7c0 6c 2c 20 64 69 73 70 6c 61 79 73 20 74 65 78 74 20 74 68 65 20 75 73 65 72 20 63 61 6e 6e 6f 74 l,.displays.text.the.user.cannot
d7e0 20 73 65 6c 65 63 74 20 6f 72 20 6d 6f 64 69 66 79 2e 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 .select.or.modify.......'''.....
d800 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 74 65 78 74 29 3a 0d 0a 20 20 20 20 .def.__init__(self,.text):......
d820 20 20 20 20 69 66 20 74 65 78 74 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 ....if.text.is.None:............
d840 20 20 74 65 78 74 20 3d 20 27 27 0d 0a 20 20 20 20 20 20 20 20 73 75 70 65 72 28 52 65 61 64 4f ..text.=.''..........super(ReadO
d860 6e 6c 79 54 61 62 6c 65 57 69 64 67 65 74 49 74 65 6d 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74 nlyTableWidgetItem,.self).__init
d880 5f 5f 28 74 65 78 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 46 6c 61 67 73 28 __(text)..........self.setFlags(
d8a0 51 74 2e 49 74 65 6d 49 73 53 65 6c 65 63 74 61 62 6c 65 7c 51 74 2e 49 74 65 6d 49 73 45 6e 61 Qt.ItemIsSelectable|Qt.ItemIsEna
d8c0 62 6c 65 64 29 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 20 52 65 61 64 4f 6e 6c 79 54 65 78 74 49 63 6f bled)......class.ReadOnlyTextIco
d8e0 6e 57 69 64 67 65 74 49 74 65 6d 28 52 65 61 64 4f 6e 6c 79 54 61 62 6c 65 57 69 64 67 65 74 49 nWidgetItem(ReadOnlyTableWidgetI
d900 74 65 6d 29 3a 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 46 6f 72 20 75 73 65 20 69 6e 20 61 tem):......'''......For.use.in.a
d920 20 74 61 62 6c 65 20 63 65 6c 6c 2c 20 64 69 73 70 6c 61 79 73 20 61 6e 20 69 63 6f 6e 20 74 68 .table.cell,.displays.an.icon.th
d940 65 20 75 73 65 72 20 63 61 6e 6e 6f 74 20 73 65 6c 65 63 74 20 6f 72 20 6d 6f 64 69 66 79 2e 0d e.user.cannot.select.or.modify..
d960 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c .....'''......def.__init__(self,
d980 20 74 65 78 74 2c 20 69 63 6f 6e 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 75 70 65 72 28 52 65 61 .text,.icon):..........super(Rea
d9a0 64 4f 6e 6c 79 54 65 78 74 49 63 6f 6e 57 69 64 67 65 74 49 74 65 6d 2c 20 73 65 6c 66 29 2e 5f dOnlyTextIconWidgetItem,.self)._
d9c0 5f 69 6e 69 74 5f 5f 28 74 65 78 74 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 63 6f 6e 3a 0d _init__(text)..........if.icon:.
d9e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 49 63 6f 6e 28 69 63 6f 6e 29 0d .............self.setIcon(icon).
da00 0a 0d 0a 63 6c 61 73 73 20 52 65 61 64 4f 6e 6c 79 43 68 65 63 6b 61 62 6c 65 54 61 62 6c 65 57 ...class.ReadOnlyCheckableTableW
da20 69 64 67 65 74 49 74 65 6d 28 52 65 61 64 4f 6e 6c 79 54 61 62 6c 65 57 69 64 67 65 74 49 74 65 idgetItem(ReadOnlyTableWidgetIte
da40 6d 29 3a 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 46 6f 72 20 75 73 65 20 69 6e 20 61 20 74 m):......'''......For.use.in.a.t
da60 61 62 6c 65 20 63 65 6c 6c 2c 20 64 69 73 70 6c 61 79 73 20 61 20 63 68 65 63 6b 62 6f 78 20 6e able.cell,.displays.a.checkbox.n
da80 65 78 74 20 74 6f 20 73 6f 6d 65 20 74 65 78 74 20 74 68 65 20 75 73 65 72 20 63 61 6e 6e 6f 74 ext.to.some.text.the.user.cannot
daa0 20 73 65 6c 65 63 74 20 6f 72 20 6d 6f 64 69 66 79 2e 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 .select.or.modify.......'''.....
dac0 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 74 65 78 74 2c 20 63 68 65 63 6b 65 .def.__init__(self,.text,.checke
dae0 64 3d 46 61 6c 73 65 2c 20 69 73 5f 74 72 69 73 74 61 74 65 3d 46 61 6c 73 65 29 3a 0d 0a 20 20 d=False,.is_tristate=False):....
db00 20 20 20 20 20 20 73 75 70 65 72 28 52 65 61 64 4f 6e 6c 79 43 68 65 63 6b 61 62 6c 65 54 61 62 ......super(ReadOnlyCheckableTab
db20 6c 65 57 69 64 67 65 74 49 74 65 6d 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f 28 74 65 78 leWidgetItem,.self).__init__(tex
db40 74 29 0d 0a 20 20 20 20 20 20 20 20 74 72 79 3a 20 23 20 46 6f 72 20 51 74 20 42 61 63 6b 77 61 t)..........try:.#.For.Qt.Backwa
db60 72 64 73 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 rds.compatibility...............
db80 73 65 6c 66 2e 73 65 74 46 6c 61 67 73 28 51 74 2e 49 74 65 6d 46 6c 61 67 2e 49 74 65 6d 49 73 self.setFlags(Qt.ItemFlag.ItemIs
dba0 53 65 6c 65 63 74 61 62 6c 65 20 7c 20 51 74 2e 49 74 65 6d 46 6c 61 67 2e 49 74 65 6d 49 73 55 Selectable.|.Qt.ItemFlag.ItemIsU
dbc0 73 65 72 43 68 65 63 6b 61 62 6c 65 20 7c 20 51 74 2e 49 74 65 6d 46 6c 61 67 2e 49 74 65 6d 49 serCheckable.|.Qt.ItemFlag.ItemI
dbe0 73 45 6e 61 62 6c 65 64 20 29 0d 0a 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0d 0a 20 20 20 sEnabled.)..........except:.....
dc00 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 46 6c 61 67 73 28 51 74 2e 49 74 65 6d 46 6c .........self.setFlags(Qt.ItemFl
dc20 61 67 73 28 51 74 2e 49 74 65 6d 49 73 53 65 6c 65 63 74 61 62 6c 65 20 7c 20 51 74 2e 49 74 65 ags(Qt.ItemIsSelectable.|.Qt.Ite
dc40 6d 49 73 55 73 65 72 43 68 65 63 6b 61 62 6c 65 20 7c 20 51 74 2e 49 74 65 6d 49 73 45 6e 61 62 mIsUserCheckable.|.Qt.ItemIsEnab
dc60 6c 65 64 20 29 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 73 5f 74 72 69 73 74 61 74 65 3a 0d led.))..........if.is_tristate:.
dc80 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 46 6c 61 67 73 28 73 65 6c 66 2e .............self.setFlags(self.
dca0 66 6c 61 67 73 28 29 20 7c 20 51 74 2e 49 74 65 6d 49 73 54 72 69 73 74 61 74 65 29 0d 0a 20 20 flags().|.Qt.ItemIsTristate)....
dcc0 20 20 20 20 20 20 69 66 20 63 68 65 63 6b 65 64 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 ......if.checked:..............s
dce0 65 6c 66 2e 73 65 74 43 68 65 63 6b 53 74 61 74 65 28 51 74 2e 43 68 65 63 6b 65 64 29 0d 0a 20 elf.setCheckState(Qt.Checked)...
dd00 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 73 5f .......else:..............if.is_
dd20 74 72 69 73 74 61 74 65 20 61 6e 64 20 63 68 65 63 6b 65 64 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 tristate.and.checked.is.None:...
dd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 43 68 65 63 6b 53 74 61 74 ...............self.setCheckStat
dd60 65 28 51 74 2e 50 61 72 74 69 61 6c 6c 79 43 68 65 63 6b 65 64 29 0d 0a 20 20 20 20 20 20 20 20 e(Qt.PartiallyChecked)..........
dd80 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e ....else:..................self.
dda0 73 65 74 43 68 65 63 6b 53 74 61 74 65 28 51 74 2e 55 6e 63 68 65 63 6b 65 64 29 0d 0a 0d 0a 20 setCheckState(Qt.Unchecked).....
ddc0 20 20 20 64 65 66 20 67 65 74 5f 62 6f 6f 6c 65 61 6e 5f 76 61 6c 75 65 28 73 65 6c 66 29 3a 0d ...def.get_boolean_value(self):.
dde0 0a 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 62 .........'''..........Return.a.b
de00 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 20 69 6e 64 69 63 61 74 69 6e 67 20 77 68 65 74 68 65 72 20 oolean.value.indicating.whether.
de20 63 68 65 63 6b 62 6f 78 20 69 73 20 63 68 65 63 6b 65 64 0d 0a 20 20 20 20 20 20 20 20 49 66 20 checkbox.is.checked..........If.
de40 74 68 69 73 20 69 73 20 61 20 74 72 69 73 74 61 74 65 20 63 68 65 63 6b 62 6f 78 2c 20 61 20 70 this.is.a.tristate.checkbox,.a.p
de60 61 72 74 69 61 6c 6c 79 20 63 68 65 63 6b 65 64 20 76 61 6c 75 65 20 69 73 20 72 65 74 75 72 6e artially.checked.value.is.return
de80 65 64 20 61 73 20 4e 6f 6e 65 0d 0a 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20 ed.as.None..........'''.........
dea0 20 69 66 20 73 65 6c 66 2e 63 68 65 63 6b 53 74 61 74 65 28 29 20 3d 3d 20 51 74 2e 50 61 72 74 .if.self.checkState().==.Qt.Part
dec0 69 61 6c 6c 79 43 68 65 63 6b 65 64 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 iallyChecked:..............retur
dee0 6e 20 4e 6f 6e 65 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 n.None..........else:...........
df00 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 63 68 65 63 6b 53 74 61 74 65 28 29 20 3d 3d 20 51 ...return.self.checkState().==.Q
df20 74 2e 43 68 65 63 6b 65 64 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 20 54 65 78 74 49 63 6f 6e 57 69 64 t.Checked......class.TextIconWid
df40 67 65 74 49 74 65 6d 28 51 54 61 62 6c 65 57 69 64 67 65 74 49 74 65 6d 29 3a 0d 0a 20 20 20 20 getItem(QTableWidgetItem):......
df60 27 27 27 0d 0a 20 20 20 20 46 6f 72 20 75 73 65 20 69 6e 20 61 20 74 61 62 6c 65 20 63 65 6c 6c '''......For.use.in.a.table.cell
df80 2c 20 64 69 73 70 6c 61 79 73 20 74 65 78 74 20 77 69 74 68 20 61 6e 20 69 63 6f 6e 20 6e 65 78 ,.displays.text.with.an.icon.nex
dfa0 74 20 74 6f 20 69 74 2e 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 t.to.it.......'''......def.__ini
dfc0 74 5f 5f 28 73 65 6c 66 2c 20 74 65 78 74 2c 20 69 63 6f 6e 29 3a 0d 0a 20 20 20 20 20 20 20 20 t__(self,.text,.icon):..........
dfe0 73 75 70 65 72 28 54 65 78 74 49 63 6f 6e 57 69 64 67 65 74 49 74 65 6d 2c 20 73 65 6c 66 29 2e super(TextIconWidgetItem,.self).
e000 5f 5f 69 6e 69 74 5f 5f 28 74 65 78 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 __init__(text)..........self.set
e020 49 63 6f 6e 28 69 63 6f 6e 29 0d 0a 0d 0a 0d 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d Icon(icon)......#.--------------
e040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
e060 0d 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6e 74 72 6f 6c 73 0d 0a 23 20 2d 2d ..#...............Controls..#.--
e080 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
e0a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 20 43 75 73 74 6f 6d 43 6f ------------......class.CustomCo
e0c0 6c 75 6d 6e 43 6f 6d 62 6f 42 6f 78 28 51 43 6f 6d 62 6f 42 6f 78 29 3a 0d 0a 20 20 20 20 43 52 lumnComboBox(QComboBox):......CR
e0e0 45 41 54 45 5f 4e 45 57 5f 43 4f 4c 55 4d 4e 5f 49 54 45 4d 20 3d 20 5f 28 22 43 72 65 61 74 65 EATE_NEW_COLUMN_ITEM.=._("Create
e100 20 6e 65 77 20 63 6f 6c 75 6d 6e 22 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f .new.column")........def.__init_
e120 5f 28 73 65 6c 66 2c 20 70 61 72 65 6e 74 2c 20 63 75 73 74 6f 6d 5f 63 6f 6c 75 6d 6e 73 3d 7b _(self,.parent,.custom_columns={
e140 7d 2c 20 73 65 6c 65 63 74 65 64 5f 63 6f 6c 75 6d 6e 3d 27 27 2c 20 69 6e 69 74 69 61 6c 5f 69 },.selected_column='',.initial_i
e160 74 65 6d 73 3d 5b 27 27 5d 2c 20 63 72 65 61 74 65 5f 63 6f 6c 75 6d 6e 5f 63 61 6c 6c 62 61 63 tems=[''],.create_column_callbac
e180 6b 3d 4e 6f 6e 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 75 70 65 72 28 43 75 73 74 6f 6d 43 6f k=None):..........super(CustomCo
e1a0 6c 75 6d 6e 43 6f 6d 62 6f 42 6f 78 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f 28 70 61 72 lumnComboBox,.self).__init__(par
e1c0 65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 72 65 61 74 65 5f 63 6f 6c 75 6d 6e ent)..........self.create_column
e1e0 5f 63 61 6c 6c 62 61 63 6b 20 3d 20 63 72 65 61 74 65 5f 63 6f 6c 75 6d 6e 5f 63 61 6c 6c 62 61 _callback.=.create_column_callba
e200 63 6b 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 20 3d ck..........self.current_index.=
e220 20 30 0d 0a 20 20 20 20 20 20 20 20 69 66 20 63 72 65 61 74 65 5f 63 6f 6c 75 6d 6e 5f 63 61 6c .0..........if.create_column_cal
e240 6c 62 61 63 6b 20 69 73 20 6e 6f 74 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 lback.is.not.None:..............
e260 73 65 6c 66 2e 63 75 72 72 65 6e 74 54 65 78 74 43 68 61 6e 67 65 64 2e 63 6f 6e 6e 65 63 74 28 self.currentTextChanged.connect(
e280 73 65 6c 66 2e 63 75 72 72 65 6e 74 5f 74 65 78 74 5f 63 68 61 6e 67 65 64 29 0d 0a 20 20 20 20 self.current_text_changed)......
e2a0 20 20 20 20 73 65 6c 66 2e 70 6f 70 75 6c 61 74 65 5f 63 6f 6d 62 6f 28 63 75 73 74 6f 6d 5f 63 ....self.populate_combo(custom_c
e2c0 6f 6c 75 6d 6e 73 2c 20 73 65 6c 65 63 74 65 64 5f 63 6f 6c 75 6d 6e 2c 20 69 6e 69 74 69 61 6c olumns,.selected_column,.initial
e2e0 5f 69 74 65 6d 73 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 70 6f 70 75 6c 61 74 65 5f 63 6f 6d 62 _items)........def.populate_comb
e300 6f 28 73 65 6c 66 2c 20 63 75 73 74 6f 6d 5f 63 6f 6c 75 6d 6e 73 2c 20 73 65 6c 65 63 74 65 64 o(self,.custom_columns,.selected
e320 5f 63 6f 6c 75 6d 6e 2c 20 69 6e 69 74 69 61 6c 5f 69 74 65 6d 73 3d 5b 27 27 5d 2c 20 73 68 6f _column,.initial_items=[''],.sho
e340 77 5f 6c 6f 6f 6b 75 70 5f 6e 61 6d 65 3d 54 72 75 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 w_lookup_name=True):..........se
e360 6c 66 2e 63 6c 65 61 72 28 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 6c 75 6d 6e 5f lf.clear()..........self.column_
e380 6e 61 6d 65 73 20 3d 20 5b 5d 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 65 63 74 65 64 5f 69 64 78 names.=.[]..........selected_idx
e3a0 20 3d 20 30 0d 0a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 73 69 6e 73 74 61 6e 63 65 28 69 6e .=.0............if.isinstance(in
e3c0 69 74 69 61 6c 5f 69 74 65 6d 73 2c 20 64 69 63 74 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 itial_items,.dict):.............
e3e0 20 66 6f 72 20 6b 65 79 20 69 6e 20 73 6f 72 74 65 64 28 69 6e 69 74 69 61 6c 5f 69 74 65 6d 73 .for.key.in.sorted(initial_items
e400 2e 6b 65 79 73 28 29 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e .keys()):..................self.
e420 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 2e 61 70 70 65 6e 64 28 6b 65 79 29 0d 0a 20 20 20 20 20 20 column_names.append(key)........
e440 20 20 20 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 5f 6e 61 6d 65 20 3d 20 69 6e 69 74 69 61 6c ..........display_name.=.initial
e460 5f 69 74 65 6d 73 5b 6b 65 79 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c _items[key]..................sel
e480 66 2e 61 64 64 49 74 65 6d 28 64 69 73 70 6c 61 79 5f 6e 61 6d 65 29 0d 0a 20 20 20 20 20 20 20 f.addItem(display_name).........
e4a0 20 20 20 20 20 20 20 20 20 69 66 20 6b 65 79 20 3d 3d 20 73 65 6c 65 63 74 65 64 5f 63 6f 6c 75 .........if.key.==.selected_colu
e4c0 6d 6e 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 65 63 74 65 mn:......................selecte
e4e0 64 5f 69 64 78 20 3d 20 6c 65 6e 28 73 65 6c 66 2e 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 29 20 2d d_idx.=.len(self.column_names).-
e500 20 31 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 .1..........else:..............f
e520 6f 72 20 64 69 73 70 6c 61 79 5f 6e 61 6d 65 20 69 6e 20 69 6e 69 74 69 61 6c 5f 69 74 65 6d 73 or.display_name.in.initial_items
e540 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 6c 75 6d 6e 5f 6e :..................self.column_n
e560 61 6d 65 73 2e 61 70 70 65 6e 64 28 64 69 73 70 6c 61 79 5f 6e 61 6d 65 29 0d 0a 20 20 20 20 20 ames.append(display_name).......
e580 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 64 64 49 74 65 6d 28 64 69 73 70 6c 61 79 5f ...........self.addItem(display_
e5a0 6e 61 6d 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 64 69 73 70 6c 61 name)..................if.displa
e5c0 79 5f 6e 61 6d 65 20 3d 3d 20 73 65 6c 65 63 74 65 64 5f 63 6f 6c 75 6d 6e 3a 0d 0a 20 20 20 20 y_name.==.selected_column:......
e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 65 63 74 65 64 5f 69 64 78 20 3d 20 6c ................selected_idx.=.l
e600 65 6e 28 73 65 6c 66 2e 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 29 20 2d 20 31 0d 0a 0d 0a 20 20 20 en(self.column_names).-.1.......
e620 20 20 20 20 20 66 6f 72 20 6b 65 79 20 69 6e 20 73 6f 72 74 65 64 28 63 75 73 74 6f 6d 5f 63 6f .....for.key.in.sorted(custom_co
e640 6c 75 6d 6e 73 2e 6b 65 79 73 28 29 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 lumns.keys()):..............self
e660 2e 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 2e 61 70 70 65 6e 64 28 6b 65 79 29 0d 0a 20 20 20 20 20 .column_names.append(key).......
e680 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 5f 6e 61 6d 65 20 3d 20 27 25 73 20 28 25 73 29 27 25 .......display_name.=.'%s.(%s)'%
e6a0 28 6b 65 79 2c 20 63 75 73 74 6f 6d 5f 63 6f 6c 75 6d 6e 73 5b 6b 65 79 5d 5b 27 6e 61 6d 65 27 (key,.custom_columns[key]['name'
e6c0 5d 29 20 69 66 20 73 68 6f 77 5f 6c 6f 6f 6b 75 70 5f 6e 61 6d 65 20 65 6c 73 65 20 63 75 73 74 ]).if.show_lookup_name.else.cust
e6e0 6f 6d 5f 63 6f 6c 75 6d 6e 73 5b 6b 65 79 5d 5b 27 6e 61 6d 65 27 5d 0d 0a 20 20 20 20 20 20 20 om_columns[key]['name'].........
e700 20 20 20 20 20 73 65 6c 66 2e 61 64 64 49 74 65 6d 28 64 69 73 70 6c 61 79 5f 6e 61 6d 65 29 0d .....self.addItem(display_name).
e720 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6b 65 79 20 3d 3d 20 73 65 6c 65 63 74 65 64 5f .............if.key.==.selected_
e740 63 6f 6c 75 6d 6e 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 65 63 74 65 column:..................selecte
e760 64 5f 69 64 78 20 3d 20 6c 65 6e 28 73 65 6c 66 2e 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 29 20 2d d_idx.=.len(self.column_names).-
e780 20 31 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 2e 63 72 .1....................if.self.cr
e7a0 65 61 74 65 5f 63 6f 6c 75 6d 6e 5f 63 61 6c 6c 62 61 63 6b 20 69 73 20 6e 6f 74 20 4e 6f 6e 65 eate_column_callback.is.not.None
e7c0 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 64 64 49 74 65 6d 28 73 65 6c 66 :..............self.addItem(self
e7e0 2e 43 52 45 41 54 45 5f 4e 45 57 5f 43 4f 4c 55 4d 4e 5f 49 54 45 4d 29 0d 0a 20 20 20 20 20 20 .CREATE_NEW_COLUMN_ITEM)........
e800 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 2e 61 70 70 65 6e 64 28 73 ......self.column_names.append(s
e820 65 6c 66 2e 43 52 45 41 54 45 5f 4e 45 57 5f 43 4f 4c 55 4d 4e 5f 49 54 45 4d 29 0d 0a 0d 0a 20 elf.CREATE_NEW_COLUMN_ITEM).....
e840 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 43 75 72 72 65 6e 74 49 6e 64 65 78 28 73 65 6c 65 .......self.setCurrentIndex(sele
e860 63 74 65 64 5f 69 64 78 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 67 65 74 5f 73 65 6c 65 63 74 65 cted_idx)........def.get_selecte
e880 64 5f 63 6f 6c 75 6d 6e 28 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 65 63 74 65 d_column(self):..........selecte
e8a0 64 5f 63 6f 6c 75 6d 6e 20 3d 20 73 65 6c 66 2e 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 5b 73 65 6c d_column.=.self.column_names[sel
e8c0 66 2e 63 75 72 72 65 6e 74 49 6e 64 65 78 28 29 5d 0d 0a 20 20 20 20 20 20 20 20 69 66 20 73 65 f.currentIndex()]..........if.se
e8e0 6c 65 63 74 65 64 5f 63 6f 6c 75 6d 6e 20 3d 3d 20 73 65 6c 66 2e 43 52 45 41 54 45 5f 4e 45 57 lected_column.==.self.CREATE_NEW
e900 5f 43 4f 4c 55 4d 4e 5f 49 54 45 4d 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 65 63 _COLUMN_ITEM:..............selec
e920 74 65 64 5f 63 6f 6c 75 6d 6e 20 3d 20 4e 6f 6e 65 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 ted_column.=.None..........retur
e940 6e 20 73 65 6c 65 63 74 65 64 5f 63 6f 6c 75 6d 6e 0d 0a 20 20 20 20 0d 0a 20 20 20 20 64 65 66 n.selected_column............def
e960 20 63 75 72 72 65 6e 74 5f 74 65 78 74 5f 63 68 61 6e 67 65 64 28 73 65 6c 66 2c 20 6e 65 77 5f .current_text_changed(self,.new_
e980 74 65 78 74 29 3a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 65 77 5f 74 65 78 74 20 3d 3d 20 73 text):..........if.new_text.==.s
e9a0 65 6c 66 2e 43 52 45 41 54 45 5f 4e 45 57 5f 43 4f 4c 55 4d 4e 5f 49 54 45 4d 3a 0d 0a 20 20 20 elf.CREATE_NEW_COLUMN_ITEM:.....
e9c0 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 73 65 6c 66 2e 63 72 65 61 74 65 5f 63 6f .........result.=.self.create_co
e9e0 6c 75 6d 6e 5f 63 61 6c 6c 62 61 63 6b 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 lumn_callback()..............if.
ea00 6e 6f 74 20 72 65 73 75 6c 74 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c not.result:..................sel
ea20 66 2e 73 65 74 43 75 72 72 65 6e 74 49 6e 64 65 78 28 73 65 6c 66 2e 63 75 72 72 65 6e 74 5f 69 f.setCurrentIndex(self.current_i
ea40 6e 64 65 78 29 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 ndex)..........else:............
ea60 20 20 73 65 6c 66 2e 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 20 3d 20 73 65 6c 66 2e 63 75 72 72 ..self.current_index.=.self.curr
ea80 65 6e 74 49 6e 64 65 78 28 29 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 20 4b 65 79 56 61 6c 75 65 43 6f entIndex()......class.KeyValueCo
eaa0 6d 62 6f 42 6f 78 28 51 43 6f 6d 62 6f 42 6f 78 29 3a 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 5f mboBox(QComboBox):........def.__
eac0 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 61 72 65 6e 74 2c 20 76 61 6c 75 65 73 2c 20 73 65 6c init__(self,.parent,.values,.sel
eae0 65 63 74 65 64 5f 6b 65 79 29 3a 0d 0a 20 20 20 20 20 20 20 20 51 43 6f 6d 62 6f 42 6f 78 2e 5f ected_key):..........QComboBox._
eb00 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 61 72 65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73 _init__(self,.parent)..........s
eb20 65 6c 66 2e 76 61 6c 75 65 73 20 3d 20 76 61 6c 75 65 73 0d 0a 20 20 20 20 20 20 20 20 73 65 6c elf.values.=.values..........sel
eb40 66 2e 70 6f 70 75 6c 61 74 65 5f 63 6f 6d 62 6f 28 73 65 6c 65 63 74 65 64 5f 6b 65 79 29 0d 0a f.populate_combo(selected_key)..
eb60 0d 0a 20 20 20 20 64 65 66 20 70 6f 70 75 6c 61 74 65 5f 63 6f 6d 62 6f 28 73 65 6c 66 2c 20 73 ......def.populate_combo(self,.s
eb80 65 6c 65 63 74 65 64 5f 6b 65 79 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6c 65 61 elected_key):..........self.clea
eba0 72 28 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 65 63 74 65 64 5f 69 64 78 20 3d 20 69 64 78 20 r()..........selected_idx.=.idx.
ebc0 3d 20 2d 31 0d 0a 20 20 20 20 20 20 20 20 66 6f 72 20 6b 65 79 2c 20 76 61 6c 75 65 20 69 6e 20 =.-1..........for.key,.value.in.
ebe0 73 65 6c 66 2e 76 61 6c 75 65 73 2e 69 74 65 6d 73 28 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 self.values.items():............
ec00 20 20 69 64 78 20 3d 20 69 64 78 20 2b 20 31 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c ..idx.=.idx.+.1..............sel
ec20 66 2e 61 64 64 49 74 65 6d 28 76 61 6c 75 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 f.addItem(value)..............if
ec40 20 6b 65 79 20 3d 3d 20 73 65 6c 65 63 74 65 64 5f 6b 65 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 .key.==.selected_key:...........
ec60 20 20 20 20 20 20 20 73 65 6c 65 63 74 65 64 5f 69 64 78 20 3d 20 69 64 78 0d 0a 20 20 20 20 20 .......selected_idx.=.idx.......
ec80 20 20 20 73 65 6c 66 2e 73 65 74 43 75 72 72 65 6e 74 49 6e 64 65 78 28 73 65 6c 65 63 74 65 64 ...self.setCurrentIndex(selected
eca0 5f 69 64 78 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 73 65 6c 65 63 74 65 64 5f 6b 65 79 28 73 65 _idx)........def.selected_key(se
ecc0 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 66 6f 72 20 6b 65 79 2c 20 76 61 6c 75 65 20 69 6e 20 lf):..........for.key,.value.in.
ece0 73 65 6c 66 2e 76 61 6c 75 65 73 2e 69 74 65 6d 73 28 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 self.values.items():............
ed00 20 20 69 66 20 76 61 6c 75 65 20 3d 3d 20 75 6e 69 63 6f 64 65 28 73 65 6c 66 2e 63 75 72 72 65 ..if.value.==.unicode(self.curre
ed20 6e 74 54 65 78 74 28 29 29 2e 73 74 72 69 70 28 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ntText()).strip():..............
ed40 20 20 20 20 72 65 74 75 72 6e 20 6b 65 79 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 20 4e 6f 57 68 65 65 ....return.key......class.NoWhee
ed60 6c 43 6f 6d 62 6f 42 6f 78 28 51 43 6f 6d 62 6f 42 6f 78 29 3a 0d 0a 20 20 20 20 27 27 27 0d 0a lComboBox(QComboBox):......'''..
ed80 20 20 20 20 46 6f 72 20 63 6f 6d 62 6f 62 6f 78 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 61 20 ....For.combobox.displayed.in.a.
eda0 74 61 62 6c 65 20 63 65 6c 6c 20 75 73 69 6e 67 20 74 68 65 20 6d 6f 75 73 65 20 77 68 65 65 6c table.cell.using.the.mouse.wheel
edc0 20 68 61 73 20 6e 61 73 74 79 20 69 6e 74 65 72 61 63 74 69 6f 6e 73 0d 0a 20 20 20 20 64 75 65 .has.nasty.interactions......due
ede0 20 74 6f 20 74 68 65 20 63 6f 6e 66 6c 69 63 74 20 62 65 74 77 65 65 6e 20 73 63 72 6f 6c 6c 69 .to.the.conflict.between.scrolli
ee00 6e 67 20 74 68 65 20 74 61 62 6c 65 20 76 73 20 73 63 72 6f 6c 6c 69 6e 67 20 74 68 65 20 63 6f ng.the.table.vs.scrolling.the.co
ee20 6d 62 6f 62 6f 78 20 69 74 65 6d 2e 0d 0a 20 20 20 20 49 6e 68 65 72 69 74 20 66 72 6f 6d 20 74 mbobox.item.......Inherit.from.t
ee40 68 69 73 20 63 6c 61 73 73 20 74 6f 20 64 69 73 61 62 6c 65 20 74 68 65 20 63 6f 6d 62 6f 62 6f his.class.to.disable.the.combobo
ee60 78 20 63 68 61 6e 67 69 6e 67 20 76 61 6c 75 65 20 77 69 74 68 20 6d 6f 75 73 65 20 77 68 65 65 x.changing.value.with.mouse.whee
ee80 6c 2e 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 64 65 66 20 77 68 65 65 6c 45 76 65 6e 74 28 l.......'''......def.wheelEvent(
eea0 73 65 6c 66 2c 20 65 76 65 6e 74 29 3a 0d 0a 20 20 20 20 20 20 20 20 65 76 65 6e 74 2e 69 67 6e self,.event):..........event.ign
eec0 6f 72 65 28 29 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 20 52 65 61 64 4f 6e 6c 79 4c 69 6e 65 45 64 69 ore()......class.ReadOnlyLineEdi
eee0 74 28 51 4c 69 6e 65 45 64 69 74 29 3a 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f t(QLineEdit):........def.__init_
ef00 5f 28 73 65 6c 66 2c 20 74 65 78 74 2c 20 70 61 72 65 6e 74 29 3a 0d 0a 20 20 20 20 20 20 20 20 _(self,.text,.parent):..........
ef20 69 66 20 74 65 78 74 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 65 if.text.is.None:..............te
ef40 78 74 20 3d 20 27 27 0d 0a 20 20 20 20 20 20 20 20 73 75 70 65 72 28 52 65 61 64 4f 6e 6c 79 4c xt.=.''..........super(ReadOnlyL
ef60 69 6e 65 45 64 69 74 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f 28 74 65 78 74 2c 20 70 61 ineEdit,.self).__init__(text,.pa
ef80 72 65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 45 6e 61 62 6c 65 64 28 46 rent)..........self.setEnabled(F
efa0 61 6c 73 65 29 0d 0a 50 4b 03 04 14 00 00 00 00 00 54 7e 82 56 4e 2b 5a ec 0d 0d 00 00 0d 0d 00 alse)..PK........T~.VN+Z........
efc0 00 09 00 00 00 63 6f 6e 66 69 67 2e 70 79 66 72 6f 6d 20 5f 5f 66 75 74 75 72 65 5f 5f 20 69 6d .....config.pyfrom.__future__.im
efe0 70 6f 72 74 20 75 6e 69 63 6f 64 65 5f 6c 69 74 65 72 61 6c 73 2c 20 64 69 76 69 73 69 6f 6e 2c port.unicode_literals,.division,
f000 20 61 62 73 6f 6c 75 74 65 5f 69 6d 70 6f 72 74 2c 20 70 72 69 6e 74 5f 66 75 6e 63 74 69 6f 6e .absolute_import,.print_function
f020 0a 0a 5f 5f 6c 69 63 65 6e 73 65 5f 5f 20 20 20 3d 20 27 47 50 4c 20 76 33 27 0a 5f 5f 63 6f 70 ..__license__...=.'GPL.v3'.__cop
f040 79 72 69 67 68 74 5f 5f 20 3d 20 27 32 30 31 31 2c 20 47 72 61 6e 74 20 44 72 61 6b 65 27 0a 0a yright__.=.'2011,.Grant.Drake'..
f060 66 72 6f 6d 20 73 69 78 20 69 6d 70 6f 72 74 20 74 65 78 74 5f 74 79 70 65 20 61 73 20 75 6e 69 from.six.import.text_type.as.uni
f080 63 6f 64 65 0a 23 20 4d 61 69 6e 74 61 69 6e 20 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 code.#.Maintain.backwards.compat
f0a0 69 62 69 6c 69 74 79 20 77 69 74 68 20 6f 6c 64 65 72 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 51 ibility.with.older.versions.of.Q
f0c0 74 20 61 6e 64 20 63 61 6c 69 62 72 65 2e 0a 74 72 79 3a 0a 20 20 20 20 66 72 6f 6d 20 71 74 2e t.and.calibre..try:.....from.qt.
f0e0 63 6f 72 65 20 69 6d 70 6f 72 74 20 51 4c 61 62 65 6c 2c 20 51 48 42 6f 78 4c 61 79 6f 75 74 2c core.import.QLabel,.QHBoxLayout,
f100 20 51 56 42 6f 78 4c 61 79 6f 75 74 2c 20 51 74 2c 20 51 47 72 6f 75 70 42 6f 78 2c 20 51 43 68 .QVBoxLayout,.Qt,.QGroupBox,.QCh
f120 65 63 6b 42 6f 78 2c 20 51 53 70 69 6e 42 6f 78 0a 65 78 63 65 70 74 20 49 6d 70 6f 72 74 45 72 eckBox,.QSpinBox.except.ImportEr
f140 72 6f 72 3a 0a 20 20 20 20 66 72 6f 6d 20 50 79 51 74 35 2e 51 74 20 69 6d 70 6f 72 74 20 51 4c ror:.....from.PyQt5.Qt.import.QL
f160 61 62 65 6c 2c 20 51 48 42 6f 78 4c 61 79 6f 75 74 2c 20 51 56 42 6f 78 4c 61 79 6f 75 74 2c 20 abel,.QHBoxLayout,.QVBoxLayout,.
f180 51 74 2c 20 51 47 72 6f 75 70 42 6f 78 2c 20 51 43 68 65 63 6b 42 6f 78 2c 20 51 53 70 69 6e 42 Qt,.QGroupBox,.QCheckBox,.QSpinB
f1a0 6f 78 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 67 75 69 32 2e 6d 65 74 61 64 61 74 61 2e 63 6f ox.from.calibre.gui2.metadata.co
f1c0 6e 66 69 67 20 69 6d 70 6f 72 74 20 43 6f 6e 66 69 67 57 69 64 67 65 74 20 61 73 20 44 65 66 61 nfig.import.ConfigWidget.as.Defa
f1e0 75 6c 74 43 6f 6e 66 69 67 57 69 64 67 65 74 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 75 74 69 ultConfigWidget.from.calibre.uti
f200 6c 73 2e 63 6f 6e 66 69 67 20 69 6d 70 6f 72 74 20 4a 53 4f 4e 43 6f 6e 66 69 67 0a 0a 23 20 50 ls.config.import.JSONConfig..#.P
f220 75 6c 6c 20 69 6e 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 66 69 6c 65 73 20 66 6f 72 20 5f 28 29 ull.in.translation.files.for._()
f240 20 73 74 72 69 6e 67 73 0a 74 72 79 3a 0a 20 20 20 20 6c 6f 61 64 5f 74 72 61 6e 73 6c 61 74 69 .strings.try:.....load_translati
f260 6f 6e 73 28 29 0a 65 78 63 65 70 74 20 4e 61 6d 65 45 72 72 6f 72 3a 0a 20 20 20 20 70 61 73 73 ons().except.NameError:.....pass
f280 20 23 20 6c 6f 61 64 5f 74 72 61 6e 73 6c 61 74 69 6f 6e 73 28 29 20 61 64 64 65 64 20 69 6e 20 .#.load_translations().added.in.
f2a0 63 61 6c 69 62 72 65 20 31 2e 39 0a 0a 53 54 4f 52 45 5f 4e 41 4d 45 20 3d 20 27 4f 70 74 69 6f calibre.1.9..STORE_NAME.=.'Optio
f2c0 6e 73 27 0a 4b 45 59 5f 4d 41 58 5f 44 4f 57 4e 4c 4f 41 44 53 20 3d 20 27 6d 61 78 44 6f 77 6e ns'.KEY_MAX_DOWNLOADS.=.'maxDown
f2e0 6c 6f 61 64 73 27 0a 4b 45 59 5f 47 45 54 5f 41 4c 4c 5f 41 55 54 48 4f 52 53 20 3d 20 27 67 65 loads'.KEY_GET_ALL_AUTHORS.=.'ge
f300 74 41 6c 6c 41 75 74 68 6f 72 73 27 0a 0a 44 45 46 41 55 4c 54 5f 53 54 4f 52 45 5f 56 41 4c 55 tAllAuthors'..DEFAULT_STORE_VALU
f320 45 53 20 3d 20 7b 0a 20 20 20 20 4b 45 59 5f 4d 41 58 5f 44 4f 57 4e 4c 4f 41 44 53 3a 20 31 2c ES.=.{.....KEY_MAX_DOWNLOADS:.1,
f340 0a 20 20 20 20 4b 45 59 5f 47 45 54 5f 41 4c 4c 5f 41 55 54 48 4f 52 53 3a 20 46 61 6c 73 65 0a .....KEY_GET_ALL_AUTHORS:.False.
f360 7d 0a 0a 23 20 54 68 69 73 20 69 73 20 77 68 65 72 65 20 61 6c 6c 20 70 72 65 66 65 72 65 6e 63 }..#.This.is.where.all.preferenc
f380 65 73 20 66 6f 72 20 74 68 69 73 20 70 6c 75 67 69 6e 20 77 69 6c 6c 20 62 65 20 73 74 6f 72 65 es.for.this.plugin.will.be.store
f3a0 64 0a 70 6c 75 67 69 6e 5f 70 72 65 66 73 20 3d 20 4a 53 4f 4e 43 6f 6e 66 69 67 28 27 70 6c 75 d.plugin_prefs.=.JSONConfig('plu
f3c0 67 69 6e 73 2f 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 27 29 0a 0a 23 20 53 65 74 20 64 65 66 gins/Barnes.&.Noble')..#.Set.def
f3e0 61 75 6c 74 73 0a 70 6c 75 67 69 6e 5f 70 72 65 66 73 2e 64 65 66 61 75 6c 74 73 5b 53 54 4f 52 aults.plugin_prefs.defaults[STOR
f400 45 5f 4e 41 4d 45 5d 20 3d 20 44 45 46 41 55 4c 54 5f 53 54 4f 52 45 5f 56 41 4c 55 45 53 0a 0a E_NAME].=.DEFAULT_STORE_VALUES..
f420 63 6c 61 73 73 20 43 6f 6e 66 69 67 57 69 64 67 65 74 28 44 65 66 61 75 6c 74 43 6f 6e 66 69 67 class.ConfigWidget(DefaultConfig
f440 57 69 64 67 65 74 29 3a 0a 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c Widget):......def.__init__(self,
f460 20 70 6c 75 67 69 6e 29 3a 0a 20 20 20 20 20 20 20 20 44 65 66 61 75 6c 74 43 6f 6e 66 69 67 57 .plugin):.........DefaultConfigW
f480 69 64 67 65 74 2e 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 6c 75 67 69 6e 29 0a 20 20 20 idget.__init__(self,.plugin)....
f4a0 20 20 20 20 20 63 20 3d 20 70 6c 75 67 69 6e 5f 70 72 65 66 73 5b 53 54 4f 52 45 5f 4e 41 4d 45 .....c.=.plugin_prefs[STORE_NAME
f4c0 5d 0a 0a 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 5f 67 72 6f 75 70 5f 62 6f 78 20 3d 20 51 ]..........options_group_box.=.Q
f4e0 47 72 6f 75 70 42 6f 78 28 27 4f 74 68 65 72 20 4f 70 74 69 6f 6e 73 27 2c 20 73 65 6c 66 29 0a GroupBox('Other.Options',.self).
f500 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 5f 67 72 6f 75 70 5f 62 6f 78 5f 6c 61 79 6f 75 74 ........options_group_box_layout
f520 20 3d 20 51 56 42 6f 78 4c 61 79 6f 75 74 28 29 0a 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 .=.QVBoxLayout().........options
f540 5f 67 72 6f 75 70 5f 62 6f 78 2e 73 65 74 4c 61 79 6f 75 74 28 6f 70 74 69 6f 6e 73 5f 67 72 6f _group_box.setLayout(options_gro
f560 75 70 5f 62 6f 78 5f 6c 61 79 6f 75 74 29 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 2e 61 64 up_box_layout).........self.l.ad
f580 64 57 69 64 67 65 74 28 6f 70 74 69 6f 6e 73 5f 67 72 6f 75 70 5f 62 6f 78 2c 20 73 65 6c 66 2e dWidget(options_group_box,.self.
f5a0 6c 2e 72 6f 77 43 6f 75 6e 74 28 29 2c 20 30 2c 20 31 2c 20 32 29 0a 0a 20 20 20 20 20 20 20 20 l.rowCount(),.0,.1,.2)..........
f5c0 6f 74 68 65 72 5f 67 72 6f 75 70 5f 62 6f 78 5f 6c 61 79 6f 75 74 20 3d 20 51 48 42 6f 78 4c 61 other_group_box_layout.=.QHBoxLa
f5e0 79 6f 75 74 28 29 0a 20 20 20 20 20 20 20 20 6d 61 78 5f 6c 61 62 65 6c 20 3d 20 51 4c 61 62 65 yout().........max_label.=.QLabe
f600 6c 28 5f 28 27 4d 61 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 l(_('Maximum.title/author.search
f620 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73 .matches.to.evaluate.(1.=.fastes
f640 74 29 3a 27 29 2c 20 73 65 6c 66 29 0a 20 20 20 20 20 20 20 20 6d 61 78 5f 6c 61 62 65 6c 2e 73 t):'),.self).........max_label.s
f660 65 74 54 6f 6f 6c 54 69 70 28 5f 28 27 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20 76 61 6c etToolTip(_('Increasing.this.val
f680 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 ue.will.consider.more.editions.b
f6a0 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73 2e 5c 6e ut.also.increase.search.times.\n
f6c0 5c 6e 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 \n'.............................
f6e0 20 27 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74 69 .'This.will.increase.the.potenti
f700 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67 65 al.likelihood.of.getting.a.large
f720 72 20 63 6f 76 65 72 20 69 6d 61 67 65 5c 6e 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.cover.image\n'................
f740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72 ..............'but.does.not.guar
f760 61 6e 74 65 65 20 69 74 2e 27 29 29 0a 20 20 20 20 20 20 20 20 6f 74 68 65 72 5f 67 72 6f 75 70 antee.it.')).........other_group
f780 5f 62 6f 78 5f 6c 61 79 6f 75 74 2e 61 64 64 57 69 64 67 65 74 28 6d 61 78 5f 6c 61 62 65 6c 29 _box_layout.addWidget(max_label)
f7a0 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6d 61 78 5f 64 6f 77 6e 6c 6f 61 64 73 5f 73 70 69 6e .........self.max_downloads_spin
f7c0 20 3d 20 51 53 70 69 6e 42 6f 78 28 73 65 6c 66 29 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6d .=.QSpinBox(self).........self.m
f7e0 61 78 5f 64 6f 77 6e 6c 6f 61 64 73 5f 73 70 69 6e 2e 73 65 74 4d 69 6e 69 6d 75 6d 28 31 29 0a ax_downloads_spin.setMinimum(1).
f800 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6d 61 78 5f 64 6f 77 6e 6c 6f 61 64 73 5f 73 70 69 6e 2e ........self.max_downloads_spin.
f820 73 65 74 4d 61 78 69 6d 75 6d 28 35 29 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6d 61 78 5f 64 setMaximum(5).........self.max_d
f840 6f 77 6e 6c 6f 61 64 73 5f 73 70 69 6e 2e 73 65 74 50 72 6f 70 65 72 74 79 28 27 76 61 6c 75 65 ownloads_spin.setProperty('value
f860 27 2c 20 63 2e 67 65 74 28 4b 45 59 5f 4d 41 58 5f 44 4f 57 4e 4c 4f 41 44 53 2c 20 44 45 46 41 ',.c.get(KEY_MAX_DOWNLOADS,.DEFA
f880 55 4c 54 5f 53 54 4f 52 45 5f 56 41 4c 55 45 53 5b 4b 45 59 5f 4d 41 58 5f 44 4f 57 4e 4c 4f 41 ULT_STORE_VALUES[KEY_MAX_DOWNLOA
f8a0 44 53 5d 29 29 0a 20 20 20 20 20 20 20 20 6f 74 68 65 72 5f 67 72 6f 75 70 5f 62 6f 78 5f 6c 61 DS])).........other_group_box_la
f8c0 79 6f 75 74 2e 61 64 64 57 69 64 67 65 74 28 73 65 6c 66 2e 6d 61 78 5f 64 6f 77 6e 6c 6f 61 64 yout.addWidget(self.max_download
f8e0 73 5f 73 70 69 6e 29 0a 20 20 20 20 20 20 20 20 6f 74 68 65 72 5f 67 72 6f 75 70 5f 62 6f 78 5f s_spin).........other_group_box_
f900 6c 61 79 6f 75 74 2e 61 64 64 53 74 72 65 74 63 68 28 31 29 0a 20 20 20 20 20 20 20 20 6f 70 74 layout.addStretch(1).........opt
f920 69 6f 6e 73 5f 67 72 6f 75 70 5f 62 6f 78 5f 6c 61 79 6f 75 74 2e 61 64 64 4c 61 79 6f 75 74 28 ions_group_box_layout.addLayout(
f940 6f 74 68 65 72 5f 67 72 6f 75 70 5f 62 6f 78 5f 6c 61 79 6f 75 74 29 0a 0a 20 20 20 20 20 20 20 other_group_box_layout).........
f960 20 73 65 6c 66 2e 61 6c 6c 5f 61 75 74 68 6f 72 73 5f 63 68 65 63 6b 62 6f 78 20 3d 20 51 43 68 .self.all_authors_checkbox.=.QCh
f980 65 63 6b 42 6f 78 28 5f 28 27 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 eckBox(_('Get.all.contributing.a
f9a0 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f uthors.(e.g..editors,.illustrato
f9c0 72 73 20 65 74 63 29 27 29 2c 20 73 65 6c 66 29 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 6c rs.etc)'),.self).........self.al
f9e0 6c 5f 61 75 74 68 6f 72 73 5f 63 68 65 63 6b 62 6f 78 2e 73 65 74 54 6f 6f 6c 54 69 70 28 5f 28 l_authors_checkbox.setToolTip(_(
fa00 27 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 'When.this.option.is.checked,.al
fa20 6c 20 61 75 74 68 6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e 5c 6e 5c 6e 27 0a 20 20 l.authors.are.retrieved.\n\n'...
fa40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
fa60 20 20 20 20 20 20 20 20 20 20 20 20 27 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 ............'When.unchecked.(def
fa80 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 ault).only.the.primary.author(s)
faa0 20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 27 29 29 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 .are.returned.')).........self.a
fac0 6c 6c 5f 61 75 74 68 6f 72 73 5f 63 68 65 63 6b 62 6f 78 2e 73 65 74 43 68 65 63 6b 65 64 28 63 ll_authors_checkbox.setChecked(c
fae0 2e 67 65 74 28 4b 45 59 5f 47 45 54 5f 41 4c 4c 5f 41 55 54 48 4f 52 53 2c 20 44 45 46 41 55 4c .get(KEY_GET_ALL_AUTHORS,.DEFAUL
fb00 54 5f 53 54 4f 52 45 5f 56 41 4c 55 45 53 5b 4b 45 59 5f 47 45 54 5f 41 4c 4c 5f 41 55 54 48 4f T_STORE_VALUES[KEY_GET_ALL_AUTHO
fb20 52 53 5d 29 29 0a 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 5f 67 72 6f 75 70 5f 62 6f 78 5f RS])).........options_group_box_
fb40 6c 61 79 6f 75 74 2e 61 64 64 57 69 64 67 65 74 28 73 65 6c 66 2e 61 6c 6c 5f 61 75 74 68 6f 72 layout.addWidget(self.all_author
fb60 73 5f 63 68 65 63 6b 62 6f 78 29 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 6f 70 74 s_checkbox)..................opt
fb80 69 6f 6e 73 5f 67 72 6f 75 70 5f 62 6f 78 5f 6c 61 79 6f 75 74 2e 61 64 64 53 74 72 65 74 63 68 ions_group_box_layout.addStretch
fba0 28 31 29 0a 0a 20 20 20 20 64 65 66 20 63 6f 6d 6d 69 74 28 73 65 6c 66 29 3a 0a 20 20 20 20 20 (1)......def.commit(self):......
fbc0 20 20 20 44 65 66 61 75 6c 74 43 6f 6e 66 69 67 57 69 64 67 65 74 2e 63 6f 6d 6d 69 74 28 73 65 ...DefaultConfigWidget.commit(se
fbe0 6c 66 29 0a 20 20 20 20 20 20 20 20 6e 65 77 5f 70 72 65 66 73 20 3d 20 7b 7d 0a 20 20 20 20 20 lf).........new_prefs.=.{}......
fc00 20 20 20 6e 65 77 5f 70 72 65 66 73 5b 4b 45 59 5f 4d 41 58 5f 44 4f 57 4e 4c 4f 41 44 53 5d 20 ...new_prefs[KEY_MAX_DOWNLOADS].
fc20 3d 20 69 6e 74 28 75 6e 69 63 6f 64 65 28 73 65 6c 66 2e 6d 61 78 5f 64 6f 77 6e 6c 6f 61 64 73 =.int(unicode(self.max_downloads
fc40 5f 73 70 69 6e 2e 76 61 6c 75 65 28 29 29 29 0a 20 20 20 20 20 20 20 20 6e 65 77 5f 70 72 65 66 _spin.value())).........new_pref
fc60 73 5b 4b 45 59 5f 47 45 54 5f 41 4c 4c 5f 41 55 54 48 4f 52 53 5d 20 3d 20 73 65 6c 66 2e 61 6c s[KEY_GET_ALL_AUTHORS].=.self.al
fc80 6c 5f 61 75 74 68 6f 72 73 5f 63 68 65 63 6b 62 6f 78 2e 63 68 65 63 6b 53 74 61 74 65 28 29 20 l_authors_checkbox.checkState().
fca0 3d 3d 20 51 74 2e 43 68 65 63 6b 65 64 0a 20 20 20 20 20 20 20 20 70 6c 75 67 69 6e 5f 70 72 65 ==.Qt.Checked.........plugin_pre
fcc0 66 73 5b 53 54 4f 52 45 5f 4e 41 4d 45 5d 20 3d 20 6e 65 77 5f 70 72 65 66 73 0a 50 4b 03 04 14 fs[STORE_NAME].=.new_prefs.PK...
fce0 00 00 00 00 00 b9 89 ab 58 87 b1 dd 7e 85 60 00 00 85 60 00 00 09 00 00 00 77 6f 72 6b 65 72 2e ........X...~.`...`......worker.
fd00 70 79 66 72 6f 6d 20 5f 5f 66 75 74 75 72 65 5f 5f 20 69 6d 70 6f 72 74 20 75 6e 69 63 6f 64 65 pyfrom.__future__.import.unicode
fd20 5f 6c 69 74 65 72 61 6c 73 2c 20 64 69 76 69 73 69 6f 6e 2c 20 61 62 73 6f 6c 75 74 65 5f 69 6d _literals,.division,.absolute_im
fd40 70 6f 72 74 2c 20 70 72 69 6e 74 5f 66 75 6e 63 74 69 6f 6e 0a 0a 5f 5f 6c 69 63 65 6e 73 65 5f port,.print_function..__license_
fd60 5f 20 20 20 3d 20 27 47 50 4c 20 76 33 27 0a 5f 5f 63 6f 70 79 72 69 67 68 74 5f 5f 20 3d 20 27 _...=.'GPL.v3'.__copyright__.=.'
fd80 32 30 31 31 2c 20 47 72 61 6e 74 20 44 72 61 6b 65 27 0a 0a 66 72 6f 6d 20 73 69 78 20 69 6d 70 2011,.Grant.Drake'..from.six.imp
fda0 6f 72 74 20 74 65 78 74 5f 74 79 70 65 20 61 73 20 75 6e 69 63 6f 64 65 0a 66 72 6f 6d 20 73 69 ort.text_type.as.unicode.from.si
fdc0 78 2e 6d 6f 76 65 73 20 69 6d 70 6f 72 74 20 7a 69 70 0a 0a 69 6d 70 6f 72 74 20 73 6f 63 6b 65 x.moves.import.zip..import.socke
fde0 74 2c 20 72 65 2c 20 64 61 74 65 74 69 6d 65 2c 20 73 69 78 2e 6d 6f 76 65 73 2e 75 72 6c 6c 69 t,.re,.datetime,.six.moves.urlli
fe00 62 2e 70 61 72 73 65 0a 66 72 6f 6d 20 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 69 6d 70 6f 72 74 20 b.parse.from.collections.import.
fe20 4f 72 64 65 72 65 64 44 69 63 74 0a 66 72 6f 6d 20 74 68 72 65 61 64 69 6e 67 20 69 6d 70 6f 72 OrderedDict.from.threading.impor
fe40 74 20 54 68 72 65 61 64 0a 0a 66 72 6f 6d 20 6c 78 6d 6c 2e 68 74 6d 6c 20 69 6d 70 6f 72 74 20 t.Thread..from.lxml.html.import.
fe60 66 72 6f 6d 73 74 72 69 6e 67 2c 20 74 6f 73 74 72 69 6e 67 0a 0a 66 72 6f 6d 20 63 61 6c 69 62 fromstring,.tostring..from.calib
fe80 72 65 2e 65 62 6f 6f 6b 73 2e 6d 65 74 61 64 61 74 61 2e 62 6f 6f 6b 2e 62 61 73 65 20 69 6d 70 re.ebooks.metadata.book.base.imp
fea0 6f 72 74 20 4d 65 74 61 64 61 74 61 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 6c 69 62 72 61 72 ort.Metadata.from.calibre.librar
fec0 79 2e 63 6f 6d 6d 65 6e 74 73 20 69 6d 70 6f 72 74 20 73 61 6e 69 74 69 7a 65 5f 63 6f 6d 6d 65 y.comments.import.sanitize_comme
fee0 6e 74 73 5f 68 74 6d 6c 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 75 74 69 6c 73 2e 63 6c 65 61 nts_html.from.calibre.utils.clea
ff00 6e 74 65 78 74 20 69 6d 70 6f 72 74 20 63 6c 65 61 6e 5f 61 73 63 69 69 5f 63 68 61 72 73 0a 0a ntext.import.clean_ascii_chars..
ff20 69 6d 70 6f 72 74 20 63 61 6c 69 62 72 65 5f 70 6c 75 67 69 6e 73 2e 62 61 72 6e 65 73 5f 6e 6f import.calibre_plugins.barnes_no
ff40 62 6c 65 2e 63 6f 6e 66 69 67 20 61 73 20 63 66 67 0a 0a 63 6c 61 73 73 20 57 6f 72 6b 65 72 28 ble.config.as.cfg..class.Worker(
ff60 54 68 72 65 61 64 29 3a 20 23 20 47 65 74 20 64 65 74 61 69 6c 73 0a 0a 20 20 20 20 27 27 27 0a Thread):.#.Get.details......'''.
ff80 20 20 20 20 47 65 74 20 62 6f 6f 6b 20 64 65 74 61 69 6c 73 20 66 72 6f 6d 20 42 61 72 6e 65 73 ....Get.book.details.from.Barnes
ffa0 20 26 20 4e 6f 62 6c 65 20 62 6f 6f 6b 20 70 61 67 65 20 69 6e 20 61 20 73 65 70 61 72 61 74 65 .&.Noble.book.page.in.a.separate
ffc0 20 74 68 72 65 61 64 0a 20 20 20 20 27 27 27 0a 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f .thread.....'''......def.__init_
ffe0 5f 28 73 65 6c 66 2c 20 75 72 6c 2c 20 72 65 73 75 6c 74 5f 71 75 65 75 65 2c 20 62 72 6f 77 73 _(self,.url,.result_queue,.brows
10000 65 72 2c 20 6c 6f 67 2c 20 72 65 6c 65 76 61 6e 63 65 2c 20 70 6c 75 67 69 6e 2c 20 74 69 6d 65 er,.log,.relevance,.plugin,.time
10020 6f 75 74 3d 32 30 29 3a 0a 20 20 20 20 20 20 20 20 54 68 72 65 61 64 2e 5f 5f 69 6e 69 74 5f 5f out=20):.........Thread.__init__
10040 28 73 65 6c 66 29 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 64 61 65 6d 6f 6e 20 3d 20 54 72 75 (self).........self.daemon.=.Tru
10060 65 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 75 72 6c 2c 20 73 65 6c 66 2e 72 65 73 75 6c 74 5f e.........self.url,.self.result_
10080 71 75 65 75 65 20 3d 20 75 72 6c 2c 20 72 65 73 75 6c 74 5f 71 75 65 75 65 0a 20 20 20 20 20 20 queue.=.url,.result_queue.......
100a0 20 20 73 65 6c 66 2e 6c 6f 67 2c 20 73 65 6c 66 2e 74 69 6d 65 6f 75 74 20 3d 20 6c 6f 67 2c 20 ..self.log,.self.timeout.=.log,.
100c0 74 69 6d 65 6f 75 74 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 72 65 6c 65 76 61 6e 63 65 2c 20 timeout.........self.relevance,.
100e0 73 65 6c 66 2e 70 6c 75 67 69 6e 20 3d 20 72 65 6c 65 76 61 6e 63 65 2c 20 70 6c 75 67 69 6e 0a self.plugin.=.relevance,.plugin.
10100 20 20 20 20 20 20 20 20 73 65 6c 66 2e 62 72 6f 77 73 65 72 20 3d 20 62 72 6f 77 73 65 72 2e 63 ........self.browser.=.browser.c
10120 6c 6f 6e 65 5f 62 72 6f 77 73 65 72 28 29 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 62 72 6f 77 lone_browser().........self.brow
10140 73 65 72 2e 73 65 74 5f 63 75 72 72 65 6e 74 5f 68 65 61 64 65 72 28 27 41 63 63 65 70 74 27 2c ser.set_current_header('Accept',
10160 27 2a 2f 2a 27 29 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 62 72 6f 77 73 65 72 2e 73 65 74 5f '*/*').........self.browser.set_
10180 63 75 72 72 65 6e 74 5f 68 65 61 64 65 72 28 27 41 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 27 current_header('Accept-Encoding'
101a0 2c 27 67 7a 69 70 2c 20 64 65 66 6c 61 74 65 2c 20 62 72 27 29 0a 20 20 20 20 20 20 20 20 73 65 ,'gzip,.deflate,.br').........se
101c0 6c 66 2e 63 6f 76 65 72 5f 75 72 6c 20 3d 20 73 65 6c 66 2e 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 lf.cover_url.=.self.barnes_noble
101e0 5f 69 64 20 3d 20 73 65 6c 66 2e 69 73 62 6e 20 3d 20 4e 6f 6e 65 0a 0a 20 20 20 20 64 65 66 20 _id.=.self.isbn.=.None......def.
10200 72 75 6e 28 73 65 6c 66 29 3a 0a 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 run(self):.........try:.........
10220 20 20 20 20 73 65 6c 66 2e 67 65 74 5f 64 65 74 61 69 6c 73 28 29 0a 20 20 20 20 20 20 20 20 65 ....self.get_details().........e
10240 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 78 63 65 xcept:.............self.log.exce
10260 70 74 69 6f 6e 28 27 67 65 74 5f 64 65 74 61 69 6c 73 20 66 61 69 6c 65 64 20 66 6f 72 20 75 72 ption('get_details.failed.for.ur
10280 6c 3a 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 29 0a 0a 20 20 20 20 64 65 66 20 67 65 74 5f 64 65 l:.%r'%self.url)......def.get_de
102a0 74 61 69 6c 73 28 73 65 6c 66 29 3a 0a 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 tails(self):.........try:.......
102c0 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 69 6e 66 6f 28 27 42 26 4e 20 75 72 6c 3a 20 25 73 ......self.log.info('B&N.url:.%s
102e0 27 25 73 65 6c 66 2e 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 61 77 20 3d 20 73 65 '%self.url).............raw.=.se
10300 6c 66 2e 62 72 6f 77 73 65 72 2e 6f 70 65 6e 5f 6e 6f 76 69 73 69 74 28 73 65 6c 66 2e 75 72 6c lf.browser.open_novisit(self.url
10320 2c 20 74 69 6d 65 6f 75 74 3d 73 65 6c 66 2e 74 69 6d 65 6f 75 74 29 2e 72 65 61 64 28 29 2e 73 ,.timeout=self.timeout).read().s
10340 74 72 69 70 28 29 0a 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 45 78 63 65 70 74 69 6f 6e 20 trip().........except.Exception.
10360 61 73 20 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 61 6c 6c 61 62 6c 65 28 67 65 as.e:.............if.callable(ge
10380 74 61 74 74 72 28 65 2c 20 27 67 65 74 63 6f 64 65 27 2c 20 4e 6f 6e 65 29 29 20 61 6e 64 20 5c tattr(e,.'getcode',.None)).and.\
103a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 2e 67 65 74 63 6f 64 65 28 29 .....................e.getcode()
103c0 20 3d 3d 20 34 30 34 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f .==.404:.................self.lo
103e0 67 2e 65 72 72 6f 72 28 27 55 52 4c 20 6d 61 6c 66 6f 72 6d 65 64 3a 20 25 72 27 25 73 65 6c 66 g.error('URL.malformed:.%r'%self
10400 2e 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 .url).................return....
10420 20 20 20 20 20 20 20 20 20 61 74 74 72 20 3d 20 67 65 74 61 74 74 72 28 65 2c 20 27 61 72 67 73 .........attr.=.getattr(e,.'args
10440 27 2c 20 5b 4e 6f 6e 65 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 74 74 72 20 3d 20 61 74 ',.[None]).............attr.=.at
10460 74 72 20 69 66 20 61 74 74 72 20 65 6c 73 65 20 5b 4e 6f 6e 65 5d 0a 20 20 20 20 20 20 20 20 20 tr.if.attr.else.[None]..........
10480 20 20 20 69 66 20 69 73 69 6e 73 74 61 6e 63 65 28 61 74 74 72 5b 30 5d 2c 20 73 6f 63 6b 65 74 ...if.isinstance(attr[0],.socket
104a0 2e 74 69 6d 65 6f 75 74 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 20 3d .timeout):.................msg.=
104c0 20 27 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 20 74 69 6d 65 64 20 6f 75 74 2e 20 54 72 79 20 .'Barnes.&.Noble.timed.out..Try.
104e0 61 67 61 69 6e 20 6c 61 74 65 72 2e 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 again.later.'.................se
10500 6c 66 2e 6c 6f 67 2e 65 72 72 6f 72 28 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c lf.log.error(msg).............el
10520 73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 20 3d 20 27 46 61 69 6c 65 se:.................msg.=.'Faile
10540 64 20 74 6f 20 6d 61 6b 65 20 64 65 74 61 69 6c 73 20 71 75 65 72 79 3a 20 25 72 27 25 73 65 6c d.to.make.details.query:.%r'%sel
10560 66 2e 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 f.url.................self.log.e
10580 78 63 65 70 74 69 6f 6e 28 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e xception(msg).............return
105a0 0a 0a 20 20 20 20 20 20 20 20 23 6f 70 65 6e 28 27 45 3a 5c 5c 62 61 72 6e 65 73 6e 6f 62 6c 65 ..........#open('E:\\barnesnoble
105c0 2e 68 74 6d 6c 27 2c 20 27 77 62 27 29 2e 77 72 69 74 65 28 72 61 77 29 0a 20 20 20 20 20 20 20 .html',.'wb').write(raw)........
105e0 20 72 61 77 20 3d 20 72 61 77 2e 64 65 63 6f 64 65 28 27 75 74 66 2d 38 27 2c 20 65 72 72 6f 72 .raw.=.raw.decode('utf-8',.error
10600 73 3d 27 72 65 70 6c 61 63 65 27 29 0a 0a 20 20 20 20 20 20 20 20 69 66 20 27 3c 74 69 74 6c 65 s='replace')..........if.'<title
10620 3e 34 30 34 20 2d 20 27 20 69 6e 20 72 61 77 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c >404.-.'.in.raw:.............sel
10640 66 2e 6c 6f 67 2e 65 72 72 6f 72 28 27 55 52 4c 20 6d 61 6c 66 6f 72 6d 65 64 3a 20 25 72 27 25 f.log.error('URL.malformed:.%r'%
10660 73 65 6c 66 2e 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 0a 20 20 self.url).............return....
10680 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 20 3d 20 66 72 ......try:.............root.=.fr
106a0 6f 6d 73 74 72 69 6e 67 28 63 6c 65 61 6e 5f 61 73 63 69 69 5f 63 68 61 72 73 28 72 61 77 29 29 omstring(clean_ascii_chars(raw))
106c0 0a 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 .........except:.............msg
106e0 20 3d 20 27 46 61 69 6c 65 64 20 74 6f 20 70 61 72 73 65 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 .=.'Failed.to.parse.Barnes.&.Nob
10700 6c 65 20 64 65 74 61 69 6c 73 20 70 61 67 65 3a 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 0a 20 20 le.details.page:.%r'%self.url...
10720 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 6d 73 67 ..........self.log.exception(msg
10740 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 0a 20 20 20 20 20 20 20 20 73 65 ).............return..........se
10760 6c 66 2e 70 61 72 73 65 5f 64 65 74 61 69 6c 73 28 72 6f 6f 74 29 0a 0a 20 20 20 20 64 65 66 20 lf.parse_details(root)......def.
10780 70 61 72 73 65 5f 64 65 74 61 69 6c 73 28 73 65 6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20 20 20 parse_details(self,.root):......
107a0 20 20 20 66 6f 72 20 65 20 69 6e 20 72 6f 6f 74 2e 69 74 65 72 28 22 73 70 61 6e 22 29 3a 0a 20 ...for.e.in.root.iter("span"):..
107c0 20 20 20 20 20 20 20 20 20 20 20 69 66 20 22 64 69 73 70 6c 61 79 3a 6e 6f 6e 65 22 20 69 6e 20 ...........if."display:none".in.
107e0 65 2e 67 65 74 28 22 73 74 79 6c 65 22 2c 20 22 22 29 2e 72 65 70 6c 61 63 65 28 22 20 22 2c 20 e.get("style",."").replace(".",.
10800 22 22 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 2e 74 65 78 74 20 3d 20 22 22 0a ""):................e.text.=."".
10820 0a 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 61 72 6e 65 73 .........try:.............barnes
10840 5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 62 61 72 6e 65 73 5f 6e 6f _noble_id.=.self.parse_barnes_no
10860 62 6c 65 5f 69 64 28 73 65 6c 66 2e 75 72 6c 29 0a 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a ble_id(self.url).........except:
10880 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 .............self.log.exception(
108a0 27 45 72 72 6f 72 20 70 61 72 73 69 6e 67 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 20 69 64 'Error.parsing.Barnes.&.Noble.id
108c0 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 29 0a 20 20 20 20 20 20 20 20 .for.url:.%r'%self.url).........
108e0 20 20 20 20 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 4e 6f 6e 65 0a 0a 20 20 20 20 ....barnes_noble_id.=.None......
10900 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 74 6c 65 2c 20 73 65 72 ....try:.............(title,.ser
10920 69 65 73 2c 20 73 65 72 69 65 73 5f 69 6e 64 65 78 29 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f ies,.series_index).=.self.parse_
10940 74 69 74 6c 65 5f 73 65 72 69 65 73 28 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 65 78 63 65 70 title_series(root).........excep
10960 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 78 63 65 70 74 69 6f t:.............self.log.exceptio
10980 6e 28 27 45 72 72 6f 72 20 70 61 72 73 69 6e 67 20 74 69 74 6c 65 20 61 6e 64 20 73 65 72 69 65 n('Error.parsing.title.and.serie
109a0 73 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 29 0a 20 20 20 20 20 20 20 s.for.url:.%r'%self.url)........
109c0 20 20 20 20 20 74 69 74 6c 65 20 3d 20 73 65 72 69 65 73 20 3d 20 73 65 72 69 65 73 5f 69 6e 64 .....title.=.series.=.series_ind
109e0 65 78 20 3d 20 4e 6f 6e 65 0a 0a 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 ex.=.None..........try:.........
10a00 20 20 20 20 61 75 74 68 6f 72 73 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 61 75 74 68 6f 72 73 ....authors.=.self.parse_authors
10a20 28 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20 (root).........except:..........
10a40 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 70 61 72 ...self.log.exception('Error.par
10a60 73 69 6e 67 20 61 75 74 68 6f 72 73 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73 65 6c 66 2e 75 sing.authors.for.url:.%r'%self.u
10a80 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 20 3d 20 5b 5d 0a 0a 20 20 rl).............authors.=.[]....
10aa0 20 20 20 20 20 20 69 66 20 6e 6f 74 20 74 69 74 6c 65 20 6f 72 20 6e 6f 74 20 61 75 74 68 6f 72 ......if.not.title.or.not.author
10ac0 73 20 6f 72 20 6e 6f 74 20 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 3a 0a 20 20 20 20 20 20 s.or.not.barnes_noble_id:.......
10ae0 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 72 72 6f 72 28 27 43 6f 75 6c 64 20 6e 6f 74 20 ......self.log.error('Could.not.
10b00 66 69 6e 64 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 73 2f 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c find.title/authors/Barnes.&.Nobl
10b20 65 20 69 64 20 66 6f 72 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 e.id.for.%r'%self.url)..........
10b40 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 72 72 6f 72 28 27 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c ...self.log.error('Barnes.&.Nobl
10b60 65 3a 20 25 72 20 54 69 74 6c 65 3a 20 25 72 20 41 75 74 68 6f 72 73 3a 20 25 72 27 25 28 62 61 e:.%r.Title:.%r.Authors:.%r'%(ba
10b80 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 2c 20 74 69 74 6c 65 2c 0a 20 20 20 20 20 20 20 20 20 20 rnes_noble_id,.title,...........
10ba0 20 20 20 20 20 20 61 75 74 68 6f 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 ......authors)).............retu
10bc0 72 6e 0a 0a 20 20 20 20 20 20 20 20 6d 69 20 3d 20 4d 65 74 61 64 61 74 61 28 74 69 74 6c 65 2c rn..........mi.=.Metadata(title,
10be0 20 61 75 74 68 6f 72 73 29 0a 20 20 20 20 20 20 20 20 69 66 20 73 65 72 69 65 73 3a 0a 20 20 20 .authors).........if.series:....
10c00 20 20 20 20 20 20 20 20 20 6d 69 2e 73 65 72 69 65 73 20 3d 20 73 65 72 69 65 73 0a 20 20 20 20 .........mi.series.=.series.....
10c20 20 20 20 20 20 20 20 20 6d 69 2e 73 65 72 69 65 73 5f 69 6e 64 65 78 20 3d 20 73 65 72 69 65 73 ........mi.series_index.=.series
10c40 5f 69 6e 64 65 78 0a 20 20 20 20 20 20 20 20 6d 69 2e 73 65 74 5f 69 64 65 6e 74 69 66 69 65 72 _index.........mi.set_identifier
10c60 28 27 62 61 72 6e 65 73 6e 6f 62 6c 65 27 2c 20 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 29 ('barnesnoble',.barnes_noble_id)
10c80 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 .........self.barnes_noble_id.=.
10ca0 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 0a 0a 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 barnes_noble_id..........try:...
10cc0 20 20 20 20 20 20 20 20 20 20 69 73 62 6e 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 69 73 62 6e ..........isbn.=.self.parse_isbn
10ce0 28 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 73 62 6e 3a 0a 20 20 20 20 (root).............if.isbn:.....
10d00 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 69 73 62 6e 20 3d 20 6d 69 2e 69 73 62 6e 20 ............self.isbn.=.mi.isbn.
10d20 3d 20 69 73 62 6e 0a 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20 =.isbn.........except:..........
10d40 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 70 61 72 ...self.log.exception('Error.par
10d60 73 69 6e 67 20 49 53 42 4e 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 29 sing.ISBN.for.url:.%r'%self.url)
10d80 0a 0a 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 2e 72 61 ..........try:.............mi.ra
10da0 74 69 6e 67 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 72 61 74 69 6e 67 28 72 6f 6f 74 29 0a 20 ting.=.self.parse_rating(root)..
10dc0 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e .......except:.............self.
10de0 6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 70 61 72 73 69 6e 67 20 72 61 74 log.exception('Error.parsing.rat
10e00 69 6e 67 73 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 29 0a 0a 20 20 20 ings.for.url:.%r'%self.url).....
10e20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 2e 63 6f 6d 6d 65 6e 74 .....try:.............mi.comment
10e40 73 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 63 6f 6d 6d 65 6e 74 73 28 72 6f 6f 74 29 0a 20 20 s.=.self.parse_comments(root)...
10e60 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c ......except:.............self.l
10e80 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 70 61 72 73 69 6e 67 20 63 6f 6d 6d og.exception('Error.parsing.comm
10ea0 65 6e 74 73 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 29 0a 0a 20 20 20 ents.for.url:.%r'%self.url).....
10ec0 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 76 65 72 .....try:.............self.cover
10ee0 5f 75 72 6c 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 63 6f 76 65 72 28 72 6f 6f 74 29 0a 20 20 _url.=.self.parse_cover(root)...
10f00 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c ......except:.............self.l
10f20 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 70 61 72 73 69 6e 67 20 63 6f 76 65 og.exception('Error.parsing.cove
10f40 72 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 29 0a 20 20 20 20 20 20 20 r.for.url:.%r'%self.url)........
10f60 20 6d 69 2e 68 61 73 5f 63 6f 76 65 72 20 3d 20 62 6f 6f 6c 28 73 65 6c 66 2e 63 6f 76 65 72 5f .mi.has_cover.=.bool(self.cover_
10f80 75 72 6c 29 0a 20 20 20 20 20 20 20 20 6d 69 2e 63 6f 76 65 72 5f 75 72 6c 20 3d 20 73 65 6c 66 url).........mi.cover_url.=.self
10fa0 2e 63 6f 76 65 72 5f 75 72 6c 20 23 20 54 68 69 73 20 69 73 20 70 75 72 65 6c 79 20 73 6f 20 77 .cover_url.#.This.is.purely.so.w
10fc0 65 20 63 61 6e 20 72 75 6e 20 61 20 74 65 73 74 20 66 6f 72 20 69 74 21 21 21 0a 0a 20 20 20 20 e.can.run.a.test.for.it!!!......
10fe0 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 2e 70 75 62 6c 69 73 68 65 ....try:.............mi.publishe
11000 72 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 70 75 62 6c 69 73 68 65 72 28 72 6f 6f 74 29 0a 20 r.=.self.parse_publisher(root)..
11020 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e .......except:.............self.
11040 6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 70 61 72 73 69 6e 67 20 70 75 62 log.exception('Error.parsing.pub
11060 6c 69 73 68 65 72 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 29 0a 0a 20 lisher.for.url:.%r'%self.url)...
11080 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 2e 70 75 62 64 61 .......try:.............mi.pubda
110a0 74 65 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 70 75 62 6c 69 73 68 65 64 5f 64 61 74 65 28 72 te.=.self.parse_published_date(r
110c0 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 oot).........except:............
110e0 20 73 65 6c 66 2e 6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 70 61 72 73 69 .self.log.exception('Error.parsi
11100 6e 67 20 70 75 62 6c 69 73 68 65 64 20 64 61 74 65 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73 ng.published.date.for.url:.%r'%s
11120 65 6c 66 2e 75 72 6c 29 0a 0a 20 20 20 20 20 20 20 20 6d 69 2e 73 6f 75 72 63 65 5f 72 65 6c 65 elf.url)..........mi.source_rele
11140 76 61 6e 63 65 20 3d 20 73 65 6c 66 2e 72 65 6c 65 76 61 6e 63 65 0a 0a 20 20 20 20 20 20 20 20 vance.=.self.relevance..........
11160 69 66 20 73 65 6c 66 2e 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 3a 0a 20 20 20 20 20 20 20 if.self.barnes_noble_id:........
11180 20 20 20 20 20 69 66 20 73 65 6c 66 2e 69 73 62 6e 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .....if.self.isbn:..............
111a0 20 20 20 73 65 6c 66 2e 70 6c 75 67 69 6e 2e 63 61 63 68 65 5f 69 73 62 6e 5f 74 6f 5f 69 64 65 ...self.plugin.cache_isbn_to_ide
111c0 6e 74 69 66 69 65 72 28 73 65 6c 66 2e 69 73 62 6e 2c 20 73 65 6c 66 2e 62 61 72 6e 65 73 5f 6e ntifier(self.isbn,.self.barnes_n
111e0 6f 62 6c 65 5f 69 64 29 0a 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 6c 75 67 69 6e 2e 63 6c oble_id)..........self.plugin.cl
11200 65 61 6e 5f 64 6f 77 6e 6c 6f 61 64 65 64 5f 6d 65 74 61 64 61 74 61 28 6d 69 29 0a 20 20 20 20 ean_downloaded_metadata(mi).....
11220 20 20 20 20 73 65 6c 66 2e 72 65 73 75 6c 74 5f 71 75 65 75 65 2e 70 75 74 28 6d 69 29 0a 0a 20 ....self.result_queue.put(mi)...
11240 20 20 20 64 65 66 20 70 61 72 73 65 5f 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 28 73 65 6c ...def.parse_barnes_noble_id(sel
11260 66 2c 20 75 72 6c 29 3a 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 72 65 2e 73 65 61 f,.url):.........result.=.re.sea
11280 72 63 68 28 27 62 61 72 6e 65 73 61 6e 64 6e 6f 62 6c 65 2e 63 6f 6d 2f 2e 2a 2f 28 5c 64 2b 29 rch('barnesandnoble.com/.*/(\d+)
112a0 27 2c 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 69 66 20 72 65 73 75 6c 74 3a 0a 20 20 20 20 20 ',.url).........if.result:......
112c0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 2e 67 72 6f 75 70 73 28 30 29 5b 30 .......return.result.groups(0)[0
112e0 5d 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 65 5f 73 65 72 69 65 73 28 73 65 6c 66 2c 20 72 6f ]......def.parse_series(self,.ro
11300 6f 74 29 3a 0a 20 20 20 20 20 20 20 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 ot):.........detail_nodes.=.root
11320 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69 64 3d 22 50 72 6f 64 75 63 74 44 65 74 61 69 6c .xpath('//div[@id="ProductDetail
11340 73 54 61 62 22 5d 2f 74 61 62 6c 65 2f 2f 74 72 27 29 0a 20 20 20 20 20 20 20 20 69 66 20 64 65 sTab"]/table//tr').........if.de
11360 74 61 69 6c 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 68 2c 74 tail_nodes:.............for.th,t
11380 64 20 69 6e 20 7a 69 70 28 64 65 74 61 69 6c 5f 6e 6f 64 65 73 5b 30 5d 2e 78 70 61 74 68 28 27 d.in.zip(detail_nodes[0].xpath('
113a0 2f 2f 74 68 27 29 2c 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 5b 30 5d 2e 78 70 61 74 68 28 27 2f //th'),.detail_nodes[0].xpath('/
113c0 2f 74 64 27 29 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 74 68 2e 74 65 /td')):.................if.th.te
113e0 78 74 5f 63 6f 6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 29 2e 73 74 61 72 74 73 77 69 74 68 28 xt_content().strip().startswith(
11400 27 53 65 72 69 65 73 27 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 'Series'):.....................s
11420 65 72 69 65 73 5f 69 6e 66 6f 20 3d 20 74 64 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 29 2e 73 eries_info.=.td.text_content().s
11440 74 72 69 70 28 29 2e 72 65 70 6c 61 63 65 28 27 5c 6e 27 2c 27 27 29 2e 73 70 6c 69 74 28 27 2c trip().replace('\n','').split(',
11460 20 23 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 72 69 65 73 5f .#').....................series_
11480 69 6e 64 65 78 20 3d 20 4e 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 index.=.None....................
114a0 20 69 66 20 6c 65 6e 28 73 65 72 69 65 73 5f 69 6e 66 6f 29 20 3e 20 31 3a 0a 20 20 20 20 20 20 .if.len(series_info).>.1:.......
114c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 72 69 65 73 5f 69 6e 64 65 78 20 3d ..................series_index.=
114e0 20 66 6c 6f 61 74 28 73 65 72 69 65 73 5f 69 6e 66 6f 5b 31 5d 29 0a 20 20 20 20 20 20 20 20 20 .float(series_info[1])..........
11500 20 20 20 20 20 20 20 20 20 20 20 73 65 72 69 65 73 5f 6e 61 6d 65 20 3d 20 73 65 72 69 65 73 5f ...........series_name.=.series_
11520 69 6e 66 6f 5b 30 5d 2e 73 74 72 69 70 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 info[0].strip().................
11540 20 20 20 20 72 65 74 75 72 6e 20 28 73 65 72 69 65 73 5f 6e 61 6d 65 2c 20 73 65 72 69 65 73 5f ....return.(series_name,.series_
11560 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 4e 6f 6e 65 2c 20 4e 6f 6e index).........return.(None,.Non
11580 65 29 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 65 5f 74 69 74 6c 65 5f 73 65 72 69 65 73 28 73 e)......def.parse_title_series(s
115a0 65 6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f 6e 6f 64 65 20 3d elf,.root):.........title_node.=
115c0 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 68 65 61 64 65 72 5b 40 69 64 3d 22 70 72 6f 64 53 .root.xpath('//header[@id="prodS
115e0 75 6d 6d 61 72 79 2d 68 65 61 64 65 72 22 5d 2f 2f 68 31 5b 40 69 74 65 6d 70 72 6f 70 3d 22 6e ummary-header"]//h1[@itemprop="n
11600 61 6d 65 22 5d 27 29 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 74 69 74 6c 65 5f 6e 6f 64 ame"]').........if.not.title_nod
11620 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 e:.............title_node.=.root
11640 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69 64 3d 22 70 72 6f 64 75 63 74 2d 74 69 74 6c 65 .xpath('//div[@id="product-title
11660 2d 31 22 5d 2f 68 31 5b 40 69 74 65 6d 70 72 6f 70 3d 22 6e 61 6d 65 22 5d 27 29 0a 20 20 20 20 -1"]/h1[@itemprop="name"]').....
11680 20 20 20 20 69 66 20 6e 6f 74 20 74 69 74 6c 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 ....if.not.title_node:..........
116a0 20 20 20 23 20 50 72 65 20 76 31 2e 32 20 77 65 62 73 69 74 65 20 66 6f 72 6d 61 74 0a 20 20 20 ...#.Pre.v1.2.website.format....
116c0 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 .........title_node.=.root.xpath
116e0 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d 22 77 2d 62 6f 78 20 77 67 74 2d 70 72 6f 64 75 63 ('//div[@class="w-box.wgt-produc
11700 74 2d 68 65 61 64 69 6e 67 22 5d 2f 68 31 27 29 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 t-heading"]/h1').........if.not.
11720 74 69 74 6c 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 68 74 74 70 3a 2f title_node:.............#.http:/
11740 2f 77 77 77 2e 62 61 72 6e 65 73 61 6e 64 6e 6f 62 6c 65 2e 63 6f 6d 2f 77 2f 63 2d 70 72 6f 67 /www.barnesandnoble.com/w/c-prog
11760 72 61 6d 6d 69 6e 67 2d 6c 61 6e 67 75 61 67 65 2d 62 72 69 61 6e 2d 77 2d 6b 65 72 6e 69 67 68 ramming-language-brian-w-kernigh
11780 61 6e 2f 31 30 30 30 30 35 35 31 37 35 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f an/1000055175.............title_
117a0 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d node.=.root.xpath('//div[@class=
117c0 22 77 2d 62 6f 78 20 77 67 74 2d 70 72 6f 64 75 63 74 54 69 74 6c 65 22 5d 2f 68 31 27 29 0a 20 "w-box.wgt-productTitle"]/h1')..
117e0 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 74 69 74 6c 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 .......if.not.title_node:.......
11800 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 28 27 41 62 6f 72 74 69 6e 67 20 73 65 61 72 63 68 20 ......self.log('Aborting.search.
11820 66 6f 72 20 74 69 74 6c 65 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 for.title').............return.(
11840 4e 6f 6e 65 2c 20 4e 6f 6e 65 2c 20 4e 6f 6e 65 29 0a 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f None,.None,.None).........title_
11860 74 65 78 74 20 3d 20 74 69 74 6c 65 5f 6e 6f 64 65 5b 30 5d 2e 74 65 78 74 2e 73 74 72 69 70 28 text.=.title_node[0].text.strip(
11880 29 0a 20 20 20 20 20 20 20 20 23 73 65 6c 66 2e 6c 6f 67 28 27 46 6f 75 6e 64 20 74 69 74 6c 65 ).........#self.log('Found.title
118a0 20 74 65 78 74 3a 27 2c 74 69 74 6c 65 5f 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 69 66 20 74 .text:',title_text).........if.t
118c0 69 74 6c 65 5f 74 65 78 74 2e 65 6e 64 73 77 69 74 68 28 27 2f 27 29 3a 0a 20 20 20 20 20 20 20 itle_text.endswith('/'):........
118e0 20 20 20 20 20 74 69 74 6c 65 5f 74 65 78 74 20 3d 20 74 69 74 6c 65 5f 74 65 78 74 5b 3a 2d 31 .....title_text.=.title_text[:-1
11900 5d 2e 73 74 72 69 70 28 29 0a 20 20 20 20 20 20 20 20 23 20 41 6c 73 6f 20 73 74 72 69 70 20 6f ].strip().........#.Also.strip.o
11920 66 66 20 61 6e 79 20 4e 4f 4f 4b 20 42 6f 6f 6b 20 73 74 75 66 66 20 66 72 6f 6d 20 74 68 65 20 ff.any.NOOK.Book.stuff.from.the.
11940 74 69 74 6c 65 0a 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f 74 65 78 74 20 3d 20 74 69 74 6c 65 title.........title_text.=.title
11960 5f 74 65 78 74 2e 72 65 70 6c 61 63 65 28 27 5b 4e 4f 4f 4b 20 42 6f 6f 6b 5d 27 2c 27 27 29 2e _text.replace('[NOOK.Book]','').
11980 73 74 72 69 70 28 29 0a 20 20 20 20 20 20 20 20 69 66 20 74 69 74 6c 65 5f 74 65 78 74 2e 66 69 strip().........if.title_text.fi
119a0 6e 64 28 27 28 27 29 20 3d 3d 20 2d 31 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 73 65 6c 66 nd('(').==.-1:.............#self
119c0 2e 6c 6f 67 28 27 54 69 74 6c 65 20 68 61 73 20 6e 6f 20 70 61 72 65 6e 74 68 65 73 69 73 20 66 .log('Title.has.no.parenthesis.f
119e0 6f 72 20 73 65 72 69 65 73 20 73 6f 20 64 6f 6e 65 3a 27 2c 74 69 74 6c 65 5f 74 65 78 74 29 0a or.series.so.done:',title_text).
11a00 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 72 69 65 73 5f 6e 61 6d 65 2c 20 73 65 72 69 65 73 ............(series_name,.series
11a20 5f 69 6e 64 65 78 29 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 73 65 72 69 65 73 28 72 6f 6f 74 _index).=.self.parse_series(root
11a40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 73 65 6c 66 2e 6c 6f 67 28 27 53 65 72 69 65 73 20 ).............#self.log('Series.
11a60 69 6e 66 6f 20 72 65 74 72 69 65 76 65 64 20 73 65 70 61 72 61 74 65 6c 79 20 61 73 20 66 6f 6c info.retrieved.separately.as.fol
11a80 6c 6f 77 73 3a 27 2c 73 65 72 69 65 73 5f 6e 61 6d 65 2c 20 27 49 64 78 3a 27 2c 20 73 65 72 69 lows:',series_name,.'Idx:',.seri
11aa0 65 73 5f 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 74 69 es_index).............return.(ti
11ac0 74 6c 65 5f 74 65 78 74 2c 20 73 65 72 69 65 73 5f 6e 61 6d 65 2c 20 73 65 72 69 65 73 5f 69 6e tle_text,.series_name,.series_in
11ae0 64 65 78 29 0a 20 20 20 20 20 20 20 20 23 20 43 6f 6e 74 61 69 6e 73 20 61 20 54 69 74 6c 65 20 dex).........#.Contains.a.Title.
11b00 61 6e 64 20 70 6f 73 73 69 62 6c 79 20 61 20 73 65 72 69 65 73 2e 20 50 6f 73 73 69 62 6c 65 20 and.possibly.a.series..Possible.
11b20 76 61 6c 75 65 73 20 63 75 72 72 65 6e 74 6c 79 20 68 61 6e 64 6c 65 64 3a 0a 20 20 20 20 20 20 values.currently.handled:.......
11b40 20 20 23 20 22 53 6f 6d 65 20 74 69 74 6c 65 20 28 53 6f 6d 65 20 74 65 78 74 29 22 0a 20 20 20 ..#."Some.title.(Some.text)"....
11b60 20 20 20 20 20 23 20 22 53 6f 6d 65 20 74 69 74 6c 65 20 28 58 58 58 20 23 31 29 22 0a 20 20 20 .....#."Some.title.(XXX.#1)"....
11b80 20 20 20 20 20 23 20 22 53 6f 6d 65 20 74 69 74 6c 65 20 28 58 58 58 20 53 65 72 69 65 73 20 23 .....#."Some.title.(XXX.Series.#
11ba0 31 29 22 0a 20 20 20 20 20 20 20 20 23 20 22 53 6f 6d 65 20 74 69 74 6c 65 20 28 53 6f 6d 65 20 1)".........#."Some.title.(Some.
11bc0 74 65 78 74 29 20 28 58 58 58 20 53 65 72 69 65 73 20 23 31 29 22 0a 20 20 20 20 20 20 20 20 6d text).(XXX.Series.#1)".........m
11be0 61 74 63 68 20 3d 20 72 65 2e 73 65 61 72 63 68 28 72 27 5c 28 28 5b 5e 5c 29 5d 2b 29 20 53 65 atch.=.re.search(r'\(([^\)]+).Se
11c00 72 69 65 73 20 23 28 5c 64 2b 29 5c 29 27 2c 20 74 69 74 6c 65 5f 74 65 78 74 29 0a 20 20 20 20 ries.#(\d+)\)',.title_text).....
11c20 20 20 20 20 69 66 20 6e 6f 74 20 6d 61 74 63 68 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 73 ....if.not.match:.............#s
11c40 65 6c 66 2e 6c 6f 67 28 27 54 69 74 6c 65 20 68 61 73 20 6e 6f 20 53 65 72 69 65 73 20 77 6f 72 elf.log('Title.has.no.Series.wor
11c60 64 20 69 6e 20 74 69 74 6c 65 2c 20 74 72 79 69 6e 67 20 77 69 74 68 6f 75 74 20 69 74 3a 27 2c d.in.title,.trying.without.it:',
11c80 74 69 74 6c 65 5f 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 20 3d 20 title_text).............match.=.
11ca0 72 65 2e 73 65 61 72 63 68 28 72 27 5c 28 28 5b 5e 5c 29 5d 2b 29 2c 20 23 28 5c 64 2b 29 5c 29 re.search(r'\(([^\)]+),.#(\d+)\)
11cc0 27 2c 20 74 69 74 6c 65 5f 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 69 66 20 6d 61 74 63 68 3a ',.title_text).........if.match:
11ce0 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 72 69 65 73 5f 6e 61 6d 65 20 3d 20 6d 61 74 63 68 .............series_name.=.match
11d00 2e 67 72 6f 75 70 73 28 30 29 5b 30 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 72 69 65 73 .groups(0)[0].............series
11d20 5f 69 6e 64 65 78 20 3d 20 66 6c 6f 61 74 28 6d 61 74 63 68 2e 67 72 6f 75 70 73 28 30 29 5b 31 _index.=.float(match.groups(0)[1
11d40 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 20 3d 20 74 69 74 6c 65 5f 74 65 78 ]).............title.=.title_tex
11d60 74 2e 72 70 61 72 74 69 74 69 6f 6e 28 27 28 27 29 5b 30 5d 2e 73 74 72 69 70 28 29 0a 20 20 20 t.rpartition('(')[0].strip()....
11d80 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 28 27 54 69 74 6c 65 20 68 61 73 20 73 65 72 .........self.log('Title.has.ser
11da0 69 65 73 20 69 6e 66 6f 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 27 2c 74 69 74 6c 65 2c 20 27 53 65 ies.info.as.follows:',title,.'Se
11dc0 72 69 65 73 3a 27 2c 73 65 72 69 65 73 5f 6e 61 6d 65 2c 20 27 49 64 78 3a 27 2c 73 65 72 69 65 ries:',series_name,.'Idx:',serie
11de0 73 5f 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 74 69 74 s_index).............return.(tit
11e00 6c 65 2c 20 73 65 72 69 65 73 5f 6e 61 6d 65 2c 20 73 65 72 69 65 73 5f 69 6e 64 65 78 29 0a 20 le,.series_name,.series_index)..
11e20 20 20 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 53 65 61 72 63 .......else:.............#.Searc
11e40 68 20 73 65 72 69 65 73 20 69 6e 66 6f 20 66 72 6f 6d 20 74 68 65 20 50 72 6f 64 75 63 74 20 44 h.series.info.from.the.Product.D
11e60 65 74 61 69 6c 73 20 73 65 63 74 69 6f 6e 20 6f 66 20 77 65 62 73 69 74 65 20 73 69 6e 63 65 20 etails.section.of.website.since.
11e80 69 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 74 69 74 6c 65 0a 20 20 it.was.not.found.in.the.title...
11ea0 20 20 20 20 20 20 20 20 20 20 28 73 65 72 69 65 73 5f 6e 61 6d 65 2c 20 73 65 72 69 65 73 5f 69 ..........(series_name,.series_i
11ec0 6e 64 65 78 29 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 73 65 72 69 65 73 28 72 6f 6f 74 29 0a ndex).=.self.parse_series(root).
11ee0 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 28 27 54 69 74 6c 65 20 61 6e 64 20 ............self.log('Title.and.
11f00 73 65 72 69 65 73 20 69 6e 66 6f 20 72 65 74 72 69 65 76 65 64 20 73 65 70 61 72 61 74 65 6c 79 series.info.retrieved.separately
11f20 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 27 2c 74 69 74 6c 65 5f 74 65 78 74 2c 20 27 53 65 72 69 65 .as.follows:',title_text,.'Serie
11f40 73 3a 27 2c 73 65 72 69 65 73 5f 6e 61 6d 65 2c 20 27 49 64 78 3a 27 2c 20 73 65 72 69 65 73 5f s:',series_name,.'Idx:',.series_
11f60 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 74 69 74 6c 65 index).............return.(title
11f80 5f 74 65 78 74 2c 20 73 65 72 69 65 73 5f 6e 61 6d 65 2c 20 73 65 72 69 65 73 5f 69 6e 64 65 78 _text,.series_name,.series_index
11fa0 29 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 65 5f 61 75 74 68 6f 72 73 28 73 65 6c 66 2c 20 72 )......def.parse_authors(self,.r
11fc0 6f 6f 74 29 3a 0a 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 5f 67 65 74 5f 61 6c 6c 5f 61 75 oot):.........default_get_all_au
11fe0 74 68 6f 72 73 20 3d 20 63 66 67 2e 44 45 46 41 55 4c 54 5f 53 54 4f 52 45 5f 56 41 4c 55 45 53 thors.=.cfg.DEFAULT_STORE_VALUES
12000 5b 63 66 67 2e 4b 45 59 5f 47 45 54 5f 41 4c 4c 5f 41 55 54 48 4f 52 53 5d 0a 20 20 20 20 20 20 [cfg.KEY_GET_ALL_AUTHORS].......
12020 20 20 67 65 74 5f 61 6c 6c 5f 61 75 74 68 6f 72 73 20 3d 20 63 66 67 2e 70 6c 75 67 69 6e 5f 70 ..get_all_authors.=.cfg.plugin_p
12040 72 65 66 73 5b 63 66 67 2e 53 54 4f 52 45 5f 4e 41 4d 45 5d 2e 67 65 74 28 63 66 67 2e 4b 45 59 refs[cfg.STORE_NAME].get(cfg.KEY
12060 5f 47 45 54 5f 41 4c 4c 5f 41 55 54 48 4f 52 53 2c 20 64 65 66 61 75 6c 74 5f 67 65 74 5f 61 6c _GET_ALL_AUTHORS,.default_get_al
12080 6c 5f 61 75 74 68 6f 72 73 29 0a 20 20 20 20 20 20 20 20 69 66 20 67 65 74 5f 61 6c 6c 5f 61 75 l_authors).........if.get_all_au
120a0 74 68 6f 72 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 20 thors:.............author_nodes.
120c0 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 68 65 61 64 65 72 5b 40 69 64 3d 22 70 72 6f 64 =.root.xpath('//header[@id="prod
120e0 53 75 6d 6d 61 72 79 2d 68 65 61 64 65 72 22 5d 2f 2f 73 70 61 6e 5b 63 6f 6e 74 61 69 6e 73 28 Summary-header"]//span[contains(
12100 40 63 6c 61 73 73 2c 22 63 6f 6e 74 72 69 62 75 74 6f 72 73 22 29 5d 2f 61 27 29 0a 20 20 20 20 @class,"contributors")]/a').....
12120 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 3a 0a 20 20 20 ........if.not.author_nodes:....
12140 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 .............author_nodes.=.root
12160 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69 64 3d 22 70 72 6f 64 75 63 74 2d 74 69 74 6c 65 .xpath('//div[@id="product-title
12180 2d 31 22 5d 2f 75 6c 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 22 63 6f 6e 74 72 69 62 -1"]/ul[contains(@class,"contrib
121a0 75 74 6f 72 73 22 29 5d 2f 6c 69 2f 61 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e utors")]/li/a').............if.n
121c0 6f 74 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ot.author_nodes:................
121e0 20 23 20 50 72 65 20 76 31 2e 32 20 77 65 62 73 69 74 65 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 .#.Pre.v1.2.website.format......
12200 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 ...........author_nodes.=.root.x
12220 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d 22 77 2d 62 6f 78 20 77 67 74 2d 70 72 path('//div[@class="w-box.wgt-pr
12240 6f 64 75 63 74 2d 68 65 61 64 69 6e 67 22 5d 2f 73 70 61 6e 2f 61 27 29 0a 20 20 20 20 20 20 20 oduct-heading"]/span/a')........
12260 20 20 20 20 20 69 66 20 6e 6f 74 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 .....if.not.author_nodes:.......
12280 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70 ..........author_nodes.=.root.xp
122a0 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d 22 77 2d 62 6f 78 20 77 67 74 2d 70 72 6f ath('//div[@class="w-box.wgt-pro
122c0 64 75 63 74 54 69 74 6c 65 22 5d 2f 68 31 2f 65 6d 2f 61 27 29 0a 20 20 20 20 20 20 20 20 20 20 ductTitle"]/h1/em/a')...........
122e0 20 20 69 66 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..if.author_nodes:..............
12300 20 20 20 61 75 74 68 6f 72 73 20 3d 20 5b 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...authors.=.[].................
12320 66 6f 72 20 61 75 74 68 6f 72 5f 6e 6f 64 65 20 69 6e 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 3a for.author_node.in.author_nodes:
12340 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 20 3d 20 61 75 .....................author.=.au
12360 74 68 6f 72 5f 6e 6f 64 65 2e 74 65 78 74 2e 73 74 72 69 70 28 29 0a 20 20 20 20 20 20 20 20 20 thor_node.text.strip()..........
12380 20 20 20 20 20 20 20 20 20 20 20 69 66 20 61 75 74 68 6f 72 3a 0a 20 20 20 20 20 20 20 20 20 20 ...........if.author:...........
123a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 2e 61 70 70 65 6e 64 28 61 75 74 ..............authors.append(aut
123c0 68 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 75 74 68 hor).................return.auth
123e0 6f 72 73 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 ors.........else:.............#.
12400 57 65 20 6e 65 65 64 20 74 6f 20 6d 6f 72 65 20 63 61 72 65 66 75 6c 6c 79 20 6c 6f 6f 6b 20 61 We.need.to.more.carefully.look.a
12420 74 20 74 68 65 20 61 75 74 68 6f 72 73 20 74 6f 20 6f 6e 6c 79 20 62 72 69 6e 67 20 74 68 65 6d t.the.authors.to.only.bring.them
12440 20 69 6e 20 69 66 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 31 2e 20 54 68 65 79 20 68 61 .in.if:.............#.1..They.ha
12460 76 65 20 6e 6f 20 61 75 74 68 6f 72 20 74 79 70 65 20 73 70 65 63 69 66 69 65 64 0a 20 20 20 20 ve.no.author.type.specified.....
12480 20 20 20 20 20 20 20 20 23 20 32 2e 20 54 68 65 72 65 20 61 72 65 20 6e 6f 20 61 75 74 68 6f 72 ........#.2..There.are.no.author
124a0 73 20 66 72 6f 6d 20 31 20 61 6e 64 20 74 68 65 79 20 68 61 76 65 20 61 6e 20 61 75 74 68 6f 72 s.from.1.and.they.have.an.author
124c0 20 74 79 70 65 20 6f 66 20 27 45 64 69 74 6f 72 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 70 .type.of.'Editor'.............sp
124e0 61 6e 5f 61 75 74 68 6f 72 73 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 68 65 61 64 65 an_authors.=.root.xpath('//heade
12500 72 5b 40 69 64 3d 22 70 72 6f 64 53 75 6d 6d 61 72 79 2d 68 65 61 64 65 72 22 5d 2f 2f 73 70 61 r[@id="prodSummary-header"]//spa
12520 6e 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 22 63 6f 6e 74 72 69 62 75 74 6f 72 73 22 n[contains(@class,"contributors"
12540 29 5d 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 73 70 61 6e 5f 61 75 74 )]').............if.not.span_aut
12560 68 6f 72 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 61 6e 5f 61 75 74 68 6f hors:.................span_autho
12580 72 73 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69 64 3d 22 70 72 6f 64 rs.=.root.xpath('//div[@id="prod
125a0 75 63 74 2d 74 69 74 6c 65 2d 31 22 5d 2f 75 6c 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 uct-title-1"]/ul[contains(@class
125c0 2c 22 63 6f 6e 74 72 69 62 75 74 6f 72 73 22 29 5d 2f 6c 69 2f 61 27 29 0a 20 20 20 20 20 20 20 ,"contributors")]/li/a')........
125e0 20 20 20 20 20 69 66 20 6e 6f 74 20 73 70 61 6e 5f 61 75 74 68 6f 72 73 3a 0a 20 20 20 20 20 20 .....if.not.span_authors:.......
12600 20 20 20 20 20 20 20 20 20 20 23 20 50 72 65 20 76 31 2e 32 20 77 65 62 73 69 74 65 20 66 6f 72 ..........#.Pre.v1.2.website.for
12620 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 61 6e 5f 61 75 74 68 6f 72 73 mat.................span_authors
12640 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d 22 77 2d 62 .=.root.xpath('//div[@class="w-b
12660 6f 78 20 77 67 74 2d 70 72 6f 64 75 63 74 2d 68 65 61 64 69 6e 67 22 5d 2f 73 70 61 6e 27 29 0a ox.wgt-product-heading"]/span').
12680 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 73 70 61 6e 5f 61 75 74 68 6f 72 73 3a ............if.not.span_authors:
126a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 61 6e 5f 61 75 74 68 6f 72 73 20 3d 20 .................span_authors.=.
126c0 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d 22 77 2d 62 6f 78 20 root.xpath('//div[@class="w-box.
126e0 77 67 74 2d 70 72 6f 64 75 63 74 54 69 74 6c 65 22 5d 2f 68 31 2f 65 6d 27 29 0a 20 20 20 20 20 wgt-productTitle"]/h1/em')......
12700 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 73 70 61 6e 5f 61 75 74 68 6f 72 73 3a 0a 20 20 20 20 .......if.not.span_authors:.....
12720 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 ............return.............a
12740 75 74 68 6f 72 73 5f 68 74 6d 6c 20 3d 20 74 6f 73 74 72 69 6e 67 28 73 70 61 6e 5f 61 75 74 68 uthors_html.=.tostring(span_auth
12760 6f 72 73 5b 30 5d 2c 20 6d 65 74 68 6f 64 3d 27 74 65 78 74 27 2c 20 65 6e 63 6f 64 69 6e 67 3d ors[0],.method='text',.encoding=
12780 27 75 6e 69 63 6f 64 65 27 29 2e 72 65 70 6c 61 63 65 28 27 5c 6e 27 2c 27 27 29 2e 73 74 72 69 'unicode').replace('\n','').stri
127a0 70 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 61 75 74 68 6f 72 73 5f 68 74 6d 6c 2e p().............if.authors_html.
127c0 73 74 61 72 74 73 77 69 74 68 28 27 62 79 27 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 startswith('by'):...............
127e0 20 20 61 75 74 68 6f 72 73 5f 68 74 6d 6c 20 3d 20 61 75 74 68 6f 72 73 5f 68 74 6d 6c 5b 32 3a ..authors_html.=.authors_html[2:
12800 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 5f 74 79 70 65 5f 6d 61 70 20 3d ].............authors_type_map.=
12820 20 4f 72 64 65 72 65 64 44 69 63 74 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 61 .OrderedDict().............for.a
12840 20 69 6e 20 61 75 74 68 6f 72 73 5f 68 74 6d 6c 2e 73 70 6c 69 74 28 27 2c 27 29 3a 0a 20 20 20 .in.authors_html.split(','):....
12860 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 5f 70 61 72 74 73 20 3d 20 61 2e 73 74 .............author_parts.=.a.st
12880 72 69 70 28 29 2e 73 70 6c 69 74 28 27 28 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rip().split('(')................
128a0 20 69 66 20 6c 65 6e 28 61 75 74 68 6f 72 5f 70 61 72 74 73 29 20 3d 3d 20 31 3a 0a 20 20 20 20 .if.len(author_parts).==.1:.....
128c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 5f 74 79 70 65 5f 6d 61 70 ................authors_type_map
128e0 5b 61 75 74 68 6f 72 5f 70 61 72 74 73 5b 30 5d 5d 20 3d 20 27 27 0a 20 20 20 20 20 20 20 20 20 [author_parts[0]].=.''..........
12900 20 20 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......else:....................
12920 20 61 75 74 68 6f 72 73 5f 74 79 70 65 5f 6d 61 70 5b 61 75 74 68 6f 72 5f 70 61 72 74 73 5b 30 .authors_type_map[author_parts[0
12940 5d 5d 20 3d 20 61 75 74 68 6f 72 5f 70 61 72 74 73 5b 31 5d 5b 3a 2d 31 5d 0a 20 20 20 20 20 20 ]].=.author_parts[1][:-1].......
12960 20 20 20 20 20 20 23 20 41 74 20 74 68 69 73 20 70 6f 69 6e 74 20 77 65 20 68 61 76 65 20 61 20 ......#.At.this.point.we.have.a.
12980 64 69 63 74 20 6f 66 20 61 75 74 68 6f 72 73 20 77 69 74 68 20 74 68 65 69 72 20 63 6f 6e 74 72 dict.of.authors.with.their.contr
129a0 69 62 75 74 69 6f 6e 20 69 66 20 61 6e 79 20 69 6e 20 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20 ibution.if.any.in.values........
129c0 20 20 20 20 20 61 75 74 68 6f 72 73 20 3d 20 5b 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 .....authors.=.[].............va
129e0 6c 69 64 5f 63 6f 6e 74 72 69 62 20 3d 20 4e 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 lid_contrib.=.None.............f
12a00 6f 72 20 61 2c 20 63 6f 6e 74 72 69 62 20 69 6e 20 73 69 78 2e 69 74 65 72 69 74 65 6d 73 28 61 or.a,.contrib.in.six.iteritems(a
12a20 75 74 68 6f 72 73 5f 74 79 70 65 5f 6d 61 70 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uthors_type_map):...............
12a40 20 20 69 66 20 6e 6f 74 20 61 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..if.not.a:.....................
12a60 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 continue.................if.not.
12a80 63 6f 6e 74 72 69 62 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 contrib:.....................aut
12aa0 68 6f 72 73 2e 61 70 70 65 6e 64 28 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 hors.append(a).................e
12ac0 6c 69 66 20 6c 65 6e 28 61 75 74 68 6f 72 73 29 20 3d 3d 20 30 3a 0a 20 20 20 20 20 20 20 20 20 lif.len(authors).==.0:..........
12ae0 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 2e 61 70 70 65 6e 64 28 61 29 0a 20 20 20 ...........authors.append(a)....
12b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 69 64 5f 63 6f 6e 74 72 69 62 20 3d .................valid_contrib.=
12b20 20 63 6f 6e 74 72 69 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 69 66 20 63 6f .contrib.................elif.co
12b40 6e 74 72 69 62 20 3d 3d 20 76 61 6c 69 64 5f 63 6f 6e 74 72 69 62 3a 0a 20 20 20 20 20 20 20 20 ntrib.==.valid_contrib:.........
12b60 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 2e 61 70 70 65 6e 64 28 61 29 0a 20 20 ............authors.append(a)...
12b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..............else:.............
12ba0 20 20 20 20 20 20 20 20 62 72 65 61 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e ........break.............return
12bc0 20 61 75 74 68 6f 72 73 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 65 5f 72 61 74 69 6e 67 28 73 .authors......def.parse_rating(s
12be0 65 6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20 20 20 20 20 20 23 20 72 61 74 69 6e 67 73 20 6e 6f elf,.root):.........#.ratings.no
12c00 20 6c 6f 6e 67 65 72 20 6f 6e 20 6d 61 69 6e 20 70 61 67 65 2e 20 4e 65 65 64 20 74 6f 20 6f 62 .longer.on.main.page..Need.to.ob
12c20 74 61 69 6e 20 76 69 61 20 61 20 6a 73 6f 6e 20 71 75 65 72 79 2e 0a 20 20 20 20 20 20 20 20 23 tain.via.a.json.query..........#
12c40 20 54 72 79 20 74 68 65 20 6e 65 77 20 77 61 79 0a 20 20 20 20 20 20 20 20 72 61 74 69 6e 67 5f .Try.the.new.way.........rating_
12c60 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 68 65 61 64 65 72 5b 40 69 64 3d node.=.root.xpath('//header[@id=
12c80 22 70 72 6f 64 53 75 6d 6d 61 72 79 2d 68 65 61 64 65 72 22 5d 2f 2f 64 69 76 5b 40 69 74 65 6d "prodSummary-header"]//div[@item
12ca0 70 72 6f 70 3d 22 61 67 67 72 65 67 61 74 65 52 61 74 69 6e 67 22 5d 2f 73 70 61 6e 5b 40 69 74 prop="aggregateRating"]/span[@it
12cc0 65 6d 70 72 6f 70 3d 22 72 61 74 69 6e 67 56 61 6c 75 65 22 5d 2f 74 65 78 74 28 29 27 29 0a 20 emprop="ratingValue"]/text()')..
12ce0 20 20 20 20 20 20 20 69 66 20 72 61 74 69 6e 67 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 .......if.rating_node:..........
12d00 20 20 20 72 61 74 69 6e 67 5f 76 61 6c 75 65 20 3d 20 66 6c 6f 61 74 28 72 61 74 69 6e 67 5f 6e ...rating_value.=.float(rating_n
12d20 6f 64 65 5b 30 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 61 74 69 6e ode[0]).............return.ratin
12d40 67 5f 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 23 20 50 72 65 20 76 31 2e 32 20 77 65 62 73 69 g_value.........#.Pre.v1.2.websi
12d60 74 65 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 72 61 74 69 6e 67 5f 6e 6f 64 65 20 3d 20 te.format.........rating_node.=.
12d80 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d 22 77 2d 62 6f 78 20 root.xpath('//div[@class="w-box.
12da0 77 67 74 2d 70 72 6f 64 75 63 74 2d 72 61 74 69 6e 67 73 22 5d 2f 61 2f 64 69 76 2f 40 63 6c 61 wgt-product-ratings"]/a/div/@cla
12dc0 73 73 27 29 0a 20 20 20 20 20 20 20 20 69 66 20 72 61 74 69 6e 67 5f 6e 6f 64 65 3a 0a 20 20 20 ss').........if.rating_node:....
12de0 20 20 20 20 20 20 20 20 20 23 20 42 26 4e 20 6e 6f 20 6c 6f 6e 67 65 72 20 70 75 74 20 74 68 65 .........#.B&N.no.longer.put.the
12e00 20 61 63 74 75 61 6c 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 72 61 74 69 6e 67 20 69 6e 20 .actual.values.of.the.rating.in.
12e20 74 68 65 20 77 65 62 20 70 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 49 6e 73 74 65 the.web.page.............#.Inste
12e40 61 64 20 74 68 65 79 20 70 75 74 20 77 6f 72 64 73 20 6c 69 6b 65 20 22 66 6f 75 72 20 68 61 6c ad.they.put.words.like."four.hal
12e60 66 22 20 66 6f 72 20 34 2e 35 20 61 6e 64 20 22 66 6f 75 72 22 20 66 6f 72 20 22 34 22 20 69 6e f".for.4.5.and."four".for."4".in
12e80 20 74 68 65 20 73 74 79 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 3c 64 69 76 20 63 6c .the.style.............#.<div.cl
12ea0 61 73 73 3d 22 70 72 6f 64 75 63 74 2d 72 61 74 69 6e 67 20 66 6f 75 72 20 68 61 6c 66 22 3e 0a ass="product-rating.four.half">.
12ec0 20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 69 6e 67 5f 63 6c 61 73 73 20 3d 20 72 61 74 69 6e ............rating_class.=.ratin
12ee0 67 5f 6e 6f 64 65 5b 30 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 20 3d 20 72 65 g_node[0].............match.=.re
12f00 2e 73 65 61 72 63 68 28 27 70 72 6f 64 75 63 74 2d 72 61 74 69 6e 67 20 28 2e 2b 29 27 2c 20 72 .search('product-rating.(.+)',.r
12f20 61 74 69 6e 67 5f 63 6c 61 73 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6d 61 74 63 ating_class).............if.matc
12f40 68 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 69 6e 67 5f 74 65 78 74 20 3d h:.................rating_text.=
12f60 20 6d 61 74 63 68 2e 67 72 6f 75 70 73 28 30 29 5b 30 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 .match.groups(0)[0].............
12f80 20 20 20 20 72 61 74 69 6e 67 5f 70 61 72 74 73 20 3d 20 72 61 74 69 6e 67 5f 74 65 78 74 2e 73 ....rating_parts.=.rating_text.s
12fa0 70 6c 69 74 28 27 20 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 69 6e 67 plit('.').................rating
12fc0 5f 76 61 6c 75 65 73 20 3d 20 5b 27 7a 65 72 6f 27 2c 27 6f 6e 65 27 2c 27 74 77 6f 27 2c 27 74 _values.=.['zero','one','two','t
12fe0 68 72 65 65 27 2c 27 66 6f 75 72 27 2c 27 66 69 76 65 27 5d 0a 20 20 20 20 20 20 20 20 20 20 20 hree','four','five']............
13000 20 20 20 20 20 72 61 74 69 6e 67 5f 76 61 6c 75 65 20 3d 20 66 6c 6f 61 74 28 72 61 74 69 6e 67 .....rating_value.=.float(rating
13020 5f 76 61 6c 75 65 73 2e 69 6e 64 65 78 28 72 61 74 69 6e 67 5f 70 61 72 74 73 5b 30 5d 29 29 0a _values.index(rating_parts[0])).
13040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 65 6e 28 72 61 74 69 6e 67 5f 70 61 ................if.len(rating_pa
13060 72 74 73 29 20 3e 20 31 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 rts).>.1:.....................ra
13080 74 69 6e 67 5f 76 61 6c 75 65 20 2b 3d 20 30 2e 35 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ting_value.+=.0.5...............
130a0 20 20 72 65 74 75 72 6e 20 72 61 74 69 6e 67 5f 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 65 6c ..return.rating_value.........el
130c0 73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 54 72 79 20 74 68 65 20 74 65 78 74 62 6f se:.............#.Try.the.textbo
130e0 6f 6b 20 70 61 67 65 20 72 61 74 69 6e 67 20 6c 6f 6f 6b 75 70 0a 20 20 20 20 20 20 20 20 20 20 ok.page.rating.lookup...........
13100 20 20 23 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 61 76 67 2d 34 68 20 73 65 63 74 69 6f 6e 5f ..#.<span.class="avg-4h.section_
13120 75 70 64 61 74 65 52 61 74 69 6e 67 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 69 6e updateRating">.............ratin
13140 67 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 73 70 61 6e 5b 63 6f 6e 74 g_node.=.root.xpath('//span[cont
13160 61 69 6e 73 28 40 63 6c 61 73 73 2c 22 73 65 63 74 69 6f 6e 5f 75 70 64 61 74 65 52 61 74 69 6e ains(@class,"section_updateRatin
13180 67 22 29 5d 2f 40 63 6c 61 73 73 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 61 74 g")]/@class').............if.rat
131a0 69 6e 67 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 69 6e 67 ing_node:.................rating
131c0 5f 74 65 78 74 20 3d 20 72 61 74 69 6e 67 5f 6e 6f 64 65 5b 30 5d 5b 34 3a 36 5d 0a 20 20 20 20 _text.=.rating_node[0][4:6].....
131e0 20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 69 6e 67 5f 76 61 6c 75 65 20 3d 20 66 6c 6f 61 74 ............rating_value.=.float
13200 28 72 61 74 69 6e 67 5f 74 65 78 74 5b 30 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (rating_text[0])................
13220 20 69 66 20 72 61 74 69 6e 67 5f 74 65 78 74 5b 31 5d 20 3d 3d 20 27 68 27 3a 0a 20 20 20 20 20 .if.rating_text[1].==.'h':......
13240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 69 6e 67 5f 76 61 6c 75 65 20 2b 3d 20 30 ...............rating_value.+=.0
13260 2e 35 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 61 74 69 6e 67 .5.................return.rating
13280 5f 76 61 6c 75 65 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 65 5f 69 73 62 6e 28 73 65 6c 66 2c _value......def.parse_isbn(self,
132a0 20 72 6f 6f 74 29 3a 0a 20 20 20 20 20 20 20 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 20 3d 20 72 .root):.........detail_nodes.=.r
132c0 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69 64 3d 22 50 72 6f 64 75 63 74 44 65 74 oot.xpath('//div[@id="ProductDet
132e0 61 69 6c 73 54 61 62 22 5d 2f 74 61 62 6c 65 2f 2f 74 72 27 29 0a 20 20 20 20 20 20 20 20 69 66 ailsTab"]/table//tr').........if
13300 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 .detail_nodes:.............for.t
13320 68 2c 74 64 20 69 6e 20 7a 69 70 28 64 65 74 61 69 6c 5f 6e 6f 64 65 73 5b 30 5d 2e 78 70 61 74 h,td.in.zip(detail_nodes[0].xpat
13340 68 28 27 2f 2f 74 68 27 29 2c 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 5b 30 5d 2e 78 70 61 74 68 h('//th'),.detail_nodes[0].xpath
13360 28 27 2f 2f 74 64 27 29 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 74 68 ('//td')):.................if.th
13380 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 29 2e 73 74 61 72 74 73 77 69 .text_content().strip().startswi
133a0 74 68 28 27 49 53 42 4e 27 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 th('ISBN'):.....................
133c0 72 65 74 75 72 6e 20 74 64 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 29 return.td.text_content().strip()
133e0 0a 0a 20 20 20 20 20 20 20 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70 ..........detail_nodes.=.root.xp
13400 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d 22 70 72 6f 64 75 63 74 2d 64 65 74 61 69 ath('//div[@class="product-detai
13420 6c 73 20 62 6f 78 22 5d 2f 75 6c 2f 6c 69 27 29 0a 20 20 20 20 20 20 20 20 69 66 20 64 65 74 61 ls.box"]/ul/li').........if.deta
13440 69 6c 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 64 65 74 61 69 6c il_nodes:.............for.detail
13460 5f 6e 6f 64 65 20 69 6e 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 _node.in.detail_nodes:..........
13480 20 20 20 20 20 20 20 69 66 20 64 65 74 61 69 6c 5f 6e 6f 64 65 5b 30 5d 2e 74 65 78 74 5f 63 6f .......if.detail_node[0].text_co
134a0 6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 29 2e 73 74 61 72 74 73 77 69 74 68 28 27 49 53 42 4e ntent().strip().startswith('ISBN
134c0 27 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 64 '):.....................return.d
134e0 65 74 61 69 6c 5f 6e 6f 64 65 5b 30 5d 2e 74 61 69 6c 2e 73 74 72 69 70 28 29 0a 20 20 20 20 20 etail_node[0].tail.strip()......
13500 20 20 20 65 6c 73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 50 72 65 20 76 31 2e 32 20 ...else:.............#.Pre.v1.2.
13520 77 65 62 73 69 74 65 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 73 62 6e 5f website.format.............isbn_
13540 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 61 5b 40 63 6c 61 73 73 3d 22 nodes.=.root.xpath('//a[@class="
13560 69 73 62 6e 2d 61 22 5d 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 73 62 6e 5f 6e isbn-a"]').............if.isbn_n
13580 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 73 62 odes:.................return.isb
135a0 6e 5f 6e 6f 64 65 73 5b 30 5d 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 29 0a 20 20 20 20 20 20 n_nodes[0].text_content().......
135c0 20 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 4c 65 ......else:.................#.Le
135e0 67 61 63 79 20 77 61 79 20 28 74 65 78 74 62 6f 6f 6b 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 gacy.way.(textbooks)............
13600 20 20 20 20 20 69 73 62 6e 5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f .....isbn_nodes.=.root.xpath('//
13620 61 5b 40 63 6c 61 73 73 3d 22 69 73 62 6e 2d 61 22 5d 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 a[@class="isbn-a"]')............
13640 20 20 20 20 20 69 66 20 69 73 62 6e 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....if.isbn_nodes:.............
13660 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 73 62 6e 5f 6e 6f 64 65 73 5b 30 5d 2e 74 65 78 ........return.isbn_nodes[0].tex
13680 74 5f 63 6f 6e 74 65 6e 74 28 29 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 65 5f 70 75 62 6c 69 t_content()......def.parse_publi
136a0 73 68 65 72 28 73 65 6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20 20 20 20 20 20 64 65 74 61 69 6c sher(self,.root):.........detail
136c0 5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69 64 3d 22 _nodes.=.root.xpath('//div[@id="
136e0 50 72 6f 64 75 63 74 44 65 74 61 69 6c 73 54 61 62 22 5d 2f 74 61 62 6c 65 2f 2f 74 72 27 29 0a ProductDetailsTab"]/table//tr').
13700 20 20 20 20 20 20 20 20 69 66 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 ........if.detail_nodes:........
13720 20 20 20 20 20 66 6f 72 20 74 68 2c 74 64 20 69 6e 20 7a 69 70 28 64 65 74 61 69 6c 5f 6e 6f 64 .....for.th,td.in.zip(detail_nod
13740 65 73 5b 30 5d 2e 78 70 61 74 68 28 27 2f 2f 74 68 27 29 2c 20 64 65 74 61 69 6c 5f 6e 6f 64 65 es[0].xpath('//th'),.detail_node
13760 73 5b 30 5d 2e 78 70 61 74 68 28 27 2f 2f 74 64 27 29 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 s[0].xpath('//td')):............
13780 20 20 20 20 20 69 66 20 74 68 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 .....if.th.text_content().strip(
137a0 29 2e 73 74 61 72 74 73 77 69 74 68 28 27 50 75 62 6c 69 73 68 65 72 27 29 3a 0a 20 20 20 20 20 ).startswith('Publisher'):......
137c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 64 2e 74 65 78 74 5f 63 6f ...............return.td.text_co
137e0 6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 29 0a 0a 20 20 20 20 20 20 20 20 64 65 74 61 69 6c 5f ntent().strip()..........detail_
13800 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 nodes.=.root.xpath('//div[@class
13820 3d 22 70 72 6f 64 75 63 74 2d 64 65 74 61 69 6c 73 20 62 6f 78 22 5d 2f 75 6c 2f 6c 69 27 29 0a ="product-details.box"]/ul/li').
13840 20 20 20 20 20 20 20 20 69 66 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 ........if.detail_nodes:........
13860 20 20 20 20 20 66 6f 72 20 64 65 74 61 69 6c 5f 6e 6f 64 65 20 69 6e 20 64 65 74 61 69 6c 5f 6e .....for.detail_node.in.detail_n
13880 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 64 65 74 61 69 6c 5f odes:.................if.detail_
138a0 6e 6f 64 65 5b 30 5d 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 29 2e 73 node[0].text_content().strip().s
138c0 74 61 72 74 73 77 69 74 68 28 27 50 75 62 6c 69 73 68 65 72 27 29 3a 0a 20 20 20 20 20 20 20 20 tartswith('Publisher'):.........
138e0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 64 65 74 61 69 6c 5f 6e 6f 64 65 5b 30 ............return.detail_node[0
13900 5d 2e 74 61 69 6c 2e 73 74 72 69 70 28 29 0a 0a 20 20 20 20 20 20 20 20 23 20 50 72 65 20 76 31 ].tail.strip()..........#.Pre.v1
13920 2e 32 20 77 65 62 73 69 74 65 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 73 .2.website.format.........publis
13940 68 65 72 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c her_node.=.root.xpath('//div[@cl
13960 61 73 73 3d 22 77 2d 62 6f 78 20 64 65 74 61 69 6c 73 22 5d 2f 75 6c 2f 6c 69 5b 32 5d 27 29 0a ass="w-box.details"]/ul/li[2]').
13980 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 70 75 62 6c 69 73 68 65 72 5f 6e 6f 64 65 3a 0a 20 ........if.not.publisher_node:..
139a0 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 73 68 65 72 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 ...........publisher_node.=.root
139c0 2e 78 70 61 74 68 28 27 2f 2f 6c 69 5b 40 63 6c 61 73 73 3d 22 70 75 62 6c 69 73 68 65 72 22 5d .xpath('//li[@class="publisher"]
139e0 27 29 0a 0a 20 20 20 20 20 20 20 20 69 66 20 70 75 62 6c 69 73 68 65 72 5f 6e 6f 64 65 3a 0a 20 ')..........if.publisher_node:..
13a00 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 73 68 65 72 5f 74 65 78 74 20 3d 20 70 75 62 6c ...........publisher_text.=.publ
13a20 69 73 68 65 72 5f 6e 6f 64 65 5b 30 5d 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 29 0a 20 20 20 isher_node[0].text_content()....
13a40 20 20 20 20 20 20 20 20 20 23 20 50 75 62 6c 69 73 68 65 72 3a 20 52 61 6e 64 6f 6d 20 48 6f 75 .........#.Publisher:.Random.Hou
13a60 73 65 20 50 75 62 6c 69 73 68 69 6e 67 20 47 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 se.Publishing.Group.............
13a80 72 65 74 75 72 6e 20 70 75 62 6c 69 73 68 65 72 5f 74 65 78 74 2e 72 70 61 72 74 69 74 69 6f 6e return.publisher_text.rpartition
13aa0 28 27 3a 27 29 5b 32 5d 2e 73 74 72 69 70 28 29 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 65 5f (':')[2].strip()......def.parse_
13ac0 70 75 62 6c 69 73 68 65 64 5f 64 61 74 65 28 73 65 6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20 20 published_date(self,.root):.....
13ae0 20 20 20 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f ....detail_nodes.=.root.xpath('/
13b00 2f 64 69 76 5b 40 69 64 3d 22 50 72 6f 64 75 63 74 44 65 74 61 69 6c 73 54 61 62 22 5d 2f 74 61 /div[@id="ProductDetailsTab"]/ta
13b20 62 6c 65 2f 2f 74 72 27 29 0a 20 20 20 20 20 20 20 20 69 66 20 64 65 74 61 69 6c 5f 6e 6f 64 65 ble//tr').........if.detail_node
13b40 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 68 2c 74 64 20 69 6e 20 7a 69 70 28 s:.............for.th,td.in.zip(
13b60 64 65 74 61 69 6c 5f 6e 6f 64 65 73 5b 30 5d 2e 78 70 61 74 68 28 27 2f 2f 74 68 27 29 2c 20 64 detail_nodes[0].xpath('//th'),.d
13b80 65 74 61 69 6c 5f 6e 6f 64 65 73 5b 30 5d 2e 78 70 61 74 68 28 27 2f 2f 74 64 27 29 29 3a 0a 20 etail_nodes[0].xpath('//td')):..
13ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 74 68 2e 74 65 78 74 5f 63 6f 6e 74 65 6e ...............if.th.text_conten
13bc0 74 28 29 2e 73 74 72 69 70 28 29 2e 73 74 61 72 74 73 77 69 74 68 28 27 50 75 62 6c 69 63 61 74 t().strip().startswith('Publicat
13be0 69 6f 6e 20 64 61 74 65 27 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion.date'):.....................
13c00 70 75 62 5f 64 61 74 65 5f 74 65 78 74 20 3d 20 74 64 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 pub_date_text.=.td.text_content(
13c20 29 2e 73 74 72 69 70 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 ).strip().....................re
13c40 74 75 72 6e 20 73 65 6c 66 2e 5f 63 6f 6e 76 65 72 74 5f 64 61 74 65 5f 74 65 78 74 28 70 75 62 turn.self._convert_date_text(pub
13c60 5f 64 61 74 65 5f 74 65 78 74 29 0a 0a 20 20 20 20 20 20 20 20 64 65 74 61 69 6c 5f 6e 6f 64 65 _date_text)..........detail_node
13c80 73 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d 22 70 72 s.=.root.xpath('//div[@class="pr
13ca0 6f 64 75 63 74 2d 64 65 74 61 69 6c 73 20 62 6f 78 22 5d 2f 75 6c 2f 6c 69 27 29 0a 20 20 20 20 oduct-details.box"]/ul/li').....
13cc0 20 20 20 20 69 66 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 ....if.detail_nodes:............
13ce0 20 66 6f 72 20 64 65 74 61 69 6c 5f 6e 6f 64 65 20 69 6e 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 .for.detail_node.in.detail_nodes
13d00 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 64 65 74 61 69 6c 5f 6e 6f 64 65 :.................if.detail_node
13d20 5b 30 5d 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 29 2e 73 74 61 72 74 [0].text_content().strip().start
13d40 73 77 69 74 68 28 27 50 75 62 6c 69 63 61 74 69 6f 6e 20 64 61 74 65 27 29 3a 0a 20 20 20 20 20 swith('Publication.date'):......
13d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 5f 64 61 74 65 5f 74 65 78 74 20 3d 20 64 ...............pub_date_text.=.d
13d80 65 74 61 69 6c 5f 6e 6f 64 65 5b 30 5d 2e 74 61 69 6c 2e 73 74 72 69 70 28 29 0a 20 20 20 20 20 etail_node[0].tail.strip()......
13da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 5f 63 6f 6e 76 ...............return.self._conv
13dc0 65 72 74 5f 64 61 74 65 5f 74 65 78 74 28 70 75 62 5f 64 61 74 65 5f 74 65 78 74 29 0a 0a 20 20 ert_date_text(pub_date_text)....
13de0 20 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 50 72 65 20 76 31 ......else:.............#.Pre.v1
13e00 2e 32 20 77 65 62 73 69 74 65 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 .2.website.format.............pu
13e20 62 5f 64 61 74 65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b b_date_node.=.root.xpath('//div[
13e40 40 63 6c 61 73 73 3d 22 77 2d 62 6f 78 20 64 65 74 61 69 6c 73 22 5d 2f 75 6c 2f 6c 69 5b 31 5d @class="w-box.details"]/ul/li[1]
13e60 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 70 75 62 5f 64 61 74 65 5f 6e ').............if.not.pub_date_n
13e80 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 5f 64 61 74 65 5f 6e 6f ode:.................pub_date_no
13ea0 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 6c 69 5b 40 63 6c 61 73 73 3d 22 70 75 de.=.root.xpath('//li[@class="pu
13ec0 62 44 61 74 65 22 5d 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 70 75 62 5f 64 61 74 bDate"]').............if.pub_dat
13ee0 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 5f 64 61 74 65 e_node:.................pub_date
13f00 5f 74 65 78 74 20 3d 20 70 75 62 5f 64 61 74 65 5f 6e 6f 64 65 5b 30 5d 2e 74 65 78 74 5f 63 6f _text.=.pub_date_node[0].text_co
13f20 6e 74 65 6e 74 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 50 75 62 2e 20 44 ntent().................#.Pub..D
13f40 61 74 65 3a 20 53 65 70 74 65 6d 62 65 72 20 32 30 31 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 ate:.September.2010.............
13f60 20 20 20 20 70 75 62 5f 64 61 74 65 5f 74 65 78 74 20 3d 20 70 75 62 5f 64 61 74 65 5f 74 65 78 ....pub_date_text.=.pub_date_tex
13f80 74 2e 72 70 61 72 74 69 74 69 6f 6e 28 27 3a 27 29 5b 32 5d 2e 73 74 72 69 70 28 29 0a 20 20 20 t.rpartition(':')[2].strip()....
13fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 5f 63 6f 6e 76 65 72 .............return.self._conver
13fc0 74 5f 64 61 74 65 5f 74 65 78 74 5f 6c 65 67 61 63 79 28 70 75 62 5f 64 61 74 65 5f 74 65 78 74 t_date_text_legacy(pub_date_text
13fe0 29 0a 0a 20 20 20 20 64 65 66 20 5f 63 6f 6e 76 65 72 74 5f 64 61 74 65 5f 74 65 78 74 28 73 65 )......def._convert_date_text(se
14000 6c 66 2c 20 64 61 74 65 5f 74 65 78 74 29 3a 0a 20 20 20 20 20 20 20 20 23 20 38 2f 33 30 2f 32 lf,.date_text):.........#.8/30/2
14020 30 31 31 0a 20 20 20 20 20 20 20 20 79 65 61 72 20 3d 20 69 6e 74 28 64 61 74 65 5f 74 65 78 74 011.........year.=.int(date_text
14040 5b 2d 34 3a 5d 29 0a 20 20 20 20 20 20 20 20 6d 6f 6e 74 68 20 3d 20 31 0a 20 20 20 20 20 20 20 [-4:]).........month.=.1........
14060 20 64 61 79 20 3d 20 31 0a 20 20 20 20 20 20 20 20 69 66 20 6c 65 6e 28 64 61 74 65 5f 74 65 78 .day.=.1.........if.len(date_tex
14080 74 29 20 3e 20 34 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 65 78 74 5f 70 61 72 74 73 20 3d t).>.4:.............text_parts.=
140a0 20 64 61 74 65 5f 74 65 78 74 5b 3a 6c 65 6e 28 64 61 74 65 5f 74 65 78 74 29 2d 35 5d 2e 70 61 .date_text[:len(date_text)-5].pa
140c0 72 74 69 74 69 6f 6e 28 27 2f 27 29 20 23 20 6d 2f 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d rtition('/').#.m/d.............m
140e0 6f 6e 74 68 20 3d 20 69 6e 74 28 74 65 78 74 5f 70 61 72 74 73 5b 30 5d 29 0a 20 20 20 20 20 20 onth.=.int(text_parts[0]).......
14100 20 20 20 20 20 20 69 66 20 6c 65 6e 28 74 65 78 74 5f 70 61 72 74 73 5b 32 5d 29 20 3e 20 30 3a ......if.len(text_parts[2]).>.0:
14120 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 79 20 3d 20 69 6e 74 28 74 65 78 74 5f .................day.=.int(text_
14140 70 61 72 74 73 5b 32 5d 29 0a 20 20 20 20 20 20 20 20 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 75 parts[2]).........from.calibre.u
14160 74 69 6c 73 2e 64 61 74 65 20 69 6d 70 6f 72 74 20 75 74 63 5f 74 7a 0a 20 20 20 20 20 20 20 20 tils.date.import.utc_tz.........
14180 72 65 74 75 72 6e 20 64 61 74 65 74 69 6d 65 2e 64 61 74 65 74 69 6d 65 28 79 65 61 72 2c 20 6d return.datetime.datetime(year,.m
141a0 6f 6e 74 68 2c 20 64 61 79 2c 20 74 7a 69 6e 66 6f 3d 75 74 63 5f 74 7a 29 0a 0a 20 20 20 20 64 onth,.day,.tzinfo=utc_tz)......d
141c0 65 66 20 5f 63 6f 6e 76 65 72 74 5f 64 61 74 65 5f 74 65 78 74 5f 6c 65 67 61 63 79 28 73 65 6c ef._convert_date_text_legacy(sel
141e0 66 2c 20 64 61 74 65 5f 74 65 78 74 29 3a 0a 20 20 20 20 20 20 20 20 23 20 4e 6f 74 65 20 74 68 f,.date_text):.........#.Note.th
14200 61 74 20 74 68 65 20 64 61 74 65 20 74 65 78 74 20 63 6f 75 6c 64 20 62 65 20 22 32 30 30 33 22 at.the.date.text.could.be."2003"
14220 2c 20 22 44 65 63 65 6d 62 65 72 20 32 30 30 33 22 20 6f 72 20 22 44 65 63 65 6d 62 65 72 20 31 ,."December.2003".or."December.1
14240 30 74 68 20 32 30 30 33 22 0a 20 20 20 20 20 20 20 20 79 65 61 72 20 3d 20 69 6e 74 28 64 61 74 0th.2003".........year.=.int(dat
14260 65 5f 74 65 78 74 5b 2d 34 3a 5d 29 0a 20 20 20 20 20 20 20 20 6d 6f 6e 74 68 20 3d 20 31 0a 20 e_text[-4:]).........month.=.1..
14280 20 20 20 20 20 20 20 64 61 79 20 3d 20 31 0a 20 20 20 20 20 20 20 20 69 66 20 6c 65 6e 28 64 61 .......day.=.1.........if.len(da
142a0 74 65 5f 74 65 78 74 29 20 3e 20 34 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 65 78 74 5f 70 te_text).>.4:.............text_p
142c0 61 72 74 73 20 3d 20 64 61 74 65 5f 74 65 78 74 5b 3a 6c 65 6e 28 64 61 74 65 5f 74 65 78 74 29 arts.=.date_text[:len(date_text)
142e0 2d 35 5d 2e 70 61 72 74 69 74 69 6f 6e 28 27 20 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d -5].partition('.').............m
14300 6f 6e 74 68 5f 6e 61 6d 65 20 3d 20 74 65 78 74 5f 70 61 72 74 73 5b 30 5d 0a 20 20 20 20 20 20 onth_name.=.text_parts[0].......
14320 20 20 20 20 20 20 23 20 4e 65 65 64 20 74 6f 20 63 6f 6e 76 65 72 74 20 74 68 65 20 6d 6f 6e 74 ......#.Need.to.convert.the.mont
14340 68 20 6e 61 6d 65 20 69 6e 74 6f 20 61 20 6e 75 6d 65 72 69 63 20 76 61 6c 75 65 0a 20 20 20 20 h.name.into.a.numeric.value.....
14360 20 20 20 20 20 20 20 20 23 20 46 6f 72 20 6e 6f 77 20 49 20 61 6d 20 22 61 73 73 75 6d 69 6e 67 ........#.For.now.I.am."assuming
14380 22 20 74 68 65 20 47 6f 6f 64 72 65 61 64 73 20 77 65 62 73 69 74 65 20 6f 6e 6c 79 20 64 69 73 ".the.Goodreads.website.only.dis
143a0 70 6c 61 79 73 20 69 6e 20 45 6e 67 6c 69 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 49 plays.in.English.............#.I
143c0 66 20 69 74 20 64 6f 65 73 6e 27 74 20 77 69 6c 6c 20 6a 75 73 74 20 66 61 6c 6c 62 61 63 6b 20 f.it.doesn't.will.just.fallback.
143e0 74 6f 20 61 73 73 75 6d 69 6e 67 20 4a 61 6e 75 61 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 to.assuming.January.............
14400 6d 6f 6e 74 68 5f 64 69 63 74 20 3d 20 7b 22 4a 61 6e 75 61 72 79 22 3a 31 2c 20 22 46 65 62 72 month_dict.=.{"January":1,."Febr
14420 75 61 72 79 22 3a 32 2c 20 22 4d 61 72 63 68 22 3a 33 2c 20 22 41 70 72 69 6c 22 3a 34 2c 20 22 uary":2,."March":3,."April":4,."
14440 4d 61 79 22 3a 35 2c 20 22 4a 75 6e 65 22 3a 36 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 May":5,."June":6,...............
14460 20 20 22 4a 75 6c 79 22 3a 37 2c 20 22 41 75 67 75 73 74 22 3a 38 2c 20 22 53 65 70 74 65 6d 62 .."July":7,."August":8,."Septemb
14480 65 72 22 3a 39 2c 20 22 4f 63 74 6f 62 65 72 22 3a 31 30 2c 20 22 4e 6f 76 65 6d 62 65 72 22 3a er":9,."October":10,."November":
144a0 31 31 2c 20 22 44 65 63 65 6d 62 65 72 22 3a 31 32 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 11,."December":12}.............m
144c0 6f 6e 74 68 20 3d 20 6d 6f 6e 74 68 5f 64 69 63 74 2e 67 65 74 28 6d 6f 6e 74 68 5f 6e 61 6d 65 onth.=.month_dict.get(month_name
144e0 2c 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 65 6e 28 74 65 78 74 5f 70 61 72 ,.1).............if.len(text_par
14500 74 73 5b 32 5d 29 20 3e 20 30 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 79 20 ts[2]).>.0:.................day.
14520 3d 20 69 6e 74 28 72 65 2e 6d 61 74 63 68 28 27 28 5b 30 2d 39 5d 2b 29 27 2c 20 74 65 78 74 5f =.int(re.match('([0-9]+)',.text_
14540 70 61 72 74 73 5b 32 5d 29 2e 67 72 6f 75 70 73 28 30 29 5b 30 5d 29 0a 20 20 20 20 20 20 20 20 parts[2]).groups(0)[0]).........
14560 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 75 74 69 6c 73 2e 64 61 74 65 20 69 6d 70 6f 72 74 20 75 from.calibre.utils.date.import.u
14580 74 63 5f 74 7a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 64 61 74 65 74 69 6d 65 2e 64 61 tc_tz.........return.datetime.da
145a0 74 65 74 69 6d 65 28 79 65 61 72 2c 20 6d 6f 6e 74 68 2c 20 64 61 79 2c 20 74 7a 69 6e 66 6f 3d tetime(year,.month,.day,.tzinfo=
145c0 75 74 63 5f 74 7a 29 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 65 5f 63 6f 6d 6d 65 6e 74 73 28 utc_tz)......def.parse_comments(
145e0 73 65 6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20 20 20 20 20 20 63 6f 6d 6d 65 6e 74 73 20 3d 20 self,.root):.........comments.=.
14600 27 27 0a 0a 20 20 20 20 20 20 20 20 23 20 54 68 69 73 20 69 73 20 61 20 66 69 63 74 69 6f 6e 20 ''..........#.This.is.a.fiction.
14620 62 6f 6f 6b 20 74 68 61 74 20 68 61 73 20 61 20 74 61 62 6c 65 20 6f 66 20 63 6f 6e 74 65 6e 74 book.that.has.a.table.of.content
14640 73 20 61 74 20 62 6f 74 74 6f 6d 20 6f 66 20 70 61 67 65 0a 20 20 20 20 20 20 20 20 23 20 43 6f s.at.bottom.of.page.........#.Co
14660 6c 6c 65 63 74 65 64 20 53 74 6f 72 69 65 73 20 62 79 20 53 61 75 6c 20 42 65 6c 6c 6f 77 0a 20 llected.Stories.by.Saul.Bellow..
14680 20 20 20 20 20 20 20 23 20 68 74 74 70 3a 2f 2f 77 77 77 2e 62 61 72 6e 65 73 61 6e 64 6e 6f 62 .......#.http://www.barnesandnob
146a0 6c 65 2e 63 6f 6d 2f 77 2f 63 6f 6c 6c 65 63 74 65 64 2d 73 74 6f 72 69 65 73 2d 73 61 75 6c 2d le.com/w/collected-stories-saul-
146c0 62 65 6c 6c 6f 77 2f 31 31 30 30 31 35 34 38 38 33 3f 65 61 6e 3d 39 37 38 30 31 34 33 31 30 37 bellow/1100154883?ean=9780143107
146e0 32 35 35 0a 20 20 20 20 20 20 20 20 64 65 73 63 72 69 70 74 69 6f 6e 5f 6e 6f 64 65 20 3d 20 72 255.........description_node.=.r
14700 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69 74 65 6d 70 72 6f 70 3d 22 64 65 73 63 oot.xpath('//div[@itemprop="desc
14720 72 69 70 74 69 6f 6e 22 5d 27 29 0a 20 20 20 20 20 20 20 20 69 66 20 64 65 73 63 72 69 70 74 69 ription"]').........if.descripti
14740 6f 6e 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 65 6e 74 73 20 3d 20 on_node:.............comments.=.
14760 74 6f 73 74 72 69 6e 67 28 64 65 73 63 72 69 70 74 69 6f 6e 5f 6e 6f 64 65 5b 30 5d 2c 20 6d 65 tostring(description_node[0],.me
14780 74 68 6f 64 3d 27 68 74 6d 6c 27 2c 20 65 6e 63 6f 64 69 6e 67 3d 27 75 6e 69 63 6f 64 65 27 29 thod='html',.encoding='unicode')
147a0 2e 73 74 72 69 70 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 65 6e 74 73 20 3d 20 .strip().............comments.=.
147c0 73 61 6e 69 74 69 7a 65 5f 63 6f 6d 6d 65 6e 74 73 5f 68 74 6d 6c 28 63 6f 6d 6d 65 6e 74 73 29 sanitize_comments_html(comments)
147e0 0a 0a 20 20 20 20 20 20 20 20 69 66 20 63 6f 6d 6d 65 6e 74 73 3a 0a 20 20 20 20 20 20 20 20 20 ..........if.comments:..........
14800 20 20 20 72 65 74 75 72 6e 20 63 6f 6d 6d 65 6e 74 73 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 ...return.comments......def.pars
14820 65 5f 63 6f 76 65 72 28 73 65 6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20 20 20 20 20 20 23 20 46 e_cover(self,.root):.........#.F
14840 69 72 73 74 20 63 68 65 63 6b 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 69 74 20 69 73 20 6e 6f irst.check.to.make.sure.it.is.no
14860 74 20 61 6e 20 69 6d 61 67 65 20 4e 41 20 6c 69 6e 6b 2e 0a 20 20 20 20 20 20 20 20 70 61 67 65 t.an.image.NA.link..........page
14880 5f 69 6d 61 67 65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 69 6d 67 5b _image_node.=.root.xpath('//img[
148a0 40 69 64 3d 22 70 64 70 4d 61 69 6e 49 6d 61 67 65 22 5d 2f 40 73 72 63 27 29 0a 20 20 20 20 20 @id="pdpMainImage"]/@src')......
148c0 20 20 20 69 66 20 6e 6f 74 20 70 61 67 65 5f 69 6d 61 67 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 ...if.not.page_image_node:......
148e0 20 20 20 20 20 20 20 70 61 67 65 5f 69 6d 61 67 65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 .......page_image_node.=.root.xp
14900 61 74 68 28 27 2f 2f 73 65 63 74 69 6f 6e 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 22 ath('//section[contains(@class,"
14920 70 72 69 6d 2d 69 6d 61 67 65 22 29 5d 2f 61 2f 69 6d 67 2f 40 73 72 63 27 29 0a 20 20 20 20 20 prim-image")]/a/img/@src')......
14940 20 20 20 69 66 20 6e 6f 74 20 70 61 67 65 5f 69 6d 61 67 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 ...if.not.page_image_node:......
14960 20 20 20 20 20 20 20 70 61 67 65 5f 69 6d 61 67 65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 .......page_image_node.=.root.xp
14980 61 74 68 28 27 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 22 70 72 6f 64 ath('//div[contains(@class,"prod
149a0 75 63 74 2d 69 6d 61 67 65 22 29 5d 2f 61 2f 69 6d 67 2f 40 73 72 63 27 29 0a 20 20 20 20 20 20 uct-image")]/a/img/@src').......
149c0 20 20 69 66 20 6e 6f 74 20 70 61 67 65 5f 69 6d 61 67 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 ..if.not.page_image_node:.......
149e0 20 20 20 20 20 20 70 61 67 65 5f 69 6d 61 67 65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 ......page_image_node.=.root.xpa
14a00 74 68 28 27 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 22 6c 6f 6f 6b 2d th('//div[contains(@class,"look-
14a20 69 6e 73 69 64 65 2d 70 64 70 22 29 5d 2f 61 2f 69 6d 67 2f 40 73 72 63 27 29 0a 20 20 20 20 20 inside-pdp")]/a/img/@src')......
14a40 20 20 20 69 66 20 6e 6f 74 20 70 61 67 65 5f 69 6d 61 67 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 ...if.not.page_image_node:......
14a60 20 20 20 20 20 20 20 70 61 67 65 5f 69 6d 61 67 65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 .......page_image_node.=.root.xp
14a80 61 74 68 28 27 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 22 69 6d 61 67 ath('//div[contains(@class,"imag
14aa0 65 2d 62 6c 6f 63 6b 22 29 5d 2f 69 6d 67 2f 40 73 72 63 27 29 0a 20 20 20 20 20 20 20 20 69 66 e-block")]/img/@src').........if
14ac0 20 70 61 67 65 5f 69 6d 61 67 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 61 .page_image_node:.............pa
14ae0 67 65 5f 75 72 6c 20 3d 20 70 61 67 65 5f 69 6d 61 67 65 5f 6e 6f 64 65 5b 30 5d 2e 73 74 72 69 ge_url.=.page_image_node[0].stri
14b00 70 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 73 65 6c 66 2e 5f 69 73 5f p().............if.not.self._is_
14b20 76 61 6c 69 64 5f 69 6d 61 67 65 28 70 61 67 65 5f 75 72 6c 29 3a 0a 20 20 20 20 20 20 20 20 20 valid_image(page_url):..........
14b40 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 69 6e 66 6f 28 27 41 62 6f 72 74 69 6e 67 20 70 .......self.log.info('Aborting.p
14b60 61 72 73 65 5f 63 6f 76 65 72 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 arse_cover').................ret
14b80 75 72 6e 0a 0a 20 20 20 20 20 20 20 20 64 61 74 61 5f 6d 6f 64 61 6c 5f 75 72 6c 20 3d 20 72 6f urn..........data_modal_url.=.ro
14ba0 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69 64 3d 22 70 72 6f 64 49 6d 61 67 65 22 5d ot.xpath('//div[@id="prodImage"]
14bc0 2f 2f 61 5b 40 64 61 74 61 2d 6d 6f 64 61 6c 2d 63 6c 61 73 73 3d 22 42 4e 2e 4d 6f 64 61 6c 2e //a[@data-modal-class="BN.Modal.
14be0 42 72 6f 77 73 65 2e 50 44 50 2e 49 6d 61 67 65 56 69 65 77 65 72 22 5d 2f 40 64 61 74 61 2d 6d Browse.PDP.ImageViewer"]/@data-m
14c00 6f 64 61 6c 2d 75 72 6c 27 29 0a 20 20 20 20 20 20 20 20 69 66 20 64 61 74 61 5f 6d 6f 64 61 6c odal-url').........if.data_modal
14c20 5f 75 72 6c 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 4f 62 74 61 69 6e 20 74 68 65 20 73 _url:.............#.Obtain.the.s
14c40 6b 75 49 64 20 66 72 6f 6d 20 74 68 65 20 64 61 74 61 2d 6d 6f 64 61 6c 2d 75 72 6c 0a 20 20 20 kuId.from.the.data-modal-url....
14c60 20 20 20 20 20 20 20 20 20 71 72 79 20 3d 20 73 69 78 2e 6d 6f 76 65 73 2e 75 72 6c 6c 69 62 2e .........qry.=.six.moves.urllib.
14c80 70 61 72 73 65 2e 70 61 72 73 65 5f 71 73 28 73 69 78 2e 6d 6f 76 65 73 2e 75 72 6c 6c 69 62 2e parse.parse_qs(six.moves.urllib.
14ca0 70 61 72 73 65 2e 75 72 6c 70 61 72 73 65 28 64 61 74 61 5f 6d 6f 64 61 6c 5f 75 72 6c 5b 30 5d parse.urlparse(data_modal_url[0]
14cc0 29 2e 71 75 65 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 75 69 64 20 3d 20 71 72 79 ).query).............skuid.=.qry
14ce0 5b 27 73 6b 75 49 64 27 5d 5b 30 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 67 5f 73 76 72 ['skuId'][0].............img_svr
14d00 5f 75 72 6c 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69 64 3d 22 70 72 _url.=.root.xpath('//div[@id="pr
14d20 6f 64 49 6d 61 67 65 22 5d 2f 2f 61 5b 40 64 61 74 61 2d 6d 6f 64 61 6c 2d 63 6c 61 73 73 3d 22 odImage"]//a[@data-modal-class="
14d40 42 4e 2e 4d 6f 64 61 6c 2e 42 72 6f 77 73 65 2e 50 44 50 2e 49 6d 61 67 65 56 69 65 77 65 72 22 BN.Modal.Browse.PDP.ImageViewer"
14d60 5d 2f 40 64 61 74 61 2d 6c 69 71 75 69 64 64 6f 6d 61 69 6e 27 29 0a 20 20 20 20 20 20 20 20 20 ]/@data-liquiddomain')..........
14d80 20 20 20 69 66 20 69 6d 67 5f 73 76 72 5f 75 72 6c 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...if.img_svr_url:..............
14da0 20 20 20 23 69 6d 67 5f 75 72 6c 20 3d 20 27 68 74 74 70 3a 2f 2f 27 20 2b 20 69 6d 67 5f 73 76 ...#img_url.=.'http://'.+.img_sv
14dc0 72 5f 75 72 6c 5b 30 5d 20 2b 20 27 2f 6c 66 3f 73 6f 75 72 63 65 3d 75 72 6c 5b 66 69 6c 65 3a r_url[0].+.'/lf?source=url[file:
14de0 69 6d 61 67 65 73 2f 49 6d 61 67 65 73 2f 70 69 6d 61 67 65 73 2f 25 73 2f 25 73 5f 70 30 2e 6a images/Images/pimages/%s/%s_p0.j
14e00 70 67 5d 26 73 63 61 6c 65 3d 73 69 7a 65 5b 25 73 78 25 73 5d 26 73 69 6e 6b 27 20 25 20 28 73 pg]&scale=size[%sx%s]&sink'.%.(s
14e20 6b 75 69 64 5b 2d 34 3a 5d 2c 20 73 6b 75 69 64 2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 29 kuid[-4:],.skuid,.width,.height)
14e40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 67 5f 75 72 6c 20 3d 20 27 68 74 74 70 .................img_url.=.'http
14e60 3a 2f 2f 27 20 2b 20 69 6d 67 5f 73 76 72 5f 75 72 6c 5b 30 5d 20 2b 20 27 2f 6c 66 3f 73 6f 75 ://'.+.img_svr_url[0].+.'/lf?sou
14e80 72 63 65 3d 75 72 6c 5b 66 69 6c 65 3a 69 6d 61 67 65 73 2f 49 6d 61 67 65 73 2f 70 69 6d 61 67 rce=url[file:images/Images/pimag
14ea0 65 73 2f 25 73 2f 25 73 5f 70 30 2e 6a 70 67 5d 26 73 69 6e 6b 27 20 25 20 28 73 6b 75 69 64 5b es/%s/%s_p0.jpg]&sink'.%.(skuid[
14ec0 2d 34 3a 5d 2c 20 73 6b 75 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 6c -4:],.skuid).............self.pl
14ee0 75 67 69 6e 2e 63 61 63 68 65 5f 69 64 65 6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f 75 ugin.cache_identifier_to_cover_u
14f00 72 6c 28 73 65 6c 66 2e 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 2c 20 69 6d 67 5f 75 72 6c rl(self.barnes_noble_id,.img_url
14f20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 6d 67 5f 75 72 6c 0a 0a 20 20 ).............return.img_url....
14f40 20 20 20 20 20 20 23 20 4e 65 77 20 73 74 79 6c 65 20 70 61 67 65 20 6c 61 79 6f 75 74 20 2d 20 ......#.New.style.page.layout.-.
14f60 6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 65 78 70 61 6e 64 65 64 20 6e 6f 64 65 0a 20 20 20 20 20 look.for.the.expanded.node......
14f80 20 20 20 23 20 68 74 74 70 3a 2f 2f 77 77 77 2e 62 61 72 6e 65 73 61 6e 64 6e 6f 62 6c 65 2e 63 ...#.http://www.barnesandnoble.c
14fa0 6f 6d 2f 77 2f 65 6d 70 65 72 6f 72 73 2d 74 6f 6d 62 2d 73 74 65 76 65 2d 62 65 72 72 79 2f 31 om/w/emperors-tomb-steve-berry/1
14fc0 31 30 30 30 35 38 33 32 31 3f 65 61 6e 3d 39 37 38 30 33 34 35 35 30 35 35 30 37 26 69 74 6d 3d 100058321?ean=9780345505507&itm=
14fe0 31 26 75 73 72 69 3d 73 74 65 76 65 2b 62 65 72 72 79 0a 20 20 20 20 20 20 20 20 69 6d 67 63 6f 1&usri=steve+berry.........imgco
15000 6c 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 69 6d 67 5b 40 69 64 3d 22 l_node.=.root.xpath('//img[@id="
15020 76 69 65 77 65 72 2d 69 6d 61 67 65 2d 31 22 5d 2f 40 64 61 74 61 2d 62 6e 2d 73 72 63 2d 75 72 viewer-image-1"]/@data-bn-src-ur
15040 6c 27 29 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 69 6d 67 63 6f 6c 5f 6e 6f 64 65 3a 0a l').........if.not.imgcol_node:.
15060 20 20 20 20 20 20 20 20 20 20 20 20 23 20 54 72 79 20 75 73 69 6e 67 20 74 68 65 20 6f 6e 20 70 ............#.Try.using.the.on.p
15080 61 67 65 20 69 6d 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 67 63 6f 6c 5f 6e 6f 64 age.image.............imgcol_nod
150a0 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 69 6d 67 5b 40 64 61 74 61 2d 62 6e 74 72 e.=.root.xpath('//img[@data-bntr
150c0 61 63 6b 3d 22 50 72 6f 64 75 63 74 49 6d 61 67 65 4d 61 69 6e 22 5d 2f 40 73 72 63 27 29 0a 20 ack="ProductImageMain"]/@src')..
150e0 20 20 20 20 20 20 20 69 66 20 69 6d 67 63 6f 6c 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 .......if.imgcol_node:..........
15100 20 20 20 69 6d 67 5f 75 72 6c 20 3d 20 69 6d 67 63 6f 6c 5f 6e 6f 64 65 5b 30 5d 0a 20 20 20 20 ...img_url.=.imgcol_node[0].....
15120 20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 2e 5f 69 73 5f 76 61 6c 69 64 5f 69 6d 61 67 65 28 ........if.self._is_valid_image(
15140 69 6d 67 5f 75 72 6c 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 img_url):.................self.p
15160 6c 75 67 69 6e 2e 63 61 63 68 65 5f 69 64 65 6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f lugin.cache_identifier_to_cover_
15180 75 72 6c 28 73 65 6c 66 2e 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 2c 20 69 6d 67 5f 75 72 url(self.barnes_noble_id,.img_ur
151a0 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 6d 67 5f 75 72 l).................return.img_ur
151c0 6c 0a 0a 20 20 20 20 20 20 20 20 23 20 4c 65 67 61 63 79 20 6d 6f 64 65 20 28 50 72 65 2d 31 2e l..........#.Legacy.mode.(Pre-1.
151e0 32 20 26 20 74 65 78 74 62 6f 6f 6b 73 29 0a 20 20 20 20 20 20 20 20 69 6d 67 63 6f 6c 5f 6e 6f 2.&.textbooks).........imgcol_no
15200 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28 de.=.root.xpath('//div[contains(
15220 40 63 6c 61 73 73 2c 22 77 67 74 2d 70 72 6f 64 75 63 74 2d 69 6d 61 67 65 22 29 5d 2f 61 2f 40 @class,"wgt-product-image")]/a/@
15240 64 61 74 61 2d 62 6e 2d 6f 70 74 69 6f 6e 73 27 29 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 data-bn-options').........if.not
15260 20 69 6d 67 63 6f 6c 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 67 63 6f 6c .imgcol_node:.............imgcol
15280 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 _node.=.root.xpath('//div[contai
152a0 6e 73 28 40 63 6c 61 73 73 2c 22 6c 6f 6f 6b 2d 69 6e 73 69 64 65 2d 70 64 70 22 29 5d 2f 61 2f ns(@class,"look-inside-pdp")]/a/
152c0 40 68 72 65 66 27 29 0a 0a 20 20 20 20 20 20 20 20 69 66 20 69 6d 67 63 6f 6c 5f 6e 6f 64 65 3a @href')..........if.imgcol_node:
152e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 67 5f 6f 70 74 69 6f 6e 73 20 3d 20 69 6d 67 63 6f .............img_options.=.imgco
15300 6c 5f 6e 6f 64 65 5b 30 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 54 68 69 73 20 67 65 74 l_node[0].............#.This.get
15320 73 20 75 73 20 61 20 73 65 74 20 6f 66 20 64 61 74 61 20 66 6f 72 20 70 61 73 73 69 6e 67 20 74 s.us.a.set.of.data.for.passing.t
15340 6f 20 61 6e 6f 74 68 65 72 20 70 61 67 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 20 20 o.another.page:.............#...
15360 22 7b 75 72 6c 3a 27 68 74 74 70 3a 2f 2f 73 65 61 72 63 68 2e 62 61 72 6e 65 73 61 6e 64 6e 6f "{url:'http://search.barnesandno
15380 62 6c 65 2e 63 6f 6d 2f 62 6f 6f 6b 73 65 61 72 63 68 2f 69 6d 61 67 65 76 69 65 77 65 72 2e 61 ble.com/booksearch/imageviewer.a
153a0 73 70 3f 65 61 6e 3d 39 37 38 30 37 36 35 33 34 32 39 38 30 26 61 6d 70 3b 69 6d 49 64 3d 27 2c sp?ean=9780765342980&amp;imId=',
153c0 6e 61 6d 65 3a 27 54 68 75 6d 62 6e 61 69 6c 49 6d 61 67 65 27 2c 77 69 64 74 68 3a 27 37 32 30 name:'ThumbnailImage',width:'720
153e0 27 2c 68 65 69 67 68 74 3a 27 39 30 30 27 2c 73 63 72 6f 6c 6c 62 61 72 73 3a 27 79 65 73 27 7d ',height:'900',scrollbars:'yes'}
15400 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 4f 72 20 6f 6e 20 54 65 78 74 62 6f 6f 6b 20 70 ".............#.Or.on.Textbook.p
15420 61 67 65 73 2c 20 69 74 20 67 65 74 73 20 75 73 20 74 6f 20 74 68 65 20 68 72 65 66 20 64 69 72 ages,.it.gets.us.to.the.href.dir
15440 65 63 74 6c 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 20 20 22 68 74 74 70 3a 2f 2f 73 ectly:.............#..."http://s
15460 65 61 72 63 68 2e 62 61 72 6e 65 73 61 6e 64 6e 6f 62 6c 65 2e 63 6f 6d 2f 62 6f 6f 6b 73 65 61 earch.barnesandnoble.com/booksea
15480 72 63 68 2f 69 6d 61 67 65 76 69 65 77 65 72 2e 61 73 70 3f 65 61 6e 3d 39 37 38 30 34 37 30 35 rch/imageviewer.asp?ean=97804705
154a0 32 36 39 31 30 26 61 6d 70 3b 69 6d 49 64 3d 37 37 31 39 32 39 39 35 22 0a 20 20 20 20 20 20 20 26910&amp;imId=77192995"........
154c0 20 20 20 20 20 23 20 57 69 74 68 20 74 68 65 20 77 65 62 73 69 74 65 20 72 65 77 72 69 74 65 2c .....#.With.the.website.rewrite,
154e0 20 77 65 20 63 61 6e 6e 6f 74 20 67 65 74 20 64 69 72 65 63 74 6c 79 20 74 6f 20 74 68 65 20 6c .we.cannot.get.directly.to.the.l
15500 61 72 67 65 20 69 6d 61 67 65 2c 20 61 73 20 69 74 73 20 64 65 74 61 69 6c 73 0a 20 20 20 20 20 arge.image,.as.its.details......
15520 20 20 20 20 20 20 20 23 20 61 72 65 20 6e 6f 77 68 65 72 65 20 69 6e 73 69 64 65 20 74 68 65 20 .......#.are.nowhere.inside.the.
15540 70 61 67 65 20 77 65 20 68 61 76 65 20 6a 75 73 74 20 70 61 72 73 65 64 2e 20 57 68 69 63 68 20 page.we.have.just.parsed..Which.
15560 75 6e 66 6f 72 74 75 6e 61 74 65 6c 79 20 6d 65 61 6e 73 20 77 65 20 6e 6f 77 0a 20 20 20 20 20 unfortunately.means.we.now......
15580 20 20 20 20 20 20 20 23 20 68 61 76 65 20 74 6f 20 64 6f 20 61 6e 6f 74 68 65 72 20 68 6f 70 20 .......#.have.to.do.another.hop.
155a0 74 6f 20 74 68 65 20 55 52 4c 20 61 62 6f 76 65 20 61 6e 64 20 70 61 72 73 65 20 74 68 65 20 72 to.the.URL.above.and.parse.the.r
155c0 65 73 75 6c 74 73 20 6f 66 20 74 68 61 74 20 70 61 67 65 20 74 6f 20 67 65 74 0a 20 20 20 20 20 esults.of.that.page.to.get......
155e0 20 20 20 20 20 20 20 23 20 74 68 65 20 61 63 74 75 61 6c 20 6c 61 72 67 65 20 69 6d 61 67 65 20 .......#.the.actual.large.image.
15600 55 52 4c 2e 20 56 65 72 79 20 61 6e 6e 6f 79 65 64 20 61 74 20 74 68 65 20 70 65 72 66 6f 72 6d URL..Very.annoyed.at.the.perform
15620 61 6e 63 65 20 68 69 74 20 6f 66 20 64 6f 69 6e 67 20 74 68 69 73 21 0a 20 20 20 20 20 20 20 20 ance.hit.of.doing.this!.........
15640 20 20 20 20 6d 61 74 63 68 20 3d 20 72 65 2e 73 65 61 72 63 68 28 27 28 68 74 74 70 3a 2f 2f 2e ....match.=.re.search('(http://.
15660 2a 65 61 6e 3d 5c 64 2b 29 27 2c 20 69 6d 67 5f 6f 70 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 *ean=\d+)',.img_options)........
15680 20 20 20 20 20 69 66 20 6d 61 74 63 68 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 .....if.match:.................d
156a0 65 74 61 69 6c 5f 70 61 67 65 5f 75 72 6c 20 3d 20 6d 61 74 63 68 2e 67 72 6f 75 70 73 28 30 29 etail_page_url.=.match.groups(0)
156c0 5b 30 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 [0].................try:........
156e0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 77 20 3d 20 73 65 6c 66 2e 62 72 6f 77 73 65 72 2e .............raw.=.self.browser.
15700 6f 70 65 6e 5f 6e 6f 76 69 73 69 74 28 64 65 74 61 69 6c 5f 70 61 67 65 5f 75 72 6c 2c 20 74 69 open_novisit(detail_page_url,.ti
15720 6d 65 6f 75 74 3d 73 65 6c 66 2e 74 69 6d 65 6f 75 74 29 2e 72 65 61 64 28 29 2e 73 74 72 69 70 meout=self.timeout).read().strip
15740 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 77 20 3d 20 72 61 77 ().....................raw.=.raw
15760 2e 64 65 63 6f 64 65 28 27 75 74 66 2d 38 27 2c 20 65 72 72 6f 72 73 3d 27 72 65 70 6c 61 63 65 .decode('utf-8',.errors='replace
15780 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 67 5f 72 6f 6f 74 20 ').....................img_root.
157a0 3d 20 66 72 6f 6d 73 74 72 69 6e 67 28 63 6c 65 61 6e 5f 61 73 63 69 69 5f 63 68 61 72 73 28 72 =.fromstring(clean_ascii_chars(r
157c0 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 61 67 65 5f 72 aw)).....................image_r
157e0 65 66 73 20 3d 20 69 6d 67 5f 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 74 61 62 6c 65 5b 40 63 efs.=.img_root.xpath('//table[@c
15800 6c 61 73 73 3d 22 49 6d 61 67 65 56 69 65 77 65 72 4e 61 76 22 5d 2f 74 72 2f 74 64 2f 61 2f 40 lass="ImageViewerNav"]/tr/td/a/@
15820 68 72 65 66 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 65 href').....................if.le
15840 6e 28 69 6d 61 67 65 5f 72 65 66 73 29 20 3e 20 30 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 n(image_refs).>.0:..............
15860 20 20 20 20 20 20 20 20 20 20 20 23 20 4e 6f 77 20 77 69 74 68 69 6e 3a 20 3c 61 20 68 72 65 66 ...........#.Now.within:.<a.href
15880 3d 22 69 6d 61 67 65 76 69 65 77 65 72 2e 61 73 70 3f 65 61 6e 3d 39 37 38 31 35 39 33 30 38 30 ="imageviewer.asp?ean=9781593080
158a0 37 37 38 26 61 6d 70 3b 69 6d 49 64 3d 37 31 31 35 35 32 34 31 22 3e 0a 20 20 20 20 20 20 20 20 778&amp;imId=71155241">.........
158c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 72 6f 6e 74 5f 69 6d 49 64 20 3d 20 69 6d 61 ................front_imId.=.ima
158e0 67 65 5f 72 65 66 73 5b 30 5d 2e 72 70 61 72 74 69 74 69 6f 6e 28 27 3d 27 29 5b 32 5d 2e 73 74 ge_refs[0].rpartition('=')[2].st
15900 72 69 70 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 rip().........................pa
15920 72 65 6e 74 5f 66 6f 6c 64 65 72 20 3d 20 66 72 6f 6e 74 5f 69 6d 49 64 5b 3a 2d 34 5d 0a 20 20 rent_folder.=.front_imId[:-4]...
15940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 67 5f 75 72 6c 20 3d 20 ......................img_url.=.
15960 27 68 74 74 70 3a 2f 2f 69 6d 61 67 65 73 2e 62 61 72 6e 65 73 61 6e 64 6e 6f 62 6c 65 2e 63 6f 'http://images.barnesandnoble.co
15980 6d 2f 69 6d 61 67 65 73 2f 25 73 30 30 30 30 2f 25 73 2e 6a 70 67 27 25 28 70 61 72 65 6e 74 5f m/images/%s0000/%s.jpg'%(parent_
159a0 66 6f 6c 64 65 72 2c 66 72 6f 6e 74 5f 69 6d 49 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 folder,front_imId)..............
159c0 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 6c 75 67 69 6e 2e 63 61 63 68 65 5f 69 64 65 ...........self.plugin.cache_ide
159e0 6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f 75 72 6c 28 73 65 6c 66 2e 62 61 72 6e 65 73 ntifier_to_cover_url(self.barnes
15a00 5f 6e 6f 62 6c 65 5f 69 64 2c 20 69 6d 67 5f 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 _noble_id,.img_url).............
15a20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 6d 67 5f 75 72 6c 0a 20 20 20 20 20 ............return.img_url......
15a40 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........except:..............
15a60 20 20 20 20 20 20 20 70 61 73 73 0a 0a 20 20 20 20 20 20 20 20 23 20 57 65 20 64 69 64 6e 27 74 .......pass..........#.We.didn't
15a80 20 66 69 6e 64 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 69 6d 61 67 65 20 6c 69 6e 6b 0a 20 20 20 .find.an.external.image.link....
15aa0 20 20 20 20 20 23 20 41 73 20 61 20 66 61 6c 6c 62 61 63 6b 20 74 6f 20 70 72 6f 76 69 64 65 20 .....#.As.a.fallback.to.provide.
15ac0 22 73 6f 6d 65 74 68 69 6e 67 22 20 75 73 65 20 74 68 65 20 6f 6e 20 70 61 67 65 20 69 6d 61 67 "something".use.the.on.page.imag
15ae0 65 20 6c 69 6e 6b 20 2d 20 73 6d 61 6c 6c 20 62 75 74 20 6d 61 79 62 65 20 62 65 74 74 65 72 20 e.link.-.small.but.maybe.better.
15b00 74 68 61 6e 20 6e 6f 74 68 69 6e 67 0a 20 20 20 20 20 20 20 20 69 66 20 70 61 67 65 5f 69 6d 61 than.nothing.........if.page_ima
15b20 67 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 2e 62 61 72 ge_node:.............if.self.bar
15b40 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 nes_noble_id:.................se
15b60 6c 66 2e 70 6c 75 67 69 6e 2e 63 61 63 68 65 5f 69 64 65 6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f lf.plugin.cache_identifier_to_co
15b80 76 65 72 5f 75 72 6c 28 27 73 6d 61 6c 6c 2f 27 2b 73 65 6c 66 2e 62 61 72 6e 65 73 5f 6e 6f 62 ver_url('small/'+self.barnes_nob
15ba0 6c 65 5f 69 64 2c 20 70 61 67 65 5f 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 4c le_id,.page_url).............#.L
15bc0 6f 77 65 72 20 6f 75 72 20 72 65 6c 65 76 61 6e 63 65 20 66 61 63 74 6f 72 20 69 6e 20 66 61 76 ower.our.relevance.factor.in.fav
15be0 6f 75 72 20 6f 66 20 61 6e 20 49 53 42 4e 20 74 68 61 74 20 68 61 73 20 61 20 66 75 6c 6c 20 63 our.of.an.ISBN.that.has.a.full.c
15c00 6f 76 65 72 20 69 66 20 70 6f 73 73 69 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c over.if.possible.............sel
15c20 66 2e 72 65 6c 65 76 61 6e 63 65 20 2b 3d 20 35 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 f.relevance.+=.5.............ret
15c40 75 72 6e 20 70 61 67 65 5f 75 72 6c 0a 0a 20 20 20 20 64 65 66 20 5f 69 73 5f 76 61 6c 69 64 5f urn.page_url......def._is_valid_
15c60 69 6d 61 67 65 28 73 65 6c 66 2c 20 69 6d 67 5f 75 72 6c 29 3a 0a 20 20 20 20 20 20 20 20 23 20 image(self,.img_url):.........#.
15c80 4d 61 6b 65 20 73 75 72 65 20 74 68 69 73 20 69 6d 61 67 65 20 69 73 20 6e 6f 74 20 61 6e 20 4e Make.sure.this.image.is.not.an.N
15ca0 41 20 73 74 79 6c 65 20 6f 66 20 69 6d 61 67 65 0a 20 20 20 20 20 20 20 20 69 66 20 69 6d 67 5f A.style.of.image.........if.img_
15cc0 75 72 6c 2e 65 6e 64 73 77 69 74 68 28 27 49 6d 61 67 65 4e 41 5f 70 72 6f 64 75 63 74 2e 67 69 url.endswith('ImageNA_product.gi
15ce0 66 27 29 20 6f 72 20 69 6d 67 5f 75 72 6c 2e 65 6e 64 73 77 69 74 68 28 27 4e 41 2d 50 72 6f 64 f').or.img_url.endswith('NA-Prod
15d00 75 63 74 50 61 67 65 32 5f 58 58 4c 2d 35 33 2e 4a 50 47 27 29 20 6f 72 20 27 30 30 30 30 30 30 uctPage2_XXL-53.JPG').or.'000000
15d20 30 30 30 30 30 31 37 5f 27 20 69 6e 20 69 6d 67 5f 75 72 6c 20 6f 72 20 27 30 30 30 30 30 30 30 0000017_'.in.img_url.or.'0000000
15d40 30 30 30 30 30 30 5f 70 30 5f 76 30 27 20 69 6e 20 69 6d 67 5f 75 72 6c 3a 0a 20 20 20 20 20 20 000000_p0_v0'.in.img_url:.......
15d60 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 61 6c 73 65 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 ......return.False.........retur
15d80 6e 20 54 72 75 65 0a 50 4b 03 04 14 00 00 00 00 00 42 a0 ac 5a c1 ed 80 20 f0 4d 00 00 f0 4d 00 n.True.PK........B..Z.....M...M.
15da0 00 0b 00 00 00 5f 5f 69 6e 69 74 5f 5f 2e 70 79 66 72 6f 6d 20 5f 5f 66 75 74 75 72 65 5f 5f 20 .....__init__.pyfrom.__future__.
15dc0 69 6d 70 6f 72 74 20 75 6e 69 63 6f 64 65 5f 6c 69 74 65 72 61 6c 73 2c 20 64 69 76 69 73 69 6f import.unicode_literals,.divisio
15de0 6e 2c 20 61 62 73 6f 6c 75 74 65 5f 69 6d 70 6f 72 74 2c 20 70 72 69 6e 74 5f 66 75 6e 63 74 69 n,.absolute_import,.print_functi
15e00 6f 6e 0d 0a 0d 0a 5f 5f 6c 69 63 65 6e 73 65 5f 5f 20 20 20 3d 20 27 47 50 4c 20 76 33 27 0d 0a on....__license__...=.'GPL.v3'..
15e20 5f 5f 63 6f 70 79 72 69 67 68 74 5f 5f 20 3d 20 27 32 30 31 31 2c 20 47 72 61 6e 74 20 44 72 61 __copyright__.=.'2011,.Grant.Dra
15e40 6b 65 27 0d 0a 0d 0a 69 6d 70 6f 72 74 20 74 69 6d 65 2c 20 72 65 2c 20 72 61 6e 64 6f 6d 0d 0a ke'....import.time,.re,.random..
15e60 66 72 6f 6d 20 73 69 78 20 69 6d 70 6f 72 74 20 74 65 78 74 5f 74 79 70 65 20 61 73 20 75 6e 69 from.six.import.text_type.as.uni
15e80 63 6f 64 65 0d 0a 66 72 6f 6d 20 73 69 78 2e 6d 6f 76 65 73 2e 75 72 6c 6c 69 62 2e 70 61 72 73 code..from.six.moves.urllib.pars
15ea0 65 20 69 6d 70 6f 72 74 20 71 75 6f 74 65 0d 0a 74 72 79 3a 0d 0a 20 20 20 20 66 72 6f 6d 20 71 e.import.quote..try:......from.q
15ec0 75 65 75 65 20 69 6d 70 6f 72 74 20 45 6d 70 74 79 2c 20 51 75 65 75 65 0d 0a 65 78 63 65 70 74 ueue.import.Empty,.Queue..except
15ee0 20 49 6d 70 6f 72 74 45 72 72 6f 72 3a 0d 0a 20 20 20 20 66 72 6f 6d 20 51 75 65 75 65 20 69 6d .ImportError:......from.Queue.im
15f00 70 6f 72 74 20 45 6d 70 74 79 2c 20 51 75 65 75 65 0d 0a 66 72 6f 6d 20 63 6f 6c 6c 65 63 74 69 port.Empty,.Queue..from.collecti
15f20 6f 6e 73 20 69 6d 70 6f 72 74 20 4f 72 64 65 72 65 64 44 69 63 74 0d 0a 0d 0a 66 72 6f 6d 20 6c ons.import.OrderedDict....from.l
15f40 78 6d 6c 2e 68 74 6d 6c 20 69 6d 70 6f 72 74 20 66 72 6f 6d 73 74 72 69 6e 67 0d 0a 0d 0a 66 72 xml.html.import.fromstring....fr
15f60 6f 6d 20 63 61 6c 69 62 72 65 20 69 6d 70 6f 72 74 20 61 73 5f 75 6e 69 63 6f 64 65 0d 0a 66 72 om.calibre.import.as_unicode..fr
15f80 6f 6d 20 63 61 6c 69 62 72 65 2e 63 6f 6e 73 74 61 6e 74 73 20 69 6d 70 6f 72 74 20 6e 75 6d 65 om.calibre.constants.import.nume
15fa0 72 69 63 5f 76 65 72 73 69 6f 6e 20 61 73 20 63 61 6c 69 62 72 65 5f 76 65 72 73 69 6f 6e 0d 0a ric_version.as.calibre_version..
15fc0 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 65 62 6f 6f 6b 73 2e 6d 65 74 61 64 61 74 61 20 69 6d 70 from.calibre.ebooks.metadata.imp
15fe0 6f 72 74 20 63 68 65 63 6b 5f 69 73 62 6e 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 65 62 6f ort.check_isbn..from.calibre.ebo
16000 6f 6b 73 2e 6d 65 74 61 64 61 74 61 2e 73 6f 75 72 63 65 73 2e 62 61 73 65 20 69 6d 70 6f 72 74 oks.metadata.sources.base.import
16020 20 53 6f 75 72 63 65 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 75 74 69 6c 73 2e 69 63 75 20 .Source..from.calibre.utils.icu.
16040 69 6d 70 6f 72 74 20 6c 6f 77 65 72 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 75 74 69 6c 73 import.lower..from.calibre.utils
16060 2e 63 6c 65 61 6e 74 65 78 74 20 69 6d 70 6f 72 74 20 63 6c 65 61 6e 5f 61 73 63 69 69 5f 63 68 .cleantext.import.clean_ascii_ch
16080 61 72 73 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 75 74 69 6c 73 2e 6c 6f 63 61 6c 69 7a 61 ars..from.calibre.utils.localiza
160a0 74 69 6f 6e 20 69 6d 70 6f 72 74 20 67 65 74 5f 75 64 63 0d 0a 0d 0a 63 6c 61 73 73 20 42 61 72 tion.import.get_udc....class.Bar
160c0 6e 65 73 4e 6f 62 6c 65 28 53 6f 75 72 63 65 29 3a 0d 0a 0d 0a 20 20 20 20 6e 61 6d 65 20 3d 20 nesNoble(Source):........name.=.
160e0 27 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 27 0d 0a 20 20 20 20 64 65 73 63 72 69 70 74 69 6f 'Barnes.&.Noble'......descriptio
16100 6e 20 3d 20 27 44 6f 77 6e 6c 6f 61 64 73 20 6d 65 74 61 64 61 74 61 20 61 6e 64 20 63 6f 76 65 n.=.'Downloads.metadata.and.cove
16120 72 73 20 66 72 6f 6d 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 27 0d 0a 20 20 20 20 61 75 74 rs.from.Barnes.&.Noble'......aut
16140 68 6f 72 20 3d 20 27 47 72 61 6e 74 20 44 72 61 6b 65 27 0d 0a 20 20 20 20 76 65 72 73 69 6f 6e hor.=.'Grant.Drake'......version
16160 20 3d 20 28 31 2c 20 35 2c 20 37 29 0d 0a 20 20 20 20 6d 69 6e 69 6d 75 6d 5f 63 61 6c 69 62 72 .=.(1,.5,.7)......minimum_calibr
16180 65 5f 76 65 72 73 69 6f 6e 20 3d 20 28 32 2c 20 30 2c 20 30 29 0d 0a 0d 0a 20 20 20 20 49 44 5f e_version.=.(2,.0,.0)........ID_
161a0 4e 41 4d 45 20 3d 20 27 62 61 72 6e 65 73 6e 6f 62 6c 65 27 0d 0a 20 20 20 20 63 61 70 61 62 69 NAME.=.'barnesnoble'......capabi
161c0 6c 69 74 69 65 73 20 3d 20 66 72 6f 7a 65 6e 73 65 74 28 5b 27 69 64 65 6e 74 69 66 79 27 2c 20 lities.=.frozenset(['identify',.
161e0 27 63 6f 76 65 72 27 5d 29 0d 0a 20 20 20 20 74 6f 75 63 68 65 64 5f 66 69 65 6c 64 73 20 3d 20 'cover'])......touched_fields.=.
16200 66 72 6f 7a 65 6e 73 65 74 28 5b 27 74 69 74 6c 65 27 2c 20 27 61 75 74 68 6f 72 73 27 2c 20 27 frozenset(['title',.'authors',.'
16220 69 64 65 6e 74 69 66 69 65 72 3a 27 20 2b 20 49 44 5f 4e 41 4d 45 2c 0d 0a 20 20 20 20 20 20 20 identifier:'.+.ID_NAME,.........
16240 20 27 69 64 65 6e 74 69 66 69 65 72 3a 69 73 62 6e 27 2c 20 27 72 61 74 69 6e 67 27 2c 20 27 63 .'identifier:isbn',.'rating',.'c
16260 6f 6d 6d 65 6e 74 73 27 2c 20 27 70 75 62 6c 69 73 68 65 72 27 2c 20 27 70 75 62 64 61 74 65 27 omments',.'publisher',.'pubdate'
16280 2c 0d 0a 20 20 20 20 20 20 20 20 27 73 65 72 69 65 73 27 5d 29 0d 0a 20 20 20 20 68 61 73 5f 68 ,..........'series'])......has_h
162a0 74 6d 6c 5f 63 6f 6d 6d 65 6e 74 73 20 3d 20 54 72 75 65 0d 0a 20 20 20 20 73 75 70 70 6f 72 74 tml_comments.=.True......support
162c0 73 5f 67 7a 69 70 5f 74 72 61 6e 73 66 65 72 5f 65 6e 63 6f 64 69 6e 67 20 3d 20 54 72 75 65 0d s_gzip_transfer_encoding.=.True.
162e0 0a 0d 0a 20 20 20 20 42 41 53 45 5f 55 52 4c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 73 65 61 72 63 .......BASE_URL.=.'https://searc
16300 68 2e 62 61 72 6e 65 73 61 6e 64 6e 6f 62 6c 65 2e 63 6f 6d 27 0d 0a 20 20 20 20 42 52 4f 57 53 h.barnesandnoble.com'......BROWS
16320 45 5f 55 52 4c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 77 77 77 2e 62 61 72 6e 65 73 61 6e 64 6e 6f E_URL.=.'https://www.barnesandno
16340 62 6c 65 2e 63 6f 6d 27 0d 0a 20 20 20 20 53 45 41 52 43 48 5f 55 52 4c 20 3d 20 27 68 74 74 70 ble.com'......SEARCH_URL.=.'http
16360 73 3a 2f 2f 77 77 77 2e 62 61 72 6e 65 73 61 6e 64 6e 6f 62 6c 65 2e 63 6f 6d 2f 73 27 0d 0a 0d s://www.barnesandnoble.com/s'...
16380 0a 20 20 20 20 64 65 66 20 63 6f 6e 66 69 67 5f 77 69 64 67 65 74 28 73 65 6c 66 29 3a 0d 0a 20 .....def.config_widget(self):...
163a0 20 20 20 20 20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20 20 4f 76 65 72 72 69 64 69 6e 67 20 74 .......'''..........Overriding.t
163c0 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 63 72 65 65 6e 20 he.default.configuration.screen.
163e0 66 6f 72 20 6f 75 72 20 6f 77 6e 20 63 75 73 74 6f 6d 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e for.our.own.custom.configuration
16400 0d 0a 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20 20 66 72 6f 6d 20 63 61 6c 69 ..........'''..........from.cali
16420 62 72 65 5f 70 6c 75 67 69 6e 73 2e 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 2e 63 6f 6e 66 69 67 20 bre_plugins.barnes_noble.config.
16440 69 6d 70 6f 72 74 20 43 6f 6e 66 69 67 57 69 64 67 65 74 0d 0a 20 20 20 20 20 20 20 20 72 65 74 import.ConfigWidget..........ret
16460 75 72 6e 20 43 6f 6e 66 69 67 57 69 64 67 65 74 28 73 65 6c 66 29 0d 0a 0d 0a 20 20 20 20 40 70 urn.ConfigWidget(self)........@p
16480 72 6f 70 65 72 74 79 0d 0a 20 20 20 20 64 65 66 20 75 73 65 72 5f 61 67 65 6e 74 28 73 65 6c 66 roperty......def.user_agent(self
164a0 29 3a 0d 0a 20 20 20 20 20 20 20 20 23 20 4d 61 79 20 32 30 32 34 20 2d 20 42 26 4e 20 73 74 61 ):..........#.May.2024.-.B&N.sta
164c0 72 74 65 64 20 67 65 74 74 69 6e 67 20 70 69 63 6b 79 20 61 62 6f 75 74 20 74 68 65 20 75 73 65 rted.getting.picky.about.the.use
164e0 72 20 61 67 65 6e 74 2c 20 72 65 6a 65 63 74 69 6e 67 20 43 68 72 6f 6d 65 20 76 65 72 73 69 6f r.agent,.rejecting.Chrome.versio
16500 6e 20 38 30 20 77 68 69 63 68 20 77 61 73 20 74 68 65 20 63 61 6c 69 62 72 65 20 64 65 66 61 75 n.80.which.was.the.calibre.defau
16520 6c 74 2e 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 27 4d 6f 7a 69 6c 6c 61 2f 35 2e 30 lt...........return.'Mozilla/5.0
16540 20 28 57 69 6e 64 6f 77 73 20 4e 54 20 31 30 2e 30 3b 20 57 69 6e 36 34 3b 20 78 36 34 3b 20 72 .(Windows.NT.10.0;.Win64;.x64;.r
16560 76 3a 31 33 38 2e 30 29 20 47 65 63 6b 6f 2f 32 30 31 30 30 31 30 31 20 46 69 72 65 66 6f 78 2f v:138.0).Gecko/20100101.Firefox/
16580 31 33 38 2e 30 27 0d 0a 0d 0a 20 20 20 20 64 65 66 20 67 65 74 5f 62 6f 6f 6b 5f 75 72 6c 28 73 138.0'........def.get_book_url(s
165a0 65 6c 66 2c 20 69 64 65 6e 74 69 66 69 65 72 73 29 3a 0d 0a 20 20 20 20 20 20 20 20 62 61 72 6e elf,.identifiers):..........barn
165c0 65 73 5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 69 64 65 6e 74 69 66 69 65 72 73 2e 67 65 74 28 73 65 es_noble_id.=.identifiers.get(se
165e0 6c 66 2e 49 44 5f 4e 41 4d 45 2c 20 4e 6f 6e 65 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 62 61 lf.ID_NAME,.None)..........if.ba
16600 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 20 rnes_noble_id:..............url.
16620 3d 20 73 65 6c 66 2e 66 6f 72 6d 61 74 5f 75 72 6c 5f 66 6f 72 5f 69 64 28 62 61 72 6e 65 73 5f =.self.format_url_for_id(barnes_
16640 6e 6f 62 6c 65 5f 69 64 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 73 noble_id)..............return.(s
16660 65 6c 66 2e 49 44 5f 4e 41 4d 45 2c 20 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 2c 20 75 72 elf.ID_NAME,.barnes_noble_id,.ur
16680 6c 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 66 6f 72 6d 61 74 5f 75 72 6c 5f 66 6f 72 5f 69 64 28 l)........def.format_url_for_id(
166a0 73 65 6c 66 2c 20 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 29 3a 0d 0a 20 20 20 20 20 20 20 self,.barnes_noble_id):.........
166c0 20 69 66 20 27 2f 27 20 69 6e 20 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 3a 0d 0a 20 20 20 .if.'/'.in.barnes_noble_id:.....
166e0 20 20 20 20 20 20 20 20 20 23 20 68 69 73 74 6f 72 69 63 61 6c 6c 79 20 74 68 65 20 42 26 4e 20 .........#.historically.the.B&N.
16700 69 64 65 6e 74 69 66 69 65 72 20 77 61 73 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68 20 74 6f 20 identifier.was.the.full.path.to.
16720 74 68 65 20 62 6f 6f 6b 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 65 2e 67 2e 20 77 2f the.book...............#.e.g..w/
16740 6c 6f 79 61 6c 74 79 2d 6c 69 73 61 2d 73 63 6f 74 74 6f 6c 69 6e 65 2f 31 31 34 31 37 30 37 39 loyalty-lisa-scottoline/11417079
16760 31 34 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 20 3d 20 27 25 73 2f 25 73 27 20 25 20 14..............url.=.'%s/%s'.%.
16780 28 42 61 72 6e 65 73 4e 6f 62 6c 65 2e 42 52 4f 57 53 45 5f 55 52 4c 2c 20 62 61 72 6e 65 73 5f (BarnesNoble.BROWSE_URL,.barnes_
167a0 6e 6f 62 6c 65 5f 69 64 29 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 noble_id)..........else:........
167c0 20 20 20 20 20 20 23 20 41 73 20 6f 66 20 31 2e 35 2e 30 20 74 68 65 20 42 26 4e 20 69 64 65 6e ......#.As.of.1.5.0.the.B&N.iden
167e0 74 69 66 69 65 72 20 77 69 6c 6c 20 6a 75 73 74 20 62 65 20 61 20 6e 75 6d 65 72 69 63 20 69 64 tifier.will.just.be.a.numeric.id
16800 65 6e 74 69 66 69 65 72 20 65 2e 67 2e 20 31 31 34 31 37 30 37 39 31 34 0d 0a 20 20 20 20 20 20 entifier.e.g..1141707914........
16820 20 20 20 20 20 20 23 20 42 26 4e 20 77 69 6c 6c 20 69 74 73 65 6c 66 20 72 65 64 69 72 65 63 74 ......#.B&N.will.itself.redirect
16840 20 74 6f 20 61 20 70 61 67 65 20 77 69 74 68 20 74 68 65 20 66 75 6c 6c 20 55 52 4c 2c 20 6f 72 .to.a.page.with.the.full.URL,.or
16860 20 77 65 20 75 73 65 20 77 2f 3c 69 64 3e 20 65 2e 67 2e 20 77 2f 31 31 34 31 37 30 37 39 31 34 .we.use.w/<id>.e.g..w/1141707914
16880 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 20 3d 20 27 25 73 2f 77 2f 25 73 27 20 25 20 ..............url.=.'%s/w/%s'.%.
168a0 28 42 61 72 6e 65 73 4e 6f 62 6c 65 2e 42 52 4f 57 53 45 5f 55 52 4c 2c 20 62 61 72 6e 65 73 5f (BarnesNoble.BROWSE_URL,.barnes_
168c0 6e 6f 62 6c 65 5f 69 64 29 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 75 72 6c 0d 0a 0d noble_id)..........return.url...
168e0 0a 20 20 20 20 64 65 66 20 69 64 5f 66 72 6f 6d 5f 75 72 6c 28 73 65 6c 66 2c 20 75 72 6c 29 3a .....def.id_from_url(self,.url):
16900 0d 0a 20 20 20 20 20 20 20 20 6d 61 74 63 68 20 3d 20 72 65 2e 6d 61 74 63 68 28 73 65 6c 66 2e ..........match.=.re.match(self.
16920 42 52 4f 57 53 45 5f 55 52 4c 20 2b 20 72 22 2f 2e 2a 2f 28 5c 64 2b 29 2e 2a 22 2c 20 75 72 6c BROWSE_URL.+.r"/.*/(\d+).*",.url
16940 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6d 61 74 63 68 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 )..........if.match:............
16960 20 20 72 65 74 75 72 6e 20 28 73 65 6c 66 2e 49 44 5f 4e 41 4d 45 2c 20 6d 61 74 63 68 2e 67 72 ..return.(self.ID_NAME,.match.gr
16980 6f 75 70 73 28 30 29 5b 30 5d 29 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 4e 6f 6e 65 oups(0)[0])..........return.None
169a0 0d 0a 0d 0a 20 20 20 20 64 65 66 20 63 72 65 61 74 65 5f 71 75 65 72 79 28 73 65 6c 66 2c 20 6c ........def.create_query(self,.l
169c0 6f 67 2c 20 74 69 74 6c 65 3d 4e 6f 6e 65 2c 20 61 75 74 68 6f 72 73 3d 4e 6f 6e 65 2c 20 69 64 og,.title=None,.authors=None,.id
169e0 65 6e 74 69 66 69 65 72 73 3d 7b 7d 29 3a 0d 0a 20 20 20 20 20 20 20 20 69 73 62 6e 20 3d 20 63 entifiers={}):..........isbn.=.c
16a00 68 65 63 6b 5f 69 73 62 6e 28 69 64 65 6e 74 69 66 69 65 72 73 2e 67 65 74 28 27 69 73 62 6e 27 heck_isbn(identifiers.get('isbn'
16a20 2c 20 4e 6f 6e 65 29 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 73 62 6e 20 69 73 20 6e 6f 74 ,.None))..........if.isbn.is.not
16a40 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 27 25 73 2f 73 .None:..............return.'%s/s
16a60 2f 25 73 3f 65 61 6e 3d 25 73 27 20 25 20 28 42 61 72 6e 65 73 4e 6f 62 6c 65 2e 42 52 4f 57 53 /%s?ean=%s'.%.(BarnesNoble.BROWS
16a80 45 5f 55 52 4c 2c 20 69 73 62 6e 2c 20 69 73 62 6e 29 0d 0a 20 20 20 20 20 20 20 20 74 6f 6b 65 E_URL,.isbn,.isbn)..........toke
16aa0 6e 73 20 3d 20 5b 5d 0d 0a 20 20 20 20 20 20 20 20 69 66 20 74 69 74 6c 65 3a 0d 0a 20 20 20 20 ns.=.[]..........if.title:......
16ac0 20 20 20 20 20 20 20 20 74 69 74 6c 65 20 3d 20 74 69 74 6c 65 2e 72 65 70 6c 61 63 65 28 27 3f ........title.=.title.replace('?
16ae0 27 2c 20 27 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f 74 6f 6b 65 6e 73 ',.'')..............title_tokens
16b00 20 3d 20 6c 69 73 74 28 73 65 6c 66 2e 67 65 74 5f 74 69 74 6c 65 5f 74 6f 6b 65 6e 73 28 74 69 .=.list(self.get_title_tokens(ti
16b20 74 6c 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tle,............................
16b40 20 20 20 20 20 20 73 74 72 69 70 5f 6a 6f 69 6e 65 72 73 3d 46 61 6c 73 65 2c 20 73 74 72 69 70 ......strip_joiners=False,.strip
16b60 5f 73 75 62 74 69 74 6c 65 3d 54 72 75 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 _subtitle=True))..............if
16b80 20 74 69 74 6c 65 5f 74 6f 6b 65 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .title_tokens:..................
16ba0 74 6f 6b 65 6e 73 20 2b 3d 20 5b 71 75 6f 74 65 28 74 2e 65 6e 63 6f 64 65 28 27 75 74 66 2d 38 tokens.+=.[quote(t.encode('utf-8
16bc0 27 29 20 69 66 20 69 73 69 6e 73 74 61 6e 63 65 28 74 2c 20 75 6e 69 63 6f 64 65 29 20 65 6c 73 ').if.isinstance(t,.unicode).els
16be0 65 20 74 29 20 66 6f 72 20 74 20 69 6e 20 74 69 74 6c 65 5f 74 6f 6b 65 6e 73 5d 0d 0a 20 20 20 e.t).for.t.in.title_tokens].....
16c00 20 20 20 20 20 69 66 20 61 75 74 68 6f 72 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 75 .....if.authors:..............au
16c20 74 68 6f 72 5f 74 6f 6b 65 6e 73 20 3d 20 73 65 6c 66 2e 67 65 74 5f 61 75 74 68 6f 72 5f 74 6f thor_tokens.=.self.get_author_to
16c40 6b 65 6e 73 28 61 75 74 68 6f 72 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 kens(authors,...................
16c60 20 20 20 6f 6e 6c 79 5f 66 69 72 73 74 5f 61 75 74 68 6f 72 3d 54 72 75 65 29 0d 0a 20 20 20 20 ...only_first_author=True)......
16c80 20 20 20 20 20 20 20 20 69 66 20 61 75 74 68 6f 72 5f 74 6f 6b 65 6e 73 3a 0d 0a 20 20 20 20 20 ........if.author_tokens:.......
16ca0 20 20 20 20 20 20 20 20 20 20 20 74 6f 6b 65 6e 73 20 2b 3d 20 5b 71 75 6f 74 65 28 74 2e 65 6e ...........tokens.+=.[quote(t.en
16cc0 63 6f 64 65 28 27 75 74 66 2d 38 27 29 20 69 66 20 69 73 69 6e 73 74 61 6e 63 65 28 74 2c 20 75 code('utf-8').if.isinstance(t,.u
16ce0 6e 69 63 6f 64 65 29 20 65 6c 73 65 20 74 29 20 66 6f 72 20 74 20 69 6e 20 61 75 74 68 6f 72 5f nicode).else.t).for.t.in.author_
16d00 74 6f 6b 65 6e 73 5d 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6c 65 6e 28 74 6f 6b 65 6e 73 29 20 tokens]..........if.len(tokens).
16d20 3d 3d 20 30 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 4e 6f 6e 65 0d 0a ==.0:..............return.None..
16d40 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 42 61 72 6e 65 73 4e 6f 62 6c 65 2e 53 45 41 52 43 ........return.BarnesNoble.SEARC
16d60 48 5f 55 52 4c 20 2b 20 27 2f 27 20 2b 20 27 25 32 30 27 2e 6a 6f 69 6e 28 74 6f 6b 65 6e 73 29 H_URL.+.'/'.+.'%20'.join(tokens)
16d80 2e 6c 6f 77 65 72 28 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 67 65 74 5f 63 61 63 68 65 64 5f 63 .lower()........def.get_cached_c
16da0 6f 76 65 72 5f 75 72 6c 28 73 65 6c 66 2c 20 69 64 65 6e 74 69 66 69 65 72 73 29 3a 0d 0a 20 20 over_url(self,.identifiers):....
16dc0 20 20 20 20 20 20 75 72 6c 20 3d 20 4e 6f 6e 65 0d 0a 20 20 20 20 20 20 20 20 62 61 72 6e 65 73 ......url.=.None..........barnes
16de0 5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 69 64 65 6e 74 69 66 69 65 72 73 2e 67 65 74 28 27 62 61 72 _noble_id.=.identifiers.get('bar
16e00 6e 65 73 6e 6f 62 6c 65 27 2c 20 4e 6f 6e 65 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 62 61 72 nesnoble',.None)..........if.bar
16e20 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 nes_noble_id.is.None:...........
16e40 20 20 20 69 73 62 6e 20 3d 20 69 64 65 6e 74 69 66 69 65 72 73 2e 67 65 74 28 27 69 73 62 6e 27 ...isbn.=.identifiers.get('isbn'
16e60 2c 20 4e 6f 6e 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 73 62 6e 20 69 73 20 ,.None)..............if.isbn.is.
16e80 6e 6f 74 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 72 6e 65 not.None:..................barne
16ea0 73 5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 73 65 6c 66 2e 63 61 63 68 65 64 5f 69 73 62 6e 5f 74 6f s_noble_id.=.self.cached_isbn_to
16ec0 5f 69 64 65 6e 74 69 66 69 65 72 28 69 73 62 6e 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 62 61 _identifier(isbn)..........if.ba
16ee0 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 20 69 73 20 6e 6f 74 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 rnes_noble_id.is.not.None:......
16f00 20 20 20 20 20 20 20 20 75 72 6c 20 3d 20 73 65 6c 66 2e 63 61 63 68 65 64 5f 69 64 65 6e 74 69 ........url.=.self.cached_identi
16f20 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f 75 72 6c 28 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 fier_to_cover_url(barnes_noble_i
16f40 64 29 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 75 72 6c 0d 0a 0d 0a 20 20 20 20 64 65 d)..........return.url........de
16f60 66 20 63 61 63 68 65 64 5f 69 64 65 6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f 75 72 6c f.cached_identifier_to_cover_url
16f80 28 73 65 6c 66 2c 20 69 64 5f 29 3a 0d 0a 20 20 20 20 20 20 20 20 77 69 74 68 20 73 65 6c 66 2e (self,.id_):..........with.self.
16fa0 63 61 63 68 65 5f 6c 6f 63 6b 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 20 3d 20 73 cache_lock:..............url.=.s
16fc0 65 6c 66 2e 5f 67 65 74 5f 63 61 63 68 65 64 5f 69 64 65 6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f elf._get_cached_identifier_to_co
16fe0 76 65 72 5f 75 72 6c 28 69 64 5f 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 ver_url(id_)..............if.not
17000 20 75 72 6c 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 54 72 79 20 66 6f 72 .url:..................#.Try.for
17020 20 61 20 22 73 6d 61 6c 6c 22 20 69 6d 61 67 65 20 69 6e 20 74 68 65 20 63 61 63 68 65 0d 0a 20 .a."small".image.in.the.cache...
17040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 20 3d 20 73 65 6c 66 2e 5f 67 65 74 5f 63 ...............url.=.self._get_c
17060 61 63 68 65 64 5f 69 64 65 6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f 75 72 6c 28 27 73 ached_identifier_to_cover_url('s
17080 6d 61 6c 6c 2f 27 20 2b 20 69 64 5f 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 mall/'.+.id_)..............retur
170a0 6e 20 75 72 6c 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 67 65 74 5f 63 61 63 68 65 64 5f 69 64 65 n.url........def._get_cached_ide
170c0 6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f 75 72 6c 28 73 65 6c 66 2c 20 69 64 5f 29 3a ntifier_to_cover_url(self,.id_):
170e0 0d 0a 20 20 20 20 20 20 20 20 23 20 54 68 69 73 20 6d 75 73 74 20 6f 6e 6c 79 20 62 65 20 63 61 ..........#.This.must.only.be.ca
17100 6c 6c 65 64 20 6f 6e 63 65 20 77 65 20 68 61 76 65 20 74 68 65 20 63 61 63 68 65 20 6c 6f 63 6b lled.once.we.have.the.cache.lock
17120 0d 0a 20 20 20 20 20 20 20 20 75 72 6c 20 3d 20 73 65 6c 66 2e 5f 69 64 65 6e 74 69 66 69 65 72 ..........url.=.self._identifier
17140 5f 74 6f 5f 63 6f 76 65 72 5f 75 72 6c 5f 63 61 63 68 65 2e 67 65 74 28 69 64 5f 2c 20 4e 6f 6e _to_cover_url_cache.get(id_,.Non
17160 65 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 75 72 6c 3a 0d 0a 20 20 20 20 20 20 20 e)..........if.not.url:.........
17180 20 20 20 20 20 23 20 57 65 20 63 6f 75 6c 64 20 6e 6f 74 20 67 65 74 20 61 20 75 72 6c 20 66 6f .....#.We.could.not.get.a.url.fo
171a0 72 20 74 68 69 73 20 70 61 72 74 69 63 75 6c 61 72 20 42 26 4e 20 69 64 0d 0a 20 20 20 20 20 20 r.this.particular.B&N.id........
171c0 20 20 20 20 20 20 23 20 48 6f 77 65 76 65 72 20 77 65 20 6d 69 67 68 74 20 68 61 76 65 20 6f 6e ......#.However.we.might.have.on
171e0 65 20 66 6f 72 20 61 20 64 69 66 66 65 72 65 6e 74 20 69 73 62 6e 20 66 6f 72 20 74 68 69 73 20 e.for.a.different.isbn.for.this.
17200 62 6f 6f 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 book..............#.Barnes.&.Nob
17220 6c 65 20 61 72 65 20 6e 6f 74 20 76 65 72 79 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 le.are.not.very.consistent.with.
17240 74 68 65 69 72 20 63 6f 76 65 72 73 20 61 6e 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 their.covers.and..............#.
17260 69 74 20 63 6f 75 6c 64 20 62 65 20 74 68 61 74 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 it.could.be.that.the.particular.
17280 49 53 42 4e 20 77 65 20 63 68 6f 73 65 20 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 0d 0a 20 20 20 ISBN.we.chose.does.not.have.....
172a0 20 20 20 20 20 20 20 20 20 23 20 61 20 6c 61 72 67 65 20 69 6d 61 67 65 20 62 75 74 20 61 6e 6f .........#.a.large.image.but.ano
172c0 74 68 65 72 20 49 53 42 4e 20 77 65 20 72 65 74 72 69 65 76 65 64 20 64 6f 65 73 2e 0d 0a 20 20 ther.ISBN.we.retrieved.does.....
172e0 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6b 65 79 20 69 6e 20 73 65 6c 66 2e 5f 69 64 65 6e 74 ..........for.key.in.self._ident
17300 69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f 75 72 6c 5f 63 61 63 68 65 2e 6b 65 79 73 28 29 3a ifier_to_cover_url_cache.keys():
17320 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6b 65 79 2e 73 74 61 72 74 73 77 ..................if.key.startsw
17340 69 74 68 28 27 6b 65 79 5f 70 72 65 66 69 78 27 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ith('key_prefix'):..............
17360 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 5f 69 64 65 6e 74 69 66 69 65 72 5f ........return.self._identifier_
17380 74 6f 5f 63 6f 76 65 72 5f 75 72 6c 5f 63 61 63 68 65 5b 6b 65 79 5d 0d 0a 20 20 20 20 20 20 20 to_cover_url_cache[key].........
173a0 20 72 65 74 75 72 6e 20 75 72 6c 0d 0a 0d 0a 20 20 20 20 64 65 66 20 69 64 65 6e 74 69 66 79 28 .return.url........def.identify(
173c0 73 65 6c 66 2c 20 6c 6f 67 2c 20 72 65 73 75 6c 74 5f 71 75 65 75 65 2c 20 61 62 6f 72 74 2c 20 self,.log,.result_queue,.abort,.
173e0 74 69 74 6c 65 3d 4e 6f 6e 65 2c 20 61 75 74 68 6f 72 73 3d 4e 6f 6e 65 2c 0d 0a 20 20 20 20 20 title=None,.authors=None,.......
17400 20 20 20 20 20 20 20 69 64 65 6e 74 69 66 69 65 72 73 3d 7b 7d 2c 20 74 69 6d 65 6f 75 74 3d 33 .......identifiers={},.timeout=3
17420 30 29 3a 0d 0a 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20 20 4e 6f 74 65 20 74 0):..........'''..........Note.t
17440 68 69 73 20 6d 65 74 68 6f 64 20 77 69 6c 6c 20 72 65 74 72 79 20 77 69 74 68 6f 75 74 20 69 64 his.method.will.retry.without.id
17460 65 6e 74 69 66 69 65 72 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 69 66 20 6e 6f 0d 0a 20 entifiers.automatically.if.no...
17480 20 20 20 20 20 20 20 6d 61 74 63 68 20 69 73 20 66 6f 75 6e 64 20 77 69 74 68 20 69 64 65 6e 74 .......match.is.found.with.ident
174a0 69 66 69 65 72 73 2e 0d 0a 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20 20 6d 61 ifiers...........'''..........ma
174c0 74 63 68 65 73 20 3d 20 5b 5d 0d 0a 20 20 20 20 20 20 20 20 23 20 49 66 20 77 65 20 68 61 76 65 tches.=.[]..........#.If.we.have
174e0 20 61 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 20 69 64 20 74 68 65 6e 20 77 65 20 64 6f 20 .a.Barnes.&.Noble.id.then.we.do.
17500 6e 6f 74 20 6e 65 65 64 20 74 6f 20 66 69 72 65 20 61 20 22 73 65 61 72 63 68 22 0d 0a 20 20 20 not.need.to.fire.a."search".....
17520 20 20 20 20 20 23 20 61 74 20 62 61 72 6e 65 73 6e 6f 62 6c 65 2e 63 6f 6d 2e 20 49 6e 73 74 65 .....#.at.barnesnoble.com..Inste
17540 61 64 20 77 65 20 77 69 6c 6c 20 67 6f 20 73 74 72 61 69 67 68 74 20 74 6f 20 74 68 65 20 55 52 ad.we.will.go.straight.to.the.UR
17560 4c 20 66 6f 72 20 74 68 61 74 20 62 6f 6f 6b 2e 0d 0a 20 20 20 20 20 20 20 20 62 61 72 6e 65 73 L.for.that.book...........barnes
17580 5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 69 64 65 6e 74 69 66 69 65 72 73 2e 67 65 74 28 27 62 61 72 _noble_id.=.identifiers.get('bar
175a0 6e 65 73 6e 6f 62 6c 65 27 2c 20 4e 6f 6e 65 29 0d 0a 20 20 20 20 20 20 20 20 69 73 62 6e 20 3d nesnoble',.None)..........isbn.=
175c0 20 63 68 65 63 6b 5f 69 73 62 6e 28 69 64 65 6e 74 69 66 69 65 72 73 2e 67 65 74 28 27 69 73 62 .check_isbn(identifiers.get('isb
175e0 6e 27 2c 20 4e 6f 6e 65 29 29 0d 0a 20 20 20 20 20 20 20 20 62 72 20 3d 20 73 65 6c 66 2e 62 72 n',.None))..........br.=.self.br
17600 6f 77 73 65 72 0d 0a 20 20 20 20 20 20 20 20 69 66 20 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 owser..........if.barnes_noble_i
17620 64 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66 6f 28 27 46 6f 75 6e 64 20 d:..............log.info('Found.
17640 62 61 72 6e 65 73 20 6e 6f 62 6c 65 20 49 44 3a 20 25 72 27 20 25 20 62 61 72 6e 65 73 5f 6e 6f barnes.noble.ID:.%r'.%.barnes_no
17660 62 6c 65 5f 69 64 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 64 5f 75 72 6c 20 3d 20 73 65 ble_id)..............id_url.=.se
17680 6c 66 2e 66 6f 72 6d 61 74 5f 75 72 6c 5f 66 6f 72 5f 69 64 28 62 61 72 6e 65 73 5f 6e 6f 62 6c lf.format_url_for_id(barnes_nobl
176a0 65 5f 69 64 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66 6f 28 27 41 64 64 e_id)..............log.info('Add
176c0 69 6e 67 20 6d 61 74 63 68 3a 20 25 73 27 20 25 20 69 64 5f 75 72 6c 29 0d 0a 20 20 20 20 20 20 ing.match:.%s'.%.id_url)........
176e0 20 20 20 20 20 20 6d 61 74 63 68 65 73 2e 61 70 70 65 6e 64 28 69 64 5f 75 72 6c 29 0d 0a 20 20 ......matches.append(id_url)....
17700 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 42 61 72 6e 65 ......else:..............#.Barne
17720 73 20 26 20 4e 6f 62 6c 65 20 64 6f 65 73 6e 27 74 20 63 6f 70 65 20 76 65 72 79 20 77 65 6c 6c s.&.Noble.doesn't.cope.very.well
17740 20 77 69 74 68 20 6e 6f 6e 20 61 73 63 69 69 20 6e 61 6d 65 73 20 73 6f 20 63 6f 6e 76 65 72 74 .with.non.ascii.names.so.convert
17760 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 20 3d 20 67 65 74 5f 75 64 63 28 29 2e ..............title.=.get_udc().
17780 64 65 63 6f 64 65 28 74 69 74 6c 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f decode(title)..............autho
177a0 72 73 20 3d 20 5b 67 65 74 5f 75 64 63 28 29 2e 64 65 63 6f 64 65 28 61 29 20 66 6f 72 20 61 20 rs.=.[get_udc().decode(a).for.a.
177c0 69 6e 20 61 75 74 68 6f 72 73 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 71 75 65 72 79 20 3d in.authors]..............query.=
177e0 20 73 65 6c 66 2e 63 72 65 61 74 65 5f 71 75 65 72 79 28 6c 6f 67 2c 20 74 69 74 6c 65 3d 74 69 .self.create_query(log,.title=ti
17800 74 6c 65 2c 20 61 75 74 68 6f 72 73 3d 61 75 74 68 6f 72 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 tle,.authors=authors,...........
17820 20 20 20 20 20 20 20 20 20 20 20 69 64 65 6e 74 69 66 69 65 72 73 3d 69 64 65 6e 74 69 66 69 65 ...........identifiers=identifie
17840 72 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 71 75 65 72 79 20 69 73 20 4e 6f 6e rs)..............if.query.is.Non
17860 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 65 72 72 6f 72 28 27 49 e:..................log.error('I
17880 6e 73 75 66 66 69 63 69 65 6e 74 20 6d 65 74 61 64 61 74 61 20 74 6f 20 63 6f 6e 73 74 72 75 63 nsufficient.metadata.to.construc
178a0 74 20 71 75 65 72 79 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 t.query')..................retur
178c0 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 75 6c 74 69 70 6c 65 5f 72 65 73 75 6c 74 73 5f n..............multiple_results_
178e0 66 6f 75 6e 64 20 3d 20 46 61 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 0d found.=.False..............try:.
17900 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66 6f 28 27 51 75 65 72 79 .................log.info('Query
17920 69 6e 67 3a 20 25 73 27 20 25 20 71 75 65 72 79 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ing:.%s'.%.query)...............
17940 20 20 20 62 72 2e 73 65 74 5f 63 75 72 72 65 6e 74 5f 68 65 61 64 65 72 28 27 41 63 63 65 70 74 ...br.set_current_header('Accept
17960 27 2c 27 2a 2f 2a 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 2e 73 65 74 ','*/*')..................br.set
17980 5f 63 75 72 72 65 6e 74 5f 68 65 61 64 65 72 28 27 41 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 _current_header('Accept-Encoding
179a0 27 2c 27 67 7a 69 70 2c 20 64 65 66 6c 61 74 65 2c 20 62 72 27 29 0d 0a 20 20 20 20 20 20 20 20 ','gzip,.deflate,.br')..........
179c0 20 20 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 20 3d 20 62 72 2e 6f 70 65 6e 5f 6e 6f 76 69 73 ........response.=.br.open_novis
179e0 69 74 28 71 75 65 72 79 2c 20 74 69 6d 65 6f 75 74 3d 74 69 6d 65 6f 75 74 29 0d 0a 20 20 20 20 it(query,.timeout=timeout)......
17a00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 43 68 65 63 6b 20 77 68 65 74 68 65 72 20 77 65 20 67 ............#.Check.whether.we.g
17a20 6f 74 20 72 65 64 69 72 65 63 74 65 64 20 74 6f 20 61 20 62 6f 6f 6b 20 70 61 67 65 2e 0d 0a 20 ot.redirected.to.a.book.page....
17a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 49 66 20 77 65 20 64 69 64 2c 20 77 69 6c 6c ...............#.If.we.did,.will
17a60 20 75 73 65 20 74 68 65 20 75 72 6c 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 .use.the.url...................#
17a80 20 49 66 20 77 65 20 64 69 64 6e 27 74 20 74 68 65 6e 20 74 72 65 61 74 20 69 74 20 61 73 20 6e .If.we.didn't.then.treat.it.as.n
17aa0 6f 20 6d 61 74 63 68 65 73 20 6f 6e 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 0d 0a 20 20 20 o.matches.on.Barnes.&.Noble.....
17ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 61 74 69 6f 6e 20 3d 20 72 65 73 70 6f 6e 73 65 .............location.=.response
17ae0 2e 67 65 74 75 72 6c 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 49 66 20 .geturl()..................#.If.
17b00 6e 6f 74 20 61 6e 20 65 78 61 63 74 20 6d 61 74 63 68 20 77 65 20 63 61 6e 20 67 65 74 20 61 20 not.an.exact.match.we.can.get.a.
17b20 73 65 61 72 63 68 20 72 65 73 75 6c 74 73 20 70 61 67 65 20 62 61 63 6b 0d 0a 20 20 20 20 20 20 search.results.page.back........
17b40 20 20 20 20 20 20 20 20 20 20 6d 75 6c 74 69 70 6c 65 5f 72 65 73 75 6c 74 73 5f 66 6f 75 6e 64 ..........multiple_results_found
17b60 20 3d 20 6c 6f 63 61 74 69 6f 6e 2e 66 69 6e 64 28 27 2f 73 2f 27 29 20 3e 20 30 0d 0a 20 20 20 .=.location.find('/s/').>.0.....
17b80 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 6f 63 61 74 69 6f 6e 2e 66 69 6e 64 28 27 6e .............if.location.find('n
17ba0 6f 72 65 73 75 6c 74 73 27 29 20 3d 3d 20 2d 31 20 61 6e 64 20 6e 6f 74 20 6d 75 6c 74 69 70 6c oresults').==.-1.and.not.multipl
17bc0 65 5f 72 65 73 75 6c 74 73 5f 66 6f 75 6e 64 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e_results_found:................
17be0 20 20 20 20 20 20 23 20 54 68 69 73 20 73 74 69 6c 6c 20 6d 69 67 68 74 20 6e 6f 74 20 62 65 20 ......#.This.still.might.not.be.
17c00 61 20 73 70 65 63 69 66 69 63 20 62 6f 6f 6b 20 70 61 67 65 0d 0a 20 20 20 20 20 20 20 20 20 20 a.specific.book.page............
17c20 20 20 20 20 20 20 20 20 20 20 23 20 65 2e 67 2e 20 69 66 20 6e 6f 20 49 53 42 4e 20 6d 61 74 63 ..........#.e.g..if.no.ISBN.matc
17c40 68 2c 20 42 26 4e 20 63 61 6e 20 62 6f 75 6e 63 65 20 62 61 63 6b 20 74 6f 20 74 68 65 20 68 6f h,.B&N.can.bounce.back.to.the.ho
17c60 6d 65 20 70 61 67 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 me.page.......................if
17c80 20 6c 65 6e 28 6c 6f 63 61 74 69 6f 6e 29 20 3e 20 6c 65 6e 28 42 61 72 6e 65 73 4e 6f 62 6c 65 .len(location).>.len(BarnesNoble
17ca0 2e 42 52 4f 57 53 45 5f 55 52 4c 29 20 2b 20 32 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .BROWSE_URL).+.2:...............
17cc0 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66 6f 28 27 6d 61 74 63 68 20 6c 6f 63 61 74 ...........log.info('match.locat
17ce0 69 6f 6e 3a 20 25 72 27 20 25 20 6c 6f 63 61 74 69 6f 6e 29 0d 0a 20 20 20 20 20 20 20 20 20 20 ion:.%r'.%.location)............
17d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 65 73 2e 61 70 70 65 6e 64 28 6c 6f 63 ..............matches.append(loc
17d20 61 74 69 6f 6e 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 45 78 63 65 70 ation)..............except.Excep
17d40 74 69 6f 6e 20 61 73 20 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 tion.as.e:..................if.i
17d60 73 62 6e 20 61 6e 64 20 63 61 6c 6c 61 62 6c 65 28 67 65 74 61 74 74 72 28 65 2c 20 27 67 65 74 sbn.and.callable(getattr(e,.'get
17d80 63 6f 64 65 27 2c 20 4e 6f 6e 65 29 29 20 61 6e 64 20 65 2e 67 65 74 63 6f 64 65 28 29 20 3d 3d code',.None)).and.e.getcode().==
17da0 20 34 30 34 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 57 65 20 .404:......................#.We.
17dc0 64 69 64 20 61 20 6c 6f 6f 6b 75 70 20 62 79 20 49 53 42 4e 20 62 75 74 20 64 69 64 20 6e 6f 74 did.a.lookup.by.ISBN.but.did.not
17de0 20 66 69 6e 64 20 61 20 6d 61 74 63 68 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .find.a.match...................
17e00 20 20 20 23 20 57 65 20 77 69 6c 6c 20 66 61 6c 6c 62 61 63 6b 20 74 6f 20 64 6f 69 6e 67 20 61 ...#.We.will.fallback.to.doing.a
17e20 20 6c 6f 6f 6b 75 70 20 62 79 20 74 69 74 6c 65 20 61 75 74 68 6f 72 0d 0a 20 20 20 20 20 20 20 .lookup.by.title.author.........
17e40 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66 6f 28 27 46 61 69 6c 65 64 20 74 6f .............log.info('Failed.to
17e60 20 66 69 6e 64 20 6d 61 74 63 68 20 66 6f 72 20 49 53 42 4e 3a 20 25 73 27 20 25 20 69 73 62 6e .find.match.for.ISBN:.%s'.%.isbn
17e80 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 69 66 20 63 61 6c 6c 61 62 6c 65 )..................elif.callable
17ea0 28 67 65 74 61 74 74 72 28 65 2c 20 27 67 65 74 63 6f 64 65 27 2c 20 4e 6f 6e 65 29 29 20 61 6e (getattr(e,.'getcode',.None)).an
17ec0 64 20 65 2e 67 65 74 63 6f 64 65 28 29 20 3d 3d 20 34 30 34 3a 0d 0a 20 20 20 20 20 20 20 20 20 d.e.getcode().==.404:...........
17ee0 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 65 72 72 6f 72 28 27 4e 6f 20 6d 61 74 63 68 65 73 ...........log.error('No.matches
17f00 20 66 6f 72 20 69 64 65 6e 74 69 66 79 20 71 75 65 72 79 27 29 0d 0a 20 20 20 20 20 20 20 20 20 .for.identify.query')...........
17f20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 73 5f 75 6e 69 63 6f 64 65 28 65 29 0d ...........return.as_unicode(e).
17f40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 .................else:..........
17f60 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 20 3d 20 27 46 61 69 6c 65 64 20 74 6f 20 6d 61 6b ............err.=.'Failed.to.mak
17f80 65 20 69 64 65 6e 74 69 66 79 20 71 75 65 72 79 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 e.identify.query'...............
17fa0 20 20 20 20 20 20 20 6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 65 72 72 29 0d 0a 20 20 20 20 20 .......log.exception(err).......
17fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 73 5f 75 6e 69 63 6f 64 65 ...............return.as_unicode
17fe0 28 65 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6d 75 6c 74 69 70 6c 65 5f 72 (e)................if.multiple_r
18000 65 73 75 6c 74 73 5f 66 6f 75 6e 64 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 esults_found:..................t
18020 72 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66 ry:......................log.inf
18040 6f 28 27 50 61 72 73 69 6e 67 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 73 27 29 0d 0a 20 20 20 o('Parsing.search.results').....
18060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 77 20 3d 20 72 65 73 70 6f 6e 73 65 2e .................raw.=.response.
18080 72 65 61 64 28 29 2e 73 74 72 69 70 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 read().strip()..................
180a0 20 20 20 20 23 6f 70 65 6e 28 27 45 3a 5c 5c 73 65 61 72 63 68 5f 72 65 73 75 6c 74 73 2e 68 74 ....#open('E:\\search_results.ht
180c0 6d 6c 27 2c 20 27 77 62 27 29 2e 77 72 69 74 65 28 72 61 77 29 0d 0a 20 20 20 20 20 20 20 20 20 ml',.'wb').write(raw)...........
180e0 20 20 20 20 20 20 20 20 20 20 20 72 61 77 20 3d 20 72 61 77 2e 64 65 63 6f 64 65 28 27 75 74 66 ...........raw.=.raw.decode('utf
18100 2d 38 27 2c 20 65 72 72 6f 72 73 3d 27 72 65 70 6c 61 63 65 27 29 2e 72 65 70 6c 61 63 65 28 27 -8',.errors='replace').replace('
18120 26 68 65 6c 6c 69 70 3b 27 2c 27 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &hellip;','')...................
18140 20 20 20 69 66 20 6e 6f 74 20 72 61 77 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...if.not.raw:..................
18160 20 20 20 20 20 20 20 20 6c 6f 67 2e 65 72 72 6f 72 28 27 46 61 69 6c 65 64 20 74 6f 20 67 65 74 ........log.error('Failed.to.get
18180 20 72 61 77 20 72 65 73 75 6c 74 20 66 6f 72 20 71 75 65 72 79 27 29 0d 0a 20 20 20 20 20 20 20 .raw.result.for.query').........
181a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d 0a 20 20 20 20 20 20 20 .................return.........
181c0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 20 3d 20 66 72 6f 6d 73 74 72 69 6e 67 28 63 .............root.=.fromstring(c
181e0 6c 65 61 6e 5f 61 73 63 69 69 5f 63 68 61 72 73 28 72 61 77 29 29 0d 0a 20 20 20 20 20 20 20 20 lean_ascii_chars(raw))..........
18200 20 20 20 20 20 20 20 20 20 20 20 20 23 20 4e 6f 77 20 67 72 61 62 20 74 68 65 20 6d 61 74 63 68 ............#.Now.grab.the.match
18220 65 73 20 66 72 6f 6d 20 74 68 65 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 73 2c 20 70 72 6f 76 es.from.the.search.results,.prov
18240 69 64 65 64 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 ided.the......................#.
18260 74 69 74 6c 65 20 61 6e 64 20 61 75 74 68 6f 72 73 20 61 70 70 65 61 72 20 74 6f 20 62 65 20 66 title.and.authors.appear.to.be.f
18280 6f 72 20 74 68 65 20 73 61 6d 65 20 62 6f 6f 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 or.the.same.book................
182a0 20 20 20 20 20 20 73 65 6c 66 2e 5f 70 61 72 73 65 5f 73 65 61 72 63 68 5f 72 65 73 75 6c 74 73 ......self._parse_search_results
182c0 28 6c 6f 67 2c 20 74 69 74 6c 65 2c 20 61 75 74 68 6f 72 73 2c 20 72 6f 6f 74 2c 20 6d 61 74 63 (log,.title,.authors,.root,.matc
182e0 68 65 73 2c 20 74 69 6d 65 6f 75 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 hes,.timeout)..................e
18300 78 63 65 70 74 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 20 xcept:......................msg.
18320 3d 20 27 46 61 69 6c 65 64 20 74 6f 20 70 61 72 73 65 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c =.'Failed.to.parse.Barnes.&.Nobl
18340 65 20 70 61 67 65 20 66 6f 72 20 71 75 65 72 79 27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 e.page.for.query'...............
18360 20 20 20 20 20 20 20 6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 6d 73 67 29 0d 0a 20 20 20 20 20 .......log.exception(msg).......
18380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 73 67 0d 0a 0d 0a 20 20 20 ...............return.msg.......
183a0 20 20 20 20 20 69 66 20 61 62 6f 72 74 2e 69 73 5f 73 65 74 28 29 3a 0d 0a 20 20 20 20 20 20 20 .....if.abort.is_set():.........
183c0 20 20 20 20 20 72 65 74 75 72 6e 0d 0a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 6d 61 .....return............if.not.ma
183e0 74 63 68 65 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 62 61 72 6e 65 73 5f 6e tches:..............if.(barnes_n
18400 6f 62 6c 65 5f 69 64 20 6f 72 20 69 73 62 6e 29 20 61 6e 64 20 74 69 74 6c 65 20 61 6e 64 20 61 oble_id.or.isbn).and.title.and.a
18420 75 74 68 6f 72 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66 uthors:..................log.inf
18440 6f 28 27 4e 6f 20 6d 61 74 63 68 65 73 20 66 6f 75 6e 64 20 77 69 74 68 20 69 64 65 6e 74 69 66 o('No.matches.found.with.identif
18460 69 65 72 73 2c 20 72 65 74 72 79 69 6e 67 20 75 73 69 6e 67 20 6f 6e 6c 79 27 0d 0a 20 20 20 20 iers,.retrying.using.only'......
18480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 20 74 69 74 6c 65 20 61 6e 64 20 ....................'.title.and.
184a0 61 75 74 68 6f 72 73 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 authors')..................retur
184c0 6e 20 73 65 6c 66 2e 69 64 65 6e 74 69 66 79 28 6c 6f 67 2c 20 72 65 73 75 6c 74 5f 71 75 65 75 n.self.identify(log,.result_queu
184e0 65 2c 20 61 62 6f 72 74 2c 20 74 69 74 6c 65 3d 74 69 74 6c 65 2c 0d 0a 20 20 20 20 20 20 20 20 e,.abort,.title=title,..........
18500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 3d 61 75 74 68 6f 72 73 2c ................authors=authors,
18520 20 74 69 6d 65 6f 75 74 3d 74 69 6d 65 6f 75 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c .timeout=timeout)..............l
18540 6f 67 2e 65 72 72 6f 72 28 27 4e 6f 20 6d 61 74 63 68 65 73 20 66 6f 75 6e 64 20 77 69 74 68 20 og.error('No.matches.found.with.
18560 71 75 65 72 79 3a 20 25 72 27 20 25 20 71 75 65 72 79 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 query:.%r'.%.query).............
18580 20 72 65 74 75 72 6e 0d 0a 0d 0a 20 20 20 20 20 20 20 20 66 72 6f 6d 20 63 61 6c 69 62 72 65 5f .return............from.calibre_
185a0 70 6c 75 67 69 6e 73 2e 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 2e 77 6f 72 6b 65 72 20 69 6d 70 6f plugins.barnes_noble.worker.impo
185c0 72 74 20 57 6f 72 6b 65 72 0d 0a 20 20 20 20 20 20 20 20 77 6f 72 6b 65 72 73 20 3d 20 5b 57 6f rt.Worker..........workers.=.[Wo
185e0 72 6b 65 72 28 75 72 6c 2c 20 72 65 73 75 6c 74 5f 71 75 65 75 65 2c 20 62 72 2c 20 6c 6f 67 2c rker(url,.result_queue,.br,.log,
18600 20 69 2c 20 73 65 6c 66 29 20 66 6f 72 20 69 2c 20 75 72 6c 20 69 6e 0d 0a 20 20 20 20 20 20 20 .i,.self).for.i,.url.in.........
18620 20 20 20 20 20 20 20 20 20 65 6e 75 6d 65 72 61 74 65 28 6d 61 74 63 68 65 73 29 5d 0d 0a 0d 0a .........enumerate(matches)]....
18640 20 20 20 20 20 20 20 20 66 6f 72 20 77 20 69 6e 20 77 6f 72 6b 65 72 73 3a 0d 0a 20 20 20 20 20 ........for.w.in.workers:.......
18660 20 20 20 20 20 20 20 77 2e 73 74 61 72 74 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 .......w.start()..............#.
18680 44 6f 6e 27 74 20 73 65 6e 64 20 61 6c 6c 20 72 65 71 75 65 73 74 73 20 61 74 20 74 68 65 20 73 Don't.send.all.requests.at.the.s
186a0 61 6d 65 20 74 69 6d 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69 6d 65 2e 73 6c 65 65 70 ame.time..............time.sleep
186c0 28 30 2e 31 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 6e 6f 74 20 61 62 6f 72 74 (0.1)............while.not.abort
186e0 2e 69 73 5f 73 65 74 28 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 5f 77 6f 72 6b 65 72 .is_set():..............a_worker
18700 5f 69 73 5f 61 6c 69 76 65 20 3d 20 46 61 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 _is_alive.=.False..............f
18720 6f 72 20 77 20 69 6e 20 77 6f 72 6b 65 72 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 or.w.in.workers:................
18740 20 20 77 2e 6a 6f 69 6e 28 30 2e 32 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 ..w.join(0.2)..................i
18760 66 20 61 62 6f 72 74 2e 69 73 5f 73 65 74 28 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 f.abort.is_set():...............
18780 20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 .......break..................if
187a0 20 77 2e 69 73 5f 61 6c 69 76 65 28 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .w.is_alive():..................
187c0 20 20 20 20 61 5f 77 6f 72 6b 65 72 5f 69 73 5f 61 6c 69 76 65 20 3d 20 54 72 75 65 0d 0a 20 20 ....a_worker_is_alive.=.True....
187e0 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 61 5f 77 6f 72 6b 65 72 5f 69 73 5f 61 6c 69 ..........if.not.a_worker_is_ali
18800 76 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 0d 0a 20 20 ve:..................break......
18820 20 20 20 20 20 20 72 65 74 75 72 6e 20 4e 6f 6e 65 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 70 61 ......return.None........def._pa
18840 72 73 65 5f 73 65 61 72 63 68 5f 72 65 73 75 6c 74 73 28 73 65 6c 66 2c 20 6c 6f 67 2c 20 6f 72 rse_search_results(self,.log,.or
18860 69 67 5f 74 69 74 6c 65 2c 20 6f 72 69 67 5f 61 75 74 68 6f 72 73 2c 20 72 6f 6f 74 2c 20 6d 61 ig_title,.orig_authors,.root,.ma
18880 74 63 68 65 73 2c 20 74 69 6d 65 6f 75 74 29 3a 0d 0a 20 20 20 20 20 20 20 20 66 6f 72 20 65 20 tches,.timeout):..........for.e.
188a0 69 6e 20 72 6f 6f 74 2e 69 74 65 72 28 22 73 70 61 6e 22 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 in.root.iter("span"):...........
188c0 20 20 20 69 66 20 22 64 69 73 70 6c 61 79 3a 6e 6f 6e 65 22 20 69 6e 20 65 2e 67 65 74 28 22 73 ...if."display:none".in.e.get("s
188e0 74 79 6c 65 22 2c 20 22 22 29 2e 72 65 70 6c 61 63 65 28 22 20 22 2c 20 22 22 29 3a 0d 0a 20 20 tyle",."").replace(".",.""):....
18900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 2e 74 65 78 74 20 3d 20 22 22 0d 0a 0d 0a 20 20 20 ..............e.text.=."".......
18920 20 20 20 20 20 55 4e 53 55 50 50 4f 52 54 45 44 5f 46 4f 52 4d 41 54 53 20 3d 20 5b 27 61 75 64 .....UNSUPPORTED_FORMATS.=.['aud
18940 69 6f 62 6f 6f 6b 27 2c 20 27 6f 74 68 65 72 20 66 6f 72 6d 61 74 27 2c 20 27 63 64 27 2c 20 27 iobook',.'other.format',.'cd',.'
18960 69 74 65 6d 27 2c 20 27 73 65 65 20 61 6c 6c 20 66 6f 72 6d 61 74 73 20 26 20 65 64 69 74 69 6f item',.'see.all.formats.&.editio
18980 6e 73 27 5d 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 73 20 3d 20 72 6f 6f 74 2e 78 70 61 ns']..........results.=.root.xpa
189a0 74 68 28 27 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 20 22 72 65 73 75 th('//div[contains(@class,."resu
189c0 6c 74 73 4c 69 73 74 43 6f 6e 74 61 69 6e 65 72 22 29 5d 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e ltsListContainer")]//div[contain
189e0 73 28 40 63 6c 61 73 73 2c 20 22 70 72 6f 64 75 63 74 2d 69 6e 66 6f 2d 76 69 65 77 22 29 5d 27 s(@class,."product-info-view")]'
18a00 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 72 65 73 75 6c 74 73 3a 0d 0a 20 20 20 20 )..........if.not.results:......
18a20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 73 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f ........results.=.root.xpath('//
18a40 6f 6c 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 20 22 72 65 73 75 6c 74 2d 73 65 74 22 ol[contains(@class,."result-set"
18a60 29 5d 2f 6c 69 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 20 22 72 65 73 75 6c 74 22 29 )]/li[contains(@class,."result")
18a80 5d 27 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 72 65 73 75 6c 74 73 3a 0d 0a 20 20 ]')..........if.not.results:....
18aa0 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66 6f 28 27 46 4f 55 4e 44 20 4e 4f 20 52 45 53 ..........log.info('FOUND.NO.RES
18ac0 55 4c 54 53 3a 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d 0a 0d 0a 20 ULTS:')..............return.....
18ae0 20 20 20 20 20 20 20 64 65 66 20 69 73 6d 61 74 63 68 28 74 69 74 6c 65 2c 20 61 75 74 68 6f 72 .......def.ismatch(title,.author
18b00 73 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 20 3d 20 6c 6f 77 65 72 s):..............authors.=.lower
18b20 28 27 20 27 2e 6a 6f 69 6e 28 61 75 74 68 6f 72 73 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ('.'.join(authors)).............
18b40 20 74 69 74 6c 65 20 3d 20 6c 6f 77 65 72 28 74 69 74 6c 65 29 0d 0a 20 20 20 20 20 20 20 20 20 .title.=.lower(title)...........
18b60 20 20 20 6d 61 74 63 68 20 3d 20 6e 6f 74 20 74 69 74 6c 65 5f 74 6f 6b 65 6e 73 0d 0a 20 20 20 ...match.=.not.title_tokens.....
18b80 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 20 69 6e 20 74 69 74 6c 65 5f 74 6f 6b 65 6e 73 3a 0d .........for.t.in.title_tokens:.
18ba0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 6f 77 65 72 28 74 29 20 69 6e 20 .................if.lower(t).in.
18bc0 74 69 74 6c 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 title:......................matc
18be0 68 20 3d 20 54 72 75 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 h.=.True......................br
18c00 65 61 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 6d 61 74 63 68 20 3d 20 6e 6f 74 20 61 75 eak..............amatch.=.not.au
18c20 74 68 6f 72 5f 74 6f 6b 65 6e 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 61 20 69 thor_tokens..............for.a.i
18c40 6e 20 61 75 74 68 6f 72 5f 74 6f 6b 65 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.author_tokens:................
18c60 20 20 69 66 20 6c 6f 77 65 72 28 61 29 20 69 6e 20 61 75 74 68 6f 72 73 3a 0d 0a 20 20 20 20 20 ..if.lower(a).in.authors:.......
18c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6d 61 74 63 68 20 3d 20 54 72 75 65 0d 0a 20 20 ...............amatch.=.True....
18ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 20 20 20 ..................break.........
18cc0 20 20 20 20 20 69 66 20 6e 6f 74 20 61 75 74 68 6f 72 5f 74 6f 6b 65 6e 73 3a 20 61 6d 61 74 63 .....if.not.author_tokens:.amatc
18ce0 68 20 3d 20 54 72 75 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 61 74 h.=.True..............return.mat
18d00 63 68 20 61 6e 64 20 61 6d 61 74 63 68 0d 0a 0d 0a 20 20 20 20 20 20 20 20 69 6d 70 6f 72 74 20 ch.and.amatch............import.
18d20 63 61 6c 69 62 72 65 5f 70 6c 75 67 69 6e 73 2e 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 2e 63 6f 6e calibre_plugins.barnes_noble.con
18d40 66 69 67 20 61 73 20 63 66 67 0d 0a 20 20 20 20 20 20 20 20 6d 61 78 5f 72 65 73 75 6c 74 73 20 fig.as.cfg..........max_results.
18d60 3d 20 63 66 67 2e 70 6c 75 67 69 6e 5f 70 72 65 66 73 5b 63 66 67 2e 53 54 4f 52 45 5f 4e 41 4d =.cfg.plugin_prefs[cfg.STORE_NAM
18d80 45 5d 5b 63 66 67 2e 4b 45 59 5f 4d 41 58 5f 44 4f 57 4e 4c 4f 41 44 53 5d 0d 0a 20 20 20 20 20 E][cfg.KEY_MAX_DOWNLOADS].......
18da0 20 20 20 74 69 74 6c 65 5f 75 72 6c 5f 6d 61 70 20 3d 20 4f 72 64 65 72 65 64 44 69 63 74 28 29 ...title_url_map.=.OrderedDict()
18dc0 0d 0a 20 20 20 20 20 20 20 20 66 6f 72 20 72 65 73 75 6c 74 20 69 6e 20 72 65 73 75 6c 74 73 3a ..........for.result.in.results:
18de0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 6c 6f 67 2e 69 6e 66 6f 28 27 4c 6f 6f 6b 69 6e 67 ..............#log.info('Looking
18e00 20 61 74 20 72 65 73 75 6c 74 3a 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 74 69 74 6c .at.result:')..............#titl
18e20 65 20 3d 20 27 27 2e 6a 6f 69 6e 28 72 65 73 75 6c 74 2e 78 70 61 74 68 28 27 2e 2f 2f 69 6d 67 e.=.''.join(result.xpath('.//img
18e40 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 20 22 70 72 6f 64 75 63 74 2d 69 6d 61 67 65 [contains(@class,."product-image
18e60 22 29 5d 2f 40 61 6c 74 27 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 20 3d ")]/@alt'))..............title.=
18e80 20 72 65 73 75 6c 74 2e 78 70 61 74 68 28 27 2e 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28 40 .result.xpath('.//div[contains(@
18ea0 63 6c 61 73 73 2c 20 22 70 72 6f 64 75 63 74 2d 73 68 65 6c 66 2d 74 69 74 6c 65 22 29 5d 27 29 class,."product-shelf-title")]')
18ec0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 74 69 74 6c 65 3a 0d 0a 20 20 20 ..............if.not.title:.....
18ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 23 6c 6f 67 2e 69 6e 66 6f 28 27 43 6f 75 6c 64 20 6e 6f .............#log.info('Could.no
18f00 74 20 66 69 6e 64 20 74 69 74 6c 65 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.find.title')..................
18f20 63 6f 6e 74 69 6e 75 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 20 3d 20 74 69 continue..............title.=.ti
18f40 74 6c 65 5b 30 5d 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 29 0d 0a 20 tle[0].text_content().strip()...
18f60 20 20 20 20 20 20 20 20 20 20 20 23 20 53 74 72 69 70 20 6f 66 66 20 61 6e 79 20 73 65 72 69 65 ...........#.Strip.off.any.serie
18f80 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 74 69 74 6c 65 0d 0a 20 20 s.information.from.the.title....
18fa0 20 20 20 20 20 20 20 20 20 20 23 6c 6f 67 2e 69 6e 66 6f 28 27 46 4f 55 4e 44 20 54 49 54 4c 45 ..........#log.info('FOUND.TITLE
18fc0 3a 27 2c 74 69 74 6c 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 27 28 27 20 69 6e :',title)..............if.'('.in
18fe0 20 74 69 74 6c 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 6c 6f 67 2e 69 6e .title:..................#log.in
19000 66 6f 28 27 53 74 72 69 70 70 69 6e 67 20 6f 66 66 20 73 65 72 69 65 73 28 27 29 0d 0a 20 20 20 fo('Stripping.off.series(').....
19020 20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 20 3d 20 74 69 74 6c 65 2e 72 70 61 72 74 .............title.=.title.rpart
19040 69 74 69 6f 6e 28 27 28 27 29 5b 30 5d 2e 73 74 72 69 70 28 29 0d 0a 20 20 20 20 20 20 20 20 20 ition('(')[0].strip()...........
19060 20 20 20 23 20 41 6c 73 6f 20 73 74 72 69 70 20 6f 66 66 20 61 6e 79 20 4e 4f 4f 4b 20 42 6f 6f ...#.Also.strip.off.any.NOOK.Boo
19080 6b 20 73 74 75 66 66 20 66 72 6f 6d 20 74 68 65 20 74 69 74 6c 65 0d 0a 20 20 20 20 20 20 20 20 k.stuff.from.the.title..........
190a0 20 20 20 20 74 69 74 6c 65 20 3d 20 74 69 74 6c 65 2e 72 65 70 6c 61 63 65 28 27 5b 4e 4f 4f 4b ....title.=.title.replace('[NOOK
190c0 20 42 6f 6f 6b 5d 27 2c 20 27 27 29 2e 73 74 72 69 70 28 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 .Book]',.'').strip()............
190e0 20 20 20 20 23 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 3d 20 72 65 73 75 6c 74 2e 78 70 61 74 68 ....#contributors.=.result.xpath
19100 28 27 2e 2f 2f 75 6c 5b 40 63 6c 61 73 73 3d 22 63 6f 6e 74 72 69 62 75 74 6f 72 73 22 5d 2f 2f ('.//ul[@class="contributors"]//
19120 6c 69 5b 70 6f 73 69 74 69 6f 6e 28 29 3e 31 5d 2f 2f 61 27 29 0d 0a 20 20 20 20 20 20 20 20 20 li[position()>1]//a')...........
19140 20 20 20 23 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 3d 20 72 65 73 75 6c 74 2e 78 70 61 74 68 28 ...#contributors.=.result.xpath(
19160 27 2e 2f 2f 61 5b 40 63 6c 61 73 73 3d 22 63 6f 6e 74 72 69 62 75 74 6f 72 22 5d 27 29 0d 0a 20 './/a[@class="contributor"]')...
19180 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 3d 20 72 65 73 75 6c 74 ...........contributors.=.result
191a0 2e 78 70 61 74 68 28 27 2e 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 20 .xpath('.//div[contains(@class,.
191c0 22 70 72 6f 64 75 63 74 2d 73 68 65 6c 66 2d 61 75 74 68 6f 72 22 29 5d 2f 61 27 29 0d 0a 20 20 "product-shelf-author")]/a')....
191e0 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 20 3d 20 5b 5d 0d 0a 20 20 20 20 20 20 20 20 ..........authors.=.[]..........
19200 20 20 20 20 66 6f 72 20 63 20 69 6e 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 3a 0d 0a 20 20 20 20 ....for.c.in.contributors:......
19220 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 20 3d 20 63 2e 74 65 78 74 5f 63 6f 6e 74 ............author.=.c.text_cont
19240 65 6e 74 28 29 2e 73 70 6c 69 74 28 27 2c 27 29 5b 30 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ent().split(',')[0].............
19260 20 20 20 20 20 23 6c 6f 67 2e 69 6e 66 6f 28 27 46 6f 75 6e 64 20 61 75 74 68 6f 72 3a 27 2c 61 .....#log.info('Found.author:',a
19280 75 74 68 6f 72 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 61 75 74 68 6f uthor)..................if.autho
192a0 72 2e 73 74 72 69 70 28 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.strip():......................
192c0 61 75 74 68 6f 72 73 2e 61 70 70 65 6e 64 28 61 75 74 68 6f 72 2e 73 74 72 69 70 28 29 29 0d 0a authors.append(author.strip())..
192e0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 6c 6f 67 2e 69 6e 66 6f 28 27 4c 6f 6f 6b 69 6e 67 ..............#log.info('Looking
19300 20 61 74 20 74 6f 6b 65 6e 73 3a 20 25 72 20 25 72 27 25 20 74 69 74 6c 65 5f 74 6f 6b 65 6e 73 .at.tokens:.%r.%r'%.title_tokens
19320 2c 20 61 75 74 68 6f 72 5f 74 6f 6b 65 6e 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69 ,.author_tokens)..............ti
19340 74 6c 65 5f 74 6f 6b 65 6e 73 20 3d 20 6c 69 73 74 28 73 65 6c 66 2e 67 65 74 5f 74 69 74 6c 65 tle_tokens.=.list(self.get_title
19360 5f 74 6f 6b 65 6e 73 28 6f 72 69 67 5f 74 69 74 6c 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 _tokens(orig_title))............
19380 20 20 61 75 74 68 6f 72 5f 74 6f 6b 65 6e 73 20 3d 20 6c 69 73 74 28 73 65 6c 66 2e 67 65 74 5f ..author_tokens.=.list(self.get_
193a0 61 75 74 68 6f 72 5f 74 6f 6b 65 6e 73 28 6f 72 69 67 5f 61 75 74 68 6f 72 73 29 29 0d 0a 20 20 author_tokens(orig_authors))....
193c0 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 69 73 6d 61 74 63 68 28 74 69 74 6c 65 2c 20 ..........if.not.ismatch(title,.
193e0 61 75 74 68 6f 72 73 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 authors):..................log.i
19400 6e 66 6f 28 27 52 65 6a 65 63 74 69 6e 67 20 61 73 20 6e 6f 74 20 63 6c 6f 73 65 20 65 6e 6f 75 nfo('Rejecting.as.not.close.enou
19420 67 68 20 6d 61 74 63 68 3a 20 25 73 20 62 79 20 25 73 27 20 25 20 28 74 69 74 6c 65 2c 20 27 20 gh.match:.%s.by.%s'.%.(title,.'.
19440 26 20 27 2e 6a 6f 69 6e 28 61 75 74 68 6f 72 73 29 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 &.'.join(authors))).............
19460 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 .....continue...................
19480 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66 6f 28 27 43 6f 6e 73 69 64 65 72 69 6e 67 20 73 .........log.info('Considering.s
194a0 65 61 72 63 68 20 72 65 73 75 6c 74 3a 20 25 73 20 62 79 20 25 73 27 20 25 20 28 74 69 74 6c 65 earch.result:.%s.by.%s'.%.(title
194c0 2c 20 27 20 26 20 27 2e 6a 6f 69 6e 28 61 75 74 68 6f 72 73 29 29 29 0d 0a 0d 0a 20 20 20 20 20 ,.'.&.'.join(authors))).........
194e0 20 20 20 20 20 20 20 23 20 56 61 6c 69 64 61 74 65 20 74 68 61 74 20 74 68 65 20 66 6f 72 6d 61 .......#.Validate.that.the.forma
19500 74 20 69 73 20 6f 6e 65 20 77 65 20 61 72 65 20 69 6e 74 65 72 65 73 74 65 64 20 69 6e 0d 0a 20 t.is.one.we.are.interested.in...
19520 20 20 20 20 20 20 20 20 20 20 20 23 66 6f 72 6d 61 74 5f 64 65 74 61 69 6c 73 20 3d 20 72 65 73 ...........#format_details.=.res
19540 75 6c 74 2e 78 70 61 74 68 28 27 2e 2f 2f 73 70 61 6e 5b 40 63 6c 61 73 73 3d 22 66 6f 72 6d 61 ult.xpath('.//span[@class="forma
19560 74 22 5d 2f 74 65 78 74 28 29 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 6d 61 74 t"]/text()')..............format
19580 5f 64 65 74 61 69 6c 73 20 3d 20 72 65 73 75 6c 74 2e 78 70 61 74 68 28 27 28 2e 2f 2f 64 69 76 _details.=.result.xpath('(.//div
195a0 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 20 22 70 72 6f 64 75 63 74 2d 73 68 65 6c 66 [contains(@class,."product-shelf
195c0 2d 70 72 69 63 69 6e 67 22 29 5d 2f 2f 73 70 61 6e 29 5b 31 5d 27 29 20 23 20 67 72 69 64 56 69 -pricing")]//span)[1]').#.gridVi
195e0 65 77 20 66 6f 72 6d 61 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 66 6f ew.format..............if.not.fo
19600 72 6d 61 74 5f 64 65 74 61 69 6c 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 rmat_details:..................f
19620 6f 72 6d 61 74 5f 64 65 74 61 69 6c 73 20 3d 20 72 65 73 75 6c 74 2e 78 70 61 74 68 28 27 28 2e ormat_details.=.result.xpath('(.
19640 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 20 22 70 72 6f 64 75 63 74 2d //div[contains(@class,."product-
19660 73 68 65 6c 66 2d 70 72 69 63 69 6e 67 22 29 5d 2f 2f 61 29 5b 31 5d 27 29 20 23 20 6c 69 73 74 shelf-pricing")]//a)[1]').#.list
19680 56 69 65 77 20 66 6f 72 6d 61 74 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 66 6f 72 6d View.format................#form
196a0 61 74 5f 64 65 74 61 69 6c 73 20 3d 20 72 65 73 75 6c 74 2e 78 70 61 74 68 28 27 2e 2f 2f 75 6c at_details.=.result.xpath('.//ul
196c0 5b 40 63 6c 61 73 73 3d 22 66 6f 72 6d 61 74 73 22 5d 2f 6c 69 2f 61 2f 74 65 78 74 28 29 27 29 [@class="formats"]/li/a/text()')
196e0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 69 64 5f 66 6f 72 6d 61 74 20 3d 20 46 61 6c ..............valid_format.=.Fal
19700 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 66 6f 72 6d 61 74 20 69 6e 20 66 6f se..............for.format.in.fo
19720 72 6d 61 74 5f 64 65 74 61 69 6c 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 rmat_details:..................f
19740 6f 72 6d 61 74 5f 74 65 78 74 20 3d 20 66 6f 72 6d 61 74 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 ormat_text.=.format.text_content
19760 28 29 2e 73 74 72 69 70 28 29 2e 6c 6f 77 65 72 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ().strip().lower()..............
19780 20 20 20 20 23 6c 6f 67 2e 69 6e 66 6f 28 27 2a 2a 46 6f 75 6e 64 20 66 6f 72 6d 61 74 3a 20 25 ....#log.info('**Found.format:.%
197a0 73 27 25 66 6f 72 6d 61 74 5f 74 65 78 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s'%format_text).................
197c0 20 69 66 20 66 6f 72 6d 61 74 5f 74 65 78 74 20 6e 6f 74 20 69 6e 20 55 4e 53 55 50 50 4f 52 54 .if.format_text.not.in.UNSUPPORT
197e0 45 44 5f 46 4f 52 4d 41 54 53 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ED_FORMATS:.....................
19800 20 76 61 6c 69 64 5f 66 6f 72 6d 61 74 20 3d 20 54 72 75 65 0d 0a 20 20 20 20 20 20 20 20 20 20 .valid_format.=.True............
19820 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 ..........break..............res
19840 75 6c 74 5f 75 72 6c 20 3d 20 4e 6f 6e 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 76 ult_url.=.None..............if.v
19860 61 6c 69 64 5f 66 6f 72 6d 61 74 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 alid_format:..................#.
19880 47 65 74 20 74 68 65 20 64 65 74 61 69 6c 65 64 20 75 72 6c 20 74 6f 20 71 75 65 72 79 20 6e 65 Get.the.detailed.url.to.query.ne
198a0 78 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 72 65 73 75 6c 74 5f 75 72 6c 20 xt..................#result_url.
198c0 3d 20 27 27 2e 6a 6f 69 6e 28 72 65 73 75 6c 74 2e 78 70 61 74 68 28 27 2e 2f 2f 61 5b 40 63 6c =.''.join(result.xpath('.//a[@cl
198e0 61 73 73 3d 22 74 69 74 6c 65 22 5d 2f 40 68 72 65 66 27 29 29 0d 0a 20 20 20 20 20 20 20 20 20 ass="title"]/@href'))...........
19900 20 20 20 20 20 20 20 72 65 73 75 6c 74 5f 75 72 6c 20 3d 20 27 27 2e 6a 6f 69 6e 28 72 65 73 75 .......result_url.=.''.join(resu
19920 6c 74 2e 78 70 61 74 68 28 27 2e 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 lt.xpath('.//div[contains(@class
19940 2c 20 22 70 72 6f 64 75 63 74 2d 73 68 65 6c 66 2d 74 69 74 6c 65 22 29 5d 2f 61 2f 40 68 72 65 ,."product-shelf-title")]/a/@hre
19960 66 27 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 65 73 75 6c 74 5f f'))..................if.result_
19980 75 72 6c 2e 73 74 61 72 74 73 77 69 74 68 28 27 2f 27 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 url.startswith('/'):............
199a0 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 5f 75 72 6c 20 3d 20 42 61 72 6e 65 73 4e 6f 62 ..........result_url.=.BarnesNob
199c0 6c 65 2e 42 52 4f 57 53 45 5f 55 52 4c 20 2b 20 72 65 73 75 6c 74 5f 75 72 6c 0d 0a 20 20 20 20 le.BROWSE_URL.+.result_url......
199e0 20 20 20 20 20 20 20 20 20 20 20 20 23 6c 6f 67 2e 69 6e 66 6f 28 27 2a 2a 46 6f 75 6e 64 20 68 ............#log.info('**Found.h
19a00 72 65 66 3a 20 25 73 27 25 72 65 73 75 6c 74 5f 75 72 6c 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 ref:.%s'%result_url)............
19a20 20 20 20 20 69 66 20 72 65 73 75 6c 74 5f 75 72 6c 20 61 6e 64 20 74 69 74 6c 65 20 6e 6f 74 20 ....if.result_url.and.title.not.
19a40 69 6e 20 74 69 74 6c 65 5f 75 72 6c 5f 6d 61 70 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 in.title_url_map:...............
19a60 20 20 20 74 69 74 6c 65 5f 75 72 6c 5f 6d 61 70 5b 74 69 74 6c 65 5d 20 3d 20 72 65 73 75 6c 74 ...title_url_map[title].=.result
19a80 5f 75 72 6c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 65 6e 28 74 69 74 _url..................if.len(tit
19aa0 6c 65 5f 75 72 6c 5f 6d 61 70 29 20 3e 3d 20 35 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 le_url_map).>=.5:...............
19ac0 20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 66 6f 72 20 74 69 74 6c .......break............for.titl
19ae0 65 20 69 6e 20 74 69 74 6c 65 5f 75 72 6c 5f 6d 61 70 2e 6b 65 79 73 28 29 3a 0d 0a 20 20 20 20 e.in.title_url_map.keys():......
19b00 20 20 20 20 20 20 20 20 6d 61 74 63 68 65 73 2e 61 70 70 65 6e 64 28 74 69 74 6c 65 5f 75 72 6c ........matches.append(title_url
19b20 5f 6d 61 70 5b 74 69 74 6c 65 5d 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 65 6e _map[title])..............if.len
19b40 28 6d 61 74 63 68 65 73 29 20 3e 3d 20 6d 61 78 5f 72 65 73 75 6c 74 73 3a 0d 0a 20 20 20 20 20 (matches).>=.max_results:.......
19b60 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 0d 0a 0d 0a 20 20 20 20 64 65 66 20 64 6f ...........break..........def.do
19b80 77 6e 6c 6f 61 64 5f 63 6f 76 65 72 28 73 65 6c 66 2c 20 6c 6f 67 2c 20 72 65 73 75 6c 74 5f 71 wnload_cover(self,.log,.result_q
19ba0 75 65 75 65 2c 20 61 62 6f 72 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 3d ueue,.abort,..............title=
19bc0 4e 6f 6e 65 2c 20 61 75 74 68 6f 72 73 3d 4e 6f 6e 65 2c 20 69 64 65 6e 74 69 66 69 65 72 73 3d None,.authors=None,.identifiers=
19be0 7b 7d 2c 20 74 69 6d 65 6f 75 74 3d 33 30 29 3a 0d 0a 20 20 20 20 20 20 20 20 63 61 63 68 65 64 {},.timeout=30):..........cached
19c00 5f 75 72 6c 20 3d 20 73 65 6c 66 2e 67 65 74 5f 63 61 63 68 65 64 5f 63 6f 76 65 72 5f 75 72 6c _url.=.self.get_cached_cover_url
19c20 28 69 64 65 6e 74 69 66 69 65 72 73 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 63 61 63 68 65 64 (identifiers)..........if.cached
19c40 5f 75 72 6c 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 _url.is.None:..............log.i
19c60 6e 66 6f 28 27 4e 6f 20 63 61 63 68 65 64 20 63 6f 76 65 72 20 66 6f 75 6e 64 2c 20 72 75 6e 6e nfo('No.cached.cover.found,.runn
19c80 69 6e 67 20 69 64 65 6e 74 69 66 79 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 71 20 3d ing.identify')..............rq.=
19ca0 20 51 75 65 75 65 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 69 64 65 6e 74 .Queue()..............self.ident
19cc0 69 66 79 28 6c 6f 67 2c 20 72 71 2c 20 61 62 6f 72 74 2c 20 74 69 74 6c 65 3d 74 69 74 6c 65 2c ify(log,.rq,.abort,.title=title,
19ce0 20 61 75 74 68 6f 72 73 3d 61 75 74 68 6f 72 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .authors=authors,...............
19d00 20 20 20 20 20 20 20 69 64 65 6e 74 69 66 69 65 72 73 3d 69 64 65 6e 74 69 66 69 65 72 73 29 0d .......identifiers=identifiers).
19d20 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 61 62 6f 72 74 2e 69 73 5f 73 65 74 28 29 3a 0d .............if.abort.is_set():.
19d40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d 0a 20 20 20 20 20 20 20 .................return.........
19d60 20 20 20 20 20 72 65 73 75 6c 74 73 20 3d 20 5b 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 .....results.=.[]..............w
19d80 68 69 6c 65 20 54 72 75 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a hile.True:..................try:
19da0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 73 2e 61 70 ......................results.ap
19dc0 70 65 6e 64 28 72 71 2e 67 65 74 5f 6e 6f 77 61 69 74 28 29 29 0d 0a 20 20 20 20 20 20 20 20 20 pend(rq.get_nowait())...........
19de0 20 20 20 20 20 20 20 65 78 63 65 70 74 20 45 6d 70 74 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 .......except.Empty:............
19e00 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 ..........break..............res
19e20 75 6c 74 73 2e 73 6f 72 74 28 6b 65 79 3d 73 65 6c 66 2e 69 64 65 6e 74 69 66 79 5f 72 65 73 75 ults.sort(key=self.identify_resu
19e40 6c 74 73 5f 6b 65 79 67 65 6e 28 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 lts_keygen(..................tit
19e60 6c 65 3d 74 69 74 6c 65 2c 20 61 75 74 68 6f 72 73 3d 61 75 74 68 6f 72 73 2c 20 69 64 65 6e 74 le=title,.authors=authors,.ident
19e80 69 66 69 65 72 73 3d 69 64 65 6e 74 69 66 69 65 72 73 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 ifiers=identifiers))............
19ea0 20 20 66 6f 72 20 6d 69 20 69 6e 20 72 65 73 75 6c 74 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 ..for.mi.in.results:............
19ec0 20 20 20 20 20 20 63 61 63 68 65 64 5f 75 72 6c 20 3d 20 73 65 6c 66 2e 67 65 74 5f 63 61 63 68 ......cached_url.=.self.get_cach
19ee0 65 64 5f 63 6f 76 65 72 5f 75 72 6c 28 6d 69 2e 69 64 65 6e 74 69 66 69 65 72 73 29 0d 0a 20 20 ed_cover_url(mi.identifiers)....
19f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 61 63 68 65 64 5f 75 72 6c 20 69 73 20 6e ..............if.cached_url.is.n
19f20 6f 74 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 ot.None:......................br
19f40 65 61 6b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 63 61 63 68 65 64 5f 75 72 6c 20 69 73 20 4e 6f eak..........if.cached_url.is.No
19f60 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66 6f 28 27 4e 6f 20 63 6f ne:..............log.info('No.co
19f80 76 65 72 20 66 6f 75 6e 64 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d ver.found')..............return.
19fa0 0a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 61 62 6f 72 74 2e 69 73 5f 73 65 74 28 29 3a 0d 0a 20 ...........if.abort.is_set():...
19fc0 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d 0a 20 20 20 20 20 20 20 20 62 72 20 3d 20 ...........return..........br.=.
19fe0 73 65 6c 66 2e 62 72 6f 77 73 65 72 0d 0a 20 20 20 20 20 20 20 20 62 72 2e 73 65 74 5f 63 75 72 self.browser..........br.set_cur
1a000 72 65 6e 74 5f 68 65 61 64 65 72 28 27 41 63 63 65 70 74 27 2c 27 2a 2f 2a 27 29 0d 0a 20 20 20 rent_header('Accept','*/*').....
1a020 20 20 20 20 20 62 72 2e 73 65 74 5f 63 75 72 72 65 6e 74 5f 68 65 61 64 65 72 28 27 41 63 63 65 .....br.set_current_header('Acce
1a040 70 74 2d 45 6e 63 6f 64 69 6e 67 27 2c 27 67 7a 69 70 2c 20 64 65 66 6c 61 74 65 2c 20 62 72 27 pt-Encoding','gzip,.deflate,.br'
1a060 29 0d 0a 20 20 20 20 20 20 20 20 6c 6f 67 28 27 44 6f 77 6e 6c 6f 61 64 69 6e 67 20 63 6f 76 65 )..........log('Downloading.cove
1a080 72 20 66 72 6f 6d 3a 27 2c 20 63 61 63 68 65 64 5f 75 72 6c 29 0d 0a 20 20 20 20 20 20 20 20 74 r.from:',.cached_url)..........t
1a0a0 72 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 64 61 74 61 20 3d 20 62 72 2e 6f 70 65 6e ry:..............cdata.=.br.open
1a0c0 5f 6e 6f 76 69 73 69 74 28 63 61 63 68 65 64 5f 75 72 6c 2c 20 74 69 6d 65 6f 75 74 3d 74 69 6d _novisit(cached_url,.timeout=tim
1a0e0 65 6f 75 74 29 2e 72 65 61 64 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 eout).read()..............result
1a100 5f 71 75 65 75 65 2e 70 75 74 28 28 73 65 6c 66 2c 20 63 64 61 74 61 29 29 0d 0a 20 20 20 20 20 _queue.put((self,.cdata)).......
1a120 20 20 20 65 78 63 65 70 74 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 65 78 63 65 ...except:..............log.exce
1a140 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 63 6f 76 65 72 20 ption('Failed.to.download.cover.
1a160 66 72 6f 6d 3a 27 2c 20 63 61 63 68 65 64 5f 75 72 6c 29 0d 0a 0d 0a 0d 0a 69 66 20 5f 5f 6e 61 from:',.cached_url)......if.__na
1a180 6d 65 5f 5f 20 3d 3d 20 27 5f 5f 6d 61 69 6e 5f 5f 27 3a 20 23 20 74 65 73 74 73 0d 0a 20 20 20 me__.==.'__main__':.#.tests.....
1a1a0 20 23 20 54 6f 20 72 75 6e 20 74 68 65 73 65 20 74 65 73 74 20 75 73 65 3a 0d 0a 20 20 20 20 23 .#.To.run.these.test.use:......#
1a1c0 20 63 61 6c 69 62 72 65 2d 64 65 62 75 67 20 2d 65 20 5f 5f 69 6e 69 74 5f 5f 2e 70 79 0d 0a 20 .calibre-debug.-e.__init__.py...
1a1e0 20 20 20 66 72 6f 6d 20 63 61 6c 69 62 72 65 20 69 6d 70 6f 72 74 20 70 72 69 6e 74 73 0d 0a 20 ...from.calibre.import.prints...
1a200 20 20 20 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 65 62 6f 6f 6b 73 2e 6d 65 74 61 64 61 74 61 2e ...from.calibre.ebooks.metadata.
1a220 73 6f 75 72 63 65 73 2e 74 65 73 74 20 69 6d 70 6f 72 74 20 28 74 65 73 74 5f 69 64 65 6e 74 69 sources.test.import.(test_identi
1a240 66 79 5f 70 6c 75 67 69 6e 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f 74 65 fy_plugin,..............title_te
1a260 73 74 2c 20 61 75 74 68 6f 72 73 5f 74 65 73 74 2c 20 73 65 72 69 65 73 5f 74 65 73 74 29 0d 0a st,.authors_test,.series_test)..
1a280 0d 0a 20 20 20 20 64 65 66 20 63 6f 76 65 72 5f 74 65 73 74 28 63 6f 76 65 72 5f 75 72 6c 29 3a ......def.cover_test(cover_url):
1a2a0 0d 0a 20 20 20 20 20 20 20 20 69 66 20 63 6f 76 65 72 5f 75 72 6c 20 69 73 20 6e 6f 74 20 4e 6f ..........if.cover_url.is.not.No
1a2c0 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 76 65 72 5f 75 72 6c 20 3d 20 63 6f 76 ne:..............cover_url.=.cov
1a2e0 65 72 5f 75 72 6c 2e 6c 6f 77 65 72 28 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 64 65 66 20 74 65 er_url.lower()............def.te
1a300 73 74 28 6d 69 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 63 20 3d 20 6d 69 2e 63 6f 76 st(mi):..............mc.=.mi.cov
1a320 65 72 5f 75 72 6c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6d 63 20 69 73 20 6e 6f 74 er_url..............if.mc.is.not
1a340 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 63 20 3d 20 6d 63 2e .None:..................mc.=.mc.
1a360 6c 6f 77 65 72 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6d 63 20 3d 3d 20 63 6f lower()..............if.mc.==.co
1a380 76 65 72 5f 75 72 6c 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e ver_url:..................return
1a3a0 20 54 72 75 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 73 28 27 43 6f 76 65 72 .True..............prints('Cover
1a3c0 20 74 65 73 74 20 66 61 69 6c 65 64 2e 20 45 78 70 65 63 74 65 64 3a 20 5c 27 25 73 5c 27 20 66 .test.failed..Expected:.\'%s\'.f
1a3e0 6f 75 6e 64 3a 20 27 20 25 20 63 6f 76 65 72 5f 75 72 6c 2c 20 6d 63 29 0d 0a 20 20 20 20 20 20 ound:.'.%.cover_url,.mc)........
1a400 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 61 6c 73 65 0d 0a 0d 0a 20 20 20 20 20 20 20 20 72 65 ......return.False............re
1a420 74 75 72 6e 20 74 65 73 74 0d 0a 0d 0a 20 20 20 20 74 65 73 74 5f 69 64 65 6e 74 69 66 79 5f 70 turn.test........test_identify_p
1a440 6c 75 67 69 6e 28 42 61 72 6e 65 73 4e 6f 62 6c 65 2e 6e 61 6d 65 2c 0d 0a 20 20 20 20 20 20 20 lugin(BarnesNoble.name,.........
1a460 20 5b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 23 20 41 20 62 6f 6f 6b 20 77 69 74 68 .[................(#.A.book.with
1a480 20 61 6e 20 49 53 42 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 27 69 64 65 6e .an.ISBN..................{'iden
1a4a0 74 69 66 69 65 72 73 27 3a 7b 27 69 73 62 6e 27 3a 20 27 39 37 38 30 34 33 39 30 36 34 38 36 36 tifiers':{'isbn':.'9780439064866
1a4c0 27 7d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 74 69 74 6c 65 27 '},......................'title'
1a4e0 3a 27 43 68 61 6d 62 65 72 20 6f 66 20 53 65 63 72 65 74 73 27 2c 20 27 61 75 74 68 6f 72 73 27 :'Chamber.of.Secrets',.'authors'
1a500 3a 5b 27 4a 2e 4b 2e 20 52 6f 77 6c 69 6e 67 27 5d 7d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 :['J.K..Rowling']},.............
1a520 20 20 20 20 20 5b 74 69 74 6c 65 5f 74 65 73 74 28 27 48 61 72 72 79 20 50 6f 74 74 65 72 20 61 .....[title_test('Harry.Potter.a
1a540 6e 64 20 74 68 65 20 43 68 61 6d 62 65 72 20 6f 66 20 53 65 63 72 65 74 73 27 2c 20 65 78 61 63 nd.the.Chamber.of.Secrets',.exac
1a560 74 3d 54 72 75 65 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f t=True),...................autho
1a580 72 73 5f 74 65 73 74 28 5b 27 4a 2e 20 4b 2e 20 52 6f 77 6c 69 6e 67 27 5d 29 2c 0d 0a 20 20 20 rs_test(['J..K..Rowling']),.....
1a5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 72 69 65 73 5f 74 65 73 74 28 27 48 61 72 72 79 ..............series_test('Harry
1a5c0 20 50 6f 74 74 65 72 27 2c 20 32 2e 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Potter',.2.0),.................
1a5e0 20 20 63 6f 76 65 72 5f 74 65 73 74 28 27 68 74 74 70 3a 2f 2f 70 72 6f 64 69 6d 61 67 65 2e 69 ..cover_test('http://prodimage.i
1a600 6d 61 67 65 73 2d 62 6e 2e 63 6f 6d 2f 6c 66 3f 73 6f 75 72 63 65 3d 75 72 6c 5b 66 69 6c 65 3a mages-bn.com/lf?source=url[file:
1a620 69 6d 61 67 65 73 2f 49 6d 61 67 65 73 2f 70 69 6d 61 67 65 73 2f 34 38 36 36 2f 39 37 38 30 34 images/Images/pimages/4866/97804
1a640 33 39 30 36 34 38 36 36 5f 70 30 2e 6a 70 67 5d 26 73 69 6e 6b 27 29 5d 0d 0a 20 20 20 20 20 20 39064866_p0.jpg]&sink')]........
1a660 20 20 20 20 20 20 29 2c 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 23 20 41 20 62 6f 6f ......),................(#.A.boo
1a680 6b 20 77 69 74 68 20 6e 6f 20 49 53 42 4e 20 73 70 65 63 69 66 69 65 64 0d 0a 20 20 20 20 20 20 k.with.no.ISBN.specified........
1a6a0 20 20 20 20 20 20 20 20 20 20 7b 27 74 69 74 6c 65 27 3a 22 53 74 6f 6e 65 20 6f 66 20 54 65 61 ..........{'title':"Stone.of.Tea
1a6c0 72 73 22 2c 20 27 61 75 74 68 6f 72 73 27 3a 5b 27 54 65 72 72 79 20 47 6f 6f 64 6b 69 6e 64 27 rs",.'authors':['Terry.Goodkind'
1a6e0 5d 7d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 74 69 74 6c 65 5f 74 65 73 74 ]},..................[title_test
1a700 28 22 53 74 6f 6e 65 20 6f 66 20 54 65 61 72 73 22 2c 20 65 78 61 63 74 3d 54 72 75 65 29 2c 0d ("Stone.of.Tears",.exact=True),.
1a720 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 5f 74 65 73 74 28 5b ..................authors_test([
1a740 27 54 65 72 72 79 20 47 6f 6f 64 6b 69 6e 64 27 5d 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 'Terry.Goodkind']),.............
1a760 20 20 20 20 20 20 73 65 72 69 65 73 5f 74 65 73 74 28 27 53 77 6f 72 64 20 6f 66 20 54 72 75 74 ......series_test('Sword.of.Trut
1a780 68 27 2c 20 32 2e 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 76 65 h',.2.0),...................cove
1a7a0 72 5f 74 65 73 74 28 27 68 74 74 70 3a 2f 2f 70 72 6f 64 69 6d 61 67 65 2e 69 6d 61 67 65 73 2d r_test('http://prodimage.images-
1a7c0 62 6e 2e 63 6f 6d 2f 6c 66 3f 73 6f 75 72 63 65 3d 75 72 6c 5b 66 69 6c 65 3a 69 6d 61 67 65 73 bn.com/lf?source=url[file:images
1a7e0 2f 49 6d 61 67 65 73 2f 70 69 6d 61 67 65 73 2f 38 30 39 39 2f 39 37 38 30 38 31 32 35 34 38 30 /Images/pimages/8099/97808125480
1a800 39 39 5f 70 30 2e 6a 70 67 5d 26 73 69 6e 6b 27 29 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 99_p0.jpg]&sink')]..............
1a820 29 2c 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 23 20 41 20 62 6f 6f 6b 20 77 69 74 68 ),................(#.A.book.with
1a840 20 61 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 20 69 64 0d 0a 20 20 20 20 20 20 20 20 20 20 .a.Barnes.&.Noble.id............
1a860 20 20 20 20 20 20 7b 27 69 64 65 6e 74 69 66 69 65 72 73 27 3a 7b 27 62 61 72 6e 65 73 6e 6f 62 ......{'identifiers':{'barnesnob
1a880 6c 65 27 3a 20 27 77 2f 36 31 2d 68 6f 75 72 73 2d 6c 65 65 2d 63 68 69 6c 64 2f 31 30 31 38 39 le':.'w/61-hours-lee-child/10189
1a8a0 31 34 33 30 33 27 7d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 74 14303'},......................'t
1a8c0 69 74 6c 65 27 3a 27 36 31 20 48 6f 75 72 73 27 2c 20 27 61 75 74 68 6f 72 73 27 3a 5b 27 4c 65 itle':'61.Hours',.'authors':['Le
1a8e0 65 20 43 68 69 6c 64 27 5d 7d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 74 69 e.Child']},..................[ti
1a900 74 6c 65 5f 74 65 73 74 28 27 36 31 20 48 6f 75 72 73 27 2c 20 65 78 61 63 74 3d 54 72 75 65 29 tle_test('61.Hours',.exact=True)
1a920 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 5f 74 65 73 74 ,...................authors_test
1a940 28 5b 27 4c 65 65 20 43 68 69 6c 64 27 5d 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (['Lee.Child']),................
1a960 20 20 20 73 65 72 69 65 73 5f 74 65 73 74 28 27 4a 61 63 6b 20 52 65 61 63 68 65 72 27 2c 20 31 ...series_test('Jack.Reacher',.1
1a980 34 2e 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 76 65 72 5f 74 65 4.0),...................cover_te
1a9a0 73 74 28 27 68 74 74 70 3a 2f 2f 70 72 6f 64 69 6d 61 67 65 2e 69 6d 61 67 65 73 2d 62 6e 2e 63 st('http://prodimage.images-bn.c
1a9c0 6f 6d 2f 6c 66 3f 73 6f 75 72 63 65 3d 75 72 6c 5b 66 69 6c 65 3a 69 6d 61 67 65 73 2f 49 6d 61 om/lf?source=url[file:images/Ima
1a9e0 67 65 73 2f 70 69 6d 61 67 65 73 2f 31 35 39 38 2f 39 37 38 30 33 34 35 35 34 31 35 39 38 5f 70 ges/pimages/1598/9780345541598_p
1aa00 30 2e 6a 70 67 5d 26 73 69 6e 6b 27 29 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 2c 0d 0a 0.jpg]&sink')]..............),..
1aa20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 23 20 41 20 62 6f 6f 6b 20 77 69 74 68 20 61 6e 20 ..............(#.A.book.with.an.
1aa40 4e 41 20 63 6f 76 65 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 27 69 64 65 6e NA.cover..................{'iden
1aa60 74 69 66 69 65 72 73 27 3a 7b 27 69 73 62 6e 27 3a 27 39 37 38 30 34 35 31 30 36 33 39 35 33 27 tifiers':{'isbn':'9780451063953'
1aa80 7d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 74 69 74 6c 65 27 3a 27 54 68 },...................'title':'Th
1aaa0 65 20 47 69 72 6c 20 48 75 6e 74 65 72 73 27 2c 20 27 61 75 74 68 6f 72 73 27 3a 5b 27 4d 69 63 e.Girl.Hunters',.'authors':['Mic
1aac0 6b 65 79 20 53 70 69 6c 6c 61 6e 65 27 5d 7d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 key.Spillane']},................
1aae0 20 20 5b 74 69 74 6c 65 5f 74 65 73 74 28 27 54 68 65 20 47 69 72 6c 20 48 75 6e 74 65 72 73 27 ..[title_test('The.Girl.Hunters'
1ab00 2c 20 65 78 61 63 74 3d 54 72 75 65 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.exact=True),..................
1ab20 20 61 75 74 68 6f 72 73 5f 74 65 73 74 28 5b 27 4d 69 63 6b 65 79 20 53 70 69 6c 6c 61 6e 65 27 .authors_test(['Mickey.Spillane'
1ab40 5d 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 76 65 72 5f 74 65 73 74 ]),...................cover_test
1ab60 28 4e 6f 6e 65 29 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 2c 0d 0a 0d 0a 20 20 20 20 20 (None)]..............),.........
1ab80 20 20 20 5d 2c 20 66 61 69 6c 5f 6d 69 73 73 69 6e 67 5f 6d 65 74 61 3d 46 61 6c 73 65 29 0d 0a ...],.fail_missing_meta=False)..
1aba0 50 4b 03 04 14 00 00 00 00 00 61 a0 ac 5a 62 b2 8b 1f de 15 00 00 de 15 00 00 0c 00 00 00 43 48 PK........a..Zb...............CH
1abc0 41 4e 47 45 4c 4f 47 2e 6d 64 23 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 20 43 68 61 6e 67 ANGELOG.md#.Barnes.&.Noble.Chang
1abe0 65 20 4c 6f 67 0a 0a 23 23 20 5b 31 2e 35 2e 37 5d 20 2d 20 32 30 32 35 2d 30 35 2d 31 32 0a 23 e.Log..##.[1.5.7].-.2025-05-12.#
1ac00 23 23 20 46 69 78 65 64 0a 2d 20 41 6e 6f 74 68 65 72 20 75 73 65 72 2d 61 67 65 6e 74 20 75 70 ##.Fixed.-.Another.user-agent.up
1ac20 64 61 74 65 20 72 65 71 75 69 72 65 64 2e 0a 0a 23 23 20 5b 31 2e 35 2e 36 5d 20 2d 20 32 30 32 date.required...##.[1.5.6].-.202
1ac40 34 2d 30 38 2d 30 34 0a 23 23 23 20 41 64 64 65 64 0a 2d 20 47 61 6c 69 63 69 61 6e 20 74 72 61 4-08-04.###.Added.-.Galician.tra
1ac60 6e 73 6c 61 74 69 6f 6e 2e 0a 23 23 23 20 46 69 78 65 64 0a 2d 20 41 6e 6f 74 68 65 72 20 75 73 nslation..###.Fixed.-.Another.us
1ac80 65 72 2d 61 67 65 6e 74 20 75 70 64 61 74 65 20 72 65 71 75 69 72 65 64 2e 20 28 40 73 72 76 72 er-agent.update.required..(@srvr
1aca0 67 75 79 29 0a 0a 23 23 20 5b 31 2e 35 2e 35 5d 20 2d 20 32 30 32 34 2d 30 35 2d 31 31 0a 23 23 guy)..##.[1.5.5].-.2024-05-11.##
1acc0 23 20 41 64 64 65 64 0a 2d 20 47 65 72 6d 61 6e 20 74 72 61 6e 73 6c 61 74 69 6f 6e 2e 0a 23 23 #.Added.-.German.translation..##
1ace0 23 20 46 69 78 65 64 0a 2d 20 43 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 42 26 4e 20 77 65 62 #.Fixed.-.Changes.to.the.B&N.web
1ad00 73 69 74 65 20 63 61 75 73 69 6e 67 20 74 69 6d 65 6f 75 74 73 20 72 65 71 75 69 72 69 6e 67 20 site.causing.timeouts.requiring.
1ad20 43 68 72 6f 6d 65 20 75 73 65 72 2d 61 67 65 6e 74 20 3e 20 38 30 20 61 6e 64 20 73 6f 6d 65 20 Chrome.user-agent.>.80.and.some.
1ad40 73 70 65 63 69 66 69 63 20 61 63 63 65 70 74 20 68 65 61 64 65 72 73 2e 0a 0a 23 23 20 5b 31 2e specific.accept.headers...##.[1.
1ad60 35 2e 34 5d 20 2d 20 32 30 32 34 2d 30 34 2d 30 32 0a 23 23 23 20 41 64 64 65 64 0a 2d 20 41 64 5.4].-.2024-04-02.###.Added.-.Ad
1ad80 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 70 61 73 74 69 6e 67 20 77 65 62 20 75 72 6c 73 20 61 d.support.for.pasting.web.urls.a
1ada0 73 20 69 64 65 6e 74 69 66 69 65 72 73 20 66 72 6f 6d 20 74 68 65 20 42 26 4e 20 77 65 62 73 69 s.identifiers.from.the.B&N.websi
1adc0 74 65 2e 0a 2d 20 43 68 69 6e 65 73 65 20 28 43 68 69 6e 61 29 20 74 72 61 6e 73 6c 61 74 69 6f te..-.Chinese.(China).translatio
1ade0 6e 2e 0a 0a 23 23 20 5b 31 2e 35 2e 33 5d 20 2d 20 32 30 32 34 2d 30 33 2d 31 37 0a 23 23 23 20 n...##.[1.5.3].-.2024-03-17.###.
1ae00 41 64 64 65 64 0a 2d 20 46 69 6e 6e 69 73 68 20 61 6e 64 20 54 61 6d 69 6c 20 74 72 61 6e 73 6c Added.-.Finnish.and.Tamil.transl
1ae20 61 74 69 6f 6e 73 2e 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 53 70 61 6e 69 73 68 20 61 6e ations..###.Changed.-.Spanish.an
1ae40 64 20 50 6f 72 74 75 67 75 65 73 65 20 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2e 0a 0a 23 23 20 5b d.Portuguese.translations...##.[
1ae60 31 2e 35 2e 32 5d 20 2d 20 32 30 32 33 2d 30 34 2d 33 30 0a 23 23 23 20 46 69 78 65 64 0a 2d 20 1.5.2].-.2023-04-30.###.Fixed.-.
1ae80 52 65 6d 6f 76 65 20 74 72 61 69 6c 69 6e 67 20 63 6f 6d 6d 61 20 66 72 6f 6d 20 73 65 72 69 65 Remove.trailing.comma.from.serie
1aea0 73 20 6e 61 6d 65 73 2e 0a 0a 23 23 20 5b 31 2e 35 2e 31 5d 20 2d 20 32 30 32 33 2d 30 34 2d 31 s.names...##.[1.5.1].-.2023-04-1
1aec0 34 0a 23 23 23 20 41 64 64 65 64 0a 2d 20 54 75 72 6b 69 73 68 20 74 72 61 6e 73 6c 61 74 69 6f 4.###.Added.-.Turkish.translatio
1aee0 6e 20 28 42 6f 72 61 20 41 74 c4 b1 63 c4 b1 29 20 0a 23 23 23 20 46 69 78 65 64 0a 2d 20 46 69 n.(Bora.At..c..)..###.Fixed.-.Fi
1af00 78 20 66 6f 72 20 73 6f 6d 65 20 63 6f 64 65 20 66 72 6f 6d 20 6c 6f 6e 67 20 61 67 6f 20 74 68 x.for.some.code.from.long.ago.th
1af20 61 74 20 77 6f 75 6c 64 20 72 65 6d 6f 76 65 20 61 6e 79 20 63 68 61 72 61 63 74 65 72 73 20 6f at.would.remove.any.characters.o
1af40 66 20 27 73 65 72 69 65 73 27 20 66 72 6f 6d 20 73 65 72 69 65 73 20 6e 61 6d 65 73 2e 0a 0a 23 f.'series'.from.series.names...#
1af60 23 20 5b 31 2e 35 2e 30 5d 20 2d 20 32 30 32 33 2d 30 34 2d 30 32 0a 23 23 23 20 43 68 61 6e 67 #.[1.5.0].-.2023-04-02.###.Chang
1af80 65 64 0a 2d 20 42 26 4e 20 69 64 65 6e 74 69 66 69 65 72 20 6e 6f 77 20 6a 75 73 74 20 75 73 69 ed.-.B&N.identifier.now.just.usi
1afa0 6e 67 20 74 68 65 20 6e 75 6d 65 72 69 63 20 73 74 6f 72 65 20 76 61 6c 75 65 20 61 6c 6f 6e 65 ng.the.numeric.store.value.alone
1afc0 2c 20 77 69 74 68 6f 75 74 20 74 68 65 20 73 75 62 2d 70 61 67 65 20 70 72 65 66 69 78 2e 0a 23 ,.without.the.sub-page.prefix..#
1afe0 23 23 20 46 69 78 65 64 0a 2d 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 63 72 65 65 6e 20 ##.Fixed.-.Configuration.screen.
1b000 62 72 6f 6b 65 6e 20 66 72 6f 6d 20 72 65 6d 6f 76 61 6c 20 6f 66 20 54 4f 43 20 66 65 61 74 75 broken.from.removal.of.TOC.featu
1b020 72 65 2e 20 28 61 72 61 67 6f 6e 69 74 29 0a 0a 23 23 20 5b 31 2e 34 2e 30 5d 20 2d 20 32 30 32 re..(aragonit)..##.[1.4.0].-.202
1b040 32 2d 31 30 2d 31 36 0a 23 23 23 20 41 64 64 65 64 0a 2d 20 41 6c 6c 20 6b 69 77 69 64 75 64 65 2-10-16.###.Added.-.All.kiwidude
1b060 20 70 6c 75 67 69 6e 73 20 75 70 64 61 74 65 64 2f 6d 69 67 72 61 74 65 64 20 74 6f 3a 20 68 74 .plugins.updated/migrated.to:.ht
1b080 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 69 77 69 64 75 64 65 36 38 2f 63 61 6c 69 tps://github.com/kiwidude68/cali
1b0a0 62 72 65 5f 70 6c 75 67 69 6e 73 0a 2d 20 50 6f 72 74 75 67 75 65 73 65 20 74 72 61 6e 73 6c 61 bre_plugins.-.Portuguese.transla
1b0c0 74 69 6f 6e 20 28 43 6f 6d 66 79 2e 6e 29 0a 2d 20 50 6f 6c 69 73 68 20 74 72 61 6e 73 6c 61 74 tion.(Comfy.n).-.Polish.translat
1b0e0 69 6f 6e 20 28 6d 6f 6a 65 20 6b 6f 6e 74 6f 29 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 2a ion.(moje.konto).###.Changed.-.*
1b100 2a 42 72 65 61 6b 69 6e 67 3a 2a 2a 20 44 72 6f 70 20 50 79 51 74 34 20 73 75 70 70 6f 72 74 2c *Breaking:**.Drop.PyQt4.support,
1b120 20 72 65 71 75 69 72 65 20 63 61 6c 69 62 72 65 20 32 2e 78 20 6f 72 20 6c 61 74 65 72 2e 0a 0a .require.calibre.2.x.or.later...
1b140 23 23 20 5b 31 2e 33 2e 30 5d 20 2d 20 32 30 32 32 2d 30 39 2d 30 39 0a 23 23 23 20 41 64 64 65 ##.[1.3.0].-.2022-09-09.###.Adde
1b160 64 0a 2d 20 41 64 64 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 73 75 70 70 6f 72 74 20 66 6f 72 20 d.-.Add.translation.support.for.
1b180 63 6f 6e 66 69 67 20 73 63 72 65 65 6e 2e 0a 2d 20 53 70 61 6e 69 73 68 2c 20 46 72 65 6e 63 68 config.screen..-.Spanish,.French
1b1a0 2c 20 4a 61 70 61 6e 65 73 65 2c 20 44 75 74 63 68 2c 20 55 6b 72 61 6e 69 61 6e 20 74 72 61 6e ,.Japanese,.Dutch,.Ukranian.tran
1b1c0 73 6c 61 74 69 6f 6e 73 20 2d 20 74 68 61 6e 6b 73 20 74 6f 20 65 76 65 72 79 6f 6e 65 21 21 21 slations.-.thanks.to.everyone!!!
1b1e0 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 52 65 6d 6f 76 65 20 54 4f 43 20 61 70 70 65 6e 64 .###.Changed.-.Remove.TOC.append
1b200 20 6f 70 74 69 6f 6e 20 66 72 6f 6d 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 73 20 6e 6f .option.from.configuration.as.no
1b220 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 70 6c 75 67 69 6e 20 61 6e 79 20 6d 6f 72 65 2e 0a t.supported.by.plugin.any.more..
1b240 23 23 23 20 46 69 78 65 64 0a 2d 20 55 70 64 61 74 65 64 20 66 6f 72 20 6c 61 74 65 73 74 20 77 ###.Fixed.-.Updated.for.latest.w
1b260 65 62 73 69 74 65 20 70 61 67 65 73 2e 0a 2d 20 53 75 70 70 6f 72 74 20 66 6f 72 20 63 61 6c 69 ebsite.pages..-.Support.for.cali
1b280 62 72 65 20 36 2f 51 74 36 2e 0a 0a 23 23 20 5b 31 2e 32 2e 31 36 5d 20 2d 20 32 30 32 30 2d 30 bre.6/Qt6...##.[1.2.16].-.2020-0
1b2a0 34 2d 31 36 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 50 6f 72 74 65 64 20 74 6f 20 70 79 74 4-16.###.Changed.-.Ported.to.pyt
1b2c0 68 6f 6e 20 33 20 2d 20 61 75 74 68 6f 72 20 28 67 62 6d 29 0a 0a 23 23 20 5b 31 2e 32 2e 31 35 hon.3.-.author.(gbm)..##.[1.2.15
1b2e0 5d 20 2d 20 32 30 31 38 2d 30 34 2d 32 32 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 46 6f 72 ].-.2018-04-22.###.Changed.-.For
1b300 20 63 68 61 6e 67 65 73 20 74 6f 20 42 26 4e 20 77 65 62 73 69 74 65 20 2d 20 61 75 74 68 6f 72 .changes.to.B&N.website.-.author
1b320 20 28 71 73 78 77 64 63 29 0a 0a 23 23 20 5b 31 2e 32 2e 31 34 5d 20 2d 20 32 30 31 36 2d 30 38 .(qsxwdc)..##.[1.2.14].-.2016-08
1b340 2d 30 31 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 46 6f 72 20 63 68 61 6e 67 65 73 20 74 6f -01.###.Changed.-.For.changes.to
1b360 20 42 26 4e 20 77 65 62 73 69 74 65 20 2d 20 61 75 74 68 6f 72 20 6e 61 6d 65 73 20 28 6a 68 6f .B&N.website.-.author.names.(jho
1b380 77 65 6c 6c 29 0a 0a 23 23 20 5b 31 2e 32 2e 31 33 5d 20 2d 20 32 30 31 35 2d 30 37 2d 33 30 0a well)..##.[1.2.13].-.2015-07-30.
1b3a0 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 46 6f 72 20 63 68 61 6e 67 65 73 20 74 6f 20 42 26 4e ###.Changed.-.For.changes.to.B&N
1b3c0 20 77 65 62 73 69 74 65 20 28 6a 68 6f 77 65 6c 6c 29 0a 0a 23 23 20 5b 31 2e 32 2e 31 32 5d 20 .website.(jhowell)..##.[1.2.12].
1b3e0 2d 20 32 30 31 34 2d 30 37 2d 31 37 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 46 6f 72 20 51 -.2014-07-17.###.Changed.-.For.Q
1b400 74 34 20 61 6e 64 20 51 74 35 0a 0a 23 23 20 5b 31 2e 32 2e 31 31 5d 20 2d 20 32 30 31 33 2d 30 t4.and.Qt5..##.[1.2.11].-.2013-0
1b420 39 2d 30 38 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 55 70 64 61 74 65 64 20 66 6f 72 20 63 9-08.###.Changed.-.Updated.for.c
1b440 68 61 6e 67 65 73 20 74 6f 20 42 26 4e 20 77 65 62 73 69 74 65 0a 0a 23 23 20 5b 31 2e 32 2e 31 hanges.to.B&N.website..##.[1.2.1
1b460 30 5d 20 2d 20 32 30 31 33 2d 30 34 2d 31 35 0a 23 23 23 20 46 69 78 65 64 0a 2d 20 54 68 65 20 0].-.2013-04-15.###.Fixed.-.The.
1b480 55 52 4c 20 68 79 70 65 72 6c 69 6e 6b 20 77 68 65 6e 20 63 6c 69 63 6b 69 6e 67 20 66 72 6f 6d URL.hyperlink.when.clicking.from
1b4a0 20 62 6f 6f 6b 20 64 65 74 61 69 6c 73 20 70 61 6e 65 6c 20 74 6f 20 72 65 66 6c 65 63 74 20 63 .book.details.panel.to.reflect.c
1b4c0 68 61 6e 67 65 73 20 74 6f 20 77 65 62 73 69 74 65 0a 0a 23 23 20 5b 31 2e 32 2e 39 5d 20 2d 20 hanges.to.website..##.[1.2.9].-.
1b4e0 32 30 31 32 2d 31 32 2d 32 37 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 46 6f 72 20 63 68 61 2012-12-27.###.Changed.-.For.cha
1b500 6e 67 65 73 20 74 6f 20 42 26 4e 20 77 65 62 73 69 74 65 0a 0a 23 23 20 5b 31 2e 32 2e 38 5d 20 nges.to.B&N.website..##.[1.2.8].
1b520 2d 20 32 30 31 32 2d 30 37 2d 30 31 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 55 73 65 20 61 -.2012-07-01.###.Changed.-.Use.a
1b540 20 64 69 66 66 65 72 65 6e 74 20 73 65 61 72 63 68 20 55 52 4c 20 66 6f 72 20 74 69 74 6c 65 2f .different.search.URL.for.title/
1b560 61 75 74 68 6f 72 20 73 65 61 72 63 68 65 73 20 77 68 69 63 68 20 73 65 65 6d 73 20 74 6f 20 67 author.searches.which.seems.to.g
1b580 69 76 65 20 62 65 74 74 65 72 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 73 0a 0a 23 23 20 5b 31 ive.better.search.results..##.[1
1b5a0 2e 32 2e 37 5d 20 2d 20 32 30 31 32 2d 30 36 2d 32 33 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d .2.7].-.2012-06-23.###.Changed.-
1b5c0 20 49 6d 70 72 6f 76 65 20 74 68 65 20 69 6d 61 67 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 .Improve.the.image.not.available
1b5e0 20 65 78 63 6c 75 73 69 6f 6e 20 63 68 65 63 6b 69 6e 67 0a 23 23 23 20 46 69 78 65 64 0a 2d 20 .exclusion.checking.###.Fixed.-.
1b600 4c 6f 67 69 63 20 66 6f 72 20 65 78 74 72 61 63 74 69 6e 67 20 73 65 72 69 65 73 20 66 72 6f 6d Logic.for.extracting.series.from
1b620 20 74 69 74 6c 65 20 64 75 65 20 74 6f 20 42 26 4e 20 77 65 62 73 69 74 65 20 63 68 61 6e 67 65 .title.due.to.B&N.website.change
1b640 73 0a 0a 23 23 20 5b 31 2e 32 2e 36 5d 20 2d 20 32 30 31 32 2d 30 36 2d 30 37 0a 23 23 23 20 43 s..##.[1.2.6].-.2012-06-07.###.C
1b660 68 61 6e 67 65 64 0a 2d 20 46 75 72 74 68 65 72 20 74 77 65 61 6b 69 6e 67 20 74 6f 20 69 6d 70 hanged.-.Further.tweaking.to.imp
1b680 72 6f 76 65 20 6d 61 74 63 68 69 6e 67 20 6f 66 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 73 20 rove.matching.of.search.results.
1b6a0 74 6f 20 6d 61 74 63 68 20 6c 61 74 65 73 74 20 77 65 62 73 69 74 65 20 6c 61 79 6f 75 74 0a 0a to.match.latest.website.layout..
1b6c0 23 23 20 5b 31 2e 32 2e 35 5d 20 2d 20 32 30 31 32 2d 30 36 2d 30 31 0a 23 23 23 20 43 68 61 6e ##.[1.2.5].-.2012-06-01.###.Chan
1b6e0 67 65 64 0a 2d 20 49 6d 70 72 6f 76 65 20 74 68 65 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 6d ged.-.Improve.the.title/author.m
1b700 61 74 63 68 69 6e 67 20 6c 6f 67 69 63 20 66 6f 72 20 6e 65 77 20 77 65 62 73 69 74 65 20 6c 61 atching.logic.for.new.website.la
1b720 79 6f 75 74 0a 2d 20 45 6e 73 75 72 65 20 22 5b 4e 4f 4f 4b 20 42 6f 6f 6b 5d 22 20 69 73 20 61 yout.-.Ensure."[NOOK.Book]".is.a
1b740 6c 77 61 79 73 20 73 74 72 69 70 70 65 64 20 66 72 6f 6d 20 74 68 65 20 74 69 74 6c 65 0a 0a 23 lways.stripped.from.the.title..#
1b760 23 20 5b 31 2e 32 2e 34 5d 20 2d 20 32 30 31 32 2d 30 34 2d 32 39 0a 23 23 23 20 43 68 61 6e 67 #.[1.2.4].-.2012-04-29.###.Chang
1b780 65 64 0a 2d 20 45 6e 73 75 72 65 20 74 68 65 20 22 49 6d 61 67 65 20 6e 6f 74 20 61 76 61 69 6c ed.-.Ensure.the."Image.not.avail
1b7a0 61 62 6c 65 22 20 69 6d 61 67 65 73 20 61 72 65 20 65 78 63 6c 75 64 65 64 0a 0a 23 23 20 5b 31 able".images.are.excluded..##.[1
1b7c0 2e 32 2e 33 5d 20 2d 20 32 30 31 32 2d 30 34 2d 31 36 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d .2.3].-.2012-04-16.###.Changed.-
1b7e0 20 4d 6f 72 65 20 42 26 4e 20 77 65 62 73 69 74 65 20 63 68 61 6e 67 65 73 20 2d 20 69 66 20 66 .More.B&N.website.changes.-.if.f
1b800 61 6c 6c 62 61 63 6b 20 74 6f 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 2c 20 allback.to.title/author.search,.
1b820 6a 75 73 74 20 75 73 65 20 61 20 6b 65 79 77 6f 72 64 20 73 65 61 72 63 68 0a 2d 20 57 68 65 6e just.use.a.keyword.search.-.When
1b840 20 6d 61 74 63 68 69 6e 67 20 72 65 73 75 6c 74 73 20 66 6f 72 20 74 69 74 6c 65 2f 61 75 74 68 .matching.results.for.title/auth
1b860 6f 72 2c 20 68 61 6e 64 6c 65 20 6e 65 77 20 77 65 62 73 69 74 65 20 70 61 67 65 20 6c 61 79 6f or,.handle.new.website.page.layo
1b880 75 74 0a 0a 23 23 20 5b 31 2e 32 2e 32 5d 20 2d 20 32 30 31 32 2d 30 33 2d 30 36 0a 23 23 23 20 ut..##.[1.2.2].-.2012-03-06.###.
1b8a0 43 68 61 6e 67 65 64 0a 2d 20 46 69 78 20 66 6f 72 20 63 68 61 6e 67 65 20 74 6f 20 42 26 4e 20 Changed.-.Fix.for.change.to.B&N.
1b8c0 77 65 62 73 69 74 65 20 61 66 66 65 63 74 69 6e 67 20 74 68 65 20 63 6f 6d 6d 65 6e 74 73 20 66 website.affecting.the.comments.f
1b8e0 69 65 6c 64 2e 0a 0a 23 23 20 5b 31 2e 32 2e 31 5d 20 2d 20 32 30 31 31 2d 31 31 2d 32 35 0a 23 ield...##.[1.2.1].-.2011-11-25.#
1b900 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 41 64 64 20 62 61 63 6b 20 73 75 70 70 6f 72 74 20 66 6f ##.Changed.-.Add.back.support.fo
1b920 72 20 74 68 65 20 6f 6c 64 20 73 74 79 6c 65 20 77 65 62 73 69 74 65 20 70 61 67 65 73 20 61 73 r.the.old.style.website.pages.as
1b940 20 42 26 4e 20 68 61 76 65 6e 27 74 20 63 6f 6d 70 6c 65 74 65 6c 79 20 6d 69 67 72 61 74 65 64 .B&N.haven't.completely.migrated
1b960 20 79 65 74 2e 0a 0a 23 23 20 5b 31 2e 32 2e 30 5d 20 2d 20 32 30 31 31 2d 31 31 2d 32 32 0a 23 .yet...##.[1.2.0].-.2011-11-22.#
1b980 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 52 65 77 72 69 74 74 65 6e 20 74 6f 20 73 75 70 70 6f 72 ##.Changed.-.Rewritten.to.suppor
1b9a0 74 20 6e 65 77 20 42 26 4e 20 77 65 62 73 69 74 65 20 66 6f 72 20 6e 6f 6e 20 74 65 78 74 62 6f t.new.B&N.website.for.non.textbo
1b9c0 6f 6b 73 0a 0a 23 23 20 5b 31 2e 31 2e 33 5d 20 2d 20 32 30 31 31 2d 30 38 2d 32 35 0a 23 23 23 oks..##.[1.1.3].-.2011-08-25.###
1b9e0 20 43 68 61 6e 67 65 64 0a 2d 20 43 68 61 6e 67 65 20 6c 6f 67 69 63 20 66 6f 72 20 64 65 74 65 .Changed.-.Change.logic.for.dete
1ba00 72 6d 69 6e 69 6e 67 20 69 6d 61 67 65 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 68 61 6e 64 6c rmining.image.directory.to.handl
1ba20 65 20 73 6d 61 6c 6c 65 72 20 6e 75 6d 62 65 72 65 64 20 69 6d 61 67 65 73 0a 0a 23 23 20 5b 31 e.smaller.numbered.images..##.[1
1ba40 2e 31 2e 32 5d 20 2d 20 32 30 31 31 2d 30 38 2d 30 36 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d .1.2].-.2011-08-06.###.Changed.-
1ba60 20 47 72 61 62 20 74 68 65 20 66 72 6f 6e 74 20 63 6f 76 65 72 20 77 68 65 6e 20 74 68 65 72 65 .Grab.the.front.cover.when.there
1ba80 20 61 72 65 20 6d 75 6c 74 69 70 6c 65 20 63 6f 76 65 72 73 20 61 76 61 69 6c 61 62 6c 65 0a 2d .are.multiple.covers.available.-
1baa0 20 53 75 70 70 6f 72 74 20 63 68 61 6e 67 65 20 74 6f 20 77 65 62 73 69 74 65 20 77 68 65 72 65 .Support.change.to.website.where
1bac0 20 77 67 74 2d 50 72 6f 64 75 63 74 54 69 74 6c 65 20 63 6c 61 73 73 20 74 69 74 6c 65 73 20 6e .wgt-ProductTitle.class.titles.n
1bae0 6f 20 6c 6f 6e 67 65 72 20 69 6e 73 69 64 65 20 61 20 73 70 61 6e 0a 0a 23 23 20 5b 31 2e 31 2e o.longer.inside.a.span..##.[1.1.
1bb00 31 5d 20 2d 20 32 30 31 31 2d 30 36 2d 31 36 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 53 75 1].-.2011-06-16.###.Changed.-.Su
1bb20 70 70 6f 72 74 20 61 64 64 69 74 69 6f 6e 61 6c 20 6e 6f 72 65 73 75 6c 74 73 20 75 72 6c 20 6c pport.additional.noresults.url.l
1bb40 6f 63 61 74 69 6f 6e 20 61 66 74 65 72 20 72 65 77 72 69 74 65 20 77 68 65 6e 20 6c 6f 6f 6b 75 ocation.after.rewrite.when.looku
1bb60 70 20 62 79 20 49 53 42 4e 0a 2d 20 41 6c 74 65 72 20 74 68 65 20 64 65 74 61 69 6c 73 20 55 52 p.by.ISBN.-.Alter.the.details.UR
1bb80 4c 20 6c 6f 6f 6b 65 64 20 75 70 20 74 6f 20 70 72 65 76 65 6e 74 20 61 6e 20 69 6e 66 69 6e 69 L.looked.up.to.prevent.an.infini
1bba0 74 65 20 6c 6f 6f 70 20 6f 6e 20 73 6f 6d 65 20 62 6f 6f 6b 73 20 64 75 65 20 74 6f 20 42 26 4e te.loop.on.some.books.due.to.B&N
1bbc0 20 77 65 62 73 69 74 65 20 65 72 72 6f 72 0a 2d 20 49 66 20 74 68 65 20 6d 61 69 6e 20 66 6f 72 .website.error.-.If.the.main.for
1bbe0 6d 61 74 20 72 65 74 75 72 6e 65 64 20 69 73 20 6e 6f 74 20 61 63 63 65 70 74 61 62 6c 65 20 28 mat.returned.is.not.acceptable.(
1bc00 65 2e 67 2e 20 41 75 64 69 6f 62 6f 6f 6b 29 20 6c 6f 6f 6b 20 66 6f 72 20 61 6e 20 22 41 6c 73 e.g..Audiobook).look.for.an."Als
1bc20 6f 20 41 76 61 69 6c 61 62 6c 65 20 41 73 3a 22 20 73 65 63 74 69 6f 6e 0a 2d 20 52 65 6f 72 64 o.Available.As:".section.-.Reord
1bc40 65 72 20 70 72 69 6f 72 69 74 79 20 6f 66 20 6d 61 74 63 68 69 6e 67 20 72 65 73 75 6c 74 73 20 er.priority.of.matching.results.
1bc60 74 6f 20 74 68 6f 73 65 20 77 69 74 68 20 73 68 6f 72 74 65 73 74 20 74 69 74 6c 65 73 20 28 74 to.those.with.shortest.titles.(t
1bc80 6f 20 64 65 2d 70 72 69 6f 72 69 74 69 73 65 20 62 6f 78 20 73 65 74 73 29 0a 2d 20 53 74 72 69 o.de-prioritise.box.sets).-.Stri
1bca0 70 20 27 3f 27 20 66 72 6f 6d 20 74 69 74 6c 65 20 62 61 73 65 64 20 6c 6f 6f 6b 75 70 73 0a 2d p.'?'.from.title.based.lookups.-
1bcc0 20 46 6f 72 20 6e 6f 6e 20 61 73 63 69 69 20 6e 61 6d 65 73 2c 20 65 6e 73 75 72 65 20 74 68 65 .For.non.ascii.names,.ensure.the
1bce0 20 63 6f 6d 70 61 72 69 73 6f 6e 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 6e 6f 6e 2d 61 73 69 .comparison.is.done.with.non-asi
1bd00 69 20 65 71 75 69 76 61 6c 65 6e 74 73 0a 0a 23 23 20 5b 31 2e 31 2e 30 5d 20 2d 20 32 30 31 31 i.equivalents..##.[1.1.0].-.2011
1bd20 2d 30 36 2d 30 35 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 52 65 77 72 69 74 74 65 6e 20 74 -06-05.###.Changed.-.Rewritten.t
1bd40 6f 20 73 75 70 70 6f 72 74 20 6e 65 77 20 42 26 4e 20 77 65 62 73 69 74 65 0a 0a 23 23 20 5b 31 o.support.new.B&N.website..##.[1
1bd60 2e 30 2e 36 5d 20 2d 20 32 30 31 31 2d 30 35 2d 32 39 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d .0.6].-.2011-05-29.###.Changed.-
1bd80 20 57 68 65 6e 20 61 6e 20 49 53 42 4e 20 69 73 20 6e 6f 74 20 64 69 72 65 63 74 6c 79 20 66 6f .When.an.ISBN.is.not.directly.fo
1bda0 75 6e 64 2c 20 70 72 6f 63 65 73 73 20 74 68 65 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 73 20 und,.process.the.search.results.
1bdc0 70 61 67 65 0a 0a 23 23 20 5b 31 2e 30 2e 35 5d 20 2d 20 32 30 31 31 2d 30 35 2d 32 31 0a 23 23 page..##.[1.0.5].-.2011-05-21.##
1bde0 23 20 43 68 61 6e 67 65 64 0a 2d 20 52 65 73 70 6f 6e 64 20 74 6f 20 63 68 61 6e 67 65 20 74 6f #.Changed.-.Respond.to.change.to
1be00 20 77 65 62 73 69 74 65 20 6c 61 79 6f 75 74 20 77 68 69 63 68 20 70 72 65 76 65 6e 74 65 64 20 .website.layout.which.prevented.
1be20 6d 65 74 61 64 61 74 61 20 64 6f 77 6e 6c 6f 61 64 20 77 6f 72 6b 69 6e 67 0a 0a 23 23 20 5b 31 metadata.download.working..##.[1
1be40 2e 30 2e 34 5d 20 2d 20 32 30 31 31 2d 30 35 2d 32 30 0a 23 23 23 20 41 64 64 65 64 0a 2d 20 41 .0.4].-.2011-05-20.###.Added.-.A
1be60 64 64 20 6f 70 74 69 6f 6e 20 74 6f 20 61 70 70 65 6e 64 20 54 4f 43 20 66 72 6f 6d 20 77 65 62 dd.option.to.append.TOC.from.web
1be80 73 69 74 65 20 46 65 61 74 75 72 65 73 20 74 61 62 20 74 6f 20 74 68 65 20 63 6f 6d 6d 65 6e 74 site.Features.tab.to.the.comment
1bea0 73 20 66 69 65 6c 64 20 28 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 42 26 4e 20 54 65 78 74 62 6f s.field.(available.on.B&N.Textbo
1bec0 6f 6b 73 29 0a 0a 23 23 20 5b 31 2e 30 2e 33 5d 20 2d 20 32 30 31 31 2d 30 35 2d 31 33 0a 23 23 oks)..##.[1.0.3].-.2011-05-13.##
1bee0 23 20 43 68 61 6e 67 65 64 0a 2d 20 52 65 6d 6f 76 65 20 73 6f 6d 65 20 64 65 62 75 67 67 69 6e #.Changed.-.Remove.some.debuggin
1bf00 67 20 73 74 75 66 66 20 66 72 6f 6d 20 74 68 65 20 6c 6f 67 0a 2d 20 53 74 72 69 70 20 68 79 70 g.stuff.from.the.log.-.Strip.hyp
1bf20 65 72 6c 69 6e 6b 73 20 74 65 78 74 20 66 72 6f 6d 20 74 68 65 20 63 6f 6d 6d 65 6e 74 73 20 73 erlinks.text.from.the.comments.s
1bf40 69 6e 63 65 20 74 68 65 73 65 20 64 6f 6e 27 74 20 67 65 74 20 72 65 74 61 69 6e 65 64 20 61 6e ince.these.don't.get.retained.an
1bf60 64 20 6a 75 73 74 20 63 6f 6e 66 75 73 65 20 74 68 65 20 6f 75 74 70 75 74 0a 0a 23 23 20 5b 31 d.just.confuse.the.output..##.[1
1bf80 2e 30 2e 32 5d 20 2d 20 32 30 31 31 2d 30 35 2d 30 39 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d .0.2].-.2011-05-09.###.Changed.-
1bfa0 20 4d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 49 6d 61 67 65 20 6e 6f 74 20 61 76 61 69 6c 61 .Make.sure.that.Image.not.availa
1bfc0 62 6c 65 20 67 69 66 73 20 61 72 65 20 6e 6f 74 20 72 65 74 75 72 6e 65 64 20 61 73 20 66 61 6c ble.gifs.are.not.returned.as.fal
1bfe0 6c 62 61 63 6b 20 63 6f 76 65 72 73 0a 0a 23 23 20 5b 31 2e 30 2e 31 5d 20 2d 20 32 30 31 31 2d lback.covers..##.[1.0.1].-.2011-
1c000 30 35 2d 30 39 0a 23 23 23 20 41 64 64 65 64 0a 2d 20 41 64 64 20 22 41 75 64 69 6f 22 20 74 6f 05-09.###.Added.-.Add."Audio".to
1c020 20 6c 69 73 74 20 6f 66 20 65 78 63 6c 75 64 65 64 20 66 6f 72 6d 61 74 20 74 79 70 65 73 0a 2d .list.of.excluded.format.types.-
1c040 20 41 64 64 20 61 20 63 6f 6e 66 69 67 20 6f 70 74 69 6f 6e 20 28 6c 69 6b 65 20 47 6f 6f 64 72 .Add.a.config.option.(like.Goodr
1c060 65 61 64 73 29 20 74 6f 20 72 65 74 75 72 6e 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 eads).to.return.all.contributing
1c080 20 61 75 74 68 6f 72 73 20 28 6f 66 66 20 62 79 20 64 65 66 61 75 6c 74 29 0a 23 23 23 20 43 68 .authors.(off.by.default).###.Ch
1c0a0 61 6e 67 65 64 0a 2d 20 4d 6f 64 69 66 79 20 70 72 69 6f 72 69 74 69 73 61 74 69 6f 6e 20 6f 66 anged.-.Modify.prioritisation.of
1c0c0 20 72 65 73 75 6c 74 73 20 74 6f 20 69 6e 63 72 65 61 73 65 20 63 68 61 6e 63 65 20 6f 66 20 67 .results.to.increase.chance.of.g
1c0e0 65 74 74 69 6e 67 20 61 20 6c 61 72 67 65 20 63 6f 76 65 72 20 77 68 65 6e 20 6d 75 6c 74 69 70 etting.a.large.cover.when.multip
1c100 6c 65 20 68 61 76 65 20 63 6f 76 65 72 73 0a 23 23 23 20 46 69 78 65 64 0a 2d 20 4d 75 6c 74 69 le.have.covers.###.Fixed.-.Multi
1c120 70 6c 65 20 61 75 74 68 6f 72 73 20 62 65 69 6e 67 20 72 65 74 75 72 6e 65 64 20 77 68 65 6e 20 ple.authors.being.returned.when.
1c140 74 68 65 79 20 68 61 76 65 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 20 74 79 70 65 20 69 6e 20 62 they.have.contribution.type.in.b
1c160 72 61 63 6b 65 74 73 20 61 66 74 65 72 20 74 68 65 6d 0a 0a 23 23 20 5b 31 2e 30 2e 30 5d 20 2d rackets.after.them..##.[1.0.0].-
1c180 20 32 30 31 31 2d 30 35 2d 30 38 0a 5f 49 6e 69 74 69 61 6c 20 72 65 6c 65 61 73 65 20 6f 66 20 .2011-05-08._Initial.release.of.
1c1a0 70 6c 75 67 69 6e 5f 0a 50 4b 03 04 14 00 00 00 00 00 ae 08 49 55 f6 da 03 20 e6 0c 00 00 e6 0c plugin_.PK..........IU..........
1c1c0 00 00 09 00 00 00 52 45 41 44 4d 45 2e 6d 64 23 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 20 ......README.md#.Barnes.&.Noble.
1c1e0 50 6c 75 67 69 6e 0d 0a 5b 21 5b 4d 6f 62 69 6c 65 52 65 61 64 5d 5b 6d 6f 62 69 6c 65 72 65 61 Plugin..[![MobileRead][mobilerea
1c200 64 2d 69 6d 61 67 65 5d 5d 5b 6d 6f 62 69 6c 65 72 65 61 64 2d 75 72 6c 5d 0d 0a 5b 21 5b 48 69 d-image]][mobileread-url]..[![Hi
1c220 73 74 6f 72 79 5d 5b 63 68 61 6e 67 65 6c 6f 67 2d 69 6d 61 67 65 5d 5d 5b 63 68 61 6e 67 65 6c story][changelog-image]][changel
1c240 6f 67 2d 75 72 6c 5d 20 0d 0a 5b 21 5b 4c 69 63 65 6e 73 65 5d 5b 6c 69 63 65 6e 73 65 2d 69 6d og-url]...[![License][license-im
1c260 61 67 65 5d 5d 5b 6c 69 63 65 6e 73 65 2d 75 72 6c 5d 0d 0a 5b 21 5b 63 61 6c 69 62 72 65 20 56 age]][license-url]..[![calibre.V
1c280 65 72 73 69 6f 6e 5d 5b 63 61 6c 69 62 72 65 2d 69 6d 61 67 65 5d 5d 5b 63 61 6c 69 62 72 65 2d ersion][calibre-image]][calibre-
1c2a0 75 72 6c 5d 0d 0a 5b 21 5b 53 74 61 74 75 73 5d 5b 73 74 61 74 75 73 2d 69 6d 61 67 65 5d 5d 5b url]..[![Status][status-image]][
1c2c0 73 74 61 74 75 73 2d 69 6d 61 67 65 5d 20 0d 0a 0d 0a 23 23 20 4f 76 65 72 76 69 65 77 0d 0a 0d status-image].....##.Overview...
1c2e0 0a 54 68 69 73 20 70 6c 75 67 69 6e 20 6f 66 66 65 72 73 20 61 20 64 6f 77 6e 6c 6f 61 64 20 73 .This.plugin.offers.a.download.s
1c300 6f 75 72 63 65 20 66 6f 72 20 62 6f 6f 6b 20 6d 65 74 61 64 61 74 61 20 69 6e 63 6c 75 64 69 6e ource.for.book.metadata.includin
1c320 67 20 73 6f 6d 65 20 65 78 63 65 6c 6c 65 6e 74 20 71 75 61 6c 69 74 79 20 63 6f 76 65 72 73 20 g.some.excellent.quality.covers.
1c340 62 79 20 72 65 74 72 69 65 76 69 6e 67 20 66 72 6f 6d 20 5b 62 61 72 6e 65 73 61 6e 64 6e 6f 62 by.retrieving.from.[barnesandnob
1c360 6c 65 2e 63 6f 6d 5d 28 68 74 74 70 3a 2f 2f 77 77 77 2e 62 61 72 6e 65 73 61 6e 64 6e 6f 62 6c le.com](http://www.barnesandnobl
1c380 65 2e 63 6f 6d 2f 29 2e 0d 0a 0d 0a 49 74 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 65 69 e.com/).....It.is.designed.to.ei
1c3a0 74 68 65 72 20 73 75 70 70 6c 65 6d 65 6e 74 20 6f 72 20 72 65 70 6c 61 63 65 20 74 68 65 20 6d ther.supplement.or.replace.the.m
1c3c0 65 74 61 64 61 74 61 20 70 6c 75 67 69 6e 73 20 74 68 61 74 20 63 6f 6d 65 20 77 69 74 68 20 43 etadata.plugins.that.come.with.C
1c3e0 61 6c 69 62 72 65 2e 20 59 6f 75 20 63 61 6e 6e 6f 74 20 67 65 74 20 61 6e 79 20 67 65 74 20 61 alibre..You.cannot.get.any.get.a
1c400 6e 79 20 74 61 67 73 20 28 67 65 6e 72 65 73 29 20 66 72 6f 6d 20 74 68 69 73 20 70 6c 75 67 69 ny.tags.(genres).from.this.plugi
1c420 6e 20 61 73 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 20 64 6f 20 6e 6f 74 20 68 61 76 65 20 n.as.Barnes.&.Noble.do.not.have.
1c440 61 6e 79 20 73 75 63 68 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 61 20 62 6f 6f 6b 20 64 any.such.information.on.a.book.d
1c460 65 74 61 69 6c 20 70 61 67 65 2e 0d 0a 0d 0a 48 6f 77 65 76 65 72 20 69 74 20 64 6f 65 73 20 68 etail.page.....However.it.does.h
1c480 61 76 65 20 68 69 67 68 65 72 20 71 75 61 6c 69 74 79 20 63 6f 76 65 72 73 20 61 76 61 69 6c 61 ave.higher.quality.covers.availa
1c4a0 62 6c 65 20 69 6e 20 6c 61 72 67 65 72 20 73 69 7a 65 73 20 74 68 61 6e 20 6d 61 6e 79 20 6f 66 ble.in.larger.sizes.than.many.of
1c4c0 20 74 68 65 20 6f 74 68 65 72 20 6d 65 74 61 64 61 74 61 20 70 6c 75 67 69 6e 73 20 6f 66 66 65 .the.other.metadata.plugins.offe
1c4e0 72 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 73 65 72 69 65 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e r,.as.well.as.series.information
1c500 2e 0d 0a 0d 0a 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 73 65 65 20 74 .....For.more.information,.see.t
1c520 68 65 20 5b 57 69 6b 69 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 69 77 he.[Wiki](https://github.com/kiw
1c540 69 64 75 64 65 36 38 2f 63 61 6c 69 62 72 65 5f 70 6c 75 67 69 6e 73 2f 77 69 6b 69 2f 42 61 72 idude68/calibre_plugins/wiki/Bar
1c560 6e 65 73 2d 26 2d 4e 6f 62 6c 65 29 0d 0a 0d 0a 23 23 20 44 65 76 65 6c 6f 70 6d 65 6e 74 20 2f nes-&-Noble)....##.Development./
1c580 20 43 6f 6e 74 72 69 62 75 74 69 6f 6e 73 0d 0a 0d 0a 41 6c 6c 20 6b 69 77 69 64 75 64 65 27 73 .Contributions....All.kiwidude's
1c5a0 20 63 61 6c 69 62 72 65 20 70 6c 75 67 69 6e 73 20 61 72 65 20 6e 6f 77 20 64 65 76 65 6c 6f 70 .calibre.plugins.are.now.develop
1c5c0 65 64 20 61 6e 64 20 6d 61 69 6e 74 61 69 6e 65 64 20 69 6e 20 47 69 74 48 75 62 20 61 74 3a 0d ed.and.maintained.in.GitHub.at:.
1c5e0 0a 2d 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 69 77 69 64 75 64 65 36 38 .-.https://github.com/kiwidude68
1c600 2f 63 61 6c 69 62 72 65 5f 70 6c 75 67 69 6e 73 0d 0a 0d 0a 50 6c 65 61 73 65 20 73 65 65 20 74 /calibre_plugins....Please.see.t
1c620 68 65 20 52 45 41 44 4d 45 2e 6d 64 20 61 6e 64 20 43 4f 4e 54 52 49 42 55 54 49 4e 47 2e 6d 64 he.README.md.and.CONTRIBUTING.md
1c640 20 61 74 20 74 68 65 20 61 62 6f 76 65 20 73 69 74 65 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f .at.the.above.site.for.more.info
1c660 72 6d 61 74 69 6f 6e 2e 0d 0a 0d 0a 0d 0a 5b 6d 6f 62 69 6c 65 72 65 61 64 2d 69 6d 61 67 65 5d rmation.......[mobileread-image]
1c680 3a 20 68 74 74 70 73 3a 2f 2f 69 6d 67 2e 73 68 69 65 6c 64 73 2e 69 6f 2f 62 61 64 67 65 2f 4d :.https://img.shields.io/badge/M
1c6a0 6f 62 69 6c 65 52 65 61 64 2d 50 6c 75 67 69 6e 25 32 30 54 68 72 65 61 64 2d 62 6c 75 65 3f 6c obileRead-Plugin%20Thread-blue?l
1c6c0 6f 67 6f 3d 64 61 74 61 3a 69 6d 61 67 65 2f 78 2d 69 63 6f 6e 3b 62 61 73 65 36 34 2c 41 41 41 ogo=data:image/x-icon;base64,AAA
1c6e0 42 41 41 45 41 45 42 41 41 41 41 45 41 49 41 42 6f 42 41 41 41 46 67 41 41 41 43 67 41 41 41 41 BAAEAEBAAAAEAIABoBAAAFgAAACgAAAA
1c700 51 41 41 41 41 49 41 41 41 41 41 45 41 49 41 41 41 41 41 41 41 51 41 51 41 41 41 41 41 41 41 41 QAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAA
1c720 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1c740 41 41 41 41 41 6e 73 33 32 2f 7a 71 54 35 76 38 53 65 65 44 2f 45 6e 6e 67 2f 78 4a 35 34 50 38 AAAAAns32/zqT5v8SeeD/Enng/xJ54P8
1c760 53 65 65 44 2f 4c 59 76 6c 2f 33 2b 37 38 76 38 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 SeeD/LYvl/3+78v8AAAAAAAAAAAAAAAA
1c780 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 5a 61 7a 76 2f 78 4a 35 34 50 38 AAAAAAAAAAAAAAAAAAAAAZazv/xJ54P8
1c7a0 53 65 65 44 2f 45 6e 6e 67 2f 7a 71 54 35 76 39 4a 6d 2b 6e 2f 48 6f 4c 69 2f 78 4a 35 34 50 38 SeeD/Enng/zqT5v9Jm+n/HoLi/xJ54P8
1c7c0 53 65 65 44 2f 4f 70 50 6d 2f 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 SeeD/OpPm/wAAAAAAAAAAAAAAAAAAAAA
1c7e0 41 41 41 41 41 7a 75 62 37 2f 78 4a 35 34 50 38 53 65 65 44 2f 45 6e 6e 67 2f 34 2f 44 39 50 2f AAAAAzub7/xJ54P8SeeD/Enng/4/D9P/
1c800 70 36 65 6e 2f 30 74 4c 53 2f 38 54 63 38 50 38 53 65 65 44 2f 45 6e 6e 67 2f 78 4a 35 34 50 2b p6en/0tLS/8Tc8P8SeeD/Enng/xJ54P+
1c820 50 77 2f 54 2f 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 4c 33 65 2b 76 38 Pw/T/AAAAAAAAAAAAAAAAAAAAAL3e+v8
1c840 53 65 65 44 2f 45 6e 6e 67 2f 78 4a 35 34 50 2b 39 33 76 72 2f 57 6c 70 61 2f 7a 63 33 4e 2f 38 SeeD/Enng/xJ54P+93vr/Wlpa/zc3N/8
1c860 41 41 41 41 41 45 6e 6e 67 2f 78 4a 35 34 50 38 53 65 65 44 2f 66 37 76 79 2f 77 41 41 41 41 41 AAAAAEnng/xJ54P8SeeD/f7vy/wAAAAA
1c880 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 48 6f 4c 69 2f 78 4a 35 34 50 38 AAAAAAAAAAAAAAAAAAAAAHoLi/xJ54P8
1c8a0 53 65 65 44 2f 54 33 2b 72 2f 79 51 6b 4a 50 39 2b 6a 70 7a 2f 5a 61 7a 76 2f 78 4a 35 34 50 38 SeeD/T3+r/yQkJP9+jpz/Zazv/xJ54P8
1c8c0 53 65 65 44 2f 45 6e 6e 67 2f 37 33 65 2b 76 38 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 SeeD/Enng/73e+v8AAAAAAAAAAAAAAAA
1c8e0 41 41 41 41 41 7a 38 4b 74 2f 36 36 75 6f 66 2b 47 6a 34 4c 2f 68 6f 2b 43 2f 35 53 4b 62 2f 2b AAAAAz8Kt/66uof+Gj4L/ho+C/5SKb/+
1c900 56 68 32 6a 2f 68 6f 2b 43 2f 34 61 50 67 76 2b 47 6a 34 4c 2f 68 6f 2b 43 2f 35 4f 56 67 76 2b Vh2j/ho+C/4aPgv+Gj4L/ho+C/5OVgv+
1c920 36 71 59 50 2f 79 72 79 69 2f 77 41 41 41 41 41 41 41 41 41 41 70 35 42 57 2f 36 65 51 56 76 2b 6qYP/yryi/wAAAAAAAAAAp5BW/6eQVv+
1c940 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b nkFb/p5BW/6eQVv+nkFb/p5BW/6eQVv+
1c960 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 38 nkFb/p5BW/6eQVv+nkFb/p5BW/6eQVv8
1c980 41 41 41 41 41 36 65 50 62 34 36 65 51 56 76 2b 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b AAAAA6ePb46eQVv+nkFb/p5BW/6eQVv+
1c9a0 6e 6b 46 62 2f 78 4c 57 59 2f 38 2f 43 72 66 2f 50 77 71 33 2f 76 71 36 4e 2f 37 71 6f 67 76 2b nkFb/xLWY/8/Crf/Pwq3/vq6N/7qogv+
1c9c0 36 71 49 4c 2f 75 71 69 43 2f 37 71 6f 67 76 2b 6e 6b 46 62 2f 35 75 44 57 2f 2b 62 67 31 76 2b 6qIL/uqiC/7qogv+nkFb/5uDW/+bg1v+
1c9e0 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b 6e 6b 46 62 2f 70 35 42 57 2f 2b 7a 6e 34 66 2f nkFb/p5BW/6eQVv+nkFb/p5BW/+zn4f/
1ca00 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 38 7a 4d 7a 50 39 32 64 6e 62 2f 56 46 52 55 2f 39 6e 5a 32 66 2f //////////8zMzP92dnb/VFRU/9nZ2f/
1ca20 2f 2f 2f 2f 2f 74 61 4a 35 2f 38 2f 43 72 66 2f 6d 34 4e 62 2f 70 35 42 57 2f 36 65 51 56 76 2b /////taJ5/8/Crf/m4Nb/p5BW/6eQVv+
1ca40 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2f 6d 34 4e 62 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f nkFb/p5BW/6eQVv/m4Nb////////////
1ca60 4d 7a 4d 7a 2f 6b 35 4f 54 2f 38 7a 4d 7a 50 2f 7a 38 2f 50 2f 2f 2f 2f 2f 2f 38 53 31 6d 50 2f MzMz/k5OT/8zMzP/z8/P//////8S1mP/
1ca80 45 74 5a 6a 2f 35 75 44 57 2f 36 65 51 56 76 2b 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b EtZj/5uDW/6eQVv+nkFb/p5BW/6eQVv+
1caa0 6e 6b 46 62 2f 6f 5a 36 5a 2f 35 4f 54 6b 2f 2f 6d 35 75 62 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f nkFb/oZ6Z/5OTk//m5ub////////////
1cac0 2f 2f 2f 2f 2f 38 2f 50 7a 2f 33 5a 32 64 76 39 78 63 48 44 2f 6a 34 68 37 2f 39 72 52 77 66 2b /////8/Pz/3Z2dv9xcHD/j4h7/9rRwf+
1cae0 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b 6e 6b 46 62 2f 56 56 4e 50 2f 38 7a 4d 7a 50 2f nkFb/p5BW/6eQVv+nkFb/VVNP/8zMzP/
1cb00 7a 38 2f 50 2f 64 6e 5a 32 2f 39 6e 5a 32 66 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 35 4f 54 6b 2f 2f z8/P/dnZ2/9nZ2f///////////5OTk//
1cb20 7a 38 2f 50 2f 2f 2f 2f 2f 2f 33 52 78 61 2f 2f 50 77 71 33 2f 70 35 42 57 2f 36 65 51 56 76 2b z8/P//////3Rxa//Pwq3/p5BW/6eQVv+
1cb40 6e 6b 46 62 2f 70 35 42 57 2f 32 46 67 59 50 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 37 36 2b 76 76 2f nkFb/p5BW/2FgYP///////////76+vv/
1cb60 4d 7a 4d 7a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2b 69 6f 71 4c 2f 6f 71 4b 69 2f 37 36 2b 76 76 39 MzMz///////////+ioqL/oqKi/76+vv9
1cb80 31 62 32 58 2f 7a 38 4b 74 2f 36 65 51 56 76 2b 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b 1b2X/z8Kt/6eQVv+nkFb/p5BW/6eQVv+
1cba0 4a 66 57 58 2f 62 47 74 71 2f 34 57 46 68 66 2b 46 68 59 58 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f JfWX/bGtq/4WFhf+FhYX////////////
1cbc0 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 37 36 2b 76 76 2b 2b 76 72 37 2f 74 61 4a 35 2f 38 2f 43 72 66 2b //////////76+vv++vr7/taJ5/8/Crf+
1cbe0 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b 6e 6b 46 62 2f 70 35 42 57 2f 38 6d 37 6f 76 2f nkFb/p5BW/6eQVv+nkFb/p5BW/8m7ov/
1cc00 2f 2f 2f 2f 2f 2b 50 62 31 2f 2b 62 67 31 76 2f 67 32 4d 7a 2f 7a 38 4b 74 2f 38 2f 43 72 66 2b /////+Pb1/+bg1v/g2Mz/z8Kt/8/Crf+
1cc20 36 71 49 4c 2f 75 71 69 43 2f 36 65 51 56 76 2f 6d 34 4e 62 2f 75 71 6d 44 2f 37 71 70 67 2f 2b 6qIL/uqiC/6eQVv/m4Nb/uqmD/7qpg/+
1cc40 6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b 6e 6b 46 62 2f 72 5a 5a 68 2f 37 71 70 67 2f 2b nkFb/p5BW/6eQVv+nkFb/rZZh/7qpg/+
1cc60 2f 72 34 33 2f 7a 38 4b 74 2f 38 2f 43 72 66 2f 6d 34 4e 59 64 35 75 44 57 56 51 41 41 41 41 41 /r43/z8Kt/8/Crf/m4NYd5uDWVQAAAAA
1cc80 41 41 41 41 41 38 41 38 41 41 4f 41 48 41 41 44 41 41 77 41 41 77 45 4d 41 41 4f 41 44 41 41 44 AAAAA8A8AAOAHAADAAwAAwEMAAOADAAD
1cca0 41 41 51 41 41 67 41 45 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAQAAgAEAAAAAAAAAAAAAAAAAAAAAAAA
1ccc0 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 4d 41 41 41 3d 3d 0d 0a 5b AAAAAAAAAAAAAAAAAAAAAAAMAAA==..[
1cce0 6d 6f 62 69 6c 65 72 65 61 64 2d 75 72 6c 5d 3a 20 68 74 74 70 73 3a 2f 2f 77 77 77 2e 6d 6f 62 mobileread-url]:.https://www.mob
1cd00 69 6c 65 72 65 61 64 2e 63 6f 6d 2f 66 6f 72 75 6d 73 2f 73 68 6f 77 74 68 72 65 61 64 2e 70 68 ileread.com/forums/showthread.ph
1cd20 70 3f 74 3d 31 33 32 35 30 38 0d 0a 0d 0a 5b 63 68 61 6e 67 65 6c 6f 67 2d 69 6d 61 67 65 5d 3a p?t=132508....[changelog-image]:
1cd40 20 68 74 74 70 73 3a 2f 2f 69 6d 67 2e 73 68 69 65 6c 64 73 2e 69 6f 2f 62 61 64 67 65 2f 48 69 .https://img.shields.io/badge/Hi
1cd60 73 74 6f 72 79 2d 43 48 41 4e 47 45 4c 4f 47 2d 62 6c 75 65 2e 73 76 67 0d 0a 5b 63 68 61 6e 67 story-CHANGELOG-blue.svg..[chang
1cd80 65 6c 6f 67 2d 75 72 6c 5d 3a 20 43 48 41 4e 47 45 4c 4f 47 2e 6d 64 0d 0a 0d 0a 5b 6c 69 63 65 elog-url]:.CHANGELOG.md....[lice
1cda0 6e 73 65 2d 69 6d 61 67 65 5d 3a 20 68 74 74 70 73 3a 2f 2f 69 6d 67 2e 73 68 69 65 6c 64 73 2e nse-image]:.https://img.shields.
1cdc0 69 6f 2f 62 61 64 67 65 2f 4c 69 63 65 6e 73 65 2d 47 50 4c 2d 79 65 6c 6c 6f 77 2e 73 76 67 0d io/badge/License-GPL-yellow.svg.
1cde0 0a 5b 6c 69 63 65 6e 73 65 2d 75 72 6c 5d 3a 20 2e 2e 2f 4c 49 43 45 4e 53 45 2e 6d 64 0d 0a 0d .[license-url]:.../LICENSE.md...
1ce00 0a 5b 63 61 6c 69 62 72 65 2d 69 6d 61 67 65 5d 3a 20 68 74 74 70 73 3a 2f 2f 69 6d 67 2e 73 68 .[calibre-image]:.https://img.sh
1ce20 69 65 6c 64 73 2e 69 6f 2f 62 61 64 67 65 2f 63 61 6c 69 62 72 65 2d 32 2e 30 2e 30 2d 67 72 65 ields.io/badge/calibre-2.0.0-gre
1ce40 65 6e 0d 0a 5b 63 61 6c 69 62 72 65 2d 75 72 6c 5d 3a 20 68 74 74 70 73 3a 2f 2f 77 77 77 2e 63 en..[calibre-url]:.https://www.c
1ce60 61 6c 69 62 72 65 2d 65 62 6f 6f 6b 2e 63 6f 6d 2f 0d 0a 0d 0a 5b 73 74 61 74 75 73 2d 69 6d 61 alibre-ebook.com/....[status-ima
1ce80 67 65 5d 3a 20 68 74 74 70 73 3a 2f 2f 69 6d 67 2e 73 68 69 65 6c 64 73 2e 69 6f 2f 62 61 64 67 ge]:.https://img.shields.io/badg
1cea0 65 2f 53 74 61 74 75 73 2d 53 74 61 62 6c 65 2d 67 72 65 65 6e 50 4b 03 04 14 00 00 00 00 00 f5 e/Status-Stable-greenPK.........
1cec0 68 7c 3e 00 00 00 00 00 00 00 00 00 00 00 00 23 00 00 00 70 6c 75 67 69 6e 2d 69 6d 70 6f 72 74 h|>............#...plugin-import
1cee0 2d 6e 61 6d 65 2d 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 2e 74 78 74 50 4b 01 02 14 00 14 00 00 00 -name-barnes_noble.txtPK........
1cf00 00 00 86 a0 ac 5a 3d 20 12 41 67 05 00 00 67 05 00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81 .....Z=..Ag...g.................
1cf20 00 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 64 65 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00 ....translations/de.moPK........
1cf40 00 00 86 a0 ac 5a ef c8 59 08 19 06 00 00 19 06 00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81 .....Z..Y.......................
1cf60 97 05 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 65 73 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00 ....translations/es.moPK........
1cf80 00 00 86 a0 ac 5a 45 90 fc 94 8b 05 00 00 8b 05 00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81 .....ZE.........................
1cfa0 e0 0b 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 66 69 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00 ....translations/fi.moPK........
1cfc0 00 00 86 a0 ac 5a a4 b4 0f e4 4b 06 00 00 4b 06 00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81 .....Z....K...K.................
1cfe0 9b 11 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 66 72 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00 ....translations/fr.moPK........
1d000 00 00 86 a0 ac 5a fa 03 c8 3b c2 05 00 00 c2 05 00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81 .....Z...;......................
1d020 16 18 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 67 6c 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00 ....translations/gl.moPK........
1d040 00 00 87 a0 ac 5a 68 a2 95 1f f6 05 00 00 f6 05 00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81 .....Zh.........................
1d060 08 1e 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 6a 61 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00 ....translations/ja.moPK........
1d080 00 00 87 a0 ac 5a c7 30 7a b3 77 05 00 00 77 05 00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81 .....Z.0z.w...w.................
1d0a0 2e 24 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 6e 6c 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00 .$..translations/nl.moPK........
1d0c0 00 00 87 a0 ac 5a 61 3a 02 b5 60 06 00 00 60 06 00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81 .....Za:..`...`.................
1d0e0 d5 29 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 70 6c 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00 .)..translations/pl.moPK........
1d100 00 00 87 a0 ac 5a 19 79 dd 7f 51 06 00 00 51 06 00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81 .....Z.y..Q...Q.................
1d120 65 30 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 70 74 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00 e0..translations/pt.moPK........
1d140 00 00 87 a0 ac 5a b6 eb de 20 42 06 00 00 42 06 00 00 15 00 00 00 00 00 00 00 00 00 00 00 b6 81 .....Z....B...B.................
1d160 e6 36 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 70 74 5f 42 52 2e 6d 6f 50 4b 01 02 14 00 14 .6..translations/pt_BR.moPK.....
1d180 00 00 00 00 00 e0 35 28 55 55 1a 5c 16 06 01 00 00 06 01 00 00 16 00 00 00 00 00 00 00 00 00 00 ......5(UU.\....................
1d1a0 00 b6 81 5b 3d 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 52 45 41 44 4d 45 2e 6d 64 50 4b 01 ...[=..translations/README.mdPK.
1d1c0 02 14 00 14 00 00 00 00 00 87 a0 ac 5a 19 b1 5d 0d fc 06 00 00 fc 06 00 00 12 00 00 00 00 00 00 ............Z..]................
1d1e0 00 00 00 00 00 b6 81 95 3e 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 72 75 2e 6d 6f 50 4b 01 ........>..translations/ru.moPK.
1d200 02 14 00 14 00 00 00 00 00 87 a0 ac 5a c8 30 37 e8 a2 09 00 00 a2 09 00 00 12 00 00 00 00 00 00 ............Z.07................
1d220 00 00 00 00 00 b6 81 c1 45 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 74 61 2e 6d 6f 50 4b 01 ........E..translations/ta.moPK.
1d240 02 14 00 14 00 00 00 00 00 87 a0 ac 5a 45 1b ed ed 98 05 00 00 98 05 00 00 12 00 00 00 00 00 00 ............ZE..................
1d260 00 00 00 00 00 b6 81 93 4f 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 74 72 2e 6d 6f 50 4b 01 ........O..translations/tr.moPK.
1d280 02 14 00 14 00 00 00 00 00 87 a0 ac 5a a5 fd 37 25 39 08 00 00 39 08 00 00 12 00 00 00 00 00 00 ............Z..7%9...9..........
1d2a0 00 00 00 00 00 b6 81 5b 55 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 75 6b 2e 6d 6f 50 4b 01 .......[U..translations/uk.moPK.
1d2c0 02 14 00 14 00 00 00 00 00 87 a0 ac 5a 60 34 7a d9 55 05 00 00 55 05 00 00 15 00 00 00 00 00 00 ............Z`4z.U...U..........
1d2e0 00 00 00 00 00 b6 81 c4 5d 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 7a 68 5f 43 4e 2e 6d 6f ........]..translations/zh_CN.mo
1d300 50 4b 01 02 14 00 14 00 00 00 00 00 0e 22 35 55 9f 9e 33 d9 1f 05 00 00 1f 05 00 00 17 00 00 00 PK..........."5U..3.............
1d320 00 00 00 00 00 00 00 00 b6 81 4c 63 00 00 63 6f 6d 6d 6f 6e 5f 63 6f 6d 70 61 74 69 62 69 6c 69 ..........Lc..common_compatibili
1d340 74 79 2e 70 79 50 4b 01 02 14 00 14 00 00 00 00 00 87 a0 ac 5a 55 6a 15 1b 4f 2e 00 00 4f 2e 00 ty.pyPK.............ZUj..O...O..
1d360 00 11 00 00 00 00 00 00 00 00 00 00 00 b6 81 a0 68 00 00 63 6f 6d 6d 6f 6e 5f 64 69 61 6c 6f 67 ................h..common_dialog
1d380 73 2e 70 79 50 4b 01 02 14 00 14 00 00 00 00 00 97 a3 33 55 39 8a c0 f7 60 11 00 00 60 11 00 00 s.pyPK............3U9...`...`...
1d3a0 0f 00 00 00 00 00 00 00 00 00 00 00 b6 81 1e 97 00 00 63 6f 6d 6d 6f 6e 5f 69 63 6f 6e 73 2e 70 ..................common_icons.p
1d3c0 79 50 4b 01 02 14 00 14 00 00 00 00 00 87 a0 ac 5a 3d 30 d6 d8 2d 16 00 00 2d 16 00 00 0f 00 00 yPK.............Z=0..-...-......
1d3e0 00 00 00 00 00 00 00 00 00 b6 81 ab a8 00 00 63 6f 6d 6d 6f 6e 5f 6d 65 6e 75 73 2e 70 79 50 4b ...............common_menus.pyPK
1d400 01 02 14 00 14 00 00 00 00 00 87 a0 ac 5a d5 66 bd bc 73 30 00 00 73 30 00 00 11 00 00 00 00 00 .............Z.f..s0..s0........
1d420 00 00 00 00 00 00 b6 81 05 bf 00 00 63 6f 6d 6d 6f 6e 5f 77 69 64 67 65 74 73 2e 70 79 50 4b 01 ............common_widgets.pyPK.
1d440 02 14 00 14 00 00 00 00 00 54 7e 82 56 4e 2b 5a ec 0d 0d 00 00 0d 0d 00 00 09 00 00 00 00 00 00 .........T~.VN+Z................
1d460 00 00 00 00 00 b6 81 a7 ef 00 00 63 6f 6e 66 69 67 2e 70 79 50 4b 01 02 14 00 14 00 00 00 00 00 ...........config.pyPK..........
1d480 b9 89 ab 58 87 b1 dd 7e 85 60 00 00 85 60 00 00 09 00 00 00 00 00 00 00 00 00 00 00 b6 81 db fc ...X...~.`...`..................
1d4a0 00 00 77 6f 72 6b 65 72 2e 70 79 50 4b 01 02 14 00 14 00 00 00 00 00 42 a0 ac 5a c1 ed 80 20 f0 ..worker.pyPK..........B..Z.....
1d4c0 4d 00 00 f0 4d 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 b6 81 87 5d 01 00 5f 5f 69 6e 69 74 5f M...M.................]..__init_
1d4e0 5f 2e 70 79 50 4b 01 02 14 00 14 00 00 00 00 00 61 a0 ac 5a 62 b2 8b 1f de 15 00 00 de 15 00 00 _.pyPK..........a..Zb...........
1d500 0c 00 00 00 00 00 00 00 00 00 00 00 b6 81 a0 ab 01 00 43 48 41 4e 47 45 4c 4f 47 2e 6d 64 50 4b ..................CHANGELOG.mdPK
1d520 01 02 14 00 14 00 00 00 00 00 ae 08 49 55 f6 da 03 20 e6 0c 00 00 e6 0c 00 00 09 00 00 00 00 00 ............IU..................
1d540 00 00 00 00 00 00 b6 81 a8 c1 01 00 52 45 41 44 4d 45 2e 6d 64 50 4b 01 02 14 00 14 00 00 00 00 ............README.mdPK.........
1d560 00 f5 68 7c 3e 00 00 00 00 00 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00 b6 81 b5 ..h|>............#..............
1d580 ce 01 00 70 6c 75 67 69 6e 2d 69 6d 70 6f 72 74 2d 6e 61 6d 65 2d 62 61 72 6e 65 73 5f 6e 6f 62 ...plugin-import-name-barnes_nob
1d5a0 6c 65 2e 74 78 74 50 4b 05 06 00 00 00 00 1b 00 1b 00 b0 06 00 00 f6 ce 01 00 00 00 le.txtPK....................