Skip to content

A library to create multilevel menus for chatbots

License

Notifications You must be signed in to change notification settings

rashidsh/navmenu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

navmenu

A library to create multilevel menus for chatbots.

PyPI Version Python Versions Documentation Status Tests

Installation

navmenu can be installed with pip:

pip3 install navmenu

Introduction

First, import everything you will need:

from navmenu import MenuManager
from navmenu.actions import MessageAction, SubmenuAction, GoBackAction
from navmenu.contents import Content
from navmenu.io import ConsoleIO
from navmenu.item_contents import TextItemContent
from navmenu.items import Item
from navmenu.menus import Menu
from navmenu.state import MemoryStateHandler

Then, create a menu with one item:

menu = Menu(Content('Welcome!'), [
    Item('print', TextItemContent('print text'), MessageAction('Text message'))
])

'print' is the internal menu item name. It can be any string but must be unique within menu.

Also, you can add items to menus later:

new_item = Item('hello', TextItemContent('say hello'), MessageAction('Hello!'))
menu.add_item(new_item)

Every menu should be wrapped in a MenuManager:

menu_manager = MenuManager({
    'main_menu': menu
}, MemoryStateHandler('main_menu'))

MemoryStateHandler('main_menu') means that the user state will be saved in memory. It will not persist between app restarts. 'main_menu' is the name of the first menu to show.

Finally, show the menu to a user:

io = ConsoleIO(menu_manager)
io.start_loop()

Links

About

A library to create multilevel menus for chatbots

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages