Пример #1
0
def play(doc, userid):
    chunks = list(doc.noun_chunks)
    # determine if this chunks are gernes, artists or songs
    # for gerne:
    # should be only one chunk with one word or <GERNE> + music
    log.info("CHUNKS: " + str(chunks))

    arguments = []
    for chunk in chunks:
        arguments.append(str(chunk))

    # in some cases chunk analysis takes play within the chunk
    if len(arguments) > 0 and arguments[0].lower().startswith(
            "play") and doc.text.lower().count(
                "play") == arguments[0].lower().count("play"):
        arguments[0] = arguments[0][5:]
        if "" in arguments:
            arguments.remove("")

    # if chunk analysis fails, set chunk manually (this happens in short instructions)
    if len(arguments) == 0:
        table = str.maketrans({key: None for key in string.punctuation})
        arguments.append(doc.text[5:].translate(table))
        if "" in arguments:
            arguments.remove("")

    response = verbalizer.getOkText()

    arg_genres = []
    for chunk in arguments:
        genre = mpm.trimGerne(chunk)
        if mpm.isGerne(genre) == True:
            arg_genres.append(genre)

    log.info(arg_genres)
    if len(arguments) == 0:
        mpm.speak(response)
        mpm.playOrResume()
    elif len(arg_genres) < len(arguments) and mpm.containsSongOrArtist(
            arguments):
        mpm.speak(response)
        mpm.playSongOrArtist(arguments)
    elif len(arg_genres) > 0:
        mpm.speak(response)
        mpm.playGernes(arg_genres)
    else:
        # no genre song artist found, check for alternate suggestions
        suggestion = mpm.getRandomGenre()
        states[userid] = ConversationState(ConversationStateEnum.AwaitYesOrNo,
                                           "Play " + suggestion + ".")
        response = verbalizer.getAlternatePlaySuggestion(suggestion)
    return response
Пример #2
0
def repeatPlaylist():
    response = verbalizer.getOkText()
    mpm.speak(response)
    mpm.repeatPlaylist()
    return response
Пример #3
0
def updateDatabase():
    response = verbalizer.getOkText()
    mpm.speak(response)
    mpm.updateDatabase()
    return response
Пример #4
0
def clearCurrentPlaylist():
    response = verbalizer.getOkText()
    mpm.speak(response)
    mpm.clearCurrentPlaylist()
    return response
Пример #5
0
def playRandom():
    response = verbalizer.getOkText()
    mpm.speak(response)
    mpm.playRandom()
    return verbalizer.getOkText()
Пример #6
0
def playPrevious():
    response = verbalizer.getOkText()
    mpm.speak(response)
    mpm.playPrevious()
    return response
Пример #7
0
def resume():
    response = verbalizer.getOkText()
    mpm.speak(response)
    mpm.resume()
    return response
Пример #8
0
def pause():
    response = verbalizer.getOkText()
    mpm.speak(response)
    mpm.pause()
    return response
Пример #9
0
def stop():
    response = verbalizer.getOkText()
    mpm.speak(response)
    mpm.stop()
    return response