from __future__ import print_function
from dis import dis
from email.charset import add_charset
from inspect import isdatadescriptor
import os.path
from tkinter import ACTIVE
from turtle import st
from autenticação import Autenticacao
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
import time
lista_ids_curso = []
def main():
serviceclass = Autenticacao().serviceclass
servicework = Autenticacao().servicework
servicesheets = Autenticacao().servicesheets
page_token = None
while True:
response = serviceclass.courses().list(courseStates='ACTIVE', pageSize=0, pageToken=page_token).execute()
page_token = response.get('nextPageToken', None)
dic_cursos = response['courses']
for dados_cursos in dic_cursos:
lista_ids_curso.append(dados_cursos['id'])
if not page_token:
break
contador = 2
for ids_cursos in lista_ids_curso:
pegar_materiais = serviceclass.courses().courseWorkMaterials().list(courseId=ids_cursos).execute()
try:
dados_materiais = pegar_materiais['courseWorkMaterial']
for dic_courseWorkMaterial in dados_materiais:
curso_id = dic_courseWorkMaterial['courseId']
id_material = dic_courseWorkMaterial['id']
status = dic_courseWorkMaterial['state']
data_criacao = dic_courseWorkMaterial['creationTime']
titulo = dic_courseWorkMaterial['title']
descricao = dic_courseWorkMaterial['description']
horas_aula = descricao[:3]
## Pegar taxonomias ##
try:
primeiro_colchete =(descricao.index('('))
teste_col = primeiro_colchete+1
segundo_colchete = (descricao.index(')'))
taxonomia = descricao[teste_col:segundo_colchete]
except ValueError:
pass
id_topico = dic_courseWorkMaterial['topicId']
id_professor = dic_courseWorkMaterial['creatorUserId']
## Pegar nome professor ##
pegar_professores = servicework.users().get(userKey=id_professor).execute()
dic_name = pegar_professores['name']
nome_professor = dic_name['fullName']
email_professor = pegar_professores['primaryEmail']
## Pegar nome tópicos ##
pegar_topicos = serviceclass.courses().topics().get(courseId=curso_id, id=id_topico).execute()
nome_topico = pegar_topicos['name']
##### sheets #####
print(contador)
ID_PLANILHA = 'ID CODIGO'
teste1 = str(contador)
range = 'materiais_teste!A' + teste1
body = [[curso_id, id_material, status, data_criacao, titulo, descricao, horas_aula, taxonomia, id_topico, id_professor, nome_professor, email_professor, nome_topico]]
servicesheets.spreadsheets().values().update(spreadsheetId=ID_PLANILHA, range=range, valueInputOption='USER_ENTERED', body={'values': body}).execute()
contador += 1
time.sleep(0.3)
except KeyError:
pass
main()