Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Software > Calibre > Development

Notices

Reply
 
Thread Tools Search this Thread
Old 02-23-2011, 10:25 PM   #16
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 43,860
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
The approach I like is to define a small section under

if __name__ == "__main__"

in the plugin file to test things and execute it via

calibre-debug -e

see the bottom of amazon.py for example.

This section is not executed normally.
kovidgoyal is offline   Reply With Quote
Old 02-23-2011, 11:12 PM   #17
ldolse
Wizard
ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.
 
Posts: 1,337
Karma: 123455
Join Date: Apr 2009
Location: Malaysia
Device: PRS-650, iPhone
K, will follow that route, thanks. I should have re-read that section of the developer guide a long time ago
ldolse is offline   Reply With Quote
Advert
Old 02-26-2011, 05:11 AM   #18
ldolse
Wizard
ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.
 
Posts: 1,337
Karma: 123455
Join Date: Apr 2009
Location: Malaysia
Device: PRS-650, iPhone
Ok - making progress, but could use some advice on working with Mechanize/Browser.

Based on the general examples of how to use Mechanize/Browser I'm loading the Advanced search page first, then populating the form and submitting from there. Although I know exactly what I want to post I didn't see how to easily submit a post directly to a pre-defined url. br_submit was the only way I saw to POST data, and this required first loading the associated form.

Every library's advanced search contains this exact form:
Spoiler:
Code:
<table border="0" width="100%" cellpadding="2" cellspacing="0">
<form action="BANGSearch.dll" method="POST">
<tr>
	<td nowrap><label for="title">Title</label>:</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%">
		<input type="text" name="Title" size="35" maxlength="100" style="width:288"  id="title"></input>
	</td>
</tr>
<tr>
	<td nowrap><label for="creator">Creator</label>:</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%">
		<input type="text" name="Creator" size="35" maxlength="100" style="width:288"  id="creator"></input>
	</td>
</tr>
<tr>
	<td nowrap><label for="keyword">Keyword</label>:</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%">
		<input type="text" name="Keyword" size="35" maxlength="100" style="width:288"  id="keyword"></input>
	</td>
</tr>
<tr>
	<td nowrap><label for="ISBN">ISBN</label>:</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%">
		<input type="text" name="ISBN" size="35" maxlength="13" style="width:288"  id="ISBN"></input>
	</td>
</tr>
<tr>
	<td nowrap><label for="format">Format</label>:</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%">
		<select name="Format" size="1" style="width:288"  id="format">
			<option value="">All formats</option>
			<option value="410">Adobe EPUB eBook</option>
			<option value="50">Adobe PDF eBook</option>
			<option value="900">Mobipocket eBook</option>
			<option value="425">OverDrive MP3 Audiobook</option>
			<option value="25">OverDrive WMA Audiobook</option>
			<option value="30">OverDrive Music</option>
			<option value="35">OverDrive Video</option>
		</select>
	</td>
</tr>
<tr>
	<td nowrap><label for="language">Language</label>:</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%">
		<select name="Language" size="1" style="width:288"  id="language">
			<option value="">All languages</option>
			<option value="ar">Arabic</option>
			<option value="zh">Chinese</option>
			<option value="hr">Croatian</option>
			<option value="cs">Czech</option>
			<option value="nl">Dutch</option>
			<option value="en">English</option>
			<option value="fr">French</option>
			<option value="de">German</option>
			<option value="el">Greek</option>
			<option value="iw">Hebrew</option>
			<option value="hi">Hindi</option>
			<option value="hu">Hungarian</option>
			<option value="it">Italian</option>
			<option value="ja">Japanese</option>
			<option value="ko">Korean</option>
			<option value="mn">Mongolian</option>
			<option value="no">Norwegian</option>
			<option value="fa">Persian</option>
			<option value="pl">Polish</option>
			<option value="pt">Portuguese</option>
			<option value="ru">Russian</option>
			<option value="so">Somali</option>
			<option value="es">Spanish</option>
			<option value="sw">Swahili</option>
			<option value="ta">Tamil</option>
			<option value="th">Thai</option>
			<option value="tr">Turkish</option>
			<option value="uk">Ukrainian</option>
			<option value="ur">Urdu</option>
			<option value="vi">Vietnamese</option>
		</select>
	</td>
</tr>
<tr>
	<td nowrap><label for="publisher">Publisher</label>:</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%">
		<select name="Publisher" size="1" style="width:288" id="publisher">
			<option value="">All publishers</option>
			<option value="1616">1st World Library</option>
			<option value="2128">A&amp;C Black</option>
			<option value="2873">Abaddon Books</option>
			<option value="3779">Abbeville Press</option>
			<option value="2069">ABC-CLIO</option>
			<option value="4281">Abingdon Press</option>
			<option value="1244">Accent Press</option>
			<option value="1126">Actors Folio Shakespeare</option>
			<option value="2104">Addison-Wesley Professional</option>
			<option value="2889">akashic books</option>
			<option value="648">Alaska Wilderness Press</option>
			<option value="3944">Albany</option>
			<option value="117">Alexandria Digital Literature</option>
			<option value="3666">Algonquin Books</option>
			<option value="4214">Allegria</option>
			<option value="2821">Allen &amp; Unwin Pty Ltd</option>
			<option value="4315">Allison &amp; Busby</option>
			<option value="4335">Allison &amp; Busby Ltd</option>
			<option value="3497">Allworth Press</option>
			<option value="1800">Alyson Books</option>
			<option value="722">AMACOM Books</option>
			<option value="1743">Amber Eagle Press</option>
			<option value="2526">American Academy of Pediatrics</option>
			<option value="3479">Andrews UK Limited</option>
			<option value="4147">ANGEL RECORDS</option>
			<option value="815">Arcade Publishing</option>
			<option value="2490">Archipelago Books</option>
			<option value="785">Argyll Publishing Ltd, Scotland</option>
			<option value="3602">Ars Musici</option>
			<option value="2493">Arsenal Pulp Press</option>
			<option value="1943">Ascendant Audio</option>
			<option value="715">AskProfessors.com</option>
			<option value="1056">Aspatore Books</option>
			<option value="203">Atlantic Bridge Publishing</option>
			<option value="3943">ATMA Classique</option>
			<option value="1302">Audio Bookshelf,LLC</option>
			<option value="1644">Audio Evolution, LLC</option>
			<option value="2631">Audio Holdings, LLC</option>
			<option value="1745">The Audio Partners Publishing Corporation</option>
			<option value="2046">Audio Realms</option>
			<option value="4079">AudioGO</option>
			<option value="3858">AudioGO Ltd</option>
			<option value="3875">AudioGO Young Adult/Children's</option>
			<option value="3975">AudioLark Audio Books</option>
			<option value="3840">AudioLark Romance Audio Books</option>
			<option value="1885">August House Audio</option>
			<option value="1178">Avalon Publishing Group</option>
			<option value="1428">A-Z</option>
			<option value="3597">Azica Records</option>
			<option value="2888">B&amp;H Publishing Group</option>
			<option value="3403">Baker Publishing Group</option>
			<option value="3414">Baker Publishing Group</option>
			<option value="1805">Ballantine/Del Rey</option>
			<option value="3584">Bancroft Press</option>
			<option value="1052">Bantam Books</option>
			<option value="1822">Bantam Dell</option>
			<option value="3939">Barbour Publishing, Inc.</option>
			<option value="870">BarCharts, Inc.</option>
			<option value="561">Barnes &amp; Noble Digital</option>
			<option value="1028">Barnes &amp; Noble Publishing</option>
			<option value="786">Barnes &amp; Noble World Digital Library</option>
			<option value="2087">Barron's Educational Series, Inc.</option>
			<option value="2416">Basic Books</option>
			<option value="1613">BBC Audiobooks America</option>
			<option value="1543">BBC Audiobooks LTD</option>
			<option value="4096">Beacon Press</option>
			<option value="3924">Beacon Press</option>
			<option value="1725">Bearport Publishing Company, Inc.</option>
			<option value="3426">Belgrave House</option>
			<option value="2491">Bellevue Literary Press</option>
			<option value="2610">Benbella Books</option>
			<option value="2407">Berrett-Koehler Publishers, Inc.</option>
			<option value="3126">BEST Life Media</option>
			<option value="3355">Bethany House</option>
			<option value="2785">BetterListen!</option>
			<option value="4219">BIS</option>
			<option value="2503">Bitter Lemon Press</option>
			<option value="3772">Black Dog &amp; Leventhal Publishing</option>
			<option value="1760">Blackstone Audio, Inc.</option>
			<option value="3429">Blackstone Audio, Inc. and Buck 50 Productions</option>
			<option value="3644">Blackstone Audio, Inc. and Buck 50 Productions LLC.</option>
			<option value="4748">Blackstone Audio, Inc. and Findaway World, LLC</option>
			<option value="3138">Blackstone Audio, Inc., and Buck 50 Productions LLC</option>
			<option value="2262">Bloomsbury Publishing</option>
			<option value="3925">Bloomsbury Publishing Plc</option>
			<option value="4186">Blue Eye Records</option>
			<option value="4145">BLUE NOTE</option>
			<option value="3905">Bluewood Publishing Ltd</option>
			<option value="2337">BN Publishing</option>
			<option value="33">Bodendorfer</option>
			<option value="1574">Bolinda Publishing</option>
			<option value="770">Books by Pamela</option>
			<option value="1307">Books In Motion</option>
			<option value="1686">Books on Tape</option>
			<option value="1116">booksoncomputer</option>
			<option value="1546">Bosustow Entertainment</option>
			<option value="1309">Bridge Publications, Inc.</option>
			<option value="4713">Bridge the Gap Publishing</option>
			<option value="1171">Brilliance Audio</option>
			<option value="2861">Britannica Educational Publishing</option>
			<option value="3959">BR-Klassik</option>
			<option value="993">Broadman &amp; Holman</option>
			<option value="3186">Burman Books</option>
			<option value="2356">Buzzy Multimedia</option>
			<option value="2403">C&amp;T Publishing, Inc.</option>
			<option value="4004">California Newsreel</option>
			<option value="3608">Cambria</option>
			<option value="5">Cambridge University Press</option>
			<option value="2812">Candlewick Press</option>
			<option value="2307">Canongate Books</option>
			<option value="4129">Capitol Catalog</option>
			<option value="4132">Capitol Latin</option>
			<option value="4150">CAPITOL NASHVILLE (NEW RELEASE)</option>
			<option value="1870">Capstone Press</option>
			<option value="3474">Career Press</option>
			<option value="4142">Caroline Third Party</option>
			<option value="3688">Carson-Dellosa</option>
			<option value="2443">Catbird Press</option>
			<option value="1979">CCB Publishing</option>
			<option value="1213">CCC Publishing</option>
			<option value="3396">CDS Books / Vanguard Press</option>
			<option value="2877">CDS Books/Vanuard Press</option>
			<option value="3953">Celestial Harmonies</option>
			<option value="1614">Center Street</option>
			<option value="2454">Chandos</option>
			<option value="1670">Chicago Review Press</option>
			<option value="1381">childrensElibrary</option>
			<option value="2518">ChineseAll</option>
			<option value="1659">christianaudio</option>
			<option value="3460">Chronicle Books</option>
			<option value="4169">Chrysalis Inc</option>
			<option value="4135">Chrysalis UK</option>
			<option value="1312">Chuokoron-Shinsha, Inc.</option>
			<option value="1545">Churchill Media</option>
			<option value="3542">Cinco Puntos Press</option>
			<option value="1380">CLEARVUE &amp; SVE</option>
			<option value="3981">Cleis Press</option>
			<option value="1701">Cleveland Public Library  </option>
			<option value="1907">Cobblestone Films, c2005</option>
			<option value="4204">Coffee House Press</option>
			<option value="2754">CollinsLanguage</option>
			<option value="1282">The Colonial Radio Theater On The Air</option>
			<option value="3983">Columbia University Press   </option>
			<option value="805">ComicsOne</option>
			<option value="1177">CommonWealth Magazine</option>
			<option value="1917">Compass Point Books</option>
			<option value="3713">Concerto</option>
			<option value="2523">Constable and Robinson</option>
			<option value="1163">Cool Publications </option>
			<option value="2126">CoolBeat Audiobooks</option>
			<option value="2453">Counterpoint Press</option>
			<option value="4709">Courtland Publishing</option>
			<option value="2362">Covey</option>
			<option value="2473">Creative Content Ltd</option>
			<option value="3180">Creative Publishing international</option>
			<option value="3703">Crimson Publishing</option>
			<option value="1227">Crombie Jardine</option>
			<option value="3733">Crossroad Press</option>
			<option value="2690">Crossway</option>
			<option value="1043">Crown Publishing Group</option>
			<option value="1888">Crystal Entertainment</option>
			<option value="1974">CSA Word</option>
			<option value="3622">CSO Resound</option>
			<option value="679">Cultural Resources</option>
			<option value="74">CyberRead</option>
			<option value="3754">Da Capo Lifelong Books</option>
			<option value="2391">Da Capo Press</option>
			<option value="2876">DaCapo Press</option>
			<option value="4232">Dacapo SACD</option>
			<option value="3398">Damnation Books</option>
			<option value="1630">Davenport Films</option>
			<option value="1384">DAW Books</option>
			<option value="4399">DC Comics</option>
			<option value="1265">deauno.com</option>
			<option value="3596">Delos</option>
			<option value="4502">Delphinium Books</option>
			<option value="2369">Demos Medical Publishing</option>
			<option value="3178">Demos Medical Publishing LLC</option>
			<option value="813">Digital Scanning, Inc.</option>
			<option value="85">DiskUs Publishing</option>
			<option value="4707">Disney Publishing Worldwide</option>
			<option value="3710">DIVA.AG</option>
			<option value="2374">Dive Into Your Imagination, LLC</option>
			<option value="3659">Diversified Publishing</option>
			<option value="3607">Divox</option>
			<option value="2318">DK Publishing</option>
			<option value="4209">Documents</option>
			<option value="2793">Dorchester Publishing Co., Inc.</option>
			<option value="1702">Dorling Kindersley Limited</option>
			<option value="4822">Dreamriver Press</option>
			<option value="4007">Dreamscape Media, LLC</option>
			<option value="2670">Dreamspinner Press</option>
			<option value="3936">Due Publications</option>
			<option value="1223">Eagle House Publishing Corporation</option>
			<option value="1444">eBooksLib</option>
			<option value="2296">Ebury Publishing</option>
			<option value="2265">ECW Press</option>
			<option value="4352">ecw press</option>
			<option value="1464">Editorial Fonolibros</option>
			<option value="1549">Educational Activities</option>
			<option value="2692">Effective Learning Systems, Inc.</option>
			<option value="2839">EgmontUSA</option>
			<option value="1064">Eichi Publishing Co., Ltd.</option>
			<option value="194">Electric eBook Publishing</option>
			<option value="7">ElectricStory.com, Inc.</option>
			<option value="2525">Elsevier Science</option>
			<option value="3573">Elsevier Science &amp; Technology</option>
			<option value="2378">Emereo</option>
			<option value="2372">Emereo Pty Ltd</option>
			<option value="4158">EMI Canada</option>
			<option value="4162">EMI Catalog (USA)</option>
			<option value="4130">EMI Classics</option>
			<option value="4133">EMI CMG</option>
			<option value="4126">EMI Mexico</option>
			<option value="4131">EMI UK</option>
			<option value="2827">Encounter Books</option>
			<option value="1222">Encounter Books</option>
			<option value="2086">Encyclopaedia Britannica, Inc.</option>
			<option value="1779">Enslow Publishers, Inc.</option>
			<option value="2289">Epicenter Press, distributed by Tyndale House Publishers</option>
			<option value="10">ereads.com</option>
			<option value="3950">Estonian Record Productions</option>
			<option value="2124">Eternal Press</option>
			<option value="2105">Exam Cram</option>
			<option value="3550">Exisle Publishing Pty Ltd</option>
			<option value="4751">The Experiment</option>
			<option value="2509">F+W Media, Inc.</option>
			<option value="2221">Faber and Faber Ltd</option>
			<option value="2508">Facts on File Inc, /DBA Infobase Publishing</option>
			<option value="1932">FaithWords</option>
			<option value="4263">Falcon Picture Group</option>
			<option value="1775">Falcon Picture Group, LLC</option>
			<option value="1252">Family Soft</option>
			<option value="675">Fearless Books</option>
			<option value="54">Fictionwise, Inc.</option>
			<option value="3140">Filipacchi Publishing</option>
			<option value="2867">Film Movement</option>
			<option value="2073">Focus On The Family</option>
			<option value="1398">Fodor's Travel Publications</option>
			<option value="704">Folium eBooks</option>
			<option value="1747">FonoLibro Inc.</option>
			<option value="1982">The Freeway Guides</option>
			<option value="1947">FT Press</option>
			<option value="2492">Fulcrum Publishing</option>
			<option value="1414">Full Cast Audio</option>
			<option value="1253">GAKKEN CO., LTD.</option>
			<option value="1360">Galaxy Press, L.L.C.</option>
			<option value="2191">Gareth Stevens Inc</option>
			<option value="2711">Gildan Audio</option>
			<option value="1527">Gildan Media Corp</option>
			<option value="1739">Gildan Media Corp.</option>
			<option value="4381">Global Media</option>
			<option value="693">The Globe Pequot Press</option>
			<option value="1547">Globe Trekker</option>
			<option value="727">Godspeed Computing Inc.</option>
			<option value="3942">Gothic</option>
			<option value="1919">Grand Central Publishing</option>
			<option value="3738">Gravitas Ventures</option>
			<option value="2777">Graymalkin Media</option>
			<option value="3383">Greenwood Publishing Group</option>
			<option value="2244">Grey House Publishing</option>
			<option value="3502">Greystone Books</option>
			<option value="795">Grove/Atlantic, Inc.</option>
			<option value="1681">Hachette Audio</option>
			<option value="3589">Haenssler Classic</option>
			<option value="1089">Handrack</option>
			<option value="1332">Happy About</option>
			<option value="881">Harbor Electronic Publishing</option>
			<option value="67">Hard Shell Word Factory</option>
			<option value="1687">Harlequin</option>
			<option value="1715">Harlequin</option>
			<option value="4084">Harlequin K.K. /SOFTBANK Creative Corp.</option>
			<option value="1804">HarperCollins</option>
			<option value="582">HarperCollins</option>
			<option value="2815">HarperCollins Publishers Inc.</option>
			<option value="4722">HarperCollins US</option>
			<option value="2184">Harriman House</option>
			<option value="753">Harvard Business School Press</option>
			<option value="2834">Hatherleigh Press</option>
			<option value="1268">Hay House</option>
			<option value="1955">Hay House, Inc.</option>
			<option value="3977">Hay House, Inc.</option>
			<option value="3466">Hazelden</option>
			<option value="3567">Health Communications, Inc.</option>
			<option value="2788">Heartstrings Press, LLC</option>
			<option value="1602">Hentzenwerke Publishing</option>
			<option value="77">Hidden Knowledge</option>
			<option value="1908">HighBridge Company</option>
			<option value="1887">Highland Entertainment</option>
			<option value="1636">Hogrefe &amp; Huber Publishers</option>
			<option value="1091">Holy Macro! Books</option>
			<option value="1209">Houghton Mifflin Trade and Reference</option>
			<option value="3563">House of Stratus</option>
			<option value="1500">HQN</option>
			<option value="2387">Hundreds of Heads Books</option>
			<option value="14">Hunter Publishing</option>
			<option value="3427">HUNTINGTON PRESS, INC.</option>
			<option value="2025">Hyperion</option>
			<option value="258">Hyperion</option>
			<option value="1682">Hyperion Audiobooks</option>
			<option value="2054">Hyperion Audiobooks</option>
			<option value="2103">IBM Press</option>
			<option value="302">ibooks, Inc.</option>
			<option value="2520">Idil Biret Archive</option>
			<option value="2920">iMinds Pty Limited</option>
			<option value="3407">Infinite Ideas Ltd</option>
			<option value="3591">Innova</option>
			<option value="2709">IP (Interactive Publications Pty Ltd)</option>
			<option value="4229">ITM</option>
			<option value="2005">Janson Media</option>
			<option value="1386">JIST Publishing</option>
			<option value="1254">Jitsugyo no Nihon Sha, Ltd.</option>
			<option value="1528">Jodacom International Inc.</option>
			<option value="3833">John F. Blair, Publisher</option>
			<option value="738">John Wiley &amp; Sons</option>
			<option value="1136">John Wiley &amp; Sons, Inc.</option>
			<option value="151">John Wiley &amp; Sons, Ltd.</option>
			<option value="158">KBS</option>
			<option value="1620">Kensington Publishing Corp.</option>
			<option value="3874">Key Education</option>
			<option value="2916">Kidzup Downloads</option>
			<option value="1689">Kimani Press</option>
			<option value="2093">Knitting Out Loud</option>
			<option value="2440">Knopf Doubleday Publishing Group</option>
			<option value="1044">Knopf Publishing Group</option>
			<option value="1694">Knowledge Products, Inc.</option>
			<option value="1677">Kogan Page Publishers</option>
			<option value="1067">Kouzousha Publishing Co., Ltd</option>
			<option value="1184">Krug Publishing</option>
			<option value="2367">Kuperard</option>
			<option value="4110">L&amp;L Dreamspell</option>
			<option value="1552">L.A. Theatre Works</option>
			<option value="2185">LaChance Publishing</option>
			<option value="2649">Lachesis Publishing</option>
			<option value="2482">Lawrence Hill Books</option>
			<option value="1251">LEED Inc.</option>
			<option value="2078">Legacy Audio Books, Inc.</option>
			<option value="1333">Lerner Publishing Group</option>
			<option value="2285">Lerner Publishing Group, Inc.</option>
			<option value="3420">Life Changing Books</option>
			<option value="1622">Lighthouse Video LLC</option>
			<option value="1100">Limelight Media</option>
			<option value="1169">Listen &amp; Live Audio, Inc.</option>
			<option value="1685">Listening Library</option>
			<option value="1095">Literati Library</option>
			<option value="42">Little, Brown and Company</option>
			<option value="4091">Little, Brown Book Group</option>
			<option value="2209">Little, Brown Books for Young Readers</option>
			<option value="1366">Live Oak Media</option>
			<option value="4072">Llewellyn Worldwide, LTD.</option>
			<option value="3612">Longhorn Music</option>
			<option value="3677">Longtail Distribution Network LLC</option>
			<option value="1504">LUNA</option>
			<option value="4697">Lyrical Press, Inc.</option>
			<option value="2822">M P Publishing Limited</option>
			<option value="3894">Macmillan Publishers Australia</option>
			<option value="3893">MacNeil/Lehrer Productions</option>
			<option value="3792">Made for Success, Inc.</option>
			<option value="1425">Magnatune</option>
			<option value="1871">Magnolia Pictures</option>
			<option value="1641">Marco-Polo</option>
			<option value="3687">Mark Twain</option>
			<option value="4043">Marler Publishing</option>
			<option value="3620">Marvel Entertainment, LLC</option>
			<option value="758">Maximum Press</option>
			<option value="1408">MBG</option>
			<option value="3181">MBI</option>
			<option value="17">McGraw-Hill</option>
			<option value="756">McGraw-Hill Children's Publishing</option>
			<option value="1344">McGraw-Hill Professional</option>
			<option value="2145">Medallion Press</option>
			<option value="1316">Media Factory, Inc.</option>
			<option value="2819">Melville House</option>
			<option value="3122">Menasha Ridge Press</option>
			<option value="1737">MetroBeat TV</option>
			<option value="2837">Michael O' Mara Books</option>
			<option value="2018">Microsoft Press</option>
			<option value="2153">Midpoint Trade Books</option>
			<option value="1653">Milken Family Foundation</option>
			<option value="2878">Milkweed Editions </option>
			<option value="1742">Mill Creek Entertainment, LLC</option>
			<option value="3543">Minnesota Historical Society Press</option>
			<option value="1499">MIRA</option>
			<option value="1836">Mira Books</option>
			<option value="2817">monterey media inc.</option>
			<option value="1564">Multi-Media Publications Inc.</option>
			<option value="1748">Music Sales Corp.</option>
			<option value="3433">MVD Visual</option>
			<option value="2255">M-Y Books  </option>
			<option value="2527">M-y Books Erotic Fiction </option>
			<option value="3914">Myrmidon Books</option>
			<option value="41">Mysterious Press</option>
			<option value="1690">Nano Network, Inc.</option>
			<option value="4128">Narada</option>
			<option value="59">The Narrative Press</option>
			<option value="4155">Nashville Catalog</option>
			<option value="2422">Nation Books</option>
			<option value="1691">National Geographic Society</option>
			<option value="3616">Navona</option>
			<option value="1567">Naxos</option>
			<option value="1430">Naxos American Classics</option>
			<option value="1383">Naxos AudioBooks</option>
			<option value="1431">Naxos Early Music CD</option>
			<option value="1432">Naxos Film Music Classics</option>
			<option value="1427">Naxos Guitar Collection</option>
			<option value="1434">Naxos Opera CD</option>
			<option value="1429">Naxos Regular CD</option>
			<option value="1740">Naxos Rights International, LTD.</option>
			<option value="2849">New Holland Publishers (Australia) Pty Ltd</option>
			<option value="1948">New Riders</option>
			<option value="2612">New Society Publishers</option>
			<option value="1081">New World Library</option>
			<option value="1647">New World Music</option>
			<option value="3670">New York Review of Books</option>
			<option value="1832">Newmarket Press</option>
			<option value="2745">Newmarket Press</option>
			<option value="2254">Ni Hao Productions, LLC</option>
			<option value="3468">Nicholas Brealey Publishing</option>
			<option value="3529">Nite Owl Books</option>
			<option value="3932">No Greater Joy Ministries, Inc.</option>
			<option value="920">NOLO</option>
			<option value="2425">North Atlantic Books</option>
			<option value="1385">NoSweatShakespeare</option>
			<option value="712">Nova Press</option>
			<option value="4178">Nozzle Records</option>
			<option value="1105">NuVision Publications</option>
			<option value="2820">Oakhill Publishing Limited</option>
			<option value="2258">Oasis Audio, LLC</option>
			<option value="4808">O-Books</option>
			<option value="3604">Oehms Classics</option>
			<option value="3546">Ondine</option>
			<option value="1262">One Voice Recordings</option>
			<option value="1065">Online Publishing, Inc</option>
			<option value="3813">Open Court</option>
			<option value="4077">Open Road Integrated Media LLC</option>
			<option value="586">Opera Journeys Publishing</option>
			<option value="3962">Opus Arte</option>
			<option value="2113">Orbit</option>
			<option value="1971">Orca Book Publishers</option>
			<option value="4088">Orion Publishing Group</option>
			<option value="244">Orsorum Press</option>
			<option value="1304">Osho International, New York</option>
			<option value="3883">Osprey Publishing</option>
			<option value="2261">Other Press</option>
			<option value="956">Out of Your Mind...and Into the Marketplace</option>
			<option value="955">Outrigger Publications, LLC</option>
			<option value="1096">The Overlook Press</option>
			<option value="138">Oxford University Press</option>
			<option value="1895">Oxford University Press</option>
			<option value="1032">Oxford University Press UK</option>
			<option value="1301">Paperback Digital, Inc.</option>
			<option value="1085">Para Publishing, Santa Barbara, California</option>
			<option value="4222">Park Avenue Chamber Symphony</option>
			<option value="1946">Peachpit Press</option>
			<option value="2497">Pear Press</option>
			<option value="782">Pearson Education</option>
			<option value="1827">Penguin</option>
			<option value="4704">Penguin Adult</option>
			<option value="2760">Penguin Audio</option>
			<option value="4736">Penguin Children's</option>
			<option value="2230">Penguin Group (USA), Inc.</option>
			<option value="2309">Penguin Group USA, Inc.</option>
			<option value="3536">Penguin Publishing</option>
			<option value="2376">Penguin USA, Inc.</option>
			<option value="3545">PentaTone</option>
			<option value="925">Penton Overseas, Inc.</option>
			<option value="4221">Perfect Voices</option>
			<option value="1809">Perseus Books Group</option>
			<option value="2386">Perseus Books Group</option>
			<option value="1889">Phoenix Books</option>
			<option value="1884">Phoenix Books, Inc</option>
			<option value="2442">Phoenix Books, Inc.</option>
			<option value="1991">Phoenix Recordings</option>
			<option value="578">Pickard &amp; Son, Publishers</option>
			<option value="1915">Picture Window Books</option>
			<option value="1538">Pocket Essentials</option>
			<option value="4238">Portara</option>
			<option value="3459">Priddis Music</option>
			<option value="1272">Princeton Book Company</option>
			<option value="3360">Princeton University Press</option>
			<option value="4170">Priority</option>
			<option value="2617">Process Media</option>
			<option value="4046">PS Classics</option>
			<option value="2146">Public Affairs</option>
			<option value="2385">PublicAffairs</option>
			<option value="1964">PuddleDancer Press</option>
			<option value="1944">Que Publishing</option>
			<option value="2127">Questar Home Video</option>
			<option value="4260">Quirk Books</option>
			<option value="1544">Rabbit Ears</option>
			<option value="1405">Radio Classics, Inc.</option>
			<option value="1080">Rampant TechPress</option>
			<option value="2618">RAND Corporation</option>
			<option value="4012">Random House</option>
			<option value="2278">Random House Audio Publishing Group</option>
			<option value="1038">Random House Children's Books</option>
			<option value="252">Random House Group Limited</option>
			<option value="1054">Random House Publishing Group</option>
			<option value="2277">Random House Publishing Group</option>
			<option value="777">Raven Entertainment Studio</option>
			<option value="2123">Razor &amp; Tie Direct LLC</option>
			<option value="2257">Reagent Press</option>
			<option value="2079">Real2Can</option>
			<option value="2395">Reality Entertainment</option>
			<option value="2211">Reality Press</option>
			<option value="1503">Red Dress Ink</option>
			<option value="2332">Red Sage Publishing, Inc..</option>
			<option value="761">Redmond Technology Press</option>
			<option value="2898">Regnery Press</option>
			<option value="4068">Regnery Publishing</option>
			<option value="25">Renaissance E Books</option>
			<option value="1130">RGL Learning &amp; Publishing</option>
			<option value="2764">RHCB</option>
			<option value="4252">Rhemalda Publishing</option>
			<option value="1255">Rim New-Publishing Co., Ltd.</option>
			<option value="4099">Rizzoli</option>
			<option value="1912">Rochester Public Library</option>
			<option value="4702">Rockpool Publishing</option>
			<option value="3179">Rockport Publishers</option>
			<option value="1813">Rodale</option>
			<option value="3371">Rodmell Press</option>
			<option value="26">RosettaBooks</option>
			<option value="2049">RothMar Media</option>
			<option value="2119">Rothmar Media LLC</option>
			<option value="95">Rough Guides</option>
			<option value="1069">RoverBooks</option>
			<option value="3482">Rowman &amp; Littlefield Publishing Group</option>
			<option value="3571">Rowman &amp; Littlefield Publishing Group, Inc.</option>
			<option value="1174">Rowmark</option>
			<option value="2393">Running Press</option>
			<option value="3988">Running Press Kids</option>
			<option value="1945">Sams Publishing</option>
			<option value="1247">San Jose Library</option>
			<option value="1068">Sankei Shinbun News Service Co., Ltd</option>
			<option value="2324">Santa Monica Press</option>
			<option value="1075">SAS Publishing</option>
			<option value="2604">Sasquatch Books</option>
			<option value="3964">SCB Distributors</option>
			<option value="1826">Scholastic</option>
			<option value="2752">Scholastic Audio</option>
			<option value="604">Scholastic, Inc.</option>
			<option value="1306">School Specialty Publishing</option>
			<option value="3819">Scientific Publishing, Ltd.</option>
			<option value="2419">Seal Press</option>
			<option value="1090">Seattle Book Company</option>
			<option value="1250">SEKAI BUNKA PUBLISHING INC.</option>
			<option value="1726">Selectmedia Entertainment</option>
			<option value="4793">Sentinel</option>
			<option value="814">Seven Stories Press</option>
			<option value="1066">Shinpusha</option>
			<option value="1371">Siglo XXI Editores</option>
			<option value="1502">Silhouette</option>
			<option value="2668">Silver Lake Publishing</option>
			<option value="1814">Simon &amp; Schuster</option>
			<option value="2349">Simon &amp; Schuster Audio</option>
			<option value="853">Simon &amp; Schuster, Inc.</option>
			<option value="4034">Smart Start Press</option>
			<option value="2077">Smith Show Entertainment</option>
			<option value="1418">Snowbooks</option>
			<option value="923">Soft Skull Press</option>
			<option value="2602">Soft Skull Press</option>
			<option value="3896">SOFTBANK Creative Corp.</option>
			<option value="4259">Soho Press</option>
			<option value="3711">Solaris</option>
			<option value="1261">Sound Room Publishers, Inc.</option>
			<option value="1327">Sounds True</option>
			<option value="202">Sourcebooks, Inc.</option>
			<option value="912">Spark Publishing</option>
			<option value="2514">Speaking Volumes</option>
			<option value="4201">Special Markets USA</option>
			<option value="1688">Spice</option>
			<option value="3855">Springbrook Digital</option>
			<option value="3889">Springbrook Digital Publishing</option>
			<option value="1803">St. Martin's Press</option>
			<option value="1263">Starburst Publishing</option>
			<option value="2212">Starz Media</option>
			<option value="1501">Steeple Hill</option>
			<option value="1730">Steerforth Press</option>
			<option value="2730">Sterling Publishing Co., Inc.</option>
			<option value="1859">Stone Arch Books</option>
			<option value="30">Stonehouse Press</option>
			<option value="3665">Storey Publishing, LLC</option>
			<option value="3645">Storyville, LLC</option>
			<option value="4298">Struik Christian Media</option>
			<option value="4139">Sugar Hill Records</option>
			<option value="1159">Summersdale Publishers Ltd</option>
			<option value="2050">Sunburst Visual Media</option>
			<option value="3657">SuperCollege, LLC</option>
			<option value="2770">Symphony Space, Inc</option>
			<option value="2213">SynergEbooks</option>
			<option value="963">Synoia Digital Press</option>
			<option value="4786">T. D. Bailey &amp; Associates Publishing</option>
			<option value="2736">Tachyon Publications</option>
			<option value="1811">Tallfellow Press</option>
			<option value="1841">Tantor Media</option>
			<option value="4376">Tasora Books</option>
			<option value="301">Taylor &amp; Francis Inc</option>
			<option value="1911">Taylor and Francis</option>
			<option value="1457">Telltale Weekly</option>
			<option value="2664">Temple University Press</option>
			<option value="156">Templeton Foundation Press</option>
			<option value="3097">Ten Speed Press</option>
			<option value="2111">The Doubleday Religious Publishing Group</option>
			<option value="2611">The Feminist Press at CUNY</option>
			<option value="2671">The Floating Press</option>
			<option value="2775">The Jewish Publication Society</option>
			<option value="2747">The New Press</option>
			<option value="1987">The New Press</option>
			<option value="2389">The Story Plant</option>
			<option value="2838">TheEbookSale Publishing</option>
			<option value="3401">THINKaha</option>
			<option value="3127">Thorogood Publishing Ltd</option>
			<option value="259">Thunderball Press</option>
			<option value="662">Times Two Publishing Company</option>
			<option value="2746">Tin House Books</option>
			<option value="4187">Tipitina's Foundation</option>
			<option value="4035">Titan</option>
			<option value="3473">TOKYOPOP</option>
			<option value="1393">Topics Entertainment</option>
			<option value="1812">Tor</option>
			<option value="3184">Total-E-Bound</option>
			<option value="572">Transnational Publishers, Inc.</option>
			<option value="2284">Transworld</option>
			<option value="2147">TravelVideoStore.com</option>
			<option value="3366">Treasure Publishing</option>
			<option value="1648">Treasures Media Inc</option>
			<option value="2715">Troubador Publishing Ltd</option>
			<option value="1133">Tumblereed Design and Training</option>
			<option value="1257">Twin Sisters Productions</option>
			<option value="3862">Two Dollar Radio</option>
			<option value="3806">TwoPianists</option>
			<option value="2252">Tyndale House Publishers</option>
			<option value="792">Tyndale House Publishers, Inc.</option>
			<option value="2600">Ulysses Press</option>
			<option value="76">Unbound Comics</option>
			<option value="2216">Unbridled Books</option>
			<option value="4248">The University of Akron Press</option>
			<option value="793">University of California Press</option>
			<option value="2043">University of Chicago Press</option>
			<option value="3912">University of Nebraska Press</option>
			<option value="3725">Untreed Reads Publishing</option>
			<option value="2410">Vangaurd</option>
			<option value="1999">Vanguard Cinema</option>
			<option value="2875">Vanguard Press</option>
			<option value="4124">Vanguard Records</option>
			<option value="2305">Victory Records, Inc.</option>
			<option value="1660">Virgil Films and Entertainment</option>
			<option value="4167">Virgin Classics</option>
			<option value="4148">Virgin UK</option>
			<option value="2321">Visible Ink Press</option>
			<option value="1554">Vision Paperbacks</option>
			<option value="2717">Visual Education Centre Limited</option>
			<option value="4103">Viva Editions</option>
			<option value="2028">VSC</option>
			<option value="32">Walker Books</option>
			<option value="45">Warner Vision</option>
			<option value="3956">Washington National Cathedral</option>
			<option value="3397">Weinstein</option>
			<option value="2090">Weinstein Books</option>
			<option value="4271">Weinstein Publishing</option>
			<option value="1566">Weston Woods Studios, a subsidiary of SCHOLASTIC Inc</option>
			<option value="647">WetFeet, Inc.</option>
			<option value="1913">Whiskey Creek Press LLC</option>
			<option value="2882">White Cloud Press</option>
			<option value="3470">White Crow Productions Ltd</option>
			<option value="3393">White Rose Publishing</option>
			<option value="1264">Why And How Books, L.L.C.</option>
			<option value="844">Wildside Press</option>
			<option value="1693">Wildside Press LLC</option>
			<option value="837">Windows &amp; .NET Magazine</option>
			<option value="3864">Wisdom Publications</option>
			<option value="2319">Wizards of the Coast Publishing</option>
			<option value="1808">Workman</option>
			<option value="3668">Workman Publishing Company</option>
			<option value="1787">World Pulp</option>
			<option value="3737">World Wide Multi Media</option>
			<option value="1714">Worldwide Library</option>
			<option value="1495">Writer's AudioShop</option>
			<option value="1455">Wualou Ltd</option>
			<option value="760">Wyrick &amp; Company</option>
			<option value="3579">Xcite Books</option>
			<option value="2173">Yale University Press</option>
			<option value="1671">Zephyr Press</option>
			<option value="914">Zonderkidz</option>
			<option value="653">Zondervan</option>
			<option value="2927">中信出版社</option>
			<option value="2929">中华医学电子音像出版社</option>
			<option value="2934">中国友谊出版公司</option>
			<option value="3098">中国宇航出版社</option>
			<option value="3099">中国民主法制出版社</option>
			<option value="2955">中国环境科学出版社</option>
			<option value="2956">中国环境科学出版社  学苑音像出版社</option>
			<option value="2957">中国电影出版社</option>
			<option value="2958">中国画报出版社</option>
			<option value="2969">中国轻工业出版社</option>
			<option value="3100">云南美术出版社</option>
			<option value="3101">人民文学出版社</option>
			<option value="3102">伊犁人民出版社</option>
			<option value="2980">作家出版社</option>
			<option value="2981">光明日报出版社</option>
			<option value="3103">内 蒙 古 文 化 出 版 社</option>
			<option value="2982">内蒙古人民出版</option>
			<option value="2983">内蒙古人民出版社</option>
			<option value="2984">内蒙古文化出版社</option>
			<option value="2986">北京交通大学出版社</option>
			<option value="2987">北京体育大学出版社</option>
			<option value="2989">北京大学出版社</option>
			<option value="2995">华东师范大学出版社</option>
			<option value="3104">华夏出版社</option>
			<option value="3004">吉林摄影出版社</option>
			<option value="3008">哈尔滨出版社</option>
			<option value="3105">四川少年儿童出版社</option>
			<option value="3010">国际文化出版公司</option>
			<option value="3014">大众文艺出版社</option>
			<option value="3016">大旗出版社</option>
			<option value="3017">大连理工大学出版社</option>
			<option value="3023">安徽教育出版社</option>
			<option value="3106">宗教文化出版社</option>
			<option value="3107">少年儿童出版社</option>
			<option value="3028">广州出版社</option>
			<option value="3029">广西人民出版社</option>
			<option value="3108">广西科学技术出版社</option>
			<option value="3033">当代世界出版社</option>
			<option value="3034">当代中国出版社</option>
			<option value="3035">新世界出版社</option>
			<option value="3038">新疆人民出版社</option>
			<option value="3043">春风文艺出版社</option>
			<option value="3051">江苏文艺出版社</option>
			<option value="3054">河北科学技术出版社</option>
			<option value="3109">湖南人民出版社</option>
			<option value="3110">漓江出版社</option>
			<option value="3068">珠海出版社</option>
			<option value="3070">甘肃人民出版社</option>
			<option value="3111">电脑报电子音像出版社</option>
			<option value="3112">群言出版</option>
			<option value="3084">西南财经大学出版社</option>
			<option value="3113">辽宁大学出版社</option>
			<option value="3089">重庆出版社</option>
			<option value="3093">长江文艺出版社</option>
			<option value="3094">陕西人民出版社</option>
			<option value="3114">青岛出版社</option>
		</select>
	</td>
</tr>
<tr>
	<td nowrap><label for="subject">Subject</label>:</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%">
		<select name="Subject" size="1" style="width:288"  id="subject">
			<option value="">All subjects</option>
			<option value="824">Action</option>
			<option value="1">Adult Trade</option>
			<option value="2131">Adventure</option>
			<option value="300">African-American</option>
			<option value="2215">Alternative</option>
			<option value="808">Ambient</option>
			<option value="2">Analysis</option>
			<option value="825">Animation</option>
			<option value="3">Antiquarian</option>
			<option value="4">Antiques</option>
			<option value="5">Architecture</option>
			<option value="6">Art</option>
			<option value="818">Ballet</option>
			<option value="7">Biography &amp; Autobiography</option>
			<option value="819">Blues</option>
			<option value="8">Business</option>
			<option value="9">Careers</option>
			<option value="822">Cartoon</option>
			<option value="812">Chamber Music</option>
			<option value="10">Chemistry</option>
			<option value="11">Children</option>
			<option value="820">Children's Music</option>
			<option value="793">Children's Video</option>
			<option value="807">Choral</option>
			<option value="794">Classic Films</option>
			<option value="12">Classic Literature</option>
			<option value="800">Classical</option>
			<option value="814">Classical Baroque</option>
			<option value="826">Comedy</option>
			<option value="13">Comic and Graphic Books</option>
			<option value="14">Computer Technology</option>
			<option value="809">Concertos</option>
			<option value="15">Cooking &amp; Food</option>
			<option value="827">Country</option>
			<option value="16">Crafts</option>
			<option value="17">Crime</option>
			<option value="18">Criticism</option>
			<option value="19">Current Events</option>
			<option value="795">Documentary</option>
			<option value="20">Drama</option>
			<option value="21">Education</option>
			<option value="805">Electronica</option>
			<option value="22">Engineering</option>
			<option value="23">Entertainment</option>
			<option value="24">Erotic Literature</option>
			<option value="25">Essays</option>
			<option value="26">Ethics</option>
			<option value="27">Family &amp; Relationships</option>
			<option value="28">Fantasy</option>
			<option value="796">Feature Film</option>
			<option value="29">Feminist</option>
			<option value="30">Fiction</option>
			<option value="810">Film Music</option>
			<option value="31">Finance</option>
			<option value="817">Folk</option>
			<option value="32">Folklore</option>
			<option value="797">Foreign Film</option>
			<option value="34">Foreign Language Study</option>
			<option value="36">Games</option>
			<option value="37">Gardening</option>
			<option value="38">Gay/Lesbian</option>
			<option value="39">Gender Studies</option>
			<option value="40">Geography</option>
			<option value="41">Grammar &amp; Language Usage</option>
			<option value="42">Health &amp; Fitness</option>
			<option value="828">Hip-Hop</option>
			<option value="43">Historical Fiction</option>
			<option value="44">History</option>
			<option value="1175">Holiday Music</option>
			<option value="45">Home Design &amp; Décor</option>
			<option value="46">Horror</option>
			<option value="47">Human Rights</option>
			<option value="454">Humor (Fiction)</option>
			<option value="455">Humor (Nonfiction)</option>
			<option value="829">Indie</option>
			<option value="833">Instructional</option>
			<option value="801">Instrumental</option>
			<option value="49">Interactive</option>
			<option value="816">Jazz</option>
			<option value="51">Journalism</option>
			<option value="52">Judaica</option>
			<option value="53">Juvenile Fiction</option>
			<option value="54">Juvenile Literature</option>
			<option value="55">Juvenile Nonfiction</option>
			<option value="56">Language Arts</option>
			<option value="58">Law</option>
			<option value="59">Literary Anthologies</option>
			<option value="60">Literary Criticism</option>
			<option value="61">Literature</option>
			<option value="62">Management</option>
			<option value="823">Martial Arts</option>
			<option value="63">Mathematics</option>
			<option value="64">Media Studies</option>
			<option value="65">Medical</option>
			<option value="830">Medieval</option>
			<option value="66">Military</option>
			<option value="68">Multi-Cultural</option>
			<option value="69">Music</option>
			<option value="815">Musicals</option>
			<option value="70">Mystery</option>
			<option value="71">Mythology</option>
			<option value="72">Nature</option>
			<option value="73">New Age</option>
			<option value="456">Non-English Fiction</option>
			<option value="457">Non-English Nonfiction</option>
			<option value="74">Nonfiction</option>
			<option value="813">Opera &amp; Operetta</option>
			<option value="806">Orchestral</option>
			<option value="75">Outdoor Recreation</option>
			<option value="76">Performing Arts</option>
			<option value="77">Pets</option>
			<option value="78">Philosophy</option>
			<option value="79">Photography</option>
			<option value="80">Physics</option>
			<option value="81">Poetry</option>
			<option value="82">Politics</option>
			<option value="802">Pop</option>
			<option value="83">Professional</option>
			<option value="86">Psychiatry &amp; Psychology</option>
			<option value="87">Psychology</option>
			<option value="88">Recovery</option>
			<option value="89">Reference</option>
			<option value="90">Religion &amp; Spirituality</option>
			<option value="91">Research</option>
			<option value="803">Rock</option>
			<option value="92">Romance</option>
			<option value="93">Scholarly</option>
			<option value="94">Science</option>
			<option value="95">Science Fiction</option>
			<option value="96">Science Fiction &amp; Fantasy</option>
			<option value="97">Self-Improvement</option>
			<option value="821">Short Film</option>
			<option value="98">Short Stories</option>
			<option value="99">Sociology</option>
			<option value="1641">Soundtrack</option>
			<option value="100">Sports &amp; Recreations</option>
			<option value="799">Stage Production</option>
			<option value="101">Study Aids &amp; Workbooks</option>
			<option value="102">Suspense</option>
			<option value="103">Technology</option>
			<option value="104">Text Book</option>
			<option value="105">Thriller</option>
			<option value="106">Transportation</option>
			<option value="107">Travel</option>
			<option value="108">Travel Literature</option>
			<option value="109">True Crime</option>
			<option value="832">TV</option>
			<option value="811">Vocal</option>
			<option value="111">Western</option>
			<option value="112">Women's Studies</option>
			<option value="804">World</option>
			<option value="831">World Music</option>
			<option value="113">Young Adult</option>
			<option value="458">Young Adult Fiction</option>
			<option value="459">Young Adult Literature</option>
			<option value="460">Young Adult Nonfiction</option>
			<option value="2003">Young Adult Video</option>
		</select>
	</td>
</tr>
<tr>
	<td nowrap><label for="awards">Awards</label>:</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%">
		<select name="Award" size="1" style="width:100%" width="100%" id="awards">
			<option value="">All awards</option>
			<option value="60">10 Best Books of 1997</option>
			<option value="59">10 Best Books of 1998</option>
			<option value="58">10 Best Books of 1999</option>
			<option value="57">10 Best Books of 2000</option>
			<option value="56">10 Best Books of 2001</option>
			<option value="55">10 Best Books of 2002</option>
			<option value="54">10 Best Books of 2003</option>
			<option value="53">10 Best Books of 2004</option>
			<option value="52">10 Best Books of 2005</option>
			<option value="51">10 Best Books of 2006</option>
			<option value="50">10 Best Books of 2007</option>
			<option value="74">10 Best Books of 2008</option>
			<option value="18">Audie Awards</option>
			<option value="75">Audio Award Nominee</option>
			<option value="15">Batchelder Award</option>
			<option value="70">Best Audio Books</option>
			<option value="69">Best Audiobooks</option>
			<option value="23">Best Books for Young Adults</option>
			<option value="31">Bram Stoker Award</option>
			<option value="40">Bram Stoker Award for Lifetime Achievement</option>
			<option value="39">Bram Stoker Award Nominee</option>
			<option value="28">Caldecott Honor Book</option>
			<option value="9">Caldecott Medal</option>
			<option value="14">Commonwealth Writers' Prize</option>
			<option value="20">Coretta Scott King Award Honor Book</option>
			<option value="19">Coretta Scott King Book Award</option>
			<option value="32">Damon Knight Memorial Grand Master Award</option>
			<option value="33">Diamond Dagger for Lifetime Achievement Award</option>
			<option value="29">Edgar Allan Poe Award</option>
			<option value="64">ESSENCE Literary Award Finalist</option>
			<option value="66">ESSENCE Storyteller of the Year</option>
			<option value="35">Golden Dagger for Fiction Award</option>
			<option value="30">Grand Master Award</option>
			<option value="38">Hugo Award</option>
			<option value="41">Hugo Award Nominee</option>
			<option value="62">Listen Up Award</option>
			<option value="10">Man Booker Prize for Fiction</option>
			<option value="73">Man Booker Prize for Fiction Nominee</option>
			<option value="24">Margaret A. Edwards Award</option>
			<option value="21">Michael L. Printz Award</option>
			<option value="22">Michael L. Printz Award Honor Book</option>
			<option value="6">National Book Award</option>
			<option value="7">National Book Award Finalist</option>
			<option value="11">National Book Critics Circle Award</option>
			<option value="67">National Book Critics Circle Award Finalist</option>
			<option value="37">Nebula Award</option>
			<option value="5">Newbery Honor Book</option>
			<option value="4">Newbery Medal</option>
			<option value="12">Nobel Prize in Literature Awarded Author</option>
			<option value="26">Notable Children's Books</option>
			<option value="72">Odyssey Award</option>
			<option value="71">Odyssey Award Honor</option>
			<option value="13">PEN/Faulkner Award</option>
			<option value="42">PEN/Faulkner Award Finalist</option>
			<option value="8">Pulitzer Prize</option>
			<option value="68">Pulitzer Prize Finalist</option>
			<option value="61">Quill Award</option>
			<option value="43">Retro Hugo Award</option>
			<option value="44">Retro Hugo Award Nominee</option>
			<option value="16">Robert F. Sibert Medal</option>
			<option value="49">Romantic Times Career Achievement Award Nominee</option>
			<option value="48">Romantic Times Career Achievement Award Winner</option>
			<option value="47">Romantic Times Reviewers' Choice Award Nominee - Best Book</option>
			<option value="46">Romantic Times Reviewers' Choice Award Winner - Best Book</option>
			<option value="34">Silver Dagger for Fiction Award</option>
			<option value="25">Teen's Top Ten</option>
			<option value="45">Toby Bromberg Award</option>
		</select>
	</td>
</tr>
<tr>
		<td nowrap><label for="date">Date added to site</label>:</td>
		<td nowrap>&nbsp;&nbsp;&nbsp;</td>
		<td width="100%">
			<select name="CollDate" size="1" style="width:288"  id="date">
				<option value="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>	<option value=">*7">Within the last 7 days</option><option value=">*14">Within the last 14 days</option><option value=">*30">Within the last 30 days</option><option value=">*90">Within the last 90 days</option><option value=">*180">Within the last 180 days</option><option value=">*365">Within the last 365 days</option>	</select>
		</td>
	</tr><tr>
	<td nowrap><label for="perpage">Results per page</label>:</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%">
		<select name="PerPage" size="1" style="width:288"  id="perpage">
			<option value="5">5</option>
			<option value="10" selected>10</option>
			<option value="25">25</option>
		</select>
	</td>
</tr>
<tr>
	<td nowrap><label for="order">Order by</label>:</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%">
		<select name="Sort" size="1" style="width:288"  id="order">
			<option value="SortBy=title">Title</option>
			<option value="SortBy=author">Creator</option>
			<option value="SortBy=date">Date released</option>
			<option value="SortBy=rank">Most popular</option>
			<option value="SortBy=CollDate">Date added to site</option>
		</select>
	</td>
</tr>
<tr>
	<td nowrap>&nbsp;</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;</td>
	<td width="100%" style="font-size:10pt; padding-bottom:6pt;">		<input type="checkbox" name="Availcopies" value=">*0" id="available"><label for="available">Only show titles with copies available</label></input>
	</td>
</tr>

<tr>
	<td nowrap>&nbsp;</td>
	<td nowrap>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
	<td width="100%"><input type="submit" value="Search" class="searchbutton"></input></td>
</tr>
</form>
</table>


Note that the form has no 'name' attribute. Libraries skin their own Overdrive interfaces, so this could be one of a number of forms on the page. That leaves me unable to use the the 'name' or 'nr' arguments for mechanize select_form. The other option seems to be predicate, but I can't find enough documentation or any examples on what a 'predicate' is.

The only other option I can think of is bypassing the form altogether and immediately sending the POST to BangSearch.dll - that said I'm not 100% sure it will work as I'd also be bypassing any session/cookie setup with that approach.

I was able to get this working with a single library's form using select_form(nr=x), but I really like the idea of load balancing across libraries - the disabling of the Kent public library plugin in the latest release is a good example of why.

Last edited by ldolse; 02-26-2011 at 05:14 AM.
ldolse is offline   Reply With Quote
Old 02-26-2011, 05:57 AM   #19
ldolse
Wizard
ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.
 
Posts: 1,337
Karma: 123455
Join Date: Apr 2009
Location: Malaysia
Device: PRS-650, iPhone
I think I figured out how to post with Mechanize - looks like br.open(url, argument) works. Need to verify a bit further, thus far the results aren't promising, so I'll probably need to stick with loading/submitting the form if I can get past the select_form hurdle.

Edit - also figured out the predicate= question - adding a lambda function to test that did the trick.

Last edited by ldolse; 02-26-2011 at 06:46 AM.
ldolse is offline   Reply With Quote
Old 02-26-2011, 10:41 AM   #20
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 43,860
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
You can also iterate over the forms with br.forms and when you find the one you want, make it the current one with

br.form = f
kovidgoyal is offline   Reply With Quote
Advert
Old 02-26-2011, 01:53 PM   #21
ldolse
Wizard
ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.
 
Posts: 1,337
Karma: 123455
Join Date: Apr 2009
Location: Malaysia
Device: PRS-650, iPhone
Good to know - in this case I was able to bypass the form altogether in the end. I just re-installed OS X, and was lacking PCAP until earlier today - once I got that back up and running I was able to get the direct HTTP POST working.

I've got some questions about the ISBN to Amazon ASIN cache. I'm duplicating the logic in the overdrive plugin, but I don't fully understand the purpose - is the cache that's getting created something that's persistent across jobs/Calibre instances? It makes sense if so, but I see that the creation of the cache seems to happen within the plugin, so at a glance it didn't seem persistent.

The other bit I wasn't sure of the importance of was the xisbn code relating to the populating of the cache - am I understanding correctly that that is populating the cache with the ASIN/ISBN combo for every ISBN variation of the book?


I'm also thinking about extending this to scrape Overdrive for metadata. They actually have pretty good metadata - series information is there, as is publisher, ISBN, Subjects, description, and release date. I particularly like subjects as it's limited to just a couple dozen variables. Which is the best plugin to look at for that type of metadata?
ldolse is offline   Reply With Quote
Old 02-26-2011, 09:51 PM   #22
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 43,860
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
The cache is persistent for a running calibre instance. Restarting calibre wipes the cache. That doesn't matter because you rarely query the same book over more than one session. The purpose of the cache is to not do the expensive isbn->asin and asin->cover_url mappings more than once.

For example the cover plugin has a has_cover and a get_cover method, you dont want both of them to do the mapping.

Amazon typically only knows about the ISBNs for books that it sells. There is no guarantee that the isbn provided by the user or by the other metadata download plugins is one amazon knows about. Therefore, xisbn is used to find all the isbns for "related" editions and the amazon is queried for them if the original isbn is not found.

look at the google or isbndb plugins for basic metadata examples
kovidgoyal is offline   Reply With Quote
Old 02-27-2011, 09:16 PM   #23
ldolse
Wizard
ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.
 
Posts: 1,337
Karma: 123455
Join Date: Apr 2009
Location: Malaysia
Device: PRS-650, iPhone
Thanks, I've got basic cover download working, and caching is working as well. Getting started on the metadata. Comments were easy, Series/Publisher is tripping me up a bit. Both are stored as a Javacript variable that is written with a document.write. I can do regex of course, but trying to make use of better tools if they're available.

Here's an example, szSeries is the variable:
Code:
<script  language="JavaScript" type="text/javascript"><!--
			var szSeries = "Baroque Cycle";
			if(szSeries.length > 0)
				document.write("<div>Series: <a href=\"BANGSearch.dll?Type=Series&ID={60DB2DC2-5243-45E3-B929-732BB3C881A5}\">" + szSeries + "</a></div>\n");
		//--></script>
ldolse is offline   Reply With Quote
Old 02-27-2011, 09:41 PM   #24
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 43,860
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
You have various options:

1) regex
2) regex + a recursive descent parser, calibre includes pyparsing, which is used to parse the search queries entered by users
3) A javascript parser (way too heavyweight for this, IMO)
kovidgoyal is offline   Reply With Quote
Old 02-27-2011, 09:52 PM   #25
ldolse
Wizard
ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.
 
Posts: 1,337
Karma: 123455
Join Date: Apr 2009
Location: Malaysia
Device: PRS-650, iPhone
Yeah, I was just googling different options and most of the parser options looked way to heavyweight, agree. Will look at pyparsing, but will probably stick with regex for now then.

Saw this option on Stack Overflow to convert the script to JSON, not sure how applicable it would be though, and I haven't spent any time learning JSON either.
ldolse is offline   Reply With Quote
Old 02-27-2011, 10:03 PM   #26
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 43,860
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
JSON is an object serialization language, I dont see how it would be useful in this context. You want to parse javascript statements.
kovidgoyal is offline   Reply With Quote
Old 02-27-2011, 11:06 PM   #27
ldolse
Wizard
ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.
 
Posts: 1,337
Karma: 123455
Join Date: Apr 2009
Location: Malaysia
Device: PRS-650, iPhone
Will stay away from JSON then.

Can I use xpath and re:test to grab just the <script> that I want? I tried this and it didn't work:
Code:
root.xpath("//td/script[re:test(., 'szSeries', 'i')]")
That gave me all the <script> tags nested in <td> on the page rather than just the one which contains an szSeries variable. I can test them one by one if need be, but on the surface I thought I could go right to the specific tag I want.

Edit, found an answer:
Code:
root.xpath("//td/script[re:test(text(), 'szSeries', 'i')]", namespaces={"re": "http://exslt.org/regular-expressions"})

Last edited by ldolse; 02-28-2011 at 02:03 AM.
ldolse is offline   Reply With Quote
Old 03-01-2011, 04:19 AM   #28
ldolse
Wizard
ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.
 
Posts: 1,337
Karma: 123455
Join Date: Apr 2009
Location: Malaysia
Device: PRS-650, iPhone
Are there any functions that can be used cleanse titles/authors before passing them to the metadata provider? I can write them myself, but it seems like a problem that may already have been solved somewhere in the codebase.
ldolse is offline   Reply With Quote
Old 03-01-2011, 09:54 AM   #29
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 43,860
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
See metadata.sources.base (they will be part of the new metadata download API)
kovidgoyal is offline   Reply With Quote
Old 03-01-2011, 09:31 PM   #30
ldolse
Wizard
ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.ldolse is an accomplished Snipe hunter.
 
Posts: 1,337
Karma: 123455
Join Date: Apr 2009
Location: Malaysia
Device: PRS-650, iPhone
Those functions look good for cleaning out bad characters, but i was also thinking about attempting to detect and strip subtitles, since they can screw up AND searches. If you're amenable to it I can try to add that.

Separate issue, I was trying to get direct searches to Overdrive working, their search engine uses JSON, and it requires a specific Content-Type header in order to return JSON results. Mechanize is using a generic hard-coded Content-Type header for HTTP posts, and br.addheaders doesn't seem to be able to override it. This is what I tried:
Code:
br.addheaders = [('Content-Type', 'application/json; charset=utf-8')]
Other headers get inserted with that technique, but not the one above. Is there an easy fix for this, or does it require changes in browser.py?

Based on this URL I suspect that a different type of browser handler needs to be defined:
http://wwwsearch.sourceforge.net/mec...-added-headers Not entirely sure how to go about that though.
ldolse is offline   Reply With Quote
Reply


Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[Covers Plugin] Goodreads Covers **Deprecated** kiwidude Plugins 13 04-17-2011 05:09 PM
Is all Overdrive the same? CWatkinsNash General Discussions 3 12-28-2010 04:01 PM
Covers, covers and damn statistics (wait, I got that wrong). Moejoe Writers' Corner 86 11-29-2010 08:34 PM
Stop Using Overdrive Fat Abe General Discussions 19 09-11-2010 08:30 PM
Overdrive Overseas Honch Which one should I buy? 3 12-08-2009 08:21 AM


All times are GMT -4. The time now is 08:08 PM.


MobileRead.com is a privately owned, operated and funded community.