Aaron Parecki
8 years ago
No known key found for this signature in database
GPG Key ID: 276C2817346D6056
2 changed files with 117 additions and 116 deletions
@ -0,0 +1,117 @@ |
|||
<?php |
|||
|
|||
$app->get('/micropub/syndications', function() use($app) { |
|||
if($user=require_login($app)) { |
|||
$data = get_micropub_config($user, ['q'=>'syndicate-to']); |
|||
$app->response()['Content-type'] = 'application/json'; |
|||
$app->response()->body(json_encode(array( |
|||
'targets' => $data['targets'], |
|||
'response' => $data['response'] |
|||
))); |
|||
} |
|||
}); |
|||
|
|||
$app->post('/micropub/post', function() use($app) { |
|||
if($user=require_login($app)) { |
|||
$params = $app->request()->params(); |
|||
|
|||
// Remove any blank params
|
|||
$params = array_filter($params, function($v){ |
|||
return $v !== ''; |
|||
}); |
|||
|
|||
$r = micropub_post_for_user($user, $params); |
|||
|
|||
$app->response()['Content-type'] = 'application/json'; |
|||
$app->response()->body(json_encode(array( |
|||
'request' => htmlspecialchars($r['request']), |
|||
'response' => htmlspecialchars($r['response']), |
|||
'location' => $r['location'], |
|||
'error' => $r['error'], |
|||
'curlinfo' => $r['curlinfo'] |
|||
))); |
|||
} |
|||
}); |
|||
|
|||
$app->post('/micropub/multipart', function() use($app) { |
|||
if($user=require_login($app)) { |
|||
// var_dump($app->request()->post());
|
|||
//
|
|||
// Since $app->request()->post() with multipart is always
|
|||
// empty (bug in Slim?) We're using the raw $_POST here.
|
|||
// PHP empties everything in $_POST if the file upload size exceeds
|
|||
// that is why we have to test if the variables exist first.
|
|||
|
|||
$file = isset($_FILES['photo']) ? $_FILES['photo'] : null; |
|||
|
|||
if($file) { |
|||
$error = validate_photo($file); |
|||
|
|||
unset($_POST['null']); |
|||
|
|||
if(!$error) { |
|||
$file_path = $file['tmp_name']; |
|||
correct_photo_rotation($file_path); |
|||
$r = micropub_post_for_user($user, $_POST, $file_path); |
|||
} else { |
|||
$r = array('error' => $error); |
|||
} |
|||
} else { |
|||
unset($_POST['null']); |
|||
$r = micropub_post_for_user($user, $_POST); |
|||
} |
|||
|
|||
// Populate the error if there was no location header.
|
|||
if(empty($r['location']) && empty($r['error'])) { |
|||
$r['error'] = "No 'Location' header in response."; |
|||
} |
|||
|
|||
$app->response()['Content-type'] = 'application/json'; |
|||
$app->response()->body(json_encode(array( |
|||
'response' => (isset($r['response']) ? htmlspecialchars($r['response']) : null), |
|||
'location' => (isset($r['location']) ? $r['location'] : null), |
|||
'error' => (isset($r['error']) ? $r['error'] : null), |
|||
))); |
|||
} |
|||
}); |
|||
|
|||
$app->post('/micropub/media', function() use($app) { |
|||
if($user=require_login($app)) { |
|||
$file = isset($_FILES['photo']) ? $_FILES['photo'] : null; |
|||
$error = validate_photo($file); |
|||
unset($_POST['null']); |
|||
|
|||
if(!$error) { |
|||
$file_path = $file['tmp_name']; |
|||
correct_photo_rotation($file_path); |
|||
$r = micropub_media_post_for_user($user, $file_path); |
|||
} else { |
|||
$r = array('error' => $error); |
|||
} |
|||
|
|||
if(empty($r['location']) && empty($r['error'])) { |
|||
$r['error'] = "No 'Location' header in response."; |
|||
} |
|||
|
|||
$app->response()['Content-type'] = 'application/json'; |
|||
$app->response()->body(json_encode(array( |
|||
'location' => (isset($r['location']) ? $r['location'] : null), |
|||
'error' => (isset($r['error']) ? $r['error'] : null), |
|||
))); |
|||
} |
|||
}); |
|||
|
|||
$app->post('/micropub/postjson', function() use($app) { |
|||
if($user=require_login($app)) { |
|||
$params = $app->request()->params(); |
|||
|
|||
$r = micropub_post_for_user($user, json_decode($params['data'], true), null, true); |
|||
|
|||
$app->response()['Content-type'] = 'application/json'; |
|||
$app->response()->body(json_encode(array( |
|||
'location' => $r['location'], |
|||
'error' => $r['error'], |
|||
'response' => $r['response'] |
|||
))); |
|||
} |
|||
}); |
Write
Preview
Loading…
Cancel
Save
Reference in new issue