more comments, some smaller fixes
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
<?php
|
||||
$config = [
|
||||
'mastodon-instance' => 'https://mastodon.social',
|
||||
'user-id' => 379833,
|
||||
'search-url' => 'https?://fsfe.org', // please use https?:// as schema
|
||||
'cache_toots' => 300,
|
||||
'cache_comments' => 300,
|
||||
'debug' => true
|
||||
'mastodon-instance' => 'https://mastodon.social', // URL of your Mastodon instance
|
||||
'user-id' => 379833, // Your Mastodon-ID. A bit tricky to find out, the API might help
|
||||
// the URL of your blog. All toots are searched for this string
|
||||
// please use https?:// as schema
|
||||
'search-url' => 'https?://fsfe.org',
|
||||
'cache_toots' => 300, // seconds to cache toots
|
||||
'cache_comments' => 300, // seconds to cache comments (per ID)
|
||||
'debug' => false // writes some debug messages in error_log
|
||||
];
|
||||
|
||||
@@ -43,7 +43,7 @@ $(document).ready(function() {
|
||||
} else {
|
||||
$("#comments").empty();
|
||||
$("#statistics").empty();
|
||||
$("#reference").append("Comments are handled by my <a href='" + MastodonUser + "'>Mastodon account</a>. Sadly this article wasn't published at Mastodon. Feel free to <a href='" + CommentsContact + "/'>send me a mail</a> if you want to share your thoughts regarding this topic.");
|
||||
$("#reference").append("Comments are handled by my <a href='" + MastodonUser + "'>Mastodon account</a>. Sadly this article wasn't published at Mastodon. Feel free to <a href='" + CommentsContact + "'>send me a mail</a> if you want to share your thoughts regarding this topic.");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
/* load config. You normally don't want to edit something here */
|
||||
require_once 'config.php';
|
||||
$instance = $config['mastodon-instance'];
|
||||
$uid = $config['user-id'];
|
||||
@@ -78,20 +79,22 @@ function collectToots($instance, $uid, $min_id, $searchurl) {
|
||||
}
|
||||
/* Find out if a toot contains the searched URL */
|
||||
function analyzeToot($instance, $id, $searchurl) {
|
||||
//debug("Searching for $searchurl in $id");
|
||||
debug("Searching for $searchurl in $id");
|
||||
$raw = file_get_contents("$instance/api/v1/statuses/$id");
|
||||
$json = json_decode($raw, true);
|
||||
|
||||
// search for $searchurl inside of <a> tags, until (and excluding) a "
|
||||
preg_match("|$searchurl.+?(?=\")|i", $json['content'], $matches);
|
||||
|
||||
if(!empty($matches)) {
|
||||
return(strtolower($matches[0]));
|
||||
return(strtolower($matches[0])); // take first match inside toot
|
||||
} else {
|
||||
return("");
|
||||
}
|
||||
}
|
||||
/* of context, extract the interesting bits */
|
||||
function filterComments($descendants, $root, &$result) {
|
||||
// go through each comment
|
||||
foreach ($descendants as $d) {
|
||||
$result['comments'][$d['id']] = [
|
||||
'author' => [
|
||||
@@ -182,7 +185,7 @@ if ($cachebreak) {
|
||||
debug("Toots cache is up-to-date");
|
||||
}
|
||||
|
||||
/* prepare $result array */
|
||||
/* prepare empty $result array with structure */
|
||||
$result = ['comments' => [], 'stats' => ['reblogs' => 0, 'favs' => 0, 'replies' => 0, 'url' => '', 'root' => 0]];
|
||||
|
||||
/* check if URL from $search exists in $toots */
|
||||
@@ -190,7 +193,7 @@ $id = array_keys(array_column($toots, 'url'), strtolower($search));
|
||||
if (empty($id)) {
|
||||
debug("Blog URL \"$search\" has not been found");
|
||||
} else {
|
||||
// if multiple exist, take the oldest one (highest array position)
|
||||
// if multiple toots with the searched URL exist, take the oldest one (largest array index)
|
||||
$id = $toots[end($id)]['id'];
|
||||
|
||||
/* read cached comments, or reload new comments if cached data too old */
|
||||
@@ -219,6 +222,7 @@ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
// headers to tell that result is JSON
|
||||
header('Content-type: application/json');
|
||||
|
||||
// actually output result as JSON, to be digested by getcomments.js
|
||||
echo json_encode($result);
|
||||
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user