1 changed files with 0 additions and 75 deletions
@ -1,75 +0,0 @@ |
|||
import requests |
|||
from bs4 import BeautifulSoup |
|||
|
|||
class BrowserRequests(object): |
|||
def __init__(self): |
|||
self.session = None |
|||
self.steam_id = None |
|||
self.session_id = None |
|||
|
|||
def get_avatar_url(self, size=2): |
|||
"""Get URL to avatar picture |
|||
|
|||
:param size: possible values are ``0``, ``1``, or ``2`` corresponding to small, medium, large |
|||
:type size: :class:`int` |
|||
:return: url to avatar |
|||
:rtype: :class:`str` |
|||
:raises HTTPError: any problem with http request, timeouts, 5xx, 4xx etc |
|||
""" |
|||
self.url = "https://steamcommunity.com/profiles/%s/edit/avatar" |
|||
try: |
|||
self.resp = self.session.get(self.url % self.steam_id, |
|||
timeout=15, |
|||
) |
|||
self.req_bs = BeautifulSoup(self.resp.text) |
|||
self.avatar_url = str(self.req_bs.find('div', {'class':'playerAvatar'}).find('img')['src'].split('.jpg')[0]) |
|||
sizes = { # размеры картинок |
|||
0: '', |
|||
1: '_medium', |
|||
2: '_full', |
|||
} |
|||
except requests.exceptions.RequestException as e: |
|||
raise HTTPError(str(e)) |
|||
|
|||
return self.avatar_url+sizes[size]+'.jpg' |
|||
|
|||
def set_avatar(self, avatar): |
|||
"""Set image to avatar picture |
|||
|
|||
:param avatar: bytes image |
|||
:type avatar: :class:`bytes` |
|||
:return: json response |
|||
:rtype: :class:`dict` |
|||
:raises HTTPError: any problem with http request, timeouts, 5xx, 4xx etc |
|||
:raises AvatarRequiredNoSend: any problem with the format of the file being sent |
|||
""" |
|||
self.url = "https://steamcommunity.com/actions/FileUploader/" |
|||
try: |
|||
self.resp = self.session.post(self.url, |
|||
timeout=15, |
|||
data={ |
|||
'type': 'player_avatar_image', |
|||
'sId': self.steam_id, |
|||
'sessionid': self.session_id, |
|||
'doSub': 1, |
|||
'json': 1 |
|||
}, |
|||
files={'avatar':avatar} |
|||
).json() |
|||
except requests.exceptions.RequestException as e: |
|||
raise HTTPError(str(e)) |
|||
if self.resp['success'] != True: |
|||
raise AvatarRequiredNoSend |
|||
return self.resp |
|||
|
|||
class WebAuthException(Exception): |
|||
pass |
|||
|
|||
class HTTPError(WebAuthException): |
|||
pass |
|||
|
|||
class AvatarRequired(Exception): |
|||
pass |
|||
|
|||
class AvatarRequiredNoSend(AvatarRequired): |
|||
pass |
Loading…
Reference in new issue