get_one_or_create,
    production_session,
)
from core.util import (
    fast_query_count,
    LanguageCodes,
)

from scripts import (
    DirectoryImportScript,
    OPDSImportScript,
)
from feedbooks import FeedbooksOPDSImporter
from unglueit import UnglueItImporter

_db = production_session()

try:
    # Create Collections generated by directory import.
    directory_import = DirectoryImportScript(_db=_db)
    for data_source_name in [DataSource.PLYMPTON, DataSource.ELIB]:
        directory_import.create_collection(data_source_name)

    # Create Collections generated by OPDS import with importer classes.
    opds_importers = {
        FeedbooksOPDSImporter : DataSource.FEEDBOOKS,
        UnglueItImporter : DataSource.UNGLUE_IT,
    }
    for importer_class, data_source_name in opds_importers.items():
        OPDSImportScript(importer_class, data_source_name, _db=_db)
sys.path.append(os.path.abspath(package_dir))
from api.config import Configuration
from core.model import (
    get_one_or_create,
    production_session,
    DataSource,
    Library,
    Collection,
)

# We're going directly against the configuration object, rather than
# using shortcuts like OverdriveAPI.from_environment, because this
# script may be running against a branch where the implementation of
# those shortcuts goes against the database.

_db = production_session()


def copy_library_registry_information(_db, library):
    config = Configuration.integration("Adobe Vendor ID")
    if not config:
        print u"No Adobe Vendor ID configuration, not setting short name or secret."
        return
    library.short_name = config.get("library_short_name")
    library.library_registry_short_name = config.get("library_short_name")
    library.library_registry_shared_secret = config.get("authdata_secret")


def convert_overdrive(_db, library):
    config = Configuration.integration('Overdrive')
    if not config:
Example #3
0
#!/usr/bin/env python
"""Adds InCommon SAML federation metadata to `samlfederations` table."""

import os
import sys

from contextlib2 import closing

bin_dir = os.path.split(__file__)[0]
package_dir = os.path.join(bin_dir, "..")
sys.path.append(os.path.abspath(package_dir))

from api.saml.metadata.federations import incommon
from api.saml.metadata.federations.model import SAMLFederation
from core.model import production_session

with closing(production_session()) as db:
    incommon_federation = (db.query(SAMLFederation).filter(
        SAMLFederation.type == incommon.FEDERATION_TYPE).one_or_none())

    if not incommon_federation:
        incommon_federation = SAMLFederation(
            incommon.FEDERATION_TYPE,
            incommon.IDP_METADATA_SERVICE_URL,
            incommon.CERTIFICATE,
        )

        db.add(incommon_federation)
        db.commit()