diff --git a/TODO.md b/TODO.md index 1a3def1..d2ec6a4 100644 --- a/TODO.md +++ b/TODO.md @@ -8,6 +8,7 @@ - Individual reply pages - ~~Twitter login~~ - Twitter post publication + - Toggle Twitter posting - Mastodon login - Add various language support. @@ -19,6 +20,7 @@ - Styling: - Basic theme styling - Relative time + - Single line long phrases break the page - Bugs: - ~~Login redirection is broken~~ diff --git a/action/reply.php b/action/reply.php index 973b122..21dc913 100644 --- a/action/reply.php +++ b/action/reply.php @@ -28,6 +28,46 @@ else{ } else{ $db->exec("UPDATE questions SET answer = '" . htmlspecialchars($_POST["answer_body"], ENT_QUOTES) . "', a_date = " . strtotime("now") . " WHERE id = " . $_GET["q"] . ";"); + + $question = $db->query("SELECT * FROM questions WHERE id = '" . $_GET["q"] . "';")->fetchArray(SQLITE3_ASSOC); + $user = $db->query("SELECT * FROM users WHERE id = '" . $_SESSION["uid"] . "';")->fetchArray(SQLITE3_ASSOC); + + // Writing the tweet text + + $separator = " - "; + $tw_url_length = 23; + $max_length = 280 - strlen($separator) - strlen(" ") - $tw_url_length; + $ellipsis = "..."; + + if(strlen($question["question"]) >= $max_length/2 - strlen($separator)){ + if(strlen($question["answer"]) >= $max_length/2 - strlen($separator)){ + $tweet = substr($question["question"],0,$max_length/2 - strlen($ellipsis)) . $ellipsis; + $tweet = $tweet . $separator . substr($question["answer"],0,$max_length/2 - strlen($ellipsis)) . $ellipsis; + } + else{ + $tweet = substr($question["question"],0,$max_length - strlen($question["answer"]) - strlen($ellipsis)) . $ellipsis; + $tweet = $tweet . $separator . $question["answer"]; + } + } + else{ + if(strlen($question["answer"]) >= $max_length/2 - strlen($separator)){ + $tweet = $question["question"] . $separator; + $tweet = $tweet . substr($question["answer"],0,$max_length - strlen($question["question"]) - strlen($ellipsis)) . $ellipsis; + } + else{ + $tweet = $question["question"] . $separator . $question["answer"]; + } + } + $tweet = $tweet . " https://ask.fai.su/user/" . $user["username"]; + +// echo strlen($tweet) . " - " . strlen($question["answer"]) . "

\n"; +// echo $tweet; + + if($user["tw_oauth_token"] && $user["tw_oauth_verify"]){ + include("../include/tw-post.php"); + post_tweet(htmlspecialchars_decode($tweet, ENT_QUOTES)); + } + if($pretty_urls){ header("Location: /user/" . $db->querySingle("SELECT username FROM users WHERE id = " . $question["user"] . ";")); die(); @@ -48,6 +88,8 @@ else{ +