auth.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <!DOCTYPE HTML>
  2. <html lang='en'>
  3. <head>
  4. <script>
  5. if(
  6. localStorage.getItem('current_id') |
  7. localStorage.getItem('current_instance') |
  8. localStorage.getItem('current_authtoken')
  9. ){
  10. location.href = '/logout';
  11. };
  12. </script>
  13. <script src="/assets/js/jquery/jquery.min.js"></script>
  14. <script src="/assets/js/mastodon.js/mastodon.js"></script>
  15. <script src="/assets/js/jquery-cookie/src/jquery.cookie.js"></script>
  16. <?php
  17. require_once('../authorize/mastodon.php');
  18. use HalcyonSuite\HalcyonForMastodon\Mastodon;
  19. $api = new Mastodon();
  20. if ($_GET['code']) {
  21. $domain = htmlspecialchars((string)filter_input(INPUT_GET, 'host'), ENT_QUOTES);
  22. $URL= 'https://'.$domain;
  23. $api->selectInstance($URL);
  24. $response = $api->get_access_token($api->clientWebsite.'/auth?&host='.$domain, htmlspecialchars((string)filter_input(INPUT_GET, 'code'), ENT_QUOTES));
  25. if ($response['html']["access_token"]) {
  26. $access_token = $response['html']["access_token"];
  27. $profile = $api->accounts_verify_credentials()['html'];
  28. $account_id = $profile['id'];
  29. echo "
  30. <script>
  31. localStorage.setItem('current_id','$account_id');
  32. localStorage.setItem('current_instance','$domain');
  33. localStorage.setItem('current_authtoken', '$access_token');
  34. localStorage.setItem('current_search_history', '[]');
  35. localStorage.setItem('setting_post_stream', 'auto');
  36. localStorage.setItem('setting_post_privacy', 'public');
  37. localStorage.setItem('setting_local_instance', 'default');
  38. localStorage.setItem('setting_search_filter', 'all');
  39. localStorage.setItem('setting_link_previews', 'true');
  40. localStorage.setItem('setting_desktop_notifications', 'true');
  41. localStorage.setItem('setting_service_worker', 'false');
  42. localStorage.setItem('setting_who_to_follow', 'false');
  43. localStorage.setItem('setting_show_replies', 'true');
  44. localStorage.setItem('setting_show_bots', 'true');
  45. localStorage.setItem('setting_show_content_warning', 'false');
  46. localStorage.setItem('setting_show_nsfw', 'false');
  47. localStorage.setItem('setting_full_height', 'false');
  48. localStorage.setItem('setting_thread_view', 'true');
  49. localStorage.setItem('setting_compose_autocomplete', 'true');
  50. localStorage.setItem('setting_play_gif','true');
  51. localStorage.setItem('setting_play_video','true');
  52. localStorage.setItem('setting_play_audio','true');
  53. localStorage.setItem('setting_play_peertube','true');
  54. localStorage.setItem('setting_play_youplay','false');
  55. localStorage.setItem('setting_play_invidious','false');
  56. localStorage.setItem('setting_play_vimeo','false');
  57. localStorage.setItem('setting_post_privacy','".$profile["source"]["privacy"]."');
  58. localStorage.setItem('setting_post_sensitive','".$profile["source"]["sensitive"]."');
  59. $.cookie('darktheme','unset',{path:'/',expires:3650});
  60. location.href = '/';
  61. </script>
  62. ";
  63. }
  64. }
  65. ?>
  66. </head>
  67. <body>
  68. </body>
  69. </html>