The main goal of v1.4.7 is to patch some minor bugs and to pre-emptively correct issues related to upstream dependency
.espn_stat_map()to add threshold-based scoring and fix a missing defensive scoring setting
ff_scoringhistory.espn_conn()to add threshold calcs. (thank you, @scottfrechette!)
espn_potentialpoints()to move regular flex ahead of superflex
ff_scoring()for MFL gets some tweaks to support changes to tidyr (thanks, @DavisVaughan!)
The main goal of v1.4.6 is to patch some minor bugs, introduce a unified dependency on nflreadr, and add some support for kicker scoring.
ff_league()for MFL now returns league type (“dynasty”, “keeper”, “redraft”) if the field is set.
ff_league()for MFL now returns draft type (e.g. “email draft”, “live auction”) if the field is set.
ff_league()for MFL now returns draft player pool (e.g. “Rookie”, “Veteran”, “Both”) if the field is set. (These three changes fix #311, thanks @maat7043!)
ff_schedule()for ESPN now credits a bye team with a win instead of causing an error.
espn_getendpoint()no longer returns an error for seasons prior to 2018. (Thanks, @JoeSydlowski!)
nflfastr_roster()now use the nflreadr package functions back-end
ff_starters()for ESPN now also tries to return a projected score for the week - thank you, @scottfrechette! Resolves #323.
ff_schedule()for Sleeper no longer broken - resolves #322.
ff_schedule()for MFL now returns NA as the result for unplayed games and becomes consistent with other platforms.
ff_scoringhistory()for MFL now parses decimal ranges correctly
ff_scoringhistory()into memoisable pieces (
The main goal of v1.4.5 is to comply with CRAN somehow testing our examples.
The main goal of v1.4.4 is to patch minor bugs and to add some minor extensions such as an HTML cleaning function. v1.4.4 is also served from a different github organization and website domain.
mfl_getendpoint()and similar get_endpoint functions have an improved print method that tells you whether the request was successful.
ff_draft(). Fixes #297, thanks for the report @jpiburn!
ff_transactions()now correctly handles leagues using waiver priority, fixes #299 - thanks for the report @BarkovMVP!
ff_league()for Sleeper now identifies best ball leagues, fixes #300
ff_scoring()for MFL now has a
points_typecolumn that is either “each” or “once” - this helps delineate fantasy points awarded for meeting thresholds/bonuses from points awarded per-stat, fixes #301
ff_scoringhistory()for MFL applies the new
points_typecolumn to calculate scoring history. This should result in more sensible results for leagues with bonus scoring! Fixes #301.
dp_clean_html()to clean html from names (cough MFL cough)
ff_starter_positions()now handles a “range” inside of the total_starters column for MFL, resolves #304
The main goal of v1.4.3 is to patch some minor bugs.
ff_league()now has a column that returns the platform’s season - this is most useful when running ff_league in batch. Thank you to @joeflan for the contribution! (Fixes #287)
ff_schedule()for Sleeper now should extend into playoff weeks. (Fixes #289)
ff_draft()for Sleeper now has an auction_amount column if it is an auction draft. (Fixes #291)
dp_cleannames()now can flip names originally presented in LastName, FirstName order into First Last, and also has a custom name database to convert common alternate names to a unified one.
dp_name_mappingare namespaced within the package, so that they can be used internally and externally a little more robustly.
The main goal of v1.4.2 is to patch some minor bugs.
espn_rostersnow has a
weekargument to return a specific week of data. (Fixes #276, thanks @scottfrechette!)
ff_scoringhistorynow tries to return a platform-specific player ID, where available. (Fixes #275)
sleeper_players()- gsis_id gets
str_squishapplied to it to resolve some stowaway whitespaces.
any_ofhandling for columns to handle column name changes.
sleeper_transactionsnow handles offseason transactions correctly
The main goal of v1.4.1 is to patch some issues raised by CRAN checks and also correct some bugs in the new experimental
ff_starter_positions functions released in v1.4.0.
nflfastr_stat_mappingis a dataframe that maps nflfastr columns to fantasy scoring rules, and is now exported for end-user usage. It is primarily used inside of
release_questionsto help remind me to maintain test infrastructure
mfl_starter_positionsnow correctly calculates offensive starters (first via “iop_starters” if defined and then otherwise by subtracting idp starters) as well as kdst_starters (Resolves #264)
.ffscrapr_envrelocated from being a child of the base environment to being a child of the empty environment (Resolves #269)
ff_scoringhistoryrefactored and adds better support for MFL’s fumbles and firstdowns. (Resolves #265)
The main goal of v1.4.0 is to add preliminary support for connecting ffscrapr to nflfastR weekly data, and to clean up bugs from v1.3.0. Huge thanks goes to Joe Sydlowski for his contributions on scoring history (and everything else DynastyProcess!)
nflfastr_weekly()imports weekly offensive statistics from nflfastR’s data repository.
nflfastr_rosters()imports team rosters from nflfastR’s roster repository.
ff_scoringhistory()connects your league’s scoring settings to the nflfastr data (c/o the functions above), and allows you to reconstruct historical scoring for your league!
ff_starter_positions()describes the starter rules for each player/position, including min and max starters at each position accounting for flex spots. This should be useful for calculating things like value over replacement!
ff_scoringfor ESPN loses the “override_pos” which only had a value of 16 for D/ST specific rules
ff_scoringrules for ESPN and Sleeper have been expanded from one line per rule to one line per position per rule
mfl_playerscoresto use season + league specific players call where possible (#239)
flea_rosterstest to 200, which fixes an API check issue (#242)
sleeper_transactionsnow correctly handles multiple dropped players in one transaction. (#246).
mfl_transactions- adds numeric string parsing to fix bug in auction bid amount (#)
mfl_draftnow calculates age as of timestamp and also adds an overall column. (#259, #260)
The main goal of ffscrapr 1.3.0 is to add support for the ESPN platform. It also includes several bug fixes, code quality improvements, and a major refactor of tests to reduce overall package size.
A huge thank-you goes to Tony ElHabr for his contributions to the package for the ESPN methods.
custom_playersarguments are deprecated for MFL - it will now return them by default.
ESPN is a tricky and undocumented API. Private leagues are accessible if you use the SWID/ESPN_S2 authentication arguments, which are a lot like API keys - see the ESPN authentication vignette.
ff_draftpicks()- this does not apply to ESPN primarily because it does not support draft pick trades.
ff_userleagues()- ESPN does not support looking up user’s leagues, even when authenticated
httr::RETRYinstead - this adds some robustness for server-side issues. As suggested by Maelle Salmon’s blog post on not reinventing the wheel.
ff_playerscores()function so that it correctly pulls older names. (Resolves #196)
ff_starters()function - bad default arg, bad players call. (Fixes #202)
ff_rosters()by adding a week parameter (Fixes #215)
ff_transactions()bid_amount into a numeric (Fixes #210)
Minor patches to dp_import functions to address issues discovered by CRAN checks.
Also adds minor helper function,
dp_cleannames(), which is a utility function for cleaning player names that removes common suffixes, periods, and apostrophes.
Messed up the export here, whoops. Fixing for next release.
The main goal of ffscrapr 1.2.0 is to add a full set of methods for Fleaflicker. This release also adds improved caching options, including writing to your filesystem for persistent caching (see the vignette!), and one hotfix for sleeper_getendpoint.
sleeper_getendpoint()now behaves more like the other getendpoint functions - first argument is the endpoint and any further args are passed as query parameters.
All functions now have Fleaflicker methods! Here are notes about what isn’t the same:
fleaflicker_players()requires a connection/leagueID by default - acts a little oddly on game days as of right now.
ff_playerscores()- Fleaflicker’s API returns season level data easily, week-level is not readily available yet without some workarounds. Everything else seems to be okay.
Here is a list of new functions available at the top level (ie for all platforms)
ff_userleagues()returns a list of user leagues. This is deployed slightly differently for MFL and Sleeper - MFL requires authentication to access user’s leagues, while Sleeper doesn’t have authentication so you can look up any user you like.
ff_starters()returns a list of players started/not-started each week. MFL will return the actual score of each player each week and calculate whether they were optimal, while Sleeper just returns the player themselves.
Almost all functions now have Sleeper methods - implemented in what hopes to be relatively familiar manner to MFL. Outlining the specifics of what isn’t the same:
sleeper_userleagues()is a wrapper on
ff_userleagues()that makes it easier to look up user leagues without first creating a connection object.
ff_playerscores()is not available for Sleeper because Sleeper removed the player stats endpoint - it will generate a warning (rather than an error). Thinking about creating some functions to calculate scoring based on nflfastr.
sleeper_getendpoint()is a little more simple than MFL’s equivalent - just pass a string url (minus api.sleeper.app/v1) or pass in chunks of code, the function will automatically paste them together with “/”.
ff_userleagues()- Sleeper league IDs are more annoying than MFL to handle, so the more intuitive way is to look up the user’s league_ids by username first. MFL does have a parallel feature even if used for different purposes.
This is the first (major) version of ffscrapr and it is intended to build out the full set of functions for the first API platform: MFL.
Future versions will add more platforms via methods mapped to the same functions.
mfl_connect) to establish connection parameters and ratelimiting
mfl_getendpointas a low-level function for making GET requests from MFL
ff_draftgets draft results
ff_draftpicksgets current and future draft picks that have not yet been selected
ff_franchisesgets franchise-level identifiers and divisions
ff_leaguegets league-level summaries of rules, players, and franchises
ff_playerscoresgets playerweek-level scores
ff_rostersgets franchise-level rosters complete with naming
ff_schedulegets weekly fantasy schedules
ff_scoringgets scoring rules
ff_standingsgets league-level season summaries
ff_transactionsgets a list of all transactions and cleans them into a data frame.