154 lines
4.8 KiB
Python
154 lines
4.8 KiB
Python
from apimock import *
|
|
import difflib as dl
|
|
import random
|
|
import sys
|
|
|
|
commands = [
|
|
'pomoc',
|
|
'powiedz co nowego na moim repozytorium',
|
|
'do widzenia',
|
|
'pokaz issue w',
|
|
'pokaz mi powiadomienia w',
|
|
'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 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]}')
|
|
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))
|
|
print()
|
|
sys.exit(0)
|
|
|
|
elif act == 'hello':
|
|
print(random.choice(welcome))
|
|
|
|
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 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 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 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)
|
|
|
|
else:
|
|
print('ERROR')
|
|
print()
|