Use database as source for initializing connector
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
''' functionality outline for a book data connector '''
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
from fedireads import models
|
||||
from fedireads.connectors import CONNECTORS
|
||||
|
||||
|
||||
@ -13,15 +14,22 @@ class AbstractConnector(ABC):
|
||||
if not settings:
|
||||
raise ValueError('No connector with name "%s"' % connector_name)
|
||||
|
||||
try:
|
||||
self.url = settings['BASE_URL']
|
||||
self.covers_url = settings['COVERS_URL']
|
||||
self.db_field = settings['DB_KEY_FIELD']
|
||||
self.key_name = settings['KEY_NAME']
|
||||
except KeyError:
|
||||
raise KeyError('Invalid connector settings')
|
||||
# TODO: politeness settings
|
||||
info = models.Connector.objects.get(name=settings['db_name'])
|
||||
self.model = info
|
||||
|
||||
self.url = info.base_url
|
||||
self.covers_url = info.covers_url
|
||||
self.search_url = info.search_url
|
||||
self.key_name = info.key_name
|
||||
self.max_query_count = info.max_query_count
|
||||
|
||||
|
||||
def is_available(self):
|
||||
''' check if you're allowed to use this connector '''
|
||||
if self.model.max_query_count is not None:
|
||||
if self.model.query_count >= self.model.max_query_count:
|
||||
return False
|
||||
return True
|
||||
|
||||
@abstractmethod
|
||||
def search(self, query):
|
||||
|
Reference in New Issue
Block a user