Skip to content

Releases: d3an/finviz

v1.2.3

22 Feb 02:38
c781b63
Compare
Choose a tag to compare
  • Handle Cloudflare blocker bug by randomizing user agent upon request failure (untested).
  • Refactor data export in CLI. Automatically detect output file type as csv or json (defaults to csv otherwise).
  • Simplify News views from by_source to source and by_time to time.
  • Fix News article timestamps to follow RFC3339 rather than cells with date xor time values.
  • Restrict view args in News CLI to source xor time via enum method.
  • Upgrade Go version to 1.17.7.

v1.2.2

22 Jan 02:04
46a5798
Compare
Choose a tag to compare
  • Handle 'No economic releases' case in calendar (#84)

v1.2.1

14 Jan 03:27
4fe3476
Compare
Choose a tag to compare
  • Added support for Earnings (from yesterday through to week's end)
  • Represents the "Earnings releases" found on the home page

v1.2.0

14 Jan 02:26
770ad3a
Compare
Choose a tag to compare

v1.1.0

14 Jan 00:02
c0a4bfb
Compare
Choose a tag to compare

Restructured GetQuotes Method

Change to Function Signature

GetQuotes now returns (Results, error). The error here should either be nil or fmt.Errorf("error failed to generate rows from quote KVP map"). If the latter occurs, feel free to raise an issue.

Results is constructed as Results{Data: *dataframe.DataFrame, Warnings: []Warning, Errors: []Error}. As follows:

  • Data is the previously returned DataFrame
  • Warnings is a slice of new Warning structs. An example Warning is given by Warning{Ticker: "INVALID", Error: fmt.Errorf("resource not found")}. Right now, warnings only indicate that Finviz does not support the given ticker.
  • Errors is a slice of new Error structs. An example Error is given by Error{Ticker: "SNAP", Error: fmt.Errorf(...)}. Errors could occur if Finviz has placed you on a block list (usually done via Cloudflare) or could be an internal library error.

If a Warning or Error exists for a Ticker, then the returned DataFrame will not have a row for that Ticker. The three sets, i.e., Data, Warnings, and Errors, are mutually exclusive.

Other Changes

  • Added Exchange column to the returned DataFrame.
  • Fixed a bug that sometimes returned S&P,500 as a stock's Index; now returns S&P500.
  • Added data cleaning to DataFrame results, i.e., most columns should now correspond to their actual data type.
  • Added support for backoff algorithm on request frequency.

Closes #78, #79

v1.0.8

10 Jan 07:34
Compare
Choose a tag to compare
  • Fixed Quotes bug
  • Updated dependencies

v1.0.7

17 Jun 22:05
e542018
Compare
Choose a tag to compare
  • Moved towards synchronous request system

v1.0.6

06 May 07:26
3513456
Compare
Choose a tag to compare
  • Stripped out Screener URL generation. Opted for users providing the URL.
  • Decoupled app interfaces.
  • Added full Screener result scraping (all pages).
  • Added exponential backoff retry system for temporary failing requests.
  • Moved client creation to singleton pattern. Users can provide custom User-Agents.
  • Minor renaming.
  • CLI upgrades.

v1.0.5

25 Nov 23:07
f39e560
Compare
Choose a tag to compare
  • Added support for Quote.ashx app.
    • All 73 table sections supported. Chart url supported. Basic details supported.
    • Supports special sections: Analyst Recommendations, News, Description, and Insider Trading
    • Does not support Statements section yet. Separate requests required.
  • Added concurrent requests for quotes. Retry system handles blocked requests quickly.
  • Added a CLI subcommand quote for the Quote app
  • Refactored test directory structure
  • Refactored cmd directory structure
  • Updated package Go version from 1.15.2 to 1.15.3
  • BUG: Encountered CSV export bug for some tickers (i.e. FB) for special sections.

v1.0.4

14 Oct 03:50
3c41291
Compare
Choose a tag to compare
  • Added DataFrame cleaning/processing to GetScreenerData function
  • Added corresponding unit tests
  • Updated README.md with clean DataFrame