Skip to content

Commit

Permalink
Fix date format usage
Browse files Browse the repository at this point in the history
Signed-off-by: Yohanna Lisnichuk <yohanitalisnichuk@gmail.com>
  • Loading branch information
yolile committed May 12, 2020
1 parent 5c94f81 commit 5458901
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 11 deletions.
15 changes: 6 additions & 9 deletions kingfisher_scrapy/base_spider.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,16 @@ class BaseSpider(scrapy.Spider):
MAX_SAMPLE = 10
MAX_RELEASES_PER_PACKAGE = 100

def __init__(self, sample=None, note=None, from_date=None, until_date=None, *args, **kwargs):
def __init__(self, sample=None, note=None, from_date=None, until_date=None, date_format='%Y-%m-%d',
*args, **kwargs):
super().__init__(*args, **kwargs)

# https://docs.scrapy.org/en/latest/topics/spiders.html#spider-arguments
self.sample = sample == 'true'
self.from_date = from_date
self.until_date = until_date
self.note = note
self.date_format = date_format

spider_arguments = {
'sample': sample,
Expand All @@ -66,24 +68,19 @@ def from_crawler(cls, crawler, *args, **kwargs):

# Checks Spider date ranges arguments
if spider.from_date or spider.until_date:
# YYYY-MM-DD format
date_format = '%Y-%m-%d'
if spider.date_format:
date_format = spider.date_format

if not spider.from_date:
# 'from_date' defaults to 'default_from_date' spider class attribute
spider.from_date = spider.default_from_date
if not spider.until_date:
# 'until_date' defaults to today
spider.until_date = datetime.now().strftime(date_format)
spider.until_date = datetime.now().strftime(spider.date_format)

try:
spider.from_date = datetime.strptime(spider.from_date, date_format)
spider.from_date = datetime.strptime(spider.from_date, spider.date_format)
except ValueError as e:
raise SpiderArgumentError('spider argument from_date: invalid date value: {}'.format(e))
try:
spider.until_date = datetime.strptime(spider.until_date, date_format)
spider.until_date = datetime.strptime(spider.until_date, spider.date_format)
except ValueError as e:
raise SpiderArgumentError('spider argument until_date: invalid date value: {}'.format(e))

Expand Down
4 changes: 2 additions & 2 deletions kingfisher_scrapy/spiders/paraguay_dncp_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ class ParaguayDNCPBaseSpider(BaseSpider):
request_token = None
max_attempts = 10
data_type = None
date_format = '%Y-%m-%dT%H:%M:%S'
default_from_date = '2010-01-01T00:00:00'

custom_settings = {
Expand All @@ -38,7 +37,8 @@ class ParaguayDNCPBaseSpider(BaseSpider):

@classmethod
def from_crawler(cls, crawler, *args, **kwargs):
spider = super(ParaguayDNCPBaseSpider, cls).from_crawler(crawler, *args, **kwargs)
spider = super(ParaguayDNCPBaseSpider, cls).from_crawler(crawler, date_format='%Y-%m-%dT%H:%M:%S',
*args, **kwargs)

spider.request_token = crawler.settings.get('KINGFISHER_PARAGUAY_DNCP_REQUEST_TOKEN')

Expand Down

0 comments on commit 5458901

Please sign in to comment.