Toot-Mastodon-CLI-TUI-clien.../toot/config_legacy.py

64 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
import os
from . import User, App
# The dir where all toot configuration is stored
CONFIG_DIR = os.environ['HOME'] + '/.config/toot/'
# Subfolder where application access keys for various instances are stored
INSTANCES_DIR = CONFIG_DIR + 'instances/'
# File in which user access token is stored
CONFIG_USER_FILE = CONFIG_DIR + 'user.cfg'
def load_user(path):
if not os.path.exists(path):
return None
with open(path, 'r') as f:
lines = f.read().split()
try:
return User(*lines)
except TypeError:
return None
def load_apps(path):
if not os.path.exists(path):
return []
for name in os.listdir(path):
with open(path + name) as f:
values = f.read().split()
try:
yield App(*values)
except TypeError:
pass
def add_username(user, apps):
"""When using broser login, username was not stored so look it up"""
if not user:
return None
apps = [a for a in apps if a.instance == user.instance]
if not apps:
return None
from toot.api import verify_credentials
creds = verify_credentials(apps.pop(), user)
return User(user.instance, creds['username'], user.access_token)
def load_legacy_config():
apps = list(load_apps(INSTANCES_DIR))
user = load_user(CONFIG_USER_FILE)
user = add_username(user, apps)
return apps, user