Add unsubscribe script

master
Nikola Forró 4 years ago
parent 94ae99d5d2
commit 4ba72d899a

@ -0,0 +1,49 @@
import requests
class Twitivity:
def __init__(self, api, environment):
self.api = api
self.environment = environment
def _call(self, method, endpoint, data=None):
url = 'https://{0}{1}/account_activity/all/{2}'.format(self.api.host, self.api.api_root, self.environment)
r = requests.request(method, '{0}/{1}.json'.format(url, endpoint), auth=self.api.auth.apply_auth(), data=data)
if not r.ok:
raise TwitivityError(r.json())
if r.status_code == 204:
return None
return r.json()
def check_webhook(self):
data = self._call('GET', 'webhooks')
if not data:
return None
return data.pop().get('id')
def register_webhook(self, url):
data = self._call('POST', 'webhooks', data=dict(url=url))
if not data:
return None
return data.get('id')
def remove_webhook(self, id):
data = self._call('DELETE', 'webhooks/{0}'.format(id))
def poke_webhook(self, id):
data = self._call('PUT', 'webhooks/{0}'.format(id))
def check_subscription(self):
self._call('GET', 'subscriptions')
def subscribe(self):
self._call('POST', 'subscriptions')
def unsubscribe(self):
self._call('DELETE', 'subscriptions')
class TwitivityError(Exception):
def __init__(self, data):
message = data.get('errors', [dict(message='Unknown error.')]).pop(0).get('message')
super().__init__('Twitter Account Activity API error: {0}'.format(message))

@ -0,0 +1,41 @@
import configparser
import sys
import tweepy
from twitivity import Twitivity, TwitivityError
config = configparser.ConfigParser()
config.read('settings.cfg')
consumer_key = config.get('Twitter', 'consumer_key')
consumer_secret = config.get('Twitter', 'consumer_secret')
environment_name = config.get('Twitter', 'environment_name')
def unsubscribe(access_token, access_token_secret):
handler = tweepy.OAuthHandler(consumer_key, consumer_secret)
handler.set_access_token(access_token, access_token_secret)
twitivity = Twitivity(tweepy.API(handler), environment_name)
try:
twitivity.check_subscription()
except TwitivityError:
return
twitivity.unsubscribe()
def main():
try:
unsubscribe(*sys.argv[1:3])
except TypeError:
print('Not enough arguments!')
except TwitivityError as e:
print(str(e))
else:
print('Success.')
if __name__ == '__main__':
main()
Loading…
Cancel
Save