# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## v0.13.0 - 2021-12-28
#### Changes
- Update oauther for OTP 24 environment (#149).
- Refine documents (#139).
## v0.12.5 - 2021-11-11
#### Changes
- Allow for multiple tweets in a given message (#104).
## v0.12.4 - 2021-08-11
#### Enhancements
- Support destroy lists API (#145).
- Support add members to a list API (#146).
## v0.12.3 - 2021-08-07
#### Enhancements
- Support create lists API (#144).
## v0.12.2 - 2020-11-11
#### Changes
- Revert "Covering all patterns and preventing errors" (#136).
- Fix for breaking change.
## v0.12.1 - 2020-11-10
#### Changes
- Fix behavior definition for access_token and request_token (#123).
- Fix for auth.ex to cover all patterns and preventing errors (#124).
## v0.12.0 - 2020-02-09
#### Changes
Replaced poison dep with jason 1.1 (#121).
#### Enhancements
- Add `full_text` field back into tweet model (#122).
## v0.11.0 - 2020-01-08
#### Changes
- Update dependency to fix error with elixir v1.8 (#112, #113).
## v0.10.0 - 2019-12-30
#### Enhancements
- Add raw_data fields and specs to models (#117).
## v0.9.6 - 2019-09-08
#### Enhancements
- Add support for update with chunked media upload (#114).
## v0.9.5 - 2019-08-04
#### Changes
- Move all specs into a behaviour file (#108).
## v0.9.4 - 2019-07-04
#### Enhancements
- Implement friendships lookup (#111).
## v0.9.3 - 2018-05-20
#### Changes
- Fix ArgumentError or UnicodeConversionError when parsing request params with a list as value (#102).
## v0.9.2 - 2018-04-15
#### Changes
* Fixed crash if message is not string (#98).
## v0.9.1 - 2017-12-10
#### Changes
* Add extended_tweet field to tweet struct (#95).
## v0.9.0 - 2017-10-09
#### Enhancements
* Fix - no metadata for search results (#84).
* Immediately stop stream when oauth config is invalid (#81, #87).
* Add unretweet function (#90).
#### Changes
* Requires elixir 1.4.0 or later.
- Bugfix/cleanup char list deprecation warnings (#94).
- Cleanup deps (#89).
## v0.8.6 - 2017-07-20
#### Enhancements
* Add media chunk upload functionality (#83).
## v0.8.5 - 2017-06-25
#### Changes
* Update dependency.
- Bumped poison dep to 3.0 (#80).
## v0.8.4 - 2017-06-18
#### Changes
* Fix for crash when calling user_lookup on more than 2 twitter IDs (#78).
## v0.8.3 - 2017-03-13
#### Enhancements
* Add support for blocking/unblocking users (#71).
## v0.8.2 - 2017-02-07
#### Enhancements
* Add support for users/profile_banner (#70).
#### Changes
* Update dependencies.
## v0.8.1 - 2017-01-31
#### Changes
* Fix option for account/verify_credentials (#68).
## v0.8.0 - 2017-01-22
#### Changes
* OAuth dependency library is updated (#63).
- Adding `{:oauth, github: "tim/erlang-oauth"}` in mix.exs becomes not required.
* Configurations for proxy is simplified.
- https://github.com/parroty/extwitter#proxy
* Fix [mix bench] task error and library updates.
- Update benchfella and remove some warning notes about setup/teardown.
## v0.7.3 - 2016-12-29
#### Enhancements
* Allow for looking up multiple users with a list (#61).
* Add new Tweet fields for extended tweets (#57).
* Support for direct messages in streaming API (#60).
## v0.7.2 - 2016-07-31
#### Changes
* Update dependencies.
## v0.7.1 - 2016-04-23
#### Enhancements
* Improve handling for connection error.
- Trap connection errors and raise with custom exception (#45).
* Support user streaming function.
- ExTwitter.stream_user
## v0.7.0 - 2016-03-19
#### Changes
* Drop Timex.Date.now() call in favor of native Erlang (#43).
## v0.6.3 - 2016-03-05
#### Enhancements
* Implement creating/destroying favorites (#41).
- ExTwitter.create_favorite
- ExTwitter.destroy_favorite
#### Changes
* Expose user_id and screen_name from access_token response (#40).
## v0.6.2 - 2016-01-31
#### Enhancements
* Add configurations for proxy (#36).
#### Changes
* Add extended_entities field to Model.Tweet (#37).
## v0.6.1 - 2016-01-11
#### Changes
* Fix stream operations (ex. Stream.take) in different processes fail to receive tweets (#12, #19).
## v0.6.0 - 2015-12-20
#### Changes
* Fix auth methods so that redirect_url makes sense (#34).
- Replaces ExTwitter.request_token/0 with ExTwitter.request_token/1 which has redirect_url parameter.
- Removes redirect_url parameter from ExTwitter.authorize_url.
- Removes redirect_url parameter from ExTwitter.authenticate_url.
* Update versions of dependent modules.
## v0.5.5 - 2015-12-13
#### Enhancements
* Improve stability of streaming connection.
- Restart stream when connection closed remotely or no messages sent (#32).
## v0.5.4 - 2015-11-08
#### Enhancements
* Add remaining direct messages API end points (#30).
- ExTwitter.sent_direct_messages
- ExTwitter.destroy_direct_message
- ExTwitter.new_direct_message
## v0.5.3 - 2015-11-05
#### Enhancements
* Support showing direct messages (#29).
- ExTwitter.direct_messages
- ExTwitter.direct_message
## v0.5.2 - 2015-10-29
#### Changes
* Add missing attributes for Tweet, User, Entities models (#28).
## v0.5.1 - 2015-10-22
#### Changes
* Fix application naming (:ex_twitter -> :extwitter) in config.exs (#25, #26).
- Please use the name :extwitter instead of :ex_twitter after this version.
## v0.5.0 - 2015-10-04
#### Changes
* Updates for elixir v1.1 (#24).
## v0.4.4 - 2015-08-31
#### Enhancements
* Support verifying credentials (#23).
- ExTwitter.verify_credentials
## v0.4.3 - 2015-08-16
#### Enhancements
* Support authentication / authorization (#21).
- ExTwitter.request_token
- ExTwitter.authorize_url
- ExTwitter.authenticate_url
- ExTwitter.access_token
## v0.4.2 - 2015-08-15
#### Enhancements
* Support following and unfollowing.
- ExTwitter.follow
- ExTwitter.unfollow
* Support retweeting.
- ExTwitter.retweet
## v0.4.1 - 2015-07-12
#### Enhancements
* Support posting tweets with image (#20).
- ExTwitter.update_with_media
## v0.4.0 - 2015-03-07
#### Enhancements
* Support specifying `user_id` as basic parameter in addition to the existing `screen_name` in the following functions.
- ExTwitter.follower_ids
- ExTwitter.followers
- ExTwitter.friend_ids
- ExTwitter.friends
- ExTwitter.lists
- ExTwitter.user_lookup
## v0.4.0 - 2015-03-07
#### Changes
* Maps returned by the APIs will have atom keys instead of string keys.
* Use [poison](https://hex.pm/packages/poison) as internal JSON parser.
* Apply some benchmark related updates (#11, #13).
## v0.3.0 - 2015-01-23
#### Enhancements
* Add `ExTwitter.follower_ids`, `ExTwitter.friend_ids`.
* Add `ExTwitter.RateLimitExceededError` for handling rate limit exceeded case.
#### Changes
* `ExTwitter.followers` and `ExTwitter.friends` now return `ExTwitter.Model.Cursor` instead of `ExTwitter.Model.User`. Call `cursor.items` for the returned cursor to fetch the list of users or ids.