mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Get books: Remove xinxii plugin
It doesnt work and I cant even find a working search on the xinxii website, so...
This commit is contained in:
parent
dd61adc992
commit
af7f37453a
@ -1829,15 +1829,6 @@ class StoreWoblinkStore(StoreBase):
|
|||||||
affiliate = True
|
affiliate = True
|
||||||
|
|
||||||
|
|
||||||
class XinXiiStore(StoreBase):
|
|
||||||
name = 'XinXii'
|
|
||||||
description = ''
|
|
||||||
actual_plugin = 'calibre.gui2.store.stores.xinxii_plugin:XinXiiStore'
|
|
||||||
|
|
||||||
headquarters = 'DE'
|
|
||||||
formats = ['EPUB', 'PDF']
|
|
||||||
|
|
||||||
|
|
||||||
plugins += [
|
plugins += [
|
||||||
StoreArchiveOrgStore,
|
StoreArchiveOrgStore,
|
||||||
StoreBubokPublishingStore,
|
StoreBubokPublishingStore,
|
||||||
@ -1882,7 +1873,6 @@ plugins += [
|
|||||||
StoreWeightlessBooksStore,
|
StoreWeightlessBooksStore,
|
||||||
StoreWolneLekturyStore,
|
StoreWolneLekturyStore,
|
||||||
StoreWoblinkStore,
|
StoreWoblinkStore,
|
||||||
XinXiiStore
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
@ -1,85 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
||||||
|
|
||||||
store_version = 2 # Needed for dynamic plugin loading
|
|
||||||
|
|
||||||
__license__ = 'GPL 3'
|
|
||||||
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
|
||||||
__docformat__ = 'restructuredtext en'
|
|
||||||
|
|
||||||
from contextlib import closing
|
|
||||||
try:
|
|
||||||
from urllib.parse import quote_plus
|
|
||||||
except ImportError:
|
|
||||||
from urllib import quote_plus
|
|
||||||
|
|
||||||
from lxml import etree
|
|
||||||
|
|
||||||
from calibre import browser
|
|
||||||
from calibre.gui2.store.basic_config import BasicStoreConfig
|
|
||||||
from calibre.gui2.store.opensearch_store import OpenSearchOPDSStore
|
|
||||||
from calibre.gui2.store.search_result import SearchResult
|
|
||||||
|
|
||||||
|
|
||||||
class XinXiiStore(BasicStoreConfig, OpenSearchOPDSStore):
|
|
||||||
|
|
||||||
open_search_url = 'https://www.xinxii.com/catalog-search/'
|
|
||||||
web_url = 'https://xinxii.com/'
|
|
||||||
|
|
||||||
# https://www.xinxii.com/catalog/
|
|
||||||
|
|
||||||
def search(self, query, max_results=10, timeout=60):
|
|
||||||
'''
|
|
||||||
XinXii's open search url is:
|
|
||||||
http://www.xinxii.com/catalog-search/query/?keywords={searchTerms}&pw={startPage?}&doc_lang={docLang}&ff={docFormat},{docFormat},{docFormat}
|
|
||||||
|
|
||||||
This url requires the docLang and docFormat. However, the search itself
|
|
||||||
sent to XinXii does not require them. They can be ignored. We cannot
|
|
||||||
push this into the stanard OpenSearchOPDSStore search because of the
|
|
||||||
required attributes.
|
|
||||||
|
|
||||||
XinXii doesn't return all info supported by OpenSearchOPDSStore search
|
|
||||||
function so this one is modified to remove parts that are used.
|
|
||||||
'''
|
|
||||||
|
|
||||||
url = 'https://www.xinxii.com/catalog-search/query/?keywords=' + quote_plus(query)
|
|
||||||
|
|
||||||
counter = max_results
|
|
||||||
br = browser()
|
|
||||||
with closing(br.open(url, timeout=timeout)) as f:
|
|
||||||
doc = etree.fromstring(f.read(), parser=etree.XMLParser(recover=True, no_network=True, resolve_entities=False))
|
|
||||||
for data in doc.xpath('//*[local-name() = "entry"]'):
|
|
||||||
if counter <= 0:
|
|
||||||
break
|
|
||||||
|
|
||||||
counter -= 1
|
|
||||||
|
|
||||||
s = SearchResult()
|
|
||||||
|
|
||||||
s.detail_item = ''.join(data.xpath('./*[local-name() = "id"]/text()')).strip()
|
|
||||||
|
|
||||||
for link in data.xpath('./*[local-name() = "link"]'):
|
|
||||||
rel = link.get('rel')
|
|
||||||
href = link.get('href')
|
|
||||||
type = link.get('type')
|
|
||||||
|
|
||||||
if rel and href and type:
|
|
||||||
if rel in ('http://opds-spec.org/thumbnail', 'http://opds-spec.org/image/thumbnail'):
|
|
||||||
s.cover_url = href
|
|
||||||
if rel == 'alternate':
|
|
||||||
s.detail_item = href
|
|
||||||
|
|
||||||
s.formats = 'EPUB, PDF'
|
|
||||||
|
|
||||||
s.title = ' '.join(data.xpath('./*[local-name() = "title"]//text()')).strip()
|
|
||||||
s.author = ', '.join(data.xpath('./*[local-name() = "author"]//*[local-name() = "name"]//text()')).strip()
|
|
||||||
|
|
||||||
price_e = data.xpath('.//*[local-name() = "price"][1]')
|
|
||||||
if price_e:
|
|
||||||
price_e = price_e[0]
|
|
||||||
currency_code = price_e.get('currencycode', '')
|
|
||||||
price = ''.join(price_e.xpath('.//text()')).strip()
|
|
||||||
s.price = currency_code + ' ' + price
|
|
||||||
s.price = s.price.strip()
|
|
||||||
|
|
||||||
yield s
|
|
Loading…
x
Reference in New Issue
Block a user