File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66
77class Config :
88
9- Leetcode_session = os .getenv ("LEETCODE_SESSION" , "" )
10- CSRF_token = os .getenv ("CSRF_TOKEN" , "" )
9+ LEETCODE_SESSION = os .getenv ("LEETCODE_SESSION" , "" )
10+ CSRF_TOKEN = os .getenv ("CSRF_TOKEN" , "" )
1111
1212 GITHUB_USERNAME = os .getenv ("GITHUB_USERNAME" , "" )
1313 GITHUB_EMAIL = os .getenv ("GITHUB_EMAIL" , "" )
Original file line number Diff line number Diff line change 1+ from requests import Session
2+
3+
4+ class LeetCodeAPI :
5+ def __init__ (self , session : Session ):
6+ self .session = session
7+
8+ def validate_session (self ) -> bool :
9+ response = self .session .get ("https://leetcode.com/api/problems/all/" )
10+
11+ return response .status_code == 200
Original file line number Diff line number Diff line change 1+ from requests import Session
2+
3+ from config import Config
4+
5+
6+ class LeetCodeAuth :
7+
8+ def __init__ (self ):
9+ self .session = Session ()
10+
11+ self .session .headers .update (
12+ {
13+ "User-Agent" : Config .USER_AGENT ,
14+ "Referer" : "https://leetcode.com/" ,
15+ "Origin" : "https://leetcode.com" ,
16+ "Content-Type" : "application/json" ,
17+ }
18+ )
19+
20+ self .session .cookies .update (
21+ {
22+ "LEETCODE_SESSION" : Config .LEETCODE_SESSION ,
23+ "csrftoken" : Config .CSRF_TOKEN ,
24+ }
25+ )
26+
27+ def get_session (self ) -> Session :
28+ """Return the configured session."""
29+ return self .session
Original file line number Diff line number Diff line change 11from rich .console import Console
22from rich .panel import Panel
33
4+ from leetcode .auth import LeetCodeAuth
5+ from leetcode .api import LeetCodeAPI
6+
47console = Console ()
8+
9+
510def banner ():
611 console .print (
712 Panel .fit (
813 "[bold cyan]LeetCode Sync[/bold cyan]\n "
914 "Automatic LeetCode → GitHub Synchronization" ,
10- title = "v0.1 .0" ,
15+ title = "v0.2 .0" ,
1116 )
1217 )
18+
19+
1320def main ():
1421 banner ()
1522
16- console .print ("[green]Project initialized successfully.[/green]" )
17- console .print ("Next milestone: Authenticate with LeetCode." )
23+ auth = LeetCodeAuth ()
24+ api = LeetCodeAPI (auth .get_session ())
25+
26+ if api .validate_session ():
27+ console .print ("[green]✓ Session is valid[/green]" )
28+ else :
29+ console .print ("[red]✗ Invalid session[/red]" )
1830
1931
2032if __name__ == "__main__" :
You can’t perform that action at this time.
0 commit comments