2018-03-11 12:07:57 +01:00
< ? php
require_once ( '../authorize/mastodon.php' );
use HalcyonSuite\HalcyonForMastodon\Mastodon ;
if ( isset ( $_POST [ 'acct' ])) {
$domain = explode ( " @ " , mb_strtolower ( htmlspecialchars (( string ) filter_input ( INPUT_POST , 'acct' ), ENT_QUOTES )))[ 2 ];
$URL = 'https://' . $domain ;
$api = new Mastodon ();
if ( ! preg_match ( '/(^[a-z0-9\-\.\/]+?\.[a-z0-9-]+$)/' , $domain ) ) {
header ( 'Location: ' . $api -> clientWebsite . '/login?cause=domain' , true , 303 );
die ();
} else {
try {
$client_id = $api -> getInstance ( $URL )[ " client_id " ];
2019-02-25 18:18:21 +01:00
$authorizeURL = $URL . '/oauth/authorize?client_id=' . $client_id . '&response_type=code&scope=read+write+follow&redirect_uri=' . urlencode ( $api -> clientWebsite . '/auth?&host=' . $domain );
2018-03-11 12:07:57 +01:00
header ( " Location: { $authorizeURL } " , true , 303 );
die ();
} catch ( Exception $e ) {
header ( 'Location: ' . $api -> clientWebsite . '/login?cause=domain' , true , 303 );
die ();
}
}
}
2018-07-29 19:54:30 +02:00
include ( " ../language.php " );
2018-03-11 12:07:57 +01:00
?>
<! DOCTYPE HTML >
< html lang = " en " >
< head >
< meta charset = " utf-8 " >
< meta http - equiv = " X-UA-Compatible " content = " IE=edge,chrome=1 " >
< meta name = " viewport " content = " width=device-width, initial-scale=1.0 " >
2018-07-25 17:31:54 +02:00
< title > Halcyon </ title >
2018-03-11 12:07:57 +01:00
< link rel = " shortcut icon " href = " /assets/images/favicon.ico " >
< link rel = " stylesheet " href = " /login/assets/css/style.css " media = " all " >
2018-07-29 19:54:30 +02:00
< link rel = " stylesheet " href = " /assets/css/fontawesome.min.css " media = " all " >
< link rel = " stylesheet " href = " /assets/css/cookieconsent.min.css " >
< script src = " /assets/js/jquery/jquery.min.js " ></ script >
< script src = " /assets/js/cookieconsent/cookieconsent.min.js " ></ script >
2018-03-11 12:07:57 +01:00
< script src = " /assets/js/jquery-cookie/src/jquery.cookie.js " ></ script >
< script src = " /login/assets/js/halcyon_login.js " ></ script >
< script >
if (
localStorage . getItem ( " current_id " ) |
localStorage . getItem ( " current_instance " ) |
localStorage . getItem ( " current_authtoken " )
){
location . href = " / " ;
};
</ script >
</ head >
< body >
< header id = " header " >
< div id = " header_wrap " >
< div id = " header_title_wrap " class = " header_box header_right_box " >
< div class = " header_box_child title_box " >
< a href = " / " >
< img src = " /login/assets/images/halcyon-title.png " alt = " Halcyon for mastodon " >
</ a >
</ div >
</ div >
< div id = " header_menu_wrap " class = " header_box header_left_box " >
< nav class = " header_box_child nav_box " >
< ul >
< a href = " https://social.csswg.org/@halcyon " class = " no-underline " >
< li >
2018-07-31 18:51:17 +02:00
< span >< i class = " fa fa-newspaper-o " aria - hidden = " true " ></ i >< ? = _ ( 'News' ) ?> </span>
2018-03-11 12:07:57 +01:00
</ li >
</ a >
2018-06-23 16:58:06 +02:00
< a href = " https://notabug.org/halcyon-suite/halcyon " class = " no-underline " >
2018-03-11 12:07:57 +01:00
< li >
2018-07-31 18:51:17 +02:00
< span >< i class = " fa fa-code " aria - hidden = " true " ></ i >< ? = _ ( 'Source' ) ?> </span>
2018-03-11 12:07:57 +01:00
</ li >
</ a >
2018-07-25 17:31:54 +02:00
< a href = " /terms " class = " no-underline " >
2018-03-11 12:07:57 +01:00
< li >
2018-07-31 18:51:17 +02:00
< span >< i class = " fa fa-balance-scale " aria - hidden = " true " ></ i >< ? = _ ( 'Terms' ) ?> </span>
2018-03-11 12:07:57 +01:00
</ li >
</ a >
2018-07-25 17:31:54 +02:00
< a href = " /privacy " class = " no-underline " >
< li >
2018-07-31 18:51:17 +02:00
< span >< i class = " fa fa-shield " aria - hidden = " true " ></ i >< ? = _ ( 'Privacy' ) ?> </span>
2018-07-25 17:31:54 +02:00
</ li >
</ a >
< ? php if ( file_exists ( " ../config/imprint.txt " )) { ?>
< a href = " /imprint " class = " no-underline " >
< li >
2018-07-31 18:51:17 +02:00
< span >< i class = " fa fa-id-card-o " aria - hidden = " true " ></ i >< ? = _ ( 'Imprint' ) ?> </span>
2018-07-25 17:31:54 +02:00
</ li >
</ a >
< ? php } ?>
2018-03-11 12:07:57 +01:00
< a href = " http://www.nikisoft.one/contact.php " class = " no-underline " >
< li >
2018-07-31 18:51:17 +02:00
< span >< i class = " fa fa-envelope " aria - hidden = " true " ></ i >< ? = _ ( 'Contact' ) ?> </span>
2018-03-11 12:07:57 +01:00
</ li >
</ a >
< a href = " #login_form_wrap " class = " no-underline " >
< li >
2018-07-31 18:51:17 +02:00
< span >< i class = " fa fa-user-circle-o " aria - hidden = " true " ></ i >< ? = _ ( 'Login' ) ?> </span>
2018-03-11 12:07:57 +01:00
</ li >
</ a >
</ ul >
</ nav >
</ div >
</ div >
</ header >
< main id = " main " >
< div id = " login_form_wrap " >
< div class = " login_form " >
< form method = " POST " >
2018-07-31 18:51:17 +02:00
< h2 >< ? = _ ( 'Login to Halcyon' ) ?> </h2>
2018-03-11 12:07:57 +01:00
< p >
2018-07-31 18:51:17 +02:00
< ? = _ ( 'or' ) ?> <a href="https://joinmastodon.org/"><?=_('create an account')?></a>
2018-03-11 12:07:57 +01:00
</ p >
< div class = " session_aleart " >
< span ></ span >
</ div >
< div class = " login_form_main " >
2018-03-11 17:03:24 +01:00
< input name = " acct " type = " text " class = " login_form_input " placeholder = " @johndoe@example.com " required >
2018-03-11 12:07:57 +01:00
< label class = " login_form_continue pointer " >
< i class = " fa fa-chevron-circle-right " aria - hidden = " true " ></ i >
< input id = " login_continue " type = " submit " value = " " class = " invisible " ></ input >
</ label >
</ div >
< div class = " login_form_agree " >
2018-08-21 17:51:40 +02:00
< input id = " agree " type = " checkbox " required checked >
< label for = " agree " class = " login_form_agree_check disallow_select pointer " >
2018-07-31 18:51:17 +02:00
< ? = _ ( 'I agree with the' ) ?> <a href="/terms"><?=_('Terms')?></a>
2018-03-11 12:07:57 +01:00
</ label >
</ div >
</ form >
</ div >
</ div >
< article id = " article " >
2018-07-31 18:51:17 +02:00
< h2 >< ? = _ ( 'What is Halcyon' ) ?> </h2>
2018-03-11 12:07:57 +01:00
< p >
2018-07-31 18:51:17 +02:00
< ? = _ ( 'Halcyon is a webclient for' ) ?> <a href="https://joinmastodon.org"> Mastodon </a><?=_('and')?><a href="https://pleroma.social"> Pleroma </a><?=_('which aims to recreate the simple and beautiful user interface of Twitter while keeping all advantages of decentral networks in focus.')?>
2018-03-11 12:07:57 +01:00
</ p >
< div class = " image_wrap " >
< ul >
2018-06-23 16:58:06 +02:00
< li >< img src = " /login/assets/images/preview2.png " alt = " halcyon_screenshot " ></ li >
< li >< img src = " /login/assets/images/preview1.png " alt = " halcyon_screenshot " ></ li >
< li >< img src = " /login/assets/images/preview0.png " alt = " halcyon_screenshot " ></ li >
2018-03-11 12:07:57 +01:00
</ ul >
< button class = " prev_button switch_button " >< i class = " fa fa-angle-left " aria - hidden = " true " ></ i ></ button >
< button class = " next_button switch_button " >< i class = " fa fa-angle-right " aria - hidden = " true " ></ i ></ button >
</ div >
2018-07-31 18:51:17 +02:00
< h2 >< ? = _ ( 'Contact / Feedback' ) ?> </h2>
2018-03-11 12:07:57 +01:00
< p >
2018-08-04 15:52:34 +02:00
Mastodon : < a href = " https://social.csswg.org/@halcyon " target = " _blank " >@ halcyon @ social . csswg . org </ a >< br />
2018-07-31 18:51:17 +02:00
Email : < a href = " http://www.nikisoft.one/contact.php " target = " _blank " >< ? = _ ( 'Use my contact form' ) ?> </a><br/>
2018-06-23 16:58:06 +02:00
Git repository : < a href = " https://notabug.org/halcyon-suite/halcyon " target = " _blank " > halcyon - suite / halcyon </ a >
2018-03-11 12:07:57 +01:00
</ p >
2018-07-31 18:51:17 +02:00
< h2 >< ? = _ ( 'Help us' ) ?> </h2>
2018-03-11 12:07:57 +01:00
< p >
2018-06-23 16:58:06 +02:00
Bitcoin : 1 D6GThQqHQYnruKYrKyW9JC86ZGWxjt1hK < br />
2018-10-14 15:37:55 +02:00
Liberapay : < a href = " https://liberapay.com/nipos " > Donate to @ nipos </ a >
2018-03-11 12:07:57 +01:00
</ p >
</ article >
</ main >
<!-- FOOTER -->
< footer id = " footer " >
< div class = " footer_anchor " >
< a href = " # " >
< i class = " fa fa-angle-up " aria - hidden = " true " ></ i >
</ a >
</ div >
2018-03-26 18:26:44 +02:00
< span > Photo by < a href = " https://www.flickr.com/photos/95387826@N08/ " > Michio Morimoto on Flickr </ a > ( CC BY 2.0 ) </ span >< br />
2018-07-25 17:31:54 +02:00
< ? php
if ( file_exists ( " ../config/footerlinks.txt " )) {
$footerlinks = json_decode ( file_get_contents ( " ../config/footerlinks.txt " ));
$haslinks = false ;
for ( $i = 0 ; $i < count ( $footerlinks ); $i ++ ) {
if ( $footerlinks [ $i ] -> logout == true ) {
if ( $haslinks == false ) {
$haslinks = true ;
echo " <span> " ;
}
else {
echo " | " ;
}
echo " <a href=' " . $footerlinks [ $i ] -> link . " '> " . $footerlinks [ $i ] -> title . " </a> " ;
}
}
if ( $haslinks == true ) {
echo " </span><br/> " ;
}
}
?>
2018-03-26 18:26:44 +02:00
< span > Halcyon version < ? php echo file_get_contents ( " ../version.txt " ) ?> </span>
2018-03-11 12:07:57 +01:00
</ footer >
</ body >
2018-03-26 18:26:44 +02:00
< script >
window . cookieconsent . initialise ({
" palette " : {
" popup " : {
" background " : " #000 "
},
" button " : {
" background " : " #f1d600 "
}
},
" theme " : " classic " ,
" position " : " bottom "
});
</ script >
2018-03-11 12:07:57 +01:00
< ? php if ( isset ( $_GET [ 'cause' ])) : ?>
< script >
$ ( function () {
var cause = " <?= htmlspecialchars((string)filter_input(INPUT_GET, 'cause'), ENT_QUOTES) ?> " ;
2018-06-23 16:58:06 +02:00
if ( cause === " domain " ) {
2018-03-11 12:07:57 +01:00
$ ( '.login_form_main' ) . addClass ( 'error' );
$ ( '.session_aleart' ) . removeClass ( 'invisible' );
2019-03-01 16:17:03 +01:00
$ ( '.session_aleart > span' ) . text ( 'This instance does not exist.' );
2018-03-11 12:07:57 +01:00
}
});
$ ( document ) . on ( 'click' , '.login_form_main' , function ( e ) {
$ ( this ) . removeClass ( 'error' );
});
</ script >
< ? php endif ; ?>
2018-03-11 17:03:24 +01:00
</ html >