seregazhuk/php-pinterest-bot

View on GitHub
CHANGELOG.md

Summary

Maintainability
Test Coverage
# Change Log
All notable changes to this project will be documented in this file.

## v5.9.1 - 2019-02-13
### Fixed
 - Log in issue

## v5.9.0 - 2018-12-29
### Added:
 - Support for Reach Pins. You can specify a title when creating/editing a pin.
 - Allow to specify a board section when create/edit Pins.
### Fixed:
 - Uploads from non-ascii links

## v5.8.2 - 2018-08-17
### Added:
 - Pinners `isFollowedByMe()` helper method
 
### Fixed:
 - Password `reset()` method

## v5.8.1 - 2018-07-31
### Fixed
 - Added separate method for retrieving board invites (accepted and declined) 

## v5.8.0 - 2018-07-07
### Added:
 - Board `leave()`
### Updated
 - Required PHP version is set to 7.0  

## v5.7.3 - 2018-06-23
### Fixed:
 - Retrieving pinner's followers and following requires being logged in

## v5.7.2 - 2018-06-10
### Fixed:
 - board sections should require being logged in
 - providers resolution for multi-case name 

## v5.7.1 - 2018-05-13
### Fixed
 - endpoint for notification details

## v5.7.0 - 2018-05-06
### Added:
 - get details for a notification

## v5.6.9 - 2018-03-21
### Added:
 - get comments for a specified pin

### Fixed:
 - likes/dislikes are no longer supported by Pinterest and have been removed

## v5.6.8 - 2018-03-20
### Fixed:
 - clear errors after success response

## v5.6.7 - 2018-03-20
### Fixed:
 - writing comments for pins
 - improved testing post requests 

## v5.6.6 - 2018-02-23
### Added:
 - hash-tags typeahead suggestions
### Changed: 
 - suggestions `getForQuery()` renamed to `searchFor()`

## v5.6.5 - 2018-02-13
### Changed:
 - Board sections `edit()` renamed to `update()`

## v5.6.4 - 2018-02-09
### Added:
 - Inbox `getMessages()` to receive conversation messages

## v5.6.3 - 2018-02-04
### Fixed:
 - pagination for inbox conversations

## v5.6.2 - 2018-01-19
### Fixed:
 - crash for recommended keywords with no response 
 - board invites require to be logged in
 - hide link when creating a pin if not explicitly provided 

## v5.6.1 - 2017-12-31
### Fixed:
 - add login requirement for board sections

## v5.6.0 - 2017-12-25
### Added:
 - Boards `my()` method (alias for method `forMe()`)
 - BoardSections provider

## v5.5.9 - 2017-12-02
### Fixed:
 - use multibyte functions only if appropriate extension is installed

## v5.5.8 - 2017-11-29
### Fixed:
 - Search functionality for pinners requires a bot to be logged in. Now `pinners->search()` call throws `AuthRequired` exception if not logged in.

## v5.5.7 - 2017-11-22
### Fixed:
 - Helper functions auto-loading

## v5.5.6 - 2017-11-21
### Fixed:
 - Use registration form in business register
 - move helper functions to PinterestBot namespace 

## v5.5.5 - 2017-11-12
### Fixed:
 - Multi-byte str-functions call

## v5.5.4 - 2017-10-28
### Added:
 - Type-ahead suggestions for search query

## v5.5.3 - 2017-08-13
### Fixed:
 - Boards `forMe()` method requires a bot to be logged-in.
 - Boards `update()` method works with titles which has spaces.
 - Inbox `contactRequests()` method requires being logged in.
 - Inbox `ignoreContactRequests()` method renamed to `ignoreContactRequest.
 - Pins `moveToBoard()` removed pins description.
 - PHPUnit version updated to 5.7.
 - Pins `visualSimilar()` returns Pagination.
 - Password `reset()` for invalid links.
 
### Added:
 - Pins `share()` to get link for sharing a pin and asking for reacting (like/dislike).
 - Pins `reactAsGood()`/`reactAsBad()` to react when you were given a sharing link with a pin.
 - Improved tests coverage
  
### Removed:
 - `wait()` method

## v5.5.2 - 2017-07-22
### Fixed:
 - Profile update

## v5.5.1 - 2017-07-10
### Changed:
 - Moved to PHP version 5.6
 - Login required check refactoring
 
### Fixed: 
 - Profile form

## v5.5.0 - 2017-07-01
### Added:
 - User `id()` helper to get current user id
 - Boards `sendInvite`, `acceptInvite`, `ignoreInvite` and `removeInvite`
 - Contact requests

## v5.4.5 - 2017-06-27
### Fixed:
 - Boards invites

## v5.4.4 - 2017-06-23
### Added:
 - Pins TryIt functionality
 
### Fixed:
 - Registration
 - Convertion to business account requires being logged in
 - Updated Pinterest X-APP-VERSION header

## v5.4.3 - 2017-06-16
### Fixed:
 - Issue with autologin
 - Issue with creating a cookie file for every new session

## v5.4.2 - 2017-06-07
### Fixed:
 - Edit/repin pins

## v5.4.1 - 2017-05-31
### Fixed:
 - Added dependency for fileinfo extension

## v5.4.0 - 2017-05-28
### Fixed:
 - Possible bug in `useProxy` when providing empty auth string
 - Numbers in api requests should always be cast to strings

### Added:
 - User sessions history
 - Profile setting `excludeFromSearch($bool)` to exclude your account from search results
 - Profile setting `setLocal($locale)`
 - Profile setting `setAccountType($type)`
 - User `getCountries()` to list all avaiable countries for user profile
 - Boards `invites()`
 - Pins `analytics($pinId)`

## v5.3.11 - 2017-05-23
### Fixed:
 - Cookies loading

## v5.3.10 - 2017-05-23
### Fixed:
 - Cookies error on empty filename

## v5.3.9 - 2017-05-07
### Fixed:
 - Boards *forMe()* and Pinners *followers*() methods

### Added:
 - httpClient *usesProxy* method

## v5.3.8 - 2017-05-07
### Fixed:
 - boards *info()* method for boards with spaces in their names

## v5.3.7 - 2017-05-07
### Fixed:
 - resolving only providers from container
 - removed Bot unnecessary abstraction layer

## v5.3.6 - 2017-05-01
### Added
 - bot *wait()* method

## v5.3.5 - 2017-04-23
### Fixed:
 - Bot *getClientInfo()* method

## v5.3.4 - 2017-04-23
### Fixed:
 - Boards *forMe()* method
 - Pinners *followers()* uses limit

## v5.3.3 - 2017-04-22
### Updated:
 - Pinterest request headers update

## v5.3.2 - 2017-04-17
### Fixed:
 - Last error message. First goes message, then code if message is empty

## v5.3.1 - 2017-04-14
### Fixed:
 - Storing last error from response
 - Registration

## v5.3.0 - 2017-04-09
### Added
 - examples
 - Topics *explore* method for getting trending topics
 - Pins *explore* method for getting trending pins

### Fixed:
 - Annotations for *comments* in Bot class

## v5.2.7 - 2017-04-02
### Added:
 - Auth *register* and *registerBusiness* methods accept Regstration form object.
 - User *profile* method accepts Profile form object.
 - Pinners *followers* method returns current user's followers when used without arguments.
 - Boards *forMe* method to get boards of current logged-in user.

### Fixed:
 - Boards *forMe* and *forUser* methods always return array. For no results they
 return empty array.

## v5.2.6 - 2017-03-25
### Added:
 - HttpClient *dontUseProxy()* method to stop sending requests via proxy

### Fixed:
 - Additional info added in pins *related()* method.
 - Auth *login()* method always returns true, if proxy doesn't work

## v5.2.5 - 2017-03-18
### Fixed:
 - Pagination fails on last response.

## v5.2.4 - 2017-03-16
### Added:
 - Pinners *tried* pins.
 - Pinners follow and unfollow methods accept both user's id or username.

### Fixed:
 - Pins *activity()* and *tried()* methods always return Pagination object.
 - Boards *forUser* method returns detailed information for every board. If no boards
 are available it returns empty array.
  - Pagination processes *getResponseData()* as array

## v5.2.3 - 2017-01-24
### Fixed:
 - Registration

## v5.2.2 - 2017-01-24
### Fixed:
 - Search method correctly works with limits.

## v5.2.1 - 2017-01-22
### Fixed:
 - Pinners *followers()* methods.

## v5.2.0 - 2017-01-08
### Added:
 - User *clearSearchHistory()* to remove search suggestions.
 - Pins *tied()* returns the pinners who have tied this pin.
 - Pins *searchInMyPins()* method.
 - Inbox provider.
### Removed:
 - News and Conversations providers, their methods moved to Inbox provider.

## v5.1.7 - 2016-12-31
### Fixed:
 - Receiving confirmation email after registering business account.

## v5.1.6 - 2016-12-25
### Fixed:
 - Feed pagination error

## v5.1.4 - 2016-12-20
### Fixed:
 - Pagination issue with only first result.
 - Request headers.
 
### Added:
 - *getRawData()* method to Response to get the original response data from Pinterest.
 - More detailed registration process.

## v5.1.3 - 2016-12-12
### Fixed:
 - Pagination offset.
 
### Added:
 - *take* method to pagination to set limits.

## v5.1.2 - 2016-12-11
### Fixed:
 - Registration now sends confirmation emails. 
 
### Added:
 - *Skip* method to pagination.

## v5.1.1 - 2016-12-03
### Added:
 - To any pagination added *toArray* method to receive all pagination results as array. 

### Fixed:
 - Pins *activity* now returns an empty error for no results instead of null. 

## v5.1.0 - 2016-12-02
### Added:
 - Boards *createPrivate*, *sendWithMessage* and *sendWithEmail* methods.
 - Pins *sendWithMessage*, *sendWithEmail* and *saveOriginalImage* methods.
 - HttpClient *useProxy* and *useSocksProxy* methods.
 
### Changed:
 - Removed $removeCookies param from *Auth::logout()* method. Use 
 *bot->getHttpClient()->removeCookies()* to remove your cookies.

## v5.0.1 - 2016-11-13
### Fixed:
 - Interests *main* method requires to be logged in.

## v5.0.0 - 2016-11-08
### Added:
 - $removeCookies param to *logout* method.
 - *block* method in Pinners provider.
 - *getCurrentUrl* method to receive the last visited page url.
 - Pins *copy*, *move*, *deleteFromBoard* and *send* methods.
 - Pinners *blockById* method.
 - Boards *send* method.
 
### Changed:
 - *login*, *logout*, *register*, *registerBusiness*, *isLoggedIn* moved to Auth provider.
 -  *changePassword*, *sendPasswordResetLink* *resetPassword* moved to Password provider. Removed 
 *password* word from methods names (*change*, *sendResetLink*, *reset*).
 - Boards *getTitleSuggestionsFor* renamed to *titleSuggestionsFor*
 - Interests methods renamed: *getMain* to *main*, *getInfo* to *info*, *getPinsFor* to *pins*
 - Pins methods renamed: *getRelatedPins* to *related*, *userFeed* to *feed*
 - Topics methods renamed: *getInfo* to *info*, *getPinsFor* to *pins*
 - User methods renamed: *getUserName* to *username*
 - Method *getHttpClient* renamed to *getHttpClient*
 - Pinners *block* method by default uses username instead of id and returns boolean.
 
### Removed:
 - *comment* and *deleteComment* methods in Pins provider. Use Comments provider instead.
 
### Fixed:
 - Auto-login for blocked users 
 - *logout* method requires bot to be logged in

## v4.13.3 - 2016-10-25
### Fixed:
 - Pinterest Headers version
 - Pagination

## v4.13.2 - 2016-10-23
### Added:
 - Pins visual similar search via *visualSimilar*
 - Comments provider with *create* and *delete* methods
 - Pins *comment* and *deleteComment* methods are deprecated

### Removed:
 - News *last* method
 - AuthFailed exception
 
### Fixed:
 - 502 Pinterest response on request with no data

## v4.13.1 - 2016-10-15
### Fixed:
 - Fail on empty server response 

## v4.13.0 - 2016-10-09
### Added:
 - User *resetPassword* and *sendPasswordResetLink* methods to reset password.
 - HttpClient *parseCurrentUrl* method
 - HttpClient *setCookiesPath* method to change default store for cookie files.
 - User *invite* method to invite people by email.

## v4.12.7 - 2016-09-26
### Fixed:
 - Removed output cookie file path to console
 - Boards *info* method now returns only specified board

## v4.12.6 - 2016-09-26
### Fixed:
 - Creating cookie file if does not exist
 - User *register* default country is GB

### Changed:
 - *reload* param added to Bot *getClientContext* method.

## v4.12.5 - 2016-09-25
### Fixed:
 - Bot *getLastError* method.
 - Random cookie file name for non-authorized sessions.

## v4.12.4 - 2016-09-25
### Fixed:
 - Bot *getClientInfo* method with auto login.

## v4.12.3 - 2016-09-25
### Added:
- HttpClient *cookie* and *cookies* methods.
- Auto-login from a previously saved session.

### Fixed:
 - HttpClient *setOptions* does not override default Curl options, only adds additional ones.

### Removed:
 - HttpClient *setUserAgent* method, custom userAgent should be passed with 
 other Curl options via *setOptions* method.

## v4.11.2 - 2016-09-18
### Fixed:
 - Images upload

## v4.11.1 - 2016-09-18
### Added: 
 - Bot *getClientInfo* method.

## v4.11.0 - 2016-09-16
### Added:
 - User *changePassword*, *deactivate* methods.
 - AuthRequired exception.
 - Pins *related* method.
 - Pinners *likes* method.
 - News *all* method.
 - Boards *getTitleSuggestionsFor* method.
 
### Changed:
 - User *login* method does not throw an exception, now it returns *false* on fail.
 - Bot *getLastError* method returns string, not array.
 - News *last* method is deprecated.

## v4.10.1 - 2016-09-13
### Fixed:
 - Checks in *username* and *isBanned* methods

## v4.10.0 - 2016-09-12
### Added
 - User *isBanned* and *username* methods

## v4.9.0 - 2016-09-11
### Added:
 - Get user profile info

## v4.8.0 - 2016-09-11
### Added:
 - Get following boards/people/interests for a pinner

## v4.7.0 - 2016-09-10
### Added:
 - New Topics provider
### Changed:
 - Follow/unfollow methods moved from Interest to Topics provider
 - Added getRelatedTopics to Interests provider

## v4.6.1 - 2016-09-08
### Changed:
 - Provider::execGetRequest method now returns bool or array
 - Exceptions classes renamed
 - Helpers classes renamed
 - Removed HasFollowers trait
### Fixed:
 - Fixed *getUnFollowUrl()* method in Followable trait

## v4.6.0 - 2016-08-26
### Changed:
 - HttpClient cookie file name moved to property instead of constant
 - Custom curl options in HttpClient object
 - Removed deprecated methods (isLoggedIn, logout, login) from Bot class. Instead use User provider
 - Removed getRequest method from ProvidersContainer
 
## v4.5.4 - 2016-08-26
### Changed:
 - Http contract renamed to HttpClient
 - Curl specific methods moved to CurlHttpClient
 - Removed token logic from HttpClient, only parsing
 - Removed user agent logic from Request to HttpClient

### Fixed:
- Upload problems

## v4.5.3 - 2016-08-16
 - Fixed upload

## v4.5.2 - 2016-08-16

### Changed:
 - Renamed ProviderLoginCheckWrapper to ProviderWrapper
 - Refactored Response class
 - HttpInterface contract renamed to Http
 - HttpInterface contract renamed to HttpClient
 - PaginatedResponse contract added

## v4.5.1 - 2016-08-09

### Fixed:
 - Pins method *feed* required login

## v4.5.0 - 2016-08-09

### Added:
 - Interests: execGet main categories
 - Interests: execGet category info
 - Pins: execGet user feed

## v4.4.2 - 2016-07-06

### Fixed: 
 - Pins *comment* method

## v4.4.1 - 2016-07-02

### Fixed:
 - Pins *create* method uploads images.

## v4.4.0 - 2016-07-02

### Added:
 - User *registerBusiness* for registration business accounts.
 - User *convertToBusiness* to convert simple account to a business one.

## v4.3.0 - 2016-06-27

### Added:
 - User *register* method
 
### Fixed: 
 - Pins *edit* method returns bool value
  
### Changed:
 - *login*, *isLoggedIn* and *logout* methods move to User provider
 - Bot *login*, *isLoggedIn* and *logout* methods are deprecated
 - removed *RequestInterface* and *ResponseInterface*
 

## v4.2.2 - 2016-06-19
### Fixed:
 - keywords *recommendedFor* method returns an empty array if no results
 - Response *hasErrors* method returns true on errors
 - php version downgraded for 5.5.9
 - test changed for phpunit 4.0
 - Response *getBookmarks* method return empty array for no bookmarks

## v4.2.1 - 2016-06-14
### Fixed:
 - news *last* method login requirement check
 - pagination empty result check

## v4.2.0 - 2016-06-13
### Changed: 
 - functions with pagination accept a limit as a second argument, for example:
 ```php
 $bot->pins->search('cats', 2)
 ```
 will return only two pins for the search results. 
 The same is true about getting followers/following/pins for the user or board and getting pins from source.
  
 - *activity* method in pins provider (requires login).
     

## v4.1.0 - 2016-06-12
### Added:
 - bot logout method

## v4.0.0 - 2016-06-12
### Changed:
 - generator objects now return an entity for each iteration, not an array of entities. For example, to 
 execGet search results there is no more need to make two nested loops:
 
 ```php
 foreach($bot->pins->search('cats') as $pin) {
     echo $pin['id'], "\n";
     // ...
 }
 
 The same is true about getting followers/following/pins for the user or board and getting pins from source. 

## v3.3.1 - 2016-06-12
### Added:
 - isLoggedIn method
 - Response and Request refactoring
 - Better exception messages in ProviderLoginCheckWrapper

## v3.2.3 - 2016-06-09
### Fixed:
 - Pins like/dislike
 - Response error check

## v3.2.2 - 2016-06-05
### Updated:
 - Keywords provider
     - recommendedFor($query) method returns terms and their positions.

## v3.2.1 - 2016-06-05
### Updated:
 - Keywords provider
     - recommendedFor($query) method returns items concatenated with the query request.

## v3.2.0 - 2016-06-04
### Added:
 - Keywords provider
     - recommendedFor($query) method.

## v3.1.0 - 2016-06-04
### Added:
 - Change board (title, description, category and privacy)

## v3.0.0 - 2016-05-29
### Changed:
 - News *latest* method renamed to *last*
 - Request and providers refactoring
 
### Fixed:
 - Boards follow/unfollow request

## v2.6.0 - 2016-05-28
### Updated:
 - Pagination refactoring
 - Requests refactoring
 - version up due to the previous features

## v2.5.3 - 2016-05-28
### Added: 
- Edit profile image
- Get pins from specific source

## v2.5.2 - 2016-05-23
### Added: 
- Edit pin by id (change description, link and board)
- Move pin to a new board

## v2.5.1 - 2016-04-22
### Fixed:
- Cookie file now is placed in os PHP temporary directory

## v2.5.0 - 2016-03-12
### Added:
- Specify link when creating pin as third argument

## v2.4.2 - 2016-03-03
### Fixed:
- Login requirements check for some methods

## v2.4.1 - 2016-03-01
### Fixed:
- sendMessage, sendMail array bugs fix

## v2.4.0 - 2016-03-01
### Added:
1. Changes in sendMessage:
    - Many users at once
    - Add pin to message
2. Added sendMail method. Works like sendMessage, but pass email or array of emails instead of users ids.