def __init__(self, **keyargs):
        if "short_name" in keyargs.keys():
            if "_tt1" in keyargs['short_name']:
                short_name = keyargs['short_name']
            else:
                logger.error(Meb_ttapps_exception(5, -1, "-"))
                raise Meb_ttapps_exception(5, -1, "-")
        else:
            logger.error(Meb_ttapps_exception(1, -1, "-"))
            raise Meb_ttapps_exception(1, -1, "-")
        
        if "title" in keyargs.keys():
            title = keyargs['title'] + " "
        else:
            title = ""
        
        if keyargs.has_key("book_info"):
            data_mngr.record_book(keyargs["book_info"])
        
        app_name = title + unicode("Seleção", "utf-8")

        super(Apptt_select, self).__init__(
            app_name,
            short_name,
            "Por favor. Selecione as páginas com tabela.")

        super(Apptt_select, self).set_template(meb_util.set_url(
            urllib2.urlopen(
                urllib2.Request(
                    flask_app.config['URL_TEMPLATES']
                    + "/templates"
                    + "/template-select.html")), short_name))

        super(Apptt_select, self).set_long_description(meb_util.set_url(
            urllib2.urlopen(
                urllib2.Request(
                    flask_app.config['URL_TEMPLATES']
                    + "/templates"
                    + "/long_description-select.html")), short_name))
        
        super(Apptt_select, self).add_app_infos(
            dict(thumbnail=flask_app.config['URL_TEMPLATES']
                 + "/images" 
                 + "/long_description_selection.png"))
        
        logger.info("Create task type 1")
    def __init__(self, **keyargs):

        if "short_name" in keyargs.keys():
            if "_tt4" in keyargs['short_name']:
                short_name = keyargs['short_name']
            else:
                logger.error(Meb_ttapps_exception(8, -1, "-"))
                raise Meb_ttapps_exception(8, -1, "-")
        else:
            raise Meb_ttapps_exception(4, -1, "-")

        if "title" in keyargs.keys():
            title = keyargs['title'] + " "
        else:
            title = ""
        
        app_name = title + unicode("Transcrição", "utf-8")
    
        super(Apptt_transcribe, self).__init__(
            app_name, short_name,
            "Por favor. Corrija o conteúdo das células da tabela.")

        super(Apptt_transcribe, self).set_template(meb_util.set_url(
            urllib2.urlopen(
                urllib2.Request(
                    flask_app.config['URL_TEMPLATES']
                    + "/templates/template-transcribe.html")),
            short_name))

        super(Apptt_transcribe, self).set_long_description(meb_util.set_url(
            urllib2.urlopen(
                urllib2.Request(
                    flask_app.config['URL_TEMPLATES']
                    + "/templates"
                    + "/long_description-transcribe.html")), short_name))
        
        super(Apptt_transcribe, self).add_app_infos(
            dict(
                 sched="incremental",
                 thumbnail=flask_app.config['URL_TEMPLATES']
                 + "/images"
                 + "/long_description_transcribe.png"))
        
        logger.info("Create task type 4")
    def __init__(self, **keyargs):
        if "short_name" in keyargs.keys():
            if "_tt2" in keyargs['short_name']:
                short_name = keyargs['short_name']
            else:
                logger.error(Meb_ttapps_exception(6, -1, "-"))
                raise Meb_ttapps_exception(6, -1, "-")
        else:
            raise Meb_ttapps_exception(2, -1, "-")
        
        if "title" in keyargs.keys():
            title = keyargs['title'] + " "
        else:
            title = ""
        
        app_name = title + unicode("Marcação", "utf-8")

        super(Apptt_meta, self).__init__(
            app_name, short_name,
            "Marque e descreva as tabelas ou corrija as marcações.")

        super(Apptt_meta, self).set_template(meb_util.set_url(
            urllib2.urlopen(
                urllib2.Request(
                    flask_app.config['URL_TEMPLATES']
                    + "/templates"
                    + "/template-meta.html")), short_name))

        super(Apptt_meta, self).set_long_description(meb_util.set_url(
            urllib2.urlopen(
                urllib2.Request(
                    flask_app.config['URL_TEMPLATES']
                    + "/templates"
                    + "/long_description-meta.html")), short_name))
        
        super(Apptt_meta, self).add_app_infos(
            dict(
                sched="incremental",
                thumbnail=flask_app.config['URL_TEMPLATES']
                + "/images"
                + "/long_description_meta.png"))
        
        logger.info("Create task type 2")
    def __init__(self, **keyargs):

        if "short_name" in keyargs.keys():
            if "_tt3" in keyargs['short_name']:
                short_name = keyargs['short_name']
            else:
                logger.error(Meb_ttapps_exception(7, -1, "-"))
                raise Meb_ttapps_exception(7, -1, "-")
        else:
            raise Meb_ttapps_exception(3, -1, "-")

        if "title" in keyargs.keys():
            title = keyargs['title'] + " "
        else:
            title = ""

        app_name = title + unicode("Estrutura", "utf-8")
        
        super(Apptt_struct, self).__init__(
            app_name, short_name,
            "Por favor. Corrija as linhas e colunas da tabela.")

        super(Apptt_struct, self).set_template(meb_util.set_url(
            urllib2.urlopen(
                urllib2.Request(
                    flask_app.config['URL_TEMPLATES']
                    + "/templates/template-struct.html")),
            short_name))

        super(Apptt_struct, self).set_long_description(meb_util.set_url(
            urllib2.urlopen(
                urllib2.Request(
                    flask_app.config['URL_TEMPLATES']
                    + "/templates"
                    + "/long_description-struct.html")), short_name))

        try:
            self.__create_dirs(flask_app.config['CV_MODULES'], short_name[:-4])
            logger.info("TT folders created")
        except OSError, e:
            logger.error(e)
def create_home_app():
    try:
        
        meb_short_name = "meb_home"
        apps = pbclient.find_app(short_name=meb_short_name)
        pyb_app = None
        if len(apps) != 0:
            pyb_app = apps[0]
        else:
            ans = pbclient.create_app(name="Memória Estatística do Brasil", short_name=meb_short_name, description="Página inicial do MEB.")
            if ans:
                pyb_app = pbclient.find_app(short_name=meb_short_name)[0]
                pbclient.create_task(pyb_app.id, {})

        if pyb_app == None:
            return False

        new_long_desc_template = meb_util.set_url(urllib2.urlopen(
                                                 urllib2.Request(app.config['URL_TEMPLATES'] +
                                                                 "/templates/long_description-home.html")), meb_short_name)
        new_template = meb_util.set_url(urllib2.urlopen(
                                       urllib2.Request(app.config['URL_TEMPLATES'] +
                                                        "/templates/template-home.html")), meb_short_name)

        pyb_app.info['thumbnail'] = app.config['URL_TEMPLATES'] + "/images/meb_icon.png"

        pyb_app.category_id = 1
        pyb_app.long_description = new_long_desc_template
        pyb_app.info['task_presenter'] = new_template
        
        pbclient.update_app(pyb_app)

        return True

    except Exception as e:
        return False
            template_type = "template-meta.html"
            long_desc_type = "long_description-meta.html"
            app_name = unicode("Marcação", "utf-8")
        elif app_type == "_tt3":
            template_type = "template-struct.html"
            long_desc_type = "long_description-struct.html"
            app_name = unicode("Estrutura", "utf-8")
        elif app_type == "_tt4":
            template_type = "template-transcribe.html"
            long_desc_type = "long_description-transcribe.html"
            app_name = unicode("Transcrição", "utf-8")
 
        if template_type:
            new_template = meb_util.set_url(
                urllib2.urlopen(
                    urllib2.Request(
                        flask_app.config['URL_TEMPLATES']
                        + "/templates/" + template_type)),
                app_short_name)
            
            new_long_desc_template = meb_util.set_url(
                urllib2.urlopen(
                    urllib2.Request(
                        flask_app.config['URL_TEMPLATES'] + 
                                "/templates/" +
                                long_desc_type)), 
                     app_short_name)

            app.info['task_presenter'] = new_template
            app.info['thumbnail'] = app.info['thumbnail'].replace("https://alfa.pybossa.socientize.eu", "https://localhost")
            
            app.info['newtask'] = app.info['newtask'].replace("https://alfa.pybossa.socientize.eu", "https://localhost")