implement lineup send to gamechanger
This commit is contained in:
@@ -1,15 +1,70 @@
|
||||
import requests
|
||||
import re
|
||||
import json
|
||||
import re
|
||||
|
||||
|
||||
import requests
|
||||
|
||||
url = "https://gc.com/t/{season_id}/{team_id}/{page}"
|
||||
|
||||
|
||||
def get_authenticated_session(request):
|
||||
gc_username = request.user.gamechanger_account.user
|
||||
gc_password = request.user.gamechanger_account.password
|
||||
s = requests.Session()
|
||||
s.headers.update({"referer": "https://gc.com/do-login"})
|
||||
s.get("https://gc.com/login")
|
||||
r2 = s.post(
|
||||
"https://gc.com/do-login",
|
||||
cookies=s.cookies,
|
||||
data={
|
||||
"csrfmiddlewaretoken": s.cookies.get("csrftoken"),
|
||||
"email": gc_username,
|
||||
"password": gc_password,
|
||||
},
|
||||
)
|
||||
if r2.status_code == 200:
|
||||
return s
|
||||
else:
|
||||
raise requests.exceptions.RequestException(
|
||||
f"Returned {r2.status_code} for {r2.reason}"
|
||||
)
|
||||
|
||||
|
||||
def submit_lineup(request, lineup):
|
||||
authenticated_session = get_authenticated_session(request)
|
||||
season_id = request.user.gamechanger_preferences.season_id
|
||||
team_id = request.user.gamechanger_preferences.team_id
|
||||
authenticated_session.headers.update(
|
||||
{
|
||||
"referer": url.format(
|
||||
season_id=season_id, team_id=team_id, page="lineup_edit"
|
||||
),
|
||||
"x-csrftoken": authenticated_session.cookies.get("csrftoken"),
|
||||
"Content-Type": "application/x-www-form-urlencoded;",
|
||||
}
|
||||
)
|
||||
r = authenticated_session.post(
|
||||
cookies=authenticated_session.cookies,
|
||||
url="https://gc.com/do-save-lineup/{team_id}".format(
|
||||
team_id=team_id.split("-").pop()
|
||||
),
|
||||
json={"lineup": lineup},
|
||||
)
|
||||
if r.status_code == 200:
|
||||
return r
|
||||
else:
|
||||
raise requests.exceptions.RequestException(
|
||||
f"Returned {r.status_code} for {r.reason}"
|
||||
)
|
||||
|
||||
|
||||
def scrape_page(season_id, team_id, page):
|
||||
r=requests.get(url.format(season_id=season_id, team_id=team_id, page=page))
|
||||
j=initialize_page_json = re.search(r'page.initialize\(\$.parseJSON\("(.*?)"\)', r.content.decode('unicode_escape'))
|
||||
m=j.group(1)
|
||||
r = requests.get(url.format(season_id=season_id, team_id=team_id, page=page))
|
||||
initialize_page_json = re.search(
|
||||
r'page.initialize\(\$.parseJSON\("(.*?)"\)', r.content.decode("unicode_escape")
|
||||
)
|
||||
m = initialize_page_json.group(1)
|
||||
return json.loads(m)
|
||||
|
||||
|
||||
# d = scrape_page(season_id, team_id, page)
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user