22
33import com .microsoft .playwright .Browser ;
44import com .microsoft .playwright .BrowserContext ;
5- import com .microsoft .playwright .BrowserType ;
65import com .microsoft .playwright .Page ;
76import com .microsoft .playwright .Playwright ;
87
1211import java .util .function .Consumer ;
1312
1413public class StreamLoginService {
15- private static final Path AUTH_STATE = Paths .get ("playwright" , ".auth" , "state.json" );
14+ private static final Path APP_DATA_DIR = resolveAppDataDir ();
15+ private static final Path AUTH_STATE = APP_DATA_DIR .resolve ("playwright" ).resolve (".auth" ).resolve ("state.json" );
1616 private static final double LOGIN_TIMEOUT_MS = 300_000 ;
1717
1818 public boolean hasAuthState () {
@@ -28,17 +28,18 @@ public void loginAndSaveState(Consumer<String> logger) throws Exception {
2828
2929 try (Playwright playwright = Playwright .create ();
3030 Browser browser = playwright .chromium ().launch (
31- new BrowserType .LaunchOptions ()
31+ new com .microsoft .playwright .BrowserType .LaunchOptions ()
32+ .setChannel ("msedge" )
3233 .setHeadless (false )
3334 .setSlowMo (150 )
3435 )) {
3536
3637 BrowserContext context = browser .newContext ();
3738 Page page = context .newPage ();
3839
39- log (logger , "Apro il browser per il login Microsoft ..." );
40+ log (logger , "Apro Microsoft Edge per il login..." );
4041 page .navigate ("https://login.microsoftonline.com/" );
41- log (logger , "Completa login nel browser." );
42+ log (logger , "Completa login ed eventuale MFA nel browser." );
4243
4344 waitUntilLoginCompleted (page );
4445
@@ -60,4 +61,13 @@ private void log(Consumer<String> logger, String message) {
6061 logger .accept (message );
6162 }
6263 }
64+
65+ private static Path resolveAppDataDir () {
66+ String localAppData = System .getenv ("LOCALAPPDATA" );
67+ if (localAppData != null && !localAppData .isBlank ()) {
68+ return Paths .get (localAppData , "TeamsStreamLectureDownloader" );
69+ }
70+
71+ return Paths .get (System .getProperty ("user.home" ), ".teams-stream-lecture-downloader" );
72+ }
6373}
0 commit comments