"""Docstring.""" import datetime import os import sys from pprint import pprint import stream # environment specific creds APP_KEY = os.getenv('STREAM_API_KEY') APP_SECRET = os.getenv('STREAM_API_SECRET') REGION = 'us-east' # configuration client = stream.connect( APP_KEY, APP_SECRET, location=REGION ) participant_type = 'GlobalParticipant' joiner = '_' participant_feed_group = 'participant_spike' profile_feed_group = 'user_mobile_push' def main(): """Docstring.""" participant_id = sys.argv[1] date = sys.argv[2] participant_feed_id = joiner.join([participant_type, participant_id]) print(participant_feed_id) participant_feed = client.feed( participant_feed_group, participant_feed_id ) # our 'ID' of event and time of event verb = 'social_spike_twitter' day = datetime.datetime.strptime(date, '%Y-%m-%d') foreign_id = verb + ':' + participant_feed.user_id + str(day) # check if getStream already has a record of this event # NOTE: this is a global check accross all feeds response = client.get_activities(foreign_id_times=[ (foreign_id, day) ]) if response['results']: raise Exception(f'activity already exists for {foreign_id}') return # do some activity... activity_data = { 'actor': participant_id, 'verb': verb, 'foreign_id': foreign_id, 'object': { 'new_followers': 200, 'name': 'Artist Name!' }, 'time': day } print(activity_data) try: response = participant_feed.add_activity(activity_data) pprint(response) print('') print('Success!') except stream.exceptions.DoesNotExistException: print('Stream group does not exist!') exit() if __name__ == '__main__': main()