Skip to content

Commit

Permalink
Merge branch 'master' into stable
Browse files Browse the repository at this point in the history
  • Loading branch information
oczkers committed Oct 17, 2013
2 parents 499e364 + 6ff2944 commit a38d629
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 8 deletions.
1 change: 1 addition & 0 deletions AUTHORS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ EAHashingAlgorithm
Patches and Suggestions
```````````````````````
- mvillarejo
- Mauro Marano
73 changes: 65 additions & 8 deletions fut14/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,31 @@
from .EAHashingAlgorithm import EAHashingAlgorithm


def base_id(resource_id):
def base_id(resource_id, version=False):
"""Calculates base id."""
v = 0
if resource_id > 1358954496:
resource_id -= 1342177280
v += 1
if resource_id > 67108864:
resource_id -= 50331648
v += 1
while resource_id > 16777216:
resource_id -= 16777216
v += 1

if version:
return resource_id, v
return resource_id


def card_info(resource_id):
"""Returns card info."""
# TODO: add referer to headers (futweb)
url = '{}{}.json'.format(urls['card_info'], base_id(resource_id))
return requests.get(url).json()


class Core(object):
def __init__(self, email, passwd, secret_answer):
# TODO: better headers managment ("ask" method?)
Expand All @@ -41,6 +56,14 @@ def __init__(self, email, passwd, secret_answer):
self.secret_answer_hash = EAHashingAlgorithm().EAHash(secret_answer)
self.login(self.email, self.passwd, self.secret_answer_hash)

def base_id(self, *args, **kwargs):
"""Alias for base_id."""
return base_id(*args, **kwargs)

def card_info(self, *args, **kwargs):
"""Alias for card_info."""
return card_info(*args, **kwargs)

def login(self, email, passwd, secret_answer_hash):
"""Just log in."""
# TODO: update credits (acc info)
Expand Down Expand Up @@ -211,8 +234,8 @@ def bid(self, trade_id, bid):
return False

def tradepile(self):
"""Returns trade pile."""
rc = self.r.get(urls['fut']['TradePile']).json()
"""Returns items in tradepile."""
rc = self.r.post(urls['fut']['TradePile']).json()
self.credits = rc['credits'] # update credits info

items = []
Expand Down Expand Up @@ -245,6 +268,41 @@ def tradepile(self):

return items

def watchlist(self):
"""Returns items in watchlist."""
rc = self.r.post(urls['fut']['WatchList']).json()
self.credits = rc['credits']

items = []
for i in rc['auctionInfo']:
items.append({
'tradeId': i['tradeId'],
'buyNowPrice': i['buyNowPrice'],
'tradeState': i['tradeState'],
'bidState': i['bidState'],
'startingBid': i['startingBid'],
'id': i['itemData']['id'],
'timestamp': i['itemData']['timestamp'], # auction start
'rating': i['itemData']['rating'],
'assetId': i['itemData']['assetId'],
'resourceId': i['itemData']['resourceId'],
'itemState': i['itemData']['itemState'],
'rareflag': i['itemData']['rareflag'],
'formation': i['itemData']['formation'],
'injuryType': i['itemData']['injuryType'],
'suspension': i['itemData']['suspension'],
'contract': i['itemData']['contract'],
'playStyle': i['itemData'].get('playStyle'), # used only for players
'discardValue': i['itemData']['discardValue'],
'itemType': i['itemData']['itemType'],
'owners': i['itemData']['owners'],
'offers': i['offers'],
'currentBid': i['currentBid'],
'expires': i['expires'], # seconds left
})

return items

# def relistAll(self, item_id):
# """Relist all items in trade pile."""
# print self.r.get(urls['fut']['Item']+'/%s' % item_id).content
Expand Down Expand Up @@ -279,14 +337,13 @@ def tradepile_delete(self, trade_id):

return True

def send_to_tradepile(self, trade_id):
def send_to_tradepile(self, trade_id, item_id):
"""Sends to tradepile."""
# TODO: accept multiple trade_ids (just extend list below (+ extend params?))
data = {'auctionInfo': [{'id': trade_id}]}
params = {'tradeId': trade_id}
data = {"itemData": [{"tradeId": trade_id, "pile": "trade", "id": str(item_id)}]}

self.r.headers['X-HTTP-Method-Override'] = 'PUT' # prepare headers
self.r.post(urls['fut']['WatchList'], params=params, data=json.dumps(data)) # returns nothing
rc = self.r.post(urls['fut']['Item'], data=json.dumps(data)).json()
self.r.headers['X-HTTP-Method-Override'] = 'GET' # restore headers default

return True
return rc['itemData'][0]['success']
1 change: 1 addition & 0 deletions fut14/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,5 @@ def updateUrls(urls):

'shards': 'http://www.easports.com/iframe/fut/p/ut/shards?_=%s' % time(),
'acc_info': 'http://www.easports.com/iframe/fut/p/ut/game/fifa14/user/accountinfo?_=%s' % time(),
'card_info': 'http://cdn.content.easports.com/fifa/fltOnlineAssets/C74DDF38-0B11-49b0-B199-2E2A11D1CC13/2014/fut/items/web/',
})

0 comments on commit a38d629

Please sign in to comment.