-
[DONE] Rely upon MultiJson for JSON encoding and decoding
-
Support thread-safe streams
A single stream used in several threads to perform several simultaneous actions like consuming the stream while changing its rules.
It's currently impossible due to EventMachine. A transition to Celluloid::IO and http.rb is required to be thread-friendly.
- [DONE] Check rule size
- [DONE] Add 1 or more rules to a stream
- [DONE] Delete some rules from the stream
- [DONE] Get all existing rules for a stream
- [DONE] Rules equality and usage in hash as keys
- Rule encoding (UTF-8 enforcement ?)
- Double check a rule supports all the syntactical and semantic restrictions as defined by GNIP PowerTrack Rules reference documentation
- Support evolution of rules in terms of addition, removal and updates.
- [DONE] Manage persitent connection to a data stream. See Powertrack API reference
- [DONE] Consume streaming data
- [DONE] Capture heartbeat activities
- [DONE] Capture system-related activities
See Honoring user intent on Twitter and Compliance Activities.
- [DROPPED] Add a comply method to PowerTrack::API ? The compliance activities are broadcasted on a specific compliance stream.
- Support the Compliance Firehose stream Compliance Firehose Reference
- Protect / Unprotect account
- Delete account
- Scrub geo
- Suspend account
- Withhold account
- Delete status
- Withhold status
See Data format
-
[DONE] Support Original output format
-
[DONE] Support Activity Stream output format
-
[DONE] Support raw format
-
[OUT] Manage retweets. See Identifying and Understanding retweets
- [DONE] Reconnect after disconnect. See Disconnections & Reconnecting
- [DONE] Reconnect using an exponential backoff pattern.
- [DONE] Support Backfill (v1)
- [DONE] Support Replay (v1)
- Reconnect when there's a GNIP server issue signaled by the 503 HTTP response status
- [DONE] Support test and development streams
- [DONE] Support Replay mode (5-days back history)
- Support status dashboard
- Support Historical PowerTrack
See Migration Guide and PowerTrack API v2.
- [DONE] Support both v1 and v2 with the same interface/class
- [DONE] Support new endpoint URLs
- Support rule validator
- Support new operators and quoted tweet filtering. Double-check with tests that the gem does not prevent their usage
- [DONE] Support new backfill behavior
- [DONE] Support fixed backfill period used at first connection
- [DONE] Support fixed backfill period used at each reconnect
- Support dynamic backfill period at each reconnect, calibrated according to the number of minutes the stream was disconnected. Emit a warning if the stream was disconnected more than 5 minutes (tweets were probably lost)
- [DONE] Use HTTP POST verb (instead of DELETE) for rule deletions
- [DONE] Fallback to v1 when Replay mode wants to use v2. Emit a warning.
- [DONE] Support Replay v2 Replay API 2.0 Reference