from apimock import * import difflib as dl import random import sys commands = [ 'pomoc', 'powiedz co nowego na moim gicie', '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 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 tactic == '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()