61 lines
1.5 KiB
Python

import os
import requests
import logging
import json
def buildSubparser(subparser):
subparser.add_argument('--url', default='https://cloud.tsc-vfl.de')
def run(args):
l = logging.getLogger(__name__)
l.debug('Login to %s', args.url)
url = f'{args.url}/index.php/login/v2'
l.debug('Using login url %s', url)
startRequest = requests.post(url)
startRequest.raise_for_status()
data = startRequest.json()
print('You need to login in the browser now to validate the login token.')
print('Please visit the following url:')
print(data['login'])
print()
print('After you have logged in, press enter to continue.')
input()
l.debug('Logging in')
intermediateToken = data['poll']['token']
pollUrl = data['poll']['endpoint']
loginRequest = requests.post(pollUrl, data={'token': intermediateToken})
loginRequest.raise_for_status()
data = loginRequest.json()
loginName = data['loginName']
appPassword = data['appPassword']
data = {
'loginName': loginName,
'appPassword': appPassword,
'base': data['server']
}
with open('login.json', 'w') as f:
json.dump(data, f)
l.info('Login successful')
class LoginData:
def __init__(self, loginName, appPassword):
self.loginName = loginName
self.appPassword = appPassword
def loadLoginData():
with open('login.json', 'r') as f:
data = json.load(f)
return LoginData(data['loginName'], data['appPassword'])