Skip to content
Snippets Groups Projects
Commit db1ac70d authored by williamforbrigd's avatar williamforbrigd
Browse files

login if user has not done it yet, cannot login and rund command at the simultaneously

parent 82d0872a
No related branches found
No related tags found
No related merge requests found
......@@ -3,8 +3,9 @@
__app_name__ = "bbcli"
__version__ = "0.1.0"
from .endpoints import *
from .Node import Node
# from .endpoints import *
from .Node import *
from .login import *
(
SUCCESS,
......
"""RP To-Do entry point script."""
# rptodo/__main__.py
import os
from dotenv import load_dotenv
from bbcli import cli, __app_name__, login
from datetime import datetime
load_dotenv()
cookies = {'BbRouter' : os.getenv("BB_ROUTER")}
def check_valid_date() -> bool:
tmp = cookies['BbRouter']
start = int(tmp.find('expires')) + len('expires') + 1
end = int(tmp.find(','))
timestmp = int(tmp[start : end])
print(timestmp)
expires = datetime.fromtimestamp(timestmp)
now = datetime.now()
if expires > now:
return True
else:
return False
from bbcli import cli, __app_name__
def main():
if check_valid_date() == False:
login()
cli.app(prog_name=__app_name__)
if __name__ == "__main__":
......
......@@ -6,11 +6,32 @@ from typing import Optional
import typer
from bbcli import __app_name__, __version__, endpoints
import os
from dotenv import load_dotenv
from datetime import datetime
from bbcli import login
app = typer.Typer()
app.add_typer(endpoints.app, name='endpoints', help='Call the endpoints')
load_dotenv()
cookies = {'BbRouter' : os.getenv("BB_ROUTER")}
headers = {'X-Blackboard-XSRF': os.getenv('XSRF')}
def check_valid_date() -> bool:
tmp = cookies['BbRouter']
start = int(tmp.find('expires')) + len('expires') + 1
end = int(tmp.find(','))
timestmp = int(tmp[start : end])
print(timestmp)
expires = datetime.fromtimestamp(timestmp)
now = datetime.now()
if expires >= now:
return True
else:
return False
def _version_callback(value: bool) -> None:
if value:
typer.echo(f"{__app_name__} v{__version__}")
......@@ -27,4 +48,9 @@ def main(
is_eager=True,
)
) -> None:
if check_valid_date() == False:
login()
# load_dotenv()
# cookies['BbRouter'] = os.getenv("BB_ROUTER")
# headers['X-Blackboard-XSRF'] = os.getenv("XSRF")
return
import requests
#from requests.auth import HTTPBasicAuth
import json
import pprint
# import json
# import pprint
import typer
#from string_builder import StringBuilder
import click
from typing import Optional
from dotenv import load_dotenv
from bbcli.Node import Node
import os
import bbcli.cli as cli
app = typer.Typer()
load_dotenv()
cookies = {'BbRouter' : os.getenv("BB_ROUTER")}
headers = {'X-Blackboard-XSRF': os.getenv('XSRF')}
base_url = 'https://ntnu.blackboard.com/learn/api/public/v1/'
......@@ -32,11 +21,10 @@ def get_user(user_name: str = typer.Argument('', help='Name of the user'))-> Non
url = f'{base_url}users?userName={user_name}'
x = requests.get(
url,
cookies=cookies
cookies=cli.cookies
)
data = x.json()['results'][0]
# typer.echo(data)
fn = data['name']['given']
sn = data['name']['family']
id = data['studentId']
......@@ -55,21 +43,13 @@ def get_course(course_id: str = typer.Argument('', help='Id of the course')):
url = f'{base_url}courses?courseId={course_id}'
x = requests.get(
url,
cookies=cookies)
cookies=cli.cookies)
data = x.json()['results'][0]
name = data['name']
course_url = data['externalAccessUrl']
typer.echo(name)
typer.echo(f'URL for the course: {course_url}')
# def open_folder(data, map):
# key = 'hasChildren'
# acc = []
# if key in data and data[key] == True:
# acc.append
@app.command(name='get-course-contents')
def get_course_contents(course_id: str = '_27251_1'):
'''
......@@ -77,7 +57,7 @@ def get_course_contents(course_id: str = '_27251_1'):
'''
url = f'{base_url}courses/{course_id}/contents'
typer.echo(url)
x = requests.get(url, cookies=cookies)
x = requests.get(url, cookies=cli.cookies)
data = x.json()['results']
typer.echo('Mapper:')
map = dict()
......@@ -102,7 +82,7 @@ def get_children(worklist, url, acc, count: int = 0):
id = data['id']
old = f'{url}/{id}/children'
# typer.echo(url)
response = requests.get(old, cookies = cookies)
response = requests.get(old, cookies = cli.cookies)
if response.status_code == 403 or response.status_code == 404:
typer.echo(response.json()['status'])
typer.echo(response.json()['message'])
......@@ -125,7 +105,7 @@ def get_assignments(course_id: str = typer.Argument('_27251_1', help='The course
Get the assignments
'''
url = f'{base_url}courses/{course_id}/contents'
x = requests.get(url, cookies=cookies)
x = requests.get(url, cookies=cli.cookies)
data = x.json()['results']
root = data[8]
# root = Node(data[8])
......
from urllib import request
import os
from dotenv import load_dotenv
from RequestData import RequestData
# from RequestData import RequestData
from .RequestData import RequestData
import requests
import json
from bs4 import BeautifulSoup
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment