Systemy_dialogowe/system/generator_jezyka_nautalnego.py
Jakub Adamski ba1be1ec14 fixes
2022-06-15 10:32:26 +02:00

130 lines
4.0 KiB
Python

from apimock import *
import difflib as dl
import random
import sys
commands = [
'pomoc',
'powiedz co nowego w moim repozytorium x',
'do widzenia',
'pokaz issue w',
'pokaz mi powiadomienia',
'jakie sa pull requesty',
'pokaz mi testy w'
]
welcome = [
'Witaj!',
"Cześć",
"Hello",
"Hej",
"Dzień dobry",
"Hey"
]
unknown = [
"Nie rozumiem.",
"Nie wiem co masz na myśli."
]
other = [
"Podobne komendy: ",
"Może chodziło Ci o te komendy: ",
"Spróbuj wybrać jedną z tych komend: "
]
bye = [
"Żegnaj!",
"Do zobaczenia",
"Do widzenia",
"Miłego dnia",
"Do widzenia i miłego dnia",
"Narazie"
]
help = ["Obsługuję przekazywanie informacji z systemu GitHub - repozytoria, pull requesty, issue, powiadomienia."]
time = ["Z jakiego czasu?", "Z jakiego okresu?", "Podaj z jakiego przedziału czasowego"]
repo = [
"Z jakiego repozytorium",
"Wskaż repozytorium",
"Podaj z jakiego repozytorium chciałbyć otrzymać informacje",
"Określ repozytorium"
]
howmany = ["Ile ostatnich elemntów chcesz zobaczyć?", "Ile ostatnich elmentów wyświetlić?", "Ile ostatnich elemnetów pokazać?"]
error_time = ["Podano nie prawidłowy czas, popraw ramy czasowe", "Czas jest nie prawidłowy, podaj ponownie", "Podaj przedział czasowy jeszcze raz"]
error_repo = ["Podano nieprawidłową nazwę repozytorium", "Podaj ponownie nazwę repozytorium, ponieważ podania nie prawidłową"]
def generator_jezyka_nautalnego(frame, tactic, state, text):
if tactic == 'null':
beastMatch = dl.get_close_matches(text, commands)
print(random.choice(unknown))
if len(beastMatch) > 0:
print(random.choice(other) + ', '.join(beastMatch))
elif tactic[1] == 'help':
print(random.choice(help))
print("Dostępne komendy: \n - " + '\n - '.join(commands))
elif tactic == 'bye':
print(random.choice(bye))
print()
sys.exit(0)
elif tactic[0] == 'ANSWER' and tactic[1] == 'issues':
print("Lista issues w repozytorium " + tactic[2][0][1] + ":")
issues = listRepositoryIssues(tactic[2][0][1])
for issue in issues:
print(issue['name'])
print(issue['description'])
print(issue['status'])
print()
elif tactic[0] == 'ANSWER' and tactic[1] == 'pullrequest':
print("Lista pull requestów w repozytorium " + tactic[2][0][1] + ":")
prs = listRepositoryPullRequests(tactic[2][0][1])
for pr in prs:
print(pr['name'])
print(pr['description'])
print(pr['state'])
print()
elif tactic[0] == 'ANSWER' and tactic[1] == 'brefing':
print("Podsumowanie w repozytorium " + tactic[2][0][1] + ":")
brefings = getBrefing()
for brefing in brefings:
print(brefing['name'])
print(brefing['description'])
print()
elif tactic[0] == 'ANSWER' and tactic[1] == 'tests':
print("Lista testów w repozytorium " + tactic[2][0][1] + ":")
tests = listRepositoryTests(tactic[2][0][1])
for test in tests:
print(test['name'])
print(test['description'])
print(test['status'])
print()
elif tactic[0] == 'ANSWER' and tactic[1] == 'notifications':
print("Lista powidomień w repozytorium " + tactic[2][0][1] + ":")
notifications = listNotifications(tactic[2][0][1])
for notification in notifications:
print(notification['name'])
print(notification['description'])
print()
elif tactic == 'hello':
print(random.choice(welcome))
elif tactic[0] == 'QUESTION' and tactic[1][0] == 'repo':
print("Dodaj nazwę repozytorium na końcu komendy")
print("np. w nazwarepozytorium")
else:
print(tactic)
print()