add repost form

This commit is contained in:
Aaron Parecki 2015-06-13 13:38:48 -07:00
parent 5b1d595fcf
commit 9d917dca8e
2 changed files with 111 additions and 1 deletions

View file

@ -127,6 +127,24 @@ $app->get('/favorite', function() use($app) {
}
});
$app->get('/repost', function() use($app) {
if($user=require_login($app)) {
$params = $app->request()->params();
$url = '';
if(array_key_exists('url', $params))
$url = $params['url'];
$html = render('new-repost', array(
'title' => 'New Repost',
'url' => $url,
'token' => generate_login_token()
));
$app->response()->body($html);
}
});
$app->post('/prefs', function() use($app) {
if($user=require_login($app)) {
$params = $app->request()->params();
@ -252,7 +270,7 @@ function create_favorite(&$user, $url) {
}
}
if(preg_match('/https?:\/\/(?:www\.)?twitter\.com\/[^\/]+\/status(?:es)?\/(\d+)/', $url, $match)) {
if($user->twitter_access_token && preg_match('/https?:\/\/(?:www\.)?twitter\.com\/[^\/]+\/status(?:es)?\/(\d+)/', $url, $match)) {
$tweet_id = $match[1];
$twitter = new \TwitterOAuth\Api(Config::$twitterClientID, Config::$twitterClientSecret,
$user->twitter_access_token, $user->twitter_token_secret);
@ -264,6 +282,24 @@ function create_favorite(&$user, $url) {
return $r;
}
function create_repost(&$user, $url) {
$micropub_request = array(
'repost-of' => $url
);
$r = micropub_post_for_user($user, $micropub_request);
$tweet_id = false;
if($user->twitter_access_token && preg_match('/https?:\/\/(?:www\.)?twitter\.com\/[^\/]+\/status(?:es)?\/(\d+)/', $url, $match)) {
$tweet_id = $match[1];
$twitter = new \TwitterOAuth\Api(Config::$twitterClientID, Config::$twitterClientSecret,
$user->twitter_access_token, $user->twitter_token_secret);
$result = $twitter->post('statuses/retweet/'.$tweet_id);
}
return $r;
}
$app->get('/favorite.js', function() use($app) {
$app->response()->header("Content-type", "text/javascript");
if($user=require_login($app, false)) {
@ -300,6 +336,19 @@ $app->post('/favorite', function() use($app) {
}
});
$app->post('/repost', function() use($app) {
if($user=require_login($app)) {
$params = $app->request()->params();
$r = create_repost($user, $params['url']);
$app->response()->body(json_encode(array(
'location' => $r['location'],
'error' => $r['error']
)));
}
});
$app->get('/micropub/syndications', function() use($app) {
if($user=require_login($app)) {
$data = get_syndication_targets($user);