示例#1
0
def delete_keywords():
    ids = request.values['keywordIds'].split(',')
    keywords = Keyword.get_all(Keyword.keyword_id.in_(ids))
    for keyword in keywords:
        keyword.categories = []
        db_session.delete(keyword)
    db_session.commit()
    return HttpResponse('Keywords deleted.')
示例#2
0
def keywords_categorizer():
    keywords_tree = Keyword.get_all_hierarchically()
    return render_template('keywords_categorizer.html',
                           title="Keywords Categorizer",
                           keywords_tree=keywords_tree,
                           unassociated_keywords=Keyword.get_all(
                               and_(~Keyword.categories.any(),
                                    Keyword.value != None)))
示例#3
0
def menu(option):
    #carga las palabras claves iniciar el programa
    keywords = Keyword.get_all()
    dominio = "google.com"

    #Mostrara al Usuario el menu de Opciones a escoger
    if option == "1":
        kw = input("Introduzca la palabra clave que desea agregar: ")
        keywords = agregar_keywords(kw)
        print("Se ha cargado la palabra clave...")

    elif option == "2":
        carga_keywords()

    elif option == "3":
        keywords = mostrar_keywords()
        if (len(keywords)
            ) > 20:  # En caso de que la lista sea mayor a 20 palabras claves
            cont = 0
            for i, j in enumerate(keywords, 1):
                if cont <= 19:
                    print(i, j)
                    cont += 1
                else:
                    stop = input("Presione cualquier tecla para continuar")
                cont = 0
        elif (len(keywords)
              ) < 20:  # En caso de que la lista sea menor a 20 palabras claves
            for i, j in enumerate(keywords, 1):
                print(i, j)

    elif option == "4":
        kw = input("Introduzca la palabra clave que desea buscar: ")
        position = comprueba_keywords(kw)
        if position == None or position >= 100:
            print(
                "La palabra clave {} para el dominio {} se encuentra en la posicion {}\n"
                .format(kw, dominio, "+100"))
        else:
            print(
                "La palabra clave {} para el dominio {} se encuentra en la posicion {}\n"
                .format(kw, dominio, position))
示例#4
0
def create_keywords():
    values = request.values['keyword'].split(',')
    keywords = Keyword.get_all(Keyword.value.in_(values))
    if len(keywords) == 0:
        keywords = [add_to_db(Keyword(), value=v) for v in values]
        return HttpResponse(
            {
                'keywords': [{
                    'value': k.value,
                    'id': k.keyword_id
                } for k in keywords]
            }, 202)
    else:
        if len(keywords[0].categories) > 0:
            return HttpResponse(
                'Keyword "{0}" already exists in category "{1}"!'.format(
                    keywords[0].value, keywords[0].categories[0].name), 302)
        else:
            return HttpResponse(
                'Keyword "{0}" already exists!'.format(keywords[0].value), 302)
示例#5
0
def carga_keywords():
    # aqui se va a abrir el archivo txt y se metera en la base de datos
    contador = 0
    try:
        with open('keywords.txt') as file:
            for line in file:
                line = line.replace('\n', '').lower()
                if line != "":
                    keywords = Keyword(line)
                    keywords.save()

                    # aqui voy a llamar a comprobar y me retorna la posicion
                    contador += 1
                    key = Keyword(line, 12)
                    key.update()

    except FileNotFoundError:
        print("No se encuentra Fichero keywords.txt")

    return Keyword.get_all()
示例#6
0
    def find_category(description):
        """Take the description and try to associate it with a category
        It also add it to the keyword table, so that the admin can associate it to some categories
        """
        if not description:
            return None
        Keyword.generate_from_description(description)

        categories = {}
        for word in description.split(' '):
            keywords = Keyword.get_all(Keyword.value.contains(word))
            for keyword in keywords:
                if len(keyword.categories) > 0:
                    category_name = keyword.categories[0].name
                    categories[category_name] = 1 + categories.get(
                        category_name, 0)

        if len(categories) == 0:
            return None
        else:
            category_name = max(categories.items(),
                                key=operator.itemgetter(1))[0]
            return Category.get(name=category_name)
示例#7
0
def remove_all_keywords():
    for keyword in Keyword.get_all():
        Keyword.delete(keyword)
示例#8
0
def keywords_creator():
    remaining_keywords = Keyword.get_all(value=None)
    return render_template('keywords_creator.html',
                           title="Keywords Creator",
                           keywords=remaining_keywords)