Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
ba1be1ec14 |
@ -4,11 +4,11 @@ grammar brefing;
|
|||||||
|
|
||||||
public <brefing> = <action> {action} (<git> {git} | [repozytorium] <repo> {repo});
|
public <brefing> = <action> {action} (<git> {git} | [repozytorium] <repo> {repo});
|
||||||
|
|
||||||
<repozytoria> = gra - kolko i krzyzyk | zajecia ai | projekt - sklep | super_stronka_internetowa | nazwarepozytorium | pizza | zajecia;
|
<repozytoria> = gra - kolko i krzyzyk | zajęcia ai | projekt - sklep | super_stronka_internetowa | nazwarepozytorium | pizza | zajecia;
|
||||||
|
|
||||||
<git> = gicie | githubie | githubie;
|
<git> = gicie | githubie | githubie;
|
||||||
|
|
||||||
<action> = [opowiedz | powiedz] co nowego na moim | [opowiedz | powiedz] co nowego w moich | (opowiedz | powiedz) mi co sie u mnie dzialo na;
|
<action> = [opowiedz | powiedz] co nowego na moim | [opowiedz | powiedz] co nowego w moim | (opowiedz | powiedz) mi co sie u mnie dzialo na;
|
||||||
|
|
||||||
<repo> = <repozytoria> {repozytoria};
|
<repo> = <repozytoria> {repozytoria};
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ grammar issues;
|
|||||||
|
|
||||||
public <issue> = (pokaz [mi] [moje] | wyswietl [mi] [moje] | powiedz mi o| przedstaw [mi] [moje]) [nowe | nowych] <issues> [<time>] w <repo>;
|
public <issue> = (pokaz [mi] [moje] | wyswietl [mi] [moje] | powiedz mi o| przedstaw [mi] [moje]) [nowe | nowych] <issues> [<time>] w <repo>;
|
||||||
|
|
||||||
<repozytoria> = gra - kolko i krzyzyk | zajecia ai | projekt - sklep | super_stronka_internetowa | nazwarepozytorium | pizza | zajecia;
|
<repozytoria> = gra - kolko i krzyzyk | zajęcia ai | projekt - sklep | super_stronka_internetowa | nazwarepozytorium | pizza | zajecia;
|
||||||
|
|
||||||
<time> = <time_when> {time_when} [ostatniego | ostatnich] [<liczba> {liczba}] <timeunit> {timeunit};
|
<time> = <time_when> {time_when} [ostatniego | ostatnich] [<liczba> {liczba}] <timeunit> {timeunit};
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ public <issue> = (pokaz [mi] [moje] | wyswietl [mi] [moje] | powiedz mi o| przed
|
|||||||
|
|
||||||
<new> = [nowe] | [nowych];
|
<new> = [nowe] | [nowych];
|
||||||
|
|
||||||
<repo> = <repozytoria> {repo};
|
<repo> = <repozytoria> {repozytoria};
|
||||||
|
|
||||||
<liczba> = (dwa | dwoch | dwojki) | (trzy | trzech | trojki ) | (cztery | czterech) | (piec | pieciu ) | (szesc | szesciu ) | (siedem| siedmiu) | (osiem | osmiu) | (dziewiec | dziewieciu );
|
<liczba> = (dwa | dwoch | dwojki) | (trzy | trzech | trojki ) | (cztery | czterech) | (piec | pieciu ) | (szesc | szesciu ) | (siedem| siedmiu) | (osiem | osmiu) | (dziewiec | dziewieciu );
|
||||||
|
|
||||||
|
@ -8,14 +8,14 @@ public <notifications> = (pokaz [mi] | wyświetl [mi] | przedstaw [mi]) [<liczba
|
|||||||
|
|
||||||
<time_when> = z | od | ze | w;
|
<time_when> = z | od | ze | w;
|
||||||
|
|
||||||
<repozytoria> = gra - kolko i krzyzyk | zajecia ai | projekt - sklep | super_stronka_internetowa | nazwarepozytorium | pizza | zajecia;
|
|
||||||
|
|
||||||
<repo> = <repozytoria> {repo};
|
|
||||||
|
|
||||||
<timeunit> = (miesiaca | miesiecy | <miesiac>) | tygodni | miesiecy | dni;
|
<timeunit> = (miesiaca | miesiecy | <miesiac>) | tygodni | miesiecy | dni;
|
||||||
|
|
||||||
<liczba> = (dwa | dwoch | dwojki | dwojki) | (trzy | trzech | trojki ) | (cztery | czterech) | (piec | pieciu ) | (szesc | szesciu ) | (siedem | siedmiu) | (osiem | osmiu) | (dziewiec | dziewieciu );
|
<liczba> = (dwa | dwoch | dwojki | dwojki) | (trzy | trzech | trojki ) | (cztery | czterech) | (piec | pieciu ) | (szesc | szesciu ) | (siedem | siedmiu) | (osiem | osmiu) | (dziewiec | dziewieciu );
|
||||||
|
|
||||||
<powiadomienia> = notif | pow | powiadomienia | notification | notifications;
|
<powiadomienia> = notif | pow | powiadomienia | notification | notifications;
|
||||||
|
|
||||||
|
<repo> = <repozytoria> {repo};
|
||||||
|
|
||||||
|
<repozytoria> = gra - kolko i krzyzyk | zajęcia ai | projekt - sklep | super_stronka_internetowa | nazwarepozytorium | pizza | zajecia;
|
||||||
|
|
||||||
<miesiac> = (styczen | stycznia | styczniu) | (luty | lutego | lutym) | (marzec | marca | marcu) | (kwiecien | kwietniu | kwietnia) | (maj | maja | maju) | (czerwiec | czerwca | czerwcu) | (lipiec | lipca | lipcu) | (sierpien | sierpnia | sierpniu) | (wrzesien | wrzesieniu | wrzesnia) | (pazdziernik | październiku | pazdziernika) | (listopad | listopada | listopadzie) | (grudzien | grudnia | grudniu);
|
<miesiac> = (styczen | stycznia | styczniu) | (luty | lutego | lutym) | (marzec | marca | marcu) | (kwiecien | kwietniu | kwietnia) | (maj | maja | maju) | (czerwiec | czerwca | czerwcu) | (lipiec | lipca | lipcu) | (sierpien | sierpnia | sierpniu) | (wrzesien | wrzesieniu | wrzesnia) | (pazdziernik | październiku | pazdziernika) | (listopad | listopada | listopadzie) | (grudzien | grudnia | grudniu);
|
||||||
|
@ -4,11 +4,11 @@ grammar pullrequest;
|
|||||||
|
|
||||||
public <pull_request_zapytanie> = <action> {action} <new> <pullrequest> [w <repo> {repo}];
|
public <pull_request_zapytanie> = <action> {action} <new> <pullrequest> [w <repo> {repo}];
|
||||||
|
|
||||||
<repozytoria> = gra - kolko i krzyzyk | zajecia ai | projekt - sklep | super_stronka_internetowa | nazwarepozytorium | pizza | zajecia;
|
<repozytoria> = gra - kolko i krzyzyk | zajęcia ai | projekt - sklep | super_stronka_internetowa | nazwarepozytorium | pizza | zajecia;
|
||||||
|
|
||||||
<new> = [nowe] | [nowych];
|
<new> = [nowe] | [nowych];
|
||||||
|
|
||||||
<repo> = <repozytoria> {repo};
|
<repo> = <repozytoria> {repozytoria};
|
||||||
|
|
||||||
<pullrequest> = pull requesty | pull requestow;
|
<pullrequest> = pull requesty | pull requestow;
|
||||||
|
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
grammar tests;
|
grammar tests;
|
||||||
|
|
||||||
public <tests> = (pokaz mi | wyswietl mi | powiedz mi o | przedstaw mi) [<new>] <test> {test} [<time>] w <repo>;
|
public <tests> = (pokaz mi | wyswietl mi | powiedz mi o | przedstaw mi) [<new>] <test> {test} w <repo> [<time>];
|
||||||
|
|
||||||
<repozytoria> = gra - kolko i krzyzyk | zajecia ai | projekt - sklep | super_stronka_internetowa | nazwarepozytorium | pizza | zajecia;
|
<repozytoria> = gra - kolko i krzyzyk | zajęcia ai | projekt - sklep | super_stronka_internetowa | nazwarepozytorium | pizza | zajecia;
|
||||||
|
|
||||||
<time> = <time_when> {time_when} [ostatniego | ostatnich] [<liczba> {liczba}] <timeunit> {timeunit};
|
<time> = <time_when> {time_when} [ostatniego | ostatnich] [<liczba> {liczba}] <timeunit> {timeunit};
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ public <tests> = (pokaz mi | wyswietl mi | powiedz mi o | przedstaw mi) [<new>]
|
|||||||
|
|
||||||
<new> = [nowe] | [nowych];
|
<new> = [nowe] | [nowych];
|
||||||
|
|
||||||
<repo> = <repozytoria> {repo};
|
<repo> = <repozytoria> {repozytoria};
|
||||||
|
|
||||||
<test> = testy | testach | test;
|
<test> = testy | testach | test;
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
repositoriesMock = ["repo1", "repo2", "repo3", "repo4"]
|
repositoriesMock = ["repo1", "repo2", "repo3"]
|
||||||
repositoriesPublicMock = ["repo1", "repo2", "repo3"]
|
|
||||||
issuesMock = [
|
issuesMock = [
|
||||||
{
|
{
|
||||||
"name": "Issue 1",
|
"name": "Issue 1",
|
||||||
@ -68,7 +67,7 @@ def listRepositories():
|
|||||||
return repositoriesMock
|
return repositoriesMock
|
||||||
|
|
||||||
def listPublicRepositories():
|
def listPublicRepositories():
|
||||||
return repositoriesPublicMock
|
return repositoriesMock
|
||||||
|
|
||||||
def listRepositoryIssues(repositoryName):
|
def listRepositoryIssues(repositoryName):
|
||||||
return issuesMock
|
return issuesMock
|
||||||
@ -79,8 +78,8 @@ def listRepositoryPullRequests(repositoryName):
|
|||||||
def listNotifications(repositoryName):
|
def listNotifications(repositoryName):
|
||||||
return notificationsMock
|
return notificationsMock
|
||||||
|
|
||||||
def listRepositoryTests(repositoryName):
|
|
||||||
return testMock
|
|
||||||
|
|
||||||
def getBrefing():
|
def getBrefing():
|
||||||
return brefingMock
|
return brefingMock
|
||||||
|
|
||||||
|
def listRepositoryTests(repositoryName):
|
||||||
|
return testMock
|
||||||
|
@ -5,10 +5,10 @@ import sys
|
|||||||
|
|
||||||
commands = [
|
commands = [
|
||||||
'pomoc',
|
'pomoc',
|
||||||
'powiedz co nowego na moim repozytorium nazwa',
|
'powiedz co nowego w moim repozytorium x',
|
||||||
'do widzenia',
|
'do widzenia',
|
||||||
'pokaz issue w',
|
'pokaz issue w',
|
||||||
'pokaz mi powiadomienia w',
|
'pokaz mi powiadomienia',
|
||||||
'jakie sa pull requesty',
|
'jakie sa pull requesty',
|
||||||
'pokaz mi testy w'
|
'pokaz mi testy w'
|
||||||
]
|
]
|
||||||
@ -34,8 +34,8 @@ other = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
bye = [
|
bye = [
|
||||||
"Żegnaj!",
|
"Żegnaj!",
|
||||||
"Do zobaczenia",
|
"Do zobaczenia",
|
||||||
"Do widzenia",
|
"Do widzenia",
|
||||||
"Miłego dnia",
|
"Miłego dnia",
|
||||||
"Do widzenia i miłego dnia",
|
"Do widzenia i miłego dnia",
|
||||||
@ -46,9 +46,9 @@ help = ["Obsługuję przekazywanie informacji z systemu GitHub - repozytoria, pu
|
|||||||
time = ["Z jakiego czasu?", "Z jakiego okresu?", "Podaj z jakiego przedziału czasowego"]
|
time = ["Z jakiego czasu?", "Z jakiego okresu?", "Podaj z jakiego przedziału czasowego"]
|
||||||
|
|
||||||
repo = [
|
repo = [
|
||||||
"Z jakiego repozytorium",
|
"Z jakiego repozytorium",
|
||||||
"Wskaż repozytorium",
|
"Wskaż repozytorium",
|
||||||
"Podaj z jakiego repozytorium chciałbyć otrzymać informacje",
|
"Podaj z jakiego repozytorium chciałbyć otrzymać informacje",
|
||||||
"Określ repozytorium"
|
"Określ repozytorium"
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -56,98 +56,74 @@ howmany = ["Ile ostatnich elemntów chcesz zobaczyć?", "Ile ostatnich elmentów
|
|||||||
error_time = ["Podano nie prawidłowy czas, popraw ramy czasowe", "Czas jest nie prawidłowy, podaj ponownie", "Podaj przedział czasowy jeszcze raz"]
|
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ą"]
|
error_repo = ["Podano nieprawidłową nazwę repozytorium", "Podaj ponownie nazwę repozytorium, ponieważ podania nie prawidłową"]
|
||||||
|
|
||||||
def find(args, key):
|
|
||||||
#print(args, key)
|
|
||||||
for item in args:
|
|
||||||
if item[0] == key:
|
|
||||||
return item
|
|
||||||
|
|
||||||
|
|
||||||
def generator_jezyka_nautalnego(frame, tactic, state, text):
|
def generator_jezyka_nautalnego(frame, tactic, state, text):
|
||||||
#print(tactic)
|
|
||||||
|
|
||||||
if tactic == 'null':
|
if tactic == 'null':
|
||||||
beastMatch = dl.get_close_matches(text, commands)
|
beastMatch = dl.get_close_matches(text, commands)
|
||||||
print(random.choice(unknown))
|
print(random.choice(unknown))
|
||||||
if len(beastMatch) > 0:
|
if len(beastMatch) > 0:
|
||||||
print(random.choice(other) + ', '.join(beastMatch))
|
print(random.choice(other) + ', '.join(beastMatch))
|
||||||
|
|
||||||
elif tactic[0] == False: #ASK
|
elif tactic[1] == 'help':
|
||||||
_, required_empty, act, req_args, opt_args = tactic
|
print(random.choice(help))
|
||||||
# print('DEBUG: ', act, 'req', req_args, opt_args,sep = '\n')
|
print("Dostępne komendy: \n - " + '\n - '.join(commands))
|
||||||
if required_empty[0] == 'repo':
|
|
||||||
print("Dodaj nazwę repozytorium na końcu komendy")
|
elif tactic == 'bye':
|
||||||
print("np. w nazwarepozytorium")
|
print(random.choice(bye))
|
||||||
else:
|
print()
|
||||||
print(f'Proszę podaj {required_empty[0]}')
|
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()
|
print()
|
||||||
|
|
||||||
elif tactic[0] == True:
|
elif tactic[0] == 'ANSWER' and tactic[1] == 'pullrequest':
|
||||||
_, act, req_args, opt_args = tactic
|
print("Lista pull requestów w repozytorium " + tactic[2][0][1] + ":")
|
||||||
# print('DEBUG: ', act, 'req', req_args, opt_args,sep = '\n')
|
prs = listRepositoryPullRequests(tactic[2][0][1])
|
||||||
|
for pr in prs:
|
||||||
if act == 'help':
|
print(pr['name'])
|
||||||
print(random.choice(help))
|
print(pr['description'])
|
||||||
print("Dostępne komendy: \n - " + '\n - '.join(commands))
|
print(pr['state'])
|
||||||
|
|
||||||
elif act == 'bye':
|
|
||||||
print(random.choice(bye))
|
|
||||||
print()
|
print()
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
elif act == 'hello':
|
elif tactic[0] == 'ANSWER' and tactic[1] == 'brefing':
|
||||||
print(random.choice(welcome))
|
print("Podsumowanie w repozytorium " + tactic[2][0][1] + ":")
|
||||||
|
brefings = getBrefing()
|
||||||
|
for brefing in brefings:
|
||||||
|
print(brefing['name'])
|
||||||
|
print(brefing['description'])
|
||||||
|
print()
|
||||||
|
|
||||||
elif act == 'issues':
|
elif tactic[0] == 'ANSWER' and tactic[1] == 'tests':
|
||||||
print("Lista issues w repozytorium " + find(req_args, 'repo')[0] + ":")
|
print("Lista testów w repozytorium " + tactic[2][0][1] + ":")
|
||||||
issues = listRepositoryIssues(find(req_args, 'repo'))
|
tests = listRepositoryTests(tactic[2][0][1])
|
||||||
for issue in issues:
|
for test in tests:
|
||||||
print(issue['name'])
|
print(test['name'])
|
||||||
print(issue['description'])
|
print(test['description'])
|
||||||
print(issue['status'])
|
print(test['status'])
|
||||||
print()
|
print()
|
||||||
|
|
||||||
elif act == 'pullrequest':
|
elif tactic[0] == 'ANSWER' and tactic[1] == 'notifications':
|
||||||
print("Lista pull requestów w repozytorium " + find(req_args, 'repo')[0] + ":")
|
print("Lista powidomień w repozytorium " + tactic[2][0][1] + ":")
|
||||||
prs = listRepositoryPullRequests(find(req_args, repo))
|
notifications = listNotifications(tactic[2][0][1])
|
||||||
for pr in prs:
|
for notification in notifications:
|
||||||
print(pr['name'])
|
print(notification['name'])
|
||||||
print(pr['description'])
|
print(notification['description'])
|
||||||
print(pr['state'])
|
print()
|
||||||
print()
|
|
||||||
|
|
||||||
elif act == 'brefing':
|
elif tactic == 'hello':
|
||||||
print("Podsumowanie w repozytorium " + find(req_args, 'repo')[0] + ":")
|
print(random.choice(welcome))
|
||||||
brefings = getBrefing()
|
|
||||||
for brefing in brefings:
|
|
||||||
print(brefing['name'])
|
|
||||||
print(brefing['description'])
|
|
||||||
print()
|
|
||||||
|
|
||||||
elif act == 'tests':
|
elif tactic[0] == 'QUESTION' and tactic[1][0] == 'repo':
|
||||||
print("Lista testów w repozytorium " + find(req_args, 'repo')[0] + ":")
|
print("Dodaj nazwę repozytorium na końcu komendy")
|
||||||
tests = listRepositoryTests(find(req_args, 'repo')[0])
|
print("np. w nazwarepozytorium")
|
||||||
for test in tests:
|
|
||||||
print(test['name'])
|
|
||||||
print(test['description'])
|
|
||||||
print(test['status'])
|
|
||||||
print()
|
|
||||||
|
|
||||||
elif act == 'notifications':
|
|
||||||
print("Lista powidomień w repozytorium " + find(req_args, 'repo')[0] + ":")
|
|
||||||
notifications = listNotifications(find(req_args, 'repo')[0])
|
|
||||||
for notification in notifications:
|
|
||||||
print(notification['name'])
|
|
||||||
print(notification['description'])
|
|
||||||
print()
|
|
||||||
#
|
|
||||||
# elif tactic[0] == 'QUESTION' and act[0] == 'repo':
|
|
||||||
# print("Dodaj nazwę repozytorium na końcu komendy")
|
|
||||||
# print("np. w nazwarepozytorium")
|
|
||||||
|
|
||||||
else:
|
|
||||||
print(tactic)
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print('ERROR')
|
print(tactic)
|
||||||
|
|
||||||
print()
|
print()
|
||||||
|
@ -12,10 +12,6 @@ dialogue_state = {
|
|||||||
'counter': 0
|
'counter': 0
|
||||||
}
|
}
|
||||||
|
|
||||||
def add_fact(key, value):
|
|
||||||
global dialogue_state
|
|
||||||
dialogue_state['facts'][key] = value
|
|
||||||
|
|
||||||
|
|
||||||
def monitor_stanu_dialogowego(frame):
|
def monitor_stanu_dialogowego(frame):
|
||||||
not_pivot_acts = ['time',
|
not_pivot_acts = ['time',
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
from apimock import *
|
from apimock import *
|
||||||
from monitor_stanu_dialogowego import add_fact
|
|
||||||
|
|
||||||
gramar_slots = {
|
gramar_slots = {
|
||||||
'pullrequest': (('action', 'optional'),
|
'pullrequest': (('action', 'optional'),
|
||||||
@ -12,7 +11,7 @@ gramar_slots = {
|
|||||||
('repo', 'required')
|
('repo', 'required')
|
||||||
),
|
),
|
||||||
'tests': (('test', 'optional'),
|
'tests': (('test', 'optional'),
|
||||||
('repo', 'required')
|
('repozytoria', 'required')
|
||||||
),
|
),
|
||||||
'time': (('time_when', 'required'),
|
'time': (('time_when', 'required'),
|
||||||
('timeunit', 'required'),
|
('timeunit', 'required'),
|
||||||
@ -21,14 +20,14 @@ gramar_slots = {
|
|||||||
'issues': (('time_when','optional'),
|
'issues': (('time_when','optional'),
|
||||||
('liczba','optional'),
|
('liczba','optional'),
|
||||||
('timeunit','optional'),
|
('timeunit','optional'),
|
||||||
('repo', 'required')
|
('repozytoria', 'required')
|
||||||
),
|
),
|
||||||
'number': (('liczba', 'required')
|
'number': (('liczba', 'required')
|
||||||
),
|
),
|
||||||
'help': (('functions', 'optional'),
|
'help': (('functions', 'optional'),
|
||||||
('help', 'optional')
|
('help', 'optional')
|
||||||
),
|
),
|
||||||
'repo': (('repo', 'required')
|
'repo': (('repozytoria', 'required')
|
||||||
),
|
),
|
||||||
'hello': (),
|
'hello': (),
|
||||||
'bye': (),
|
'bye': (),
|
||||||
@ -38,23 +37,23 @@ gramar_slots = {
|
|||||||
def taktyka_dialogu(state, frame):
|
def taktyka_dialogu(state, frame):
|
||||||
if frame['act'] == 'null':
|
if frame['act'] == 'null':
|
||||||
return 'null'
|
return 'null'
|
||||||
# if state['current_context'] in ['hello', 'pomoc', 'bye']:
|
if state['current_context'] in ['hello', 'pomoc', 'bye']:
|
||||||
# return short_thread(state)
|
return short_thread(state)
|
||||||
# else:
|
else:
|
||||||
return long_thread(state)
|
return long_thread(state)
|
||||||
|
|
||||||
# def short_thread(state):
|
def short_thread(state):
|
||||||
# if state['current_context'] == 'pomoc':
|
if state['current_context'] == 'pomoc':
|
||||||
# return state['current_context']
|
return state['current_context']
|
||||||
# else:
|
else:
|
||||||
# return state['current_context']
|
return state['current_context']
|
||||||
|
|
||||||
def validate_repo(repo):
|
def validate_repo(repo):
|
||||||
if repo not in listRepositories():
|
if repo not in listRepositories():
|
||||||
print('repo not in listRepositories')
|
return 'repo not in listRepositories'
|
||||||
if repo not in listPublicRepositories():
|
if repo not in listPublicRepositories():
|
||||||
print('repo not in listPublicRepositories')
|
return 'repo not in listPublicRepositories'
|
||||||
|
|
||||||
def long_thread(state):
|
def long_thread(state):
|
||||||
act = state['current_context']
|
act = state['current_context']
|
||||||
if act == None:
|
if act == None:
|
||||||
@ -64,13 +63,13 @@ def long_thread(state):
|
|||||||
slots = topic['slots']
|
slots = topic['slots']
|
||||||
required = gramar_slots[act]
|
required = gramar_slots[act]
|
||||||
req_args, opt_args = agregate(required, slots)
|
req_args, opt_args = agregate(required, slots)
|
||||||
facts = state['facts']
|
facts = state['facts']# osobno validuj repo z req i z facts
|
||||||
req_args = add_facts(req_args, facts)
|
req_args = add_facts(req_args, facts)
|
||||||
opt_args = add_facts(opt_args, facts)
|
opt_args = add_facts(opt_args, facts)
|
||||||
required_empty = check_req(req_args)
|
required_empty = check_req(req_args)
|
||||||
if required_empty:
|
if required_empty:
|
||||||
return False, required_empty[0], act, req_args, opt_args #slot do uzupełnienia
|
return "QUESTION", required_empty[0] #slot do uzupełnienia
|
||||||
return True, act, req_args, opt_args #wyświetl użytkownikowi
|
return "ANSWER", act, req_args, opt_args #wyświetl użytkownikowi
|
||||||
|
|
||||||
def check_req(req_args):
|
def check_req(req_args):
|
||||||
req = []
|
req = []
|
||||||
@ -82,13 +81,12 @@ def check_req(req_args):
|
|||||||
def add_facts(args, facts):
|
def add_facts(args, facts):
|
||||||
for key, value in facts.items():
|
for key, value in facts.items():
|
||||||
for idx, item in enumerate(args):
|
for idx, item in enumerate(args):
|
||||||
if key == item[0]:
|
if key == item[0] and value != None and item[1] == None:
|
||||||
if value != None and item[1] == None:
|
args[idx] = value
|
||||||
args[idx][1] = value
|
if key == 'repo':
|
||||||
if key == 'repo':
|
validate_repo(value)
|
||||||
validate_repo(value)
|
|
||||||
if value == None and item[1] != None:
|
|
||||||
add_fact(key, item[1])
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
def agregate(grammar, slots):
|
def agregate(grammar, slots):
|
||||||
@ -103,3 +101,4 @@ def agregate(grammar, slots):
|
|||||||
elif item[1] == 'optional':
|
elif item[1] == 'optional':
|
||||||
opt_args.append([item[0], value])
|
opt_args.append([item[0], value])
|
||||||
return req_args, opt_args
|
return req_args, opt_args
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user