Fix login logic

Fix login logic to only commence if there is a need to schedule.
merge-requests/1/head
Pierros Papadeas 2018-12-03 10:59:01 +02:00
parent 7ea518d3cc
commit f14bd43087
No known key found for this signature in database
GPG Key ID: 8DB97129D9982991
2 changed files with 22 additions and 18 deletions

View File

@ -1,4 +1,4 @@
ephem
satellitetle
satellitetle>=0.5.0
requests
lxml

View File

@ -52,7 +52,9 @@ class satellite:
self.data_count = data_count
def __repr__(self):
return "%s %s %d %d %d %s" % (self.id, self.transmitter, self.success_rate, self.good_count, self.data_count, self.name)
return "%s %s %d %d %d %s" % (self.id, self.transmitter, self.success_rate,
self.good_count, self.data_count, self.name)
def _log_level_string_to_int(log_level_string):
if log_level_string not in _LOG_LEVEL_STRINGS:
@ -236,7 +238,7 @@ if __name__ == "__main__":
success_rate,
good_count,
data_count))
# Find passes
passes = find_passes(satellites, observer, tmin, tmax, minimum_altitude)
@ -285,8 +287,11 @@ if __name__ == "__main__":
# Find unique objects
satids = sorted(set([satpass['id'] for satpass in passes]))
schedule_needed = False
for satpass in sorted(scheduledpasses, key=lambda satpass: satpass['tr']):
if not satpass['scheduled']:
schedule_needed = True
logging.info(
"%05d %s %s %3.0f %4.3f %s %s" %
(int(
@ -299,22 +304,21 @@ if __name__ == "__main__":
satpass['uuid'],
satpass['name'].rstrip()))
# Login
loginUrl = '{}/accounts/login/'.format(settings.NETWORK_BASE_URL) # login URL
session = requests.session()
login = session.get(loginUrl) # Get login page for CSFR token
login_html = lxml.html.fromstring(login.text)
login_hidden_inputs = login_html.xpath(
r'//form//input[@type="hidden"]') # Get CSFR token
form = {x.attrib["name"]: x.attrib["value"] for x in login_hidden_inputs}
form["login"] = username
form["password"] = password
session.post(loginUrl, data=form, headers={'referer': loginUrl}) # Login
# Login and schedule passes
if schedule and schedule_needed:
loginUrl = '{}/accounts/login/'.format(settings.NETWORK_BASE_URL) # login URL
session = requests.session()
login = session.get(loginUrl) # Get login page for CSFR token
login_html = lxml.html.fromstring(login.text)
login_hidden_inputs = login_html.xpath(
r'//form//input[@type="hidden"]') # Get CSFR token
form = {x.attrib["name"]: x.attrib["value"] for x in login_hidden_inputs}
form["login"] = username
form["password"] = password
session.post(loginUrl, data=form, headers={'referer': loginUrl}) # Login
# Schedule passes
for satpass in sorted(scheduledpasses, key=lambda satpass: satpass['tr']):
if not satpass['scheduled']:
if schedule:
for satpass in sorted(scheduledpasses, key=lambda satpass: satpass['tr']):
if not satpass['scheduled']:
schedule_observation(session,
int(satpass['id']),
satpass['uuid'],