# Path: bidwire/scrapers/base_scraper.py
# class BaseScraper(metaclass=abc.ABCMeta):
#     """The interface that must be implemented by all scrapers."""
# 
#     @abc.abstractmethod
#     def scrape(self, session):
#         """
#         This method performs all scraping for this scraper. Must be implemented
#         by subclasses.
# 
#         Arguments:
#         session -- database session to use for persisting items
#         """
#         pass


import logging
import urllib.parse
import scrapelib
import db
from lxml import html
from .base_scraper import BaseScraper
from document import Document, get_new_urls
from utils import ensure_absolute_url





log = logging.getLogger(__name__)


class MemphisCouncilCalScraper(BaseScraper):
    SITE_ROOT_URL = "http://memphistn.gov/"
    CALENDAR_PAGE_URL = "http://www.memphistn.gov/Government/CityCouncil/CityCouncilMeetingCalendar,AgendasMinutes.aspx"

    def __init__(self):
        self.scraper = scrapelib.Scraper()


# Path: bidwire/scrapers/base_scraper.py
# class BaseScraper(metaclass=abc.ABCMeta):
#     """The interface that must be implemented by all scrapers."""
# 
#     @abc.abstractmethod
#     def scrape(self, session):
#         """
#         This method performs all scraping for this scraper. Must be implemented
#         by subclasses.
# 
#         Arguments:
#         session -- database session to use for persisting items
#         """
#         pass


# Path: bidwire/scrapers/memphis_council_calendar_scraper.py
import logging
import urllib.parse
import scrapelib
import db
from lxml import html
from .base_scraper import BaseScraper
from document import Document, get_new_urls
from utils import ensure_absolute_url






log = logging.getLogger(__name__)


class MemphisCouncilCalScraper(BaseScraper):
    SITE_ROOT_URL = "http://memphistn.gov/"
    CALENDAR_PAGE_URL = "http://www.memphistn.gov/Government/CityCouncil/CityCouncilMeetingCalendar,AgendasMinutes.aspx"

    def __init__(self):
        self.scraper = scrapelib.Scraper()


    def scrape(self, session):