Browse Source

use `file` instead of `photo` for media endpoint

pull/10/head
Aaron Parecki 4 years ago
parent
commit
a67a84a8ba
3 changed files with 22 additions and 7 deletions
  1. +11
    -1
      controllers/controllers.php
  2. +5
    -4
      lib/helpers.php
  3. +6
    -2
      views/new-post.php

+ 11
- 1
controllers/controllers.php View File

@ -291,7 +291,7 @@ $app->post('/post', function() use($app) {
$app->post('/micropub/media', function() use($app) {
if($user=require_login($app)) {
$file = isset($_FILES['photo']) ? $_FILES['photo'] : null;
$file = isset($_FILES['file']) ? $_FILES['file'] : null;
$error = validate_photo($file);
unset($_POST['null']);
@ -309,16 +309,26 @@ $app->post('/micropub/media', function() use($app) {
$url = trim($match[1]);
} else {
$r['error'] = "No 'Location' header in response.";
$r['debug'] = $response;
}
$app->response()['Content-type'] = 'application/json';
$app->response()->body(json_encode(array(
'location' => $url,
'error' => (isset($r['error']) ? $r['error'] : null),
'debug' => (isset($r['debug']) ? $r['debug'] : null),
)));
}
});
$app->get('/micropub/config', function() use($app) {
if($user=require_login($app)) {
$config = get_micropub_config($user);
$app->response()['Content-type'] = 'application/json';
$app->response()->body(json_encode($config));
}
});
$app->get('/options.json', function() use($app) {
if($user=require_login($app)) {
$params = $app->request()->params();

+ 5
- 4
lib/helpers.php View File

@ -132,13 +132,14 @@ function micropub_media_post($endpoint, $access_token, $file) {
curl_setopt($ch, CURLOPT_POST, true);
$post = [
'photo' => new CURLFile($file)
'file' => new CURLFile($file)
];
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$response = curl_exec($ch);
$error = curl_error($ch);
$sent_headers = curl_getinfo($ch, CURLINFO_HEADER_OUT);
@ -185,8 +186,8 @@ function get_micropub_config(&$user) {
$r = micropub_get($user->micropub_endpoint, [], $user->access_token);
if(array_key_exists('media_endpoint', $r['data'])) {
$user->micropub_media_endpoint = $r['data']['media_endpoint'];
if(array_key_exists('media-endpoint', $r['data'])) {
$user->micropub_media_endpoint = $r['data']['media-endpoint'];
$user->save();
}
@ -200,7 +201,7 @@ function build_static_map_url($latitude, $longitude, $height, $width, $zoom) {
}
function static_map_service($query) {
return 'https://atlas.p3k.io/map/img?' . $query;
return 'http://atlas.dev/map/img?' . $query;
}
function relative_time($date) {

+ 6
- 2
views/new-post.php View File

@ -240,21 +240,25 @@ $(function(){
var formData = new FormData();
formData.append("null","null");
formData.append("photo", e.target.files[0]);
formData.append("file", e.target.files[0]);
var request = new XMLHttpRequest();
request.open("POST", "/micropub/media");
request.onreadystatechange = function() {
if(request.readyState == XMLHttpRequest.DONE) {
try {
var response = JSON.parse(request.responseText);
console.log(response);
if(response.location) {
// Replace the file upload form with the URL
replacePhotoWithPhotoURL(response.location);
saveNoteState();
} else {
console.log("Endpoint did not return a location header", response);
$("#remove_photo").click();
$("#note_photo_loading").addClass("hidden");
}
} catch(e) {
$("#remove_photo").click();
$("#note_photo_loading").addClass("hidden");
console.log(e);
}
}

Loading…
Cancel
Save