#!/usr/bin/env  python2
# -*- coding: utf-8 -*-
#Based on veezh's original recipe and Kovid Goyal's New York Times recipe

__license__   = 'GPL v3'
__copyright__ = '2011, Snaab'

'''
www.nrc.nl
'''
import os, zipfile
import time
from calibre.web.feeds.news import BasicNewsRecipe
from calibre.ptempfile import PersistentTemporaryFile


class NRCHandelsblad(BasicNewsRecipe):

    title = u'NRC Handelsblad'
    description = u'De ePaper-versie van NRC'
    language = 'nl'
    lang = 'nl-NL'
    needs_subscription = True

    __author__ = 'Snaab'

    conversion_options = {
        'no_default_epub_cover' : True
    }

    def get_browser(self):
        br = BasicNewsRecipe.get_browser(self)
        if self.username is not None and self.password is not None:
            br.open('http://login.nrc.nl/login')
            br.select_form(nr=0)
            br['username']   = self.username
            br['password'] = self.password
            br.submit()
        return br

    def build_index(self):

        today = time.strftime("%Y%m%d")

        domain = "http://digitaleeditie.nrc.nl"

        url = domain + "/digitaleeditie/helekrant/epub/nrc_" + today + ".epub"
        #print url

        try:
            br = self.get_browser()
            f = br.open(url)
        except:
            self.report_progress(0,_('Kan niet inloggen om editie te downloaden'))
            raise ValueError('Krant van vandaag nog niet beschikbaar')


        tmp = PersistentTemporaryFile(suffix='.epub')
        self.report_progress(0,_('downloading epub'))
        tmp.write(f.read())
        f.close()
        br.close()
        if zipfile.is_zipfile(tmp):
            try:
                zfile = zipfile.ZipFile(tmp.name, 'r')
                zfile.extractall(self.output_dir)
                self.report_progress(0,_('extracting epub'))
            except zipfile.BadZipfile:
                self.report_progress(0,_('BadZip error, continuing'))

        tmp.close()
        index = os.path.join(self.output_dir, 'metadata.opf')

        self.report_progress(1,_('epub downloaded and extracted'))

        return index
