import os

from twisted.plugin import getPlugins

import dosage.plugins
from dosage.idosage import IScraper


DISABLED_FILES = ['/etc/dosage/disabled',
                  '~/.dosage/disabled']

disabled = []
for filename in DISABLED_FILES:
    filename = os.path.expanduser(filename)
    if os.path.exists(filename):
        disabled.extend([line.rstrip('\n') for line in open(filename)])


class DisabledComicError(ValueError):
    pass


def get(comicName):
    """Returns a comic module object."""

    scrapers = getPlugins(IScraper, dosage.plugins)
    for scraper in scrapers:
        if scraper.name == comicName:
            return scraper

    raise ValueError('Comic %r not found.' % (comicName,))


def items():
    scrapers = getPlugins(IScraper, dosage.plugins)
    return sorted(scrapers, key=lambda s: s.name)
