summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--composer.json3
-rw-r--r--composer.lock190
-rw-r--r--controllers/controllers.php39
3 files changed, 217 insertions, 15 deletions
diff --git a/composer.json b/composer.json
index e28372d..4be0552 100644
--- a/composer.json
+++ b/composer.json
@@ -14,7 +14,8 @@
"p3k/multipart": ">=0.2.0",
"tantek/cassis": "*",
"p3k/timezone": "*",
- "gajus/dindent": "^2.0"
+ "gajus/dindent": "^2.0",
+ "p3k/xray": "^1.3"
},
"autoload": {
"files": [
diff --git a/composer.lock b/composer.lock
index 92b06cf..b039686 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "content-hash": "349372b9e3a8017912dde4df82c46eb3",
+ "content-hash": "26d324e17ac5eeecdeaae4ff4e279213",
"packages": [
{
"name": "abraham/twitteroauth",
@@ -144,6 +144,108 @@
"time": "2014-10-06T23:11:15+00:00"
},
{
+ "name": "cebe/markdown",
+ "version": "1.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cebe/markdown.git",
+ "reference": "25b28bae8a6f185b5030673af77b32e1163d5c6e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cebe/markdown/zipball/25b28bae8a6f185b5030673af77b32e1163d5c6e",
+ "reference": "25b28bae8a6f185b5030673af77b32e1163d5c6e",
+ "shasum": ""
+ },
+ "require": {
+ "lib-pcre": "*",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "cebe/indent": "*",
+ "facebook/xhprof": "*@dev",
+ "phpunit/phpunit": "4.1.*"
+ },
+ "bin": [
+ "bin/markdown"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "cebe\\markdown\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Carsten Brandt",
+ "email": "mail@cebe.cc",
+ "homepage": "http://cebe.cc/",
+ "role": "Creator"
+ }
+ ],
+ "description": "A super fast, highly extensible markdown parser for PHP",
+ "homepage": "https://github.com/cebe/markdown#readme",
+ "keywords": [
+ "extensible",
+ "fast",
+ "gfm",
+ "markdown",
+ "markdown-extra"
+ ],
+ "time": "2017-07-16T21:13:23+00:00"
+ },
+ {
+ "name": "dg/twitter-php",
+ "version": "v3.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dg/twitter-php.git",
+ "reference": "dd872ad12121ff919b358989e61f7f08ba6cc7a8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dg/twitter-php/zipball/dd872ad12121ff919b358989e61f7f08ba6cc7a8",
+ "reference": "dd872ad12121ff919b358989e61f7f08ba6cc7a8",
+ "shasum": ""
+ },
+ "require": {
+ "ext-curl": "*",
+ "php": ">=5.2.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ }
+ ],
+ "description": "Small and easy Twitter library for PHP",
+ "homepage": "https://github.com/dg/twitter-php",
+ "keywords": [
+ "oauth",
+ "twitter"
+ ],
+ "time": "2016-08-15T16:46:22+00:00"
+ },
+ {
"name": "ezyang/htmlpurifier",
"version": "v4.9.3",
"source": {
@@ -573,6 +675,44 @@
"time": "2015-12-24T12:43:04+00:00"
},
{
+ "name": "p3k/http",
+ "version": "0.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/aaronpk/p3k-http.git",
+ "reference": "3740fe135e6d58457d7528e7c05a67b68e020a79"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/aaronpk/p3k-http/zipball/3740fe135e6d58457d7528e7c05a67b68e020a79",
+ "reference": "3740fe135e6d58457d7528e7c05a67b68e020a79",
+ "shasum": ""
+ },
+ "require": {
+ "indieweb/link-rel-parser": "0.1.*",
+ "mf2/mf2": "0.3.*"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "p3k\\": "src/p3k"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Aaron Parecki",
+ "homepage": "https://aaronparecki.com"
+ }
+ ],
+ "description": "A simple wrapper API around the PHP curl functions",
+ "homepage": "https://github.com/aaronpk/p3k-http",
+ "time": "2017-04-29T17:43:29+00:00"
+ },
+ {
"name": "p3k/multipart",
"version": "0.2.0",
"source": {
@@ -651,6 +791,52 @@
"time": "2017-01-12T17:30:08+00:00"
},
{
+ "name": "p3k/xray",
+ "version": "v1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/aaronpk/XRay.git",
+ "reference": "a37ed3bbaeec5ddb51d6a6ae285c5ab608d31978"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/aaronpk/XRay/zipball/a37ed3bbaeec5ddb51d6a6ae285c5ab608d31978",
+ "reference": "a37ed3bbaeec5ddb51d6a6ae285c5ab608d31978",
+ "shasum": ""
+ },
+ "require": {
+ "cebe/markdown": "1.1.*",
+ "dg/twitter-php": "3.6.*",
+ "ezyang/htmlpurifier": "4.*",
+ "indieweb/link-rel-parser": "0.1.*",
+ "mf2/mf2": "^0.3.2",
+ "p3k/http": "0.1.*",
+ "p3k/timezone": "*"
+ },
+ "require-dev": {
+ "league/plates": "3.*",
+ "league/route": "1.*",
+ "phpunit/phpunit": "4.8.*"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "p3k\\XRay\\": "lib/XRay"
+ },
+ "files": [
+ "lib/helpers.php",
+ "lib/XRay.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "X-Ray returns structured data from any URL",
+ "homepage": "https://github.com/aaronpk/XRay",
+ "time": "2017-09-22T19:35:08+00:00"
+ },
+ {
"name": "saltybeagle/savant3",
"version": "dev-master",
"source": {
@@ -683,7 +869,7 @@
}
],
"description": "Savant3 template engine",
- "time": "2014-01-07 17:10:32"
+ "time": "2014-01-07T17:10:32+00:00"
},
{
"name": "slim/slim",
diff --git a/controllers/controllers.php b/controllers/controllers.php
index 571690e..b097bad 100644
--- a/controllers/controllers.php
+++ b/controllers/controllers.php
@@ -511,6 +511,25 @@ $app->get('/settings/html-content', function() use($app) {
}
});
+$app->get('/view', function() use($app) {
+ if($user=require_login($app)) {
+ $params = $app->request()->params();
+
+ $xray = new p3k\XRay();
+ $result = $xray->parse($params['url']);
+ if(isset($result['data']))
+ $entry = $result['data'];
+ else
+ $entry = [];
+
+ render('view-post', array(
+ 'title' => 'View',
+ 'entry' => $entry,
+ 'authorizing' => false
+ ));
+ }
+});
+
function create_favorite(&$user, $url) {
$tweet_id = false;
@@ -678,25 +697,21 @@ $app->get('/reply/preview', function() use($app) {
$entry = false;
- $xray = [
- 'url' => $reply_url
- ];
+ $xray_opts = [];
if(preg_match('/twitter\.com\/(?:[^\/]+)\/statuse?s?\/(.+)/', $reply_url, $match)) {
if($user->twitter_access_token) {
- $xray['twitter_api_key'] = Config::$twitterClientID;
- $xray['twitter_api_secret'] = Config::$twitterClientSecret;
- $xray['twitter_access_token'] = $user->twitter_access_token;
- $xray['twitter_access_token_secret'] = $user->twitter_token_secret;
+ $xray_opts['twitter_api_key'] = Config::$twitterClientID;
+ $xray_opts['twitter_api_secret'] = Config::$twitterClientSecret;
+ $xray_opts['twitter_access_token'] = $user->twitter_access_token;
+ $xray_opts['twitter_access_token_secret'] = $user->twitter_token_secret;
}
}
// Pass to X-Ray to see if it can expand the entry
- $ch = curl_init('https://xray.p3k.io/parse');
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($xray));
- $response = curl_exec($ch);
- $data = @json_decode($response, true);
+ $xray = new p3k\XRay();
+ $xray->http = new p3k\HTTP('Quill ('.Config::$base_url.')');
+ $data = $xray->parse($reply_url, $xray_opts);
if($data && isset($data['data'])) {
if($data['data']['type'] == 'entry') {
$entry = $data['data'];