import subprocess import os import requests import pprint import json #git clone student directory ==> /classes/assignments def initStudent(ion_user): #check if git has already been initialized if(os.path.exists(str(ion_user) +"/" + ".git")): print("Already synced to: " + str(ion_user)) return #get student repo from API URL = "http://127.0.0.1:8000/students/" + ion_user + "/" r = requests.get(url = URL, auth=('student','_$YFE#34.9_37jr')) if(r.status_code == 200): data = r.json() repo = data['repo'] classes = data['classes'] print(data) #git clone repo process = subprocess.Popen(['git', 'clone', repo], stdout=subprocess.PIPE,stderr=subprocess.PIPE) process.wait() # make classes directory for c in classes: cpath = str(ion_user) + "/" + c['name'] if(os.path.exists(cpath)): print(cpath + " already exists...") else: os.mkdir(str(ion_user) + "/" + c['name']) #make assignments directory for a in c['assignments']: path = str(ion_user) + "/" + c['name'] + "/" + a['name'] print(path) if(os.path.exists("/" +path)): print(path + " already exists...") else: os.mkdir(str(ion_user) + "/" + c['name'] + "/" + a['name']) #push to remote repo os.chdir(ion_user) process = subprocess.Popen(['git', 'init'], stdout=subprocess.PIPE,stderr=subprocess.PIPE) process.wait() process = subprocess.Popen(['git', 'add', '.'], stdout=subprocess.PIPE,stderr=subprocess.PIPE) process.wait() process = subprocess.Popen(['git', 'commit', '-m', "First Commit"], stdout=subprocess.PIPE,stderr=subprocess.PIPE) process.wait() process = subprocess.Popen(['git', 'push', '-u', 'origin','master'], stdout=subprocess.PIPE,stderr=subprocess.PIPE) process.wait() elif(r.status_code == 404): print("Make new account!") elif(r.status_code == 403): print("Invalid username/password") else: print(r.status_code) #Teachers #make student repo by student id def addStudent(stid, teacher): os.mkdir(stid) os.chdir(os.getcwd() + "/" + stid) process = subprocess.Popen(['git', 'init'], stdout=subprocess.PIPE,stderr=subprocess.PIPE) process.communicate() process = subprocess.Popen(['git', 'add', '.'], stdout=subprocess.PIPE,stderr=subprocess.PIPE) process.communicate() process = subprocess.Popen(['git', 'commit', '-m', "First Commit"], stdout=subprocess.PIPE,stderr=subprocess.PIPE) process.communicate() def addStudents(filename): print(filename) def addAsignment(name): print(name) def updateAssignment(name): print(name) def comment(filename, text): print(text) #initStudent("2022rkhondak") ion_user = "2022rkhondak" headers = {'Content-type': 'application/json'} data = {'first_name': 'Jeff', 'git': 'https://github.com/', 'grade': 10, 'ion_user': '2022jlol1', 'last_name': 'lol.', 'student_id': 11111 } data = json.dumps(data) URL = "http://127.0.0.1:8000/students/" + ion_user + "/" r = requests.put(url = URL, data= data, headers=headers ,auth=('raffukhondaker','hackgroup1')) pprint.pprint(r.json())