Skip to content
This repository was archived by the owner on Mar 11, 2022. It is now read-only.

Commit 14f6d07

Browse files
SSL Issue
1 parent d64943f commit 14f6d07

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

Help_functions/login.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import csv
2+
import json
23
from os import path
4+
35
import requests
4-
import json
5-
import time
66
from lxml.html import fromstring
77

8-
dir = path.dirname(__file__)
8+
directory = path.dirname(__file__)
9+
910

1011
def write_json(data, filename):
1112
with open(filename, 'w') as f:
@@ -14,12 +15,12 @@ def write_json(data, filename):
1415

1516
def define_login_details(nick="", password="", server=""):
1617
"""Saving nicks, passwords for each server from the user, for later use."""
17-
file_name = path.join(dir, 'login_details.csv')
18+
file_name = path.join(directory, 'login_details.csv')
1819
if nick and password and server:
1920
file_exist = path.isfile(file_name)
2021
with open(file_name, 'a', newline='') as csvFile:
2122
writer = csv.writer(csvFile)
22-
if not file_exist:
23+
if not file_exist:
2324
writer.writerow(["Server", "Nick", "Password"])
2425
writer.writerow([server, nick, password])
2526
if not path.isfile(file_name) or (server and server != "all"):
@@ -36,7 +37,8 @@ def define_login_details(nick="", password="", server=""):
3637
if not server:
3738
continue
3839
if nick and password:
39-
print(f"If your nick/password for {server} is the same as of the previous server, you can leave that field blank")
40+
print(
41+
f"If your nick/password for {server} is the same as of the previous server, you can leave that field blank")
4042
new_nick = input(f"Your nick at {server} (pay attention to uppercase and lowercase letters): ")
4143
new_password = input(f"Your password at {server} (pay attention to uppercase and lowercase letters): ")
4244
if new_nick:
@@ -45,7 +47,7 @@ def define_login_details(nick="", password="", server=""):
4547
password = new_password
4648
writer.writerow([server, nick, password])
4749

48-
cookies_file_name = path.join(dir, 'cookies.txt')
50+
cookies_file_name = path.join(directory, 'cookies.txt')
4951
if not path.isfile(cookies_file_name):
5052
write_json({}, cookies_file_name)
5153
with open(cookies_file_name, 'r') as file:
@@ -59,9 +61,10 @@ def define_login_details(nick="", password="", server=""):
5961
data.update({"user_agent": user_agent})
6062
write_json(data, cookies_file_name)
6163

64+
6265
def get_nick_and_pw(server):
6366
nick, password = "", ""
64-
file_name = path.join(dir, 'login_details.csv')
67+
file_name = path.join(directory, 'login_details.csv')
6568
all_nicks = {}
6669
while 1:
6770
if path.isfile(file_name):
@@ -87,6 +90,9 @@ def get_nick_and_pw(server):
8790
define_login_details(server=server)
8891

8992

93+
permanent_servers = 'primera', 'secura', 'suna', 'alpha'
94+
95+
9096
def login(server):
9197
"""
9298
Saving cookies and user agent string in a local file, and replace the cookies if they are too old.
@@ -96,14 +102,16 @@ def login(server):
96102
"""
97103
define_login_details()
98104
URL = f"https://{server}.e-sim.org/"
99-
cookies_file_name = path.join(dir, 'cookies.txt')
105+
cookies_file_name = path.join(directory, 'cookies.txt')
100106
with open(cookies_file_name, 'r') as file:
101107
data = json.load(file)
102108
user_agent = data["user_agent"]
103109

104110
headers = {"User-Agent": user_agent, "Referer": f"{URL}index.html"}
105-
session = requests.session()
111+
session = requests.session()
106112
session.headers.update(headers)
113+
if server.lower() not in permanent_servers:
114+
session.verify = False
107115
online_check = False
108116
if server in data:
109117
old_cookies = requests.utils.cookiejar_from_dict(data[server])
@@ -137,14 +145,15 @@ def double_click(server, queue="", session=""):
137145
payload2 = {'task': "TRAIN", "action": "put", "submit": "Add plan"}
138146
session.post(URL + "taskQueue.html", data=payload1)
139147
session.post(URL + "taskQueue.html", data=payload2)
140-
148+
141149
work_page = session.get(URL + "work.html")
142150
tree = fromstring(work_page.content)
143151
check = tree.xpath('//*[@id="taskButtonWork"]//@href')
144152
if check:
145153
try:
146-
region = tree.xpath('//div[1]//div[2]//div[5]//div[1]//div//div[1]//div//div[4]//a/@href')[0].split("=")[1]
147-
payload = {'countryId': int(int(region) / 6) + (int(region) % 6 > 0), 'regionId': region, 'ticketQuality': 5}
154+
region = tree.xpath('//div[1]//div[2]//div[5]//div[1]//div//div[1]//div//div[4]//a/@href')[0].split("=")[1]
155+
payload = {'countryId': int(int(region) / 6) + (int(region) % 6 > 0), 'regionId': region,
156+
'ticketQuality': 5}
148157
except:
149158
print("I couldn't find in which region your work is. Maybe you don't have a job")
150159
session.post(URL + "travel.html", data=payload)
@@ -161,6 +170,7 @@ def double_click(server, queue="", session=""):
161170
print("Already worked")
162171
return session
163172

173+
164174
if __name__ == "__main__":
165175
print(define_login_details.__doc__)
166176
define_login_details()
@@ -172,7 +182,7 @@ def double_click(server, queue="", session=""):
172182
for server in servers:
173183
double_click(server.strip())
174184
else:
175-
with open(path.join(dir, 'login_details.csv'), 'r') as file:
185+
with open(path.join(directory, 'login_details.csv'), 'r') as file:
176186
reader = csv.reader(file)
177187
for row in reader:
178188
if row[0] != "Server":

0 commit comments

Comments
 (0)