UNPKG

fut

Version:
329 lines (287 loc) 8.3 kB
# fut - FIFA 17 - unofficial <p align="center"> <a href="https://www.npmjs.com/package/fut"><img src="https://img.shields.io/npm/dm/fut.svg" alt="npm downloads"></a> <a href="https://www.npmjs.com/package/fut"><img src="https://img.shields.io/npm/v/fut.svg" alt="npm version"></a> <a href="https://standardjs.com"><img src="https://img.shields.io/badge/code%20style-standard-brightgreen.svg" alt="js-standard-style"></a> </p> ## Usage ### Quick start ```javascript 'use strict' const readline = require('readline') const Fut = require('fut') const Promise = require('bluebird') const co = require('co') const storage = require('node-persist') storage.initSync() var rl = readline.createInterface({ input: process.stdin, output: process.stdout }) const email = process.env.EMAIL const password = process.env.PASSWORD const platform = process.env.PLATFORM const secret = process.env.SECRET var fut = new Fut({ email, password, secret, platform loginType: 'web' // this is optional and happens rarely captchaHandler: (captcha, resolve) => { co(function * () { yield fs.writeFileAsync('captcha.jpg', captcha) // Do something with the captcha file resolve(captchaRes.text) }) }, tfAuthHandler: (send) => { return new Promise((resolve, reject) => { rl.question('Enter your two factor code:', function (code) { return resolve(code) }) }) }, // yo can return a simple sync function to save/loadVariable saveVariable: (key, val) => { console.log('setting item', key) storage.setItem(key, val) }, // or a promise if you do something async loadVariable: co.wrap(function * (key) { var item = storage.getItem(key) return item }) }) co(function * () { yield fut.login() let resp = yield fut.getCredits() console.log(resp) }).catch((e) => console.log(e.stack)) ``` ## Note: All method returns a promise! ##### Options See source: https://github.com/futjs/fut-api/blob/master/src/index.js#L20 ## Login See quick start, better docs coming soon... * platform: "ps3","ps4","pc","x360","xone" ## Credits ```javascript apiClient.getCredits() ``` * response: Object * credits: number * bidTokens: ?? * currencies: [] * name: string * funds: number * finalFunds: number * unopenedPacks: Object * preOrderPacks: number * recoveredPacks: number ## Pilesize ```javascript apiClient.getPilesize() ``` * response: Object * entries: [] * value: number * key: number -> 2 == Tradepile, 4 == Watchlist ## Tradepile ```javascript apiClient.getTradepile() ``` * response: Object * credits: number * currencies: [] * name: string - values "COINS","POINTS","DRAFT_TOKEN" * funds: number * finalFunds: number * duplicateItemIdList: ?? * errorState: ?? * auctionInfo: [] * bidState: string * buyNowPrice: number * confidenceValue: number * currentBid: number * expires: number * offers: number * sellerEstablished: number * sellerId: number * sellerName: string * startingBid: number * tradeId: number * tradeOwner: boolean * tradeState: string * watched: boolean * itemData: object * assetId: number * assists: number * attributeList: [] * index: number * value: number * cardsubtypeid: number * contract: number * discardValue: number * fitness: number * formation: string * id: number * injuryGames: number * injuryType: string * itemState: string * itemType: string * lastSalePrice: number * leagueId: number * lifetimeAssists: number * lifetimeStats: [] * index: number * value: number * loyaltyBonus: number * morale: number * nation: number * owners: number * pile: number * playStyle: number * preferredPosition: string * rareflag: number * rating: number * resourceId: number * statsList: [] * index: number * value: number * suspension: number * teamid: number * timestamp: number * training: number * untradeable: boolean ## Relist tradepile ```javascript apiClient.relist() ``` * response: Object * tradeIdList: [] * id: number ## Watchlist ```javascript apiClient.getWatchlist() ``` * response: -> see tradepile response ## Transfermarket ```javascript apiClient.search({type: "player", lev: "gold", maskedDefId: 183907, pos: "CB" }) ``` * filter * searchFilterBase * type: string -> player, training, development * start: number -> page * num: number -> items per page * micr: number -> min bid * macr: number -> max bid * minb: number -> min buy * maxb: number -> max buy * lev: string -> bronze, silver, gold * playerSearchFilter extends searchFilterBase * maskedDefId: number -> baseId * rare: string -> SP * zone: string -> defence, midfield, attacker * pos: string -> GK, CB, LB, RB, ... * nat: number -> nationId * leag: number -> leagueId * team: number -> teamId * playStyle: number -> playerStyleId * consumableFilter extends searchFilterBase * cat: string -> playerTraining, GKTraining, position, playStyle, managerLeagueModifier, contract, fitness, healing * positionChangeSearchFilter extends consumableFilter * pos: string -> LB-LWB (OLD-NEW) * playerStyleSearchFilter extends consumableFilter * playStyle: number -> playerStyleId * response: -> see tradepile response ## Place bid ```javascript apiClient.placeBid(tradeId, coins) ``` * tradId: number * coins: number * response: -> see tradepile response ## List item ```javascript apiClient.listItem(itemDataId, startingBid, buyNowPrice, duration) ``` * itemDataId: number -> itemData.id * startingBid: number * buyNowPrice: number * duration: number -> seconds -> valid values 3600 = 1h, 10800 = 3h, 21600 = 6h, 43200 = 12h, 86400 = 1d, 259200 = 3d * response: * id: number ## Auction status ```javascript apiClient.getStatus([tradeIds]) ``` * tradeIds: number[] -> tradeId * response: -> see tradepile response ## Add to watchlist ```javascript apiClient.addToWatchlist(tradeId) ``` * tradeId: number -> tradeId ## remove from tradepile ```javascript apiClient.removeFromTradepile(tradeId) ``` * tradeId: number -> tradeId ## remove from watchlist ```javascript apiClient.removeFromWatchlist(tradeId) ``` * tradeId: number -> tradeId ## send to tradepile ```javascript apiClient.sendToTradepile(itemDataId) ``` * itemDataId: number -> itemData.id * response: Object * itemData: [] * id: number * pile: string * success: boolean ## send to tradepile ```javascript apiClient.sendToClub(itemDataId) ``` * itemDataId: number -> itemData.id * response: Object * itemData: [] * id: number * pile: string * success: boolean ## Quick sell ```javascript apiClient.quickSell(itemDataId) ``` * itemDataId: number -> itemData.id * response: Object * items: [] * id: number * totalCredits: number ## Functions ### Validate price/coins ```javascript futapi.isPriceValid(coins) ``` returns true or false ### Calculate valid price/coins ```javascript futapi.calculateValidPrice(coins) ``` returns valid coins amount ### Calculate next lower price/coins ```javascript futapi.calculateNextLowerPrice(coins) ``` returns next lower coins after calculating valid price ### Calculate next higher price/coins ```javascript futapi.calculateNextHigherPrice(coins) ``` returns next higher coins after calculating valid price