self.bearer_token = None
self.log_response = lambda *args, **kws: None
- def set_instance(self, instance):
- self.instance = instance
+ def set_instance_url(self, instance_url):
+ self.instance_url = instance_url
self.urls = {
None: '',
- 'auth': "https://" + instance + "/oauth/",
- 'api': "https://" + instance + "/api/v1/",
+ 'auth': instance_url + "/oauth/",
+ 'api': instance_url + "/api/v1/",
}
- def set_username(self, username, account_id):
+ def set_username(self, username, instance_domain, account_id):
self.username = username
- self.fq_username = f"{self.username}@{self.instance}"
- self.at_fq_username = f"@{self.username}@{self.instance}"
+ self.instance_domain = instance_domain
+ self.fq_username = f"{self.username}@{self.instance_domain}"
self.account_id = account_id
def enable_debug(self, logfile):
def run(self):
redirect_uri = 'urn:ietf:wg:oauth:2.0:oob'
- instance = input("Enter a Mastodon instance name: ")
- if "://" not in instance:
- instance = "https://" + instance
+ instance_url = input("Enter a Mastodon instance URL: ")
+ if "://" not in instance_url:
+ instance_url = "https://" + instance_url
- self.set_instance(instance)
+ self.set_instance_url(instance_url)
app = self.post(
"apps",
self.bearer_token = user_token['access_token']
account = self.get("accounts/verify_credentials")
+ instance = self.get("instance")
self.bearer_token = None
data = {
'account_id': account['id'],
'username': account['username'],
- 'instance': instance.split("://", 1)[-1],
+ 'instance_url': instance_url,
+ 'instance_domain': instance['uri'],
'client_id': client_id,
'client_secret': client_secret,
'user_token': user_token['access_token'],
with open(config_file()) as fh:
data = json.load(fh)
- cl.set_instance(data['instance'])
- cl.set_username(data['username'], data['account_id'])
+ cl.set_instance_url(data['instance_url'])
+ cl.set_username(data['username'], data['instance_domain'],
+ data['account_id'])
cl.bearer_token = data['user_token']