Compare commits
2 Commits
e402e844c9
...
053bb8696f
| Author | SHA1 | Date | |
|---|---|---|---|
| 053bb8696f | |||
| a31df05bb8 |
25
skywipe/auth.py
Normal file
25
skywipe/auth.py
Normal file
@@ -0,0 +1,25 @@
|
||||
"""Authentication module for Skywipe CLI."""
|
||||
|
||||
from atproto import Client
|
||||
from skywipe.configure import Configuration
|
||||
|
||||
|
||||
class Auth:
|
||||
def __init__(self, configuration: Configuration = None):
|
||||
self.configuration = configuration or Configuration()
|
||||
self.client: Client = None
|
||||
|
||||
def login(self) -> Client:
|
||||
config_data = self.configuration.load()
|
||||
|
||||
handle = config_data.get("handle")
|
||||
password = config_data.get("password")
|
||||
|
||||
if not handle or not password:
|
||||
raise ValueError(
|
||||
"handle and password must be set in configuration")
|
||||
|
||||
self.client = Client()
|
||||
self.client.login(handle, password)
|
||||
|
||||
return self.client
|
||||
@@ -52,3 +52,10 @@ class Configuration:
|
||||
yaml.dump(config_data, f, default_flow_style=False)
|
||||
|
||||
print(f"\nConfiguration saved to {self.config_file}")
|
||||
|
||||
def load(self) -> dict:
|
||||
if not self.exists():
|
||||
raise FileNotFoundError(
|
||||
f"Configuration file not found: {self.config_file}")
|
||||
with open(self.config_file, "r") as f:
|
||||
return yaml.safe_load(f)
|
||||
|
||||
Reference in New Issue
Block a user