Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
ba1be1ec14 |
@ -4,11 +4,11 @@ grammar brefing;
|
||||
|
||||
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;
|
||||
|
||||
<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};
|
||||
|
||||
|
@ -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>;
|
||||
|
||||
<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};
|
||||
|
||||
@ -16,7 +16,7 @@ public <issue> = (pokaz [mi] [moje] | wyswietl [mi] [moje] | powiedz mi o| przed
|
||||
|
||||
<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 );
|
||||
|
||||
|
@ -8,14 +8,14 @@ public <notifications> = (pokaz [mi] | wyświetl [mi] | przedstaw [mi]) [<liczba
|
||||
|
||||
<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;
|
||||
|
||||
<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;
|
||||
|
||||
<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);
|
||||
|
@ -4,11 +4,11 @@ grammar pullrequest;
|
||||
|
||||
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];
|
||||
|
||||
<repo> = <repozytoria> {repo};
|
||||
<repo> = <repozytoria> {repozytoria};
|
||||
|
||||
<pullrequest> = pull requesty | pull requestow;
|
||||
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
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};
|
||||
|
||||
@ -18,7 +18,7 @@ public <tests> = (pokaz mi | wyswietl mi | powiedz mi o | przedstaw mi) [<new>]
|
||||
|
||||
<new> = [nowe] | [nowych];
|
||||
|
||||
<repo> = <repozytoria> {repo};
|
||||
<repo> = <repozytoria> {repozytoria};
|
||||
|
||||
<test> = testy | testach | test;
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
repositoriesMock = ["repo1", "repo2", "repo3", "repo4"]
|
||||
repositoriesPublicMock = ["repo1", "repo2", "repo3"]
|
||||
repositoriesMock = ["repo1", "repo2", "repo3"]
|
||||
issuesMock = [
|
||||
{
|
||||
"name": "Issue 1",
|
||||
@ -68,7 +67,7 @@ def listRepositories():
|
||||
return repositoriesMock
|
||||
|
||||
def listPublicRepositories():
|
||||
return repositoriesPublicMock
|
||||
return repositoriesMock
|
||||
|
||||
def listRepositoryIssues(repositoryName):
|
||||
return issuesMock
|
||||
@ -79,8 +78,8 @@ def listRepositoryPullRequests(repositoryName):
|
||||
def listNotifications(repositoryName):
|
||||
return notificationsMock
|
||||
|
||||
def listRepositoryTests(repositoryName):
|
||||
return testMock
|
||||
|
||||
def getBrefing():
|
||||
return brefingMock
|
||||
|
||||
def listRepositoryTests(repositoryName):
|
||||
return testMock
|
||||
|
@ -5,10 +5,10 @@ import sys
|
||||
|
||||
commands = [
|
||||
'pomoc',
|
||||
'powiedz co nowego na moim repozytorium nazwa',
|
||||
'powiedz co nowego w moim repozytorium x',
|
||||
'do widzenia',
|
||||
'pokaz issue w',
|
||||
'pokaz mi powiadomienia w',
|
||||
'pokaz mi powiadomienia',
|
||||
'jakie sa pull requesty',
|
||||
'pokaz mi testy w'
|
||||
]
|
||||
@ -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_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):
|
||||
#print(tactic)
|
||||
|
||||
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[0] == False: #ASK
|
||||
_, required_empty, act, req_args, opt_args = tactic
|
||||
# print('DEBUG: ', act, 'req', req_args, opt_args,sep = '\n')
|
||||
if required_empty[0] == 'repo':
|
||||
print("Dodaj nazwę repozytorium na końcu komendy")
|
||||
print("np. w nazwarepozytorium")
|
||||
else:
|
||||
print(f'Proszę podaj {required_empty[0]}')
|
||||
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] == True:
|
||||
_, act, req_args, opt_args = tactic
|
||||
# print('DEBUG: ', act, 'req', req_args, opt_args,sep = '\n')
|
||||
|
||||
if act == 'help':
|
||||
print(random.choice(help))
|
||||
print("Dostępne komendy: \n - " + '\n - '.join(commands))
|
||||
|
||||
elif act == 'bye':
|
||||
print(random.choice(bye))
|
||||
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()
|
||||
sys.exit(0)
|
||||
|
||||
elif act == 'hello':
|
||||
print(random.choice(welcome))
|
||||
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 act == 'issues':
|
||||
print("Lista issues w repozytorium " + find(req_args, 'repo')[0] + ":")
|
||||
issues = listRepositoryIssues(find(req_args, 'repo'))
|
||||
for issue in issues:
|
||||
print(issue['name'])
|
||||
print(issue['description'])
|
||||
print(issue['status'])
|
||||
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 act == 'pullrequest':
|
||||
print("Lista pull requestów w repozytorium " + find(req_args, 'repo')[0] + ":")
|
||||
prs = listRepositoryPullRequests(find(req_args, repo))
|
||||
for pr in prs:
|
||||
print(pr['name'])
|
||||
print(pr['description'])
|
||||
print(pr['state'])
|
||||
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 act == 'brefing':
|
||||
print("Podsumowanie w repozytorium " + find(req_args, 'repo')[0] + ":")
|
||||
brefings = getBrefing()
|
||||
for brefing in brefings:
|
||||
print(brefing['name'])
|
||||
print(brefing['description'])
|
||||
print()
|
||||
elif tactic == 'hello':
|
||||
print(random.choice(welcome))
|
||||
|
||||
elif act == 'tests':
|
||||
print("Lista testów w repozytorium " + find(req_args, 'repo')[0] + ":")
|
||||
tests = listRepositoryTests(find(req_args, 'repo')[0])
|
||||
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)
|
||||
elif tactic[0] == 'QUESTION' and tactic[1][0] == 'repo':
|
||||
print("Dodaj nazwę repozytorium na końcu komendy")
|
||||
print("np. w nazwarepozytorium")
|
||||
|
||||
else:
|
||||
print('ERROR')
|
||||
print(tactic)
|
||||
|
||||
print()
|
||||
|
@ -12,10 +12,6 @@ dialogue_state = {
|
||||
'counter': 0
|
||||
}
|
||||
|
||||
def add_fact(key, value):
|
||||
global dialogue_state
|
||||
dialogue_state['facts'][key] = value
|
||||
|
||||
|
||||
def monitor_stanu_dialogowego(frame):
|
||||
not_pivot_acts = ['time',
|
||||
|
@ -1,5 +1,4 @@
|
||||
from apimock import *
|
||||
from monitor_stanu_dialogowego import add_fact
|
||||
|
||||
gramar_slots = {
|
||||
'pullrequest': (('action', 'optional'),
|
||||
@ -12,7 +11,7 @@ gramar_slots = {
|
||||
('repo', 'required')
|
||||
),
|
||||
'tests': (('test', 'optional'),
|
||||
('repo', 'required')
|
||||
('repozytoria', 'required')
|
||||
),
|
||||
'time': (('time_when', 'required'),
|
||||
('timeunit', 'required'),
|
||||
@ -21,14 +20,14 @@ gramar_slots = {
|
||||
'issues': (('time_when','optional'),
|
||||
('liczba','optional'),
|
||||
('timeunit','optional'),
|
||||
('repo', 'required')
|
||||
('repozytoria', 'required')
|
||||
),
|
||||
'number': (('liczba', 'required')
|
||||
),
|
||||
'help': (('functions', 'optional'),
|
||||
('help', 'optional')
|
||||
),
|
||||
'repo': (('repo', 'required')
|
||||
'repo': (('repozytoria', 'required')
|
||||
),
|
||||
'hello': (),
|
||||
'bye': (),
|
||||
@ -38,22 +37,22 @@ gramar_slots = {
|
||||
def taktyka_dialogu(state, frame):
|
||||
if frame['act'] == 'null':
|
||||
return 'null'
|
||||
# if state['current_context'] in ['hello', 'pomoc', 'bye']:
|
||||
# return short_thread(state)
|
||||
# else:
|
||||
return long_thread(state)
|
||||
if state['current_context'] in ['hello', 'pomoc', 'bye']:
|
||||
return short_thread(state)
|
||||
else:
|
||||
return long_thread(state)
|
||||
|
||||
# def short_thread(state):
|
||||
# if state['current_context'] == 'pomoc':
|
||||
# return state['current_context']
|
||||
# else:
|
||||
# return state['current_context']
|
||||
def short_thread(state):
|
||||
if state['current_context'] == 'pomoc':
|
||||
return state['current_context']
|
||||
else:
|
||||
return state['current_context']
|
||||
|
||||
def validate_repo(repo):
|
||||
if repo not in listRepositories():
|
||||
print('repo not in listRepositories')
|
||||
return 'repo not in listRepositories'
|
||||
if repo not in listPublicRepositories():
|
||||
print('repo not in listPublicRepositories')
|
||||
return 'repo not in listPublicRepositories'
|
||||
|
||||
def long_thread(state):
|
||||
act = state['current_context']
|
||||
@ -64,13 +63,13 @@ def long_thread(state):
|
||||
slots = topic['slots']
|
||||
required = gramar_slots[act]
|
||||
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)
|
||||
opt_args = add_facts(opt_args, facts)
|
||||
required_empty = check_req(req_args)
|
||||
if required_empty:
|
||||
return False, required_empty[0], act, req_args, opt_args #slot do uzupełnienia
|
||||
return True, act, req_args, opt_args #wyświetl użytkownikowi
|
||||
return "QUESTION", required_empty[0] #slot do uzupełnienia
|
||||
return "ANSWER", act, req_args, opt_args #wyświetl użytkownikowi
|
||||
|
||||
def check_req(req_args):
|
||||
req = []
|
||||
@ -82,13 +81,12 @@ def check_req(req_args):
|
||||
def add_facts(args, facts):
|
||||
for key, value in facts.items():
|
||||
for idx, item in enumerate(args):
|
||||
if key == item[0]:
|
||||
if value != None and item[1] == None:
|
||||
args[idx][1] = value
|
||||
if key == 'repo':
|
||||
validate_repo(value)
|
||||
if value == None and item[1] != None:
|
||||
add_fact(key, item[1])
|
||||
if key == item[0] and value != None and item[1] == None:
|
||||
args[idx] = value
|
||||
if key == 'repo':
|
||||
validate_repo(value)
|
||||
|
||||
|
||||
return args
|
||||
|
||||
def agregate(grammar, slots):
|
||||
@ -103,3 +101,4 @@ def agregate(grammar, slots):
|
||||
elif item[1] == 'optional':
|
||||
opt_args.append([item[0], value])
|
||||
return req_args, opt_args
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user