🔥 Remove the remote-content plugin

This commit is contained in:
Kazhnuz 2025-07-03 11:02:59 +02:00
parent 9a4e606607
commit e76f511738
13 changed files with 0 additions and 336 deletions

View file

@ -1,10 +0,0 @@
{
"complete-url-of-the-zip-file": "Den komplette URL sti, til der hvor zip filen befinder sig.",
"plugin-data": {
"description": "Denne udvidelse giver en nem måde at få indholdet fra dit websted uploadet til Github eller lignende service, og være fuld synkroniseret med din Koblog installation.",
"name": "Remote Content"
},
"source": "Kilde",
"try-webhook": "Prøv webhook'et",
"webhook": "Webhook"
}

View file

@ -1,10 +0,0 @@
{
"plugin-data":
{
"name": "Remote Content",
"description": "Das Plugin snychronisiert die Inhalte eines Repository wie GitHub mit einer Koblog-Installation."
},
"webhook": "Webhook",
"source": "Quelle",
"try-webhook": "Webhook testen",
"complete-url-of-the-zip-file": "Vollständiger URL des ZIP-Archivs."}

View file

@ -1,10 +0,0 @@
{
"plugin-data":
{
"name": "Remote Content",
"description": "Das Plugin snychronisiert die Inhalte eines Repository wie GitHub mit einer Koblog-Installation."
},
"webhook": "Webhook",
"source": "Quelle",
"try-webhook": "Webhook testen",
"complete-url-of-the-zip-file": "Vollständiger URL des ZIP-Archivs."}

View file

@ -1,11 +0,0 @@
{
"plugin-data":
{
"name": "Remote Content",
"description": "This plugin provides an easy way to have the content of your site on Github or similar and in turn is synchronized with your Koblog."
},
"webhook": "Webhook",
"source": "Source",
"try-webhook": "Try webhook",
"complete-url-of-the-zip-file": "Complete URL of the zip file."
}

View file

@ -1,11 +0,0 @@
{
"plugin-data":
{
"name": "Contenido remoto",
"description": "Este plugin provee una forma facil de tener el contenido de tu sitio en Github o similar y a su vez esta sincronizado con tu Koblog."
},
"webhook": "Webhook",
"source": "Origen",
"try-webhook": "Probar webhook",
"complete-url-of-the-zip-file": "URL completa del archivo zip."
}

View file

@ -1,11 +0,0 @@
{
"plugin-data":
{
"name": "محتوای راه دور",
"description": "این افزونه یک راه آسان برای داشتن محتوای سایت شما در Github یا مشابه دارد و به نوبه خود، با بلودیت شما هماهنگ شده است ."
},
"webhook": "Webhook",
"source": "منبع",
"try-webhook": "امتحان webhook",
"complete-url-of-the-zip-file": "آدرس وب کامل فایل زیپ."
}

View file

@ -1,11 +0,0 @@
{
"plugin-data":
{
"name": "Contenu distant",
"description": "Ce plugin fournit un moyen facile d'avoir le contenu de votre site sur Github ou similaire et à son tour est synchronisé avec votre Koblog."
},
"webhook": "Webhook",
"source": "Source",
"try-webhook": "Tester le webhook",
"complete-url-of-the-zip-file": "URL complète du fichier zip."
}

View file

@ -1,11 +0,0 @@
{
"plugin-data":
{
"name": "Contenuto remoto",
"description": "Questo plugin offre un modo semplice di avere il contenuto del proprio sito su Github e simili e di tenerli sincronizzati con Koblog."
},
"webhook": "Webhook",
"source": "Sorgente",
"try-webhook": "Prova webhook",
"complete-url-of-the-zip-file": "URL completo del file zipe."
}

View file

@ -1,11 +0,0 @@
{
"plugin-data":
{
"name": "Remote Content",
"description": "This plugin provides an easy way to have the content of your site on Github or similar and in turn is synchronized with your Koblog."
},
"webhook": "Webhook",
"source": "ソース",
"try-webhook": "Try webhook",
"complete-url-of-the-zip-file": "Complete URL of the zip file."
}

View file

@ -1,11 +0,0 @@
{
"plugin-data":
{
"name": "Externe Inhoud",
"description": "Met deze plugin is het eenvoudig om inhoud voor de website op GitHub of soortgelijke bronnen te beheren en vervolgens te synchroniseren met Koblog."
},
"webhook": "Web-hook",
"source": "Bron",
"try-webhook": "Web-hook testen",
"complete-url-of-the-zip-file": "Complete URL van het .zip-bestand."
}

View file

@ -1,11 +0,0 @@
{
"plugin-data":
{
"name": "Remote Content",
"description": "Этот плагин обеспечивает простой способ синхронизации вашего сайта и Github или аналогичной платформы."
},
"webhook": "Вебхук",
"source": "Источник",
"try-webhook": "Попробовать этот вебхук",
"complete-url-of-the-zip-file": "Полный URL-адрес zip-файла."
}

View file

@ -1,10 +0,0 @@
{
"author": "Koblog",
"email": "",
"website": "https://plugins.koblog.com/plugin/remote-content",
"version": "kb_0.0.1",
"releaseDate": "2024-08-23",
"license": "MIT",
"compatible": "kb_0.0.1",
"notes": ""
}

View file

@ -1,208 +0,0 @@
<?php
class pluginRemoteContent extends Plugin
{
public function init()
{
// Generate a random string for the webhook
$randomWebhook = uniqid();
// Key and value for the database of the plugin
$this->dbFields = array(
'webhook' => $randomWebhook,
'source' => ''
);
}
public function form()
{
global $language;
if (extension_loaded('zip') === false) {
$this->formButtons = false;
return '<div class="alert alert-success">' . $language->get('the-extension-zip-is-not-installed') . '</div>';
}
$html = '<div>';
$html .= '<label>' . $language->get('Webhook') . '</label>';
$html .= '<input id="jswebhook" name="webhook" type="text" dir="auto" value="' . $this->getValue('webhook') . '">';
$html .= '<span class="tip">' . DOMAIN_BASE . $this->getValue('webhook') . '</span>';
$html .= '</div>';
$html .= '<div>';
$html .= '<label>' . $language->get('Source') . '</label>';
$html .= '<input id="jssource" name="source" type="text" dir="auto" value="' . $this->getValue('source') . '" placeholder="https://">';
$html .= '<span class="tip">' . $language->get('Complete URL of the zip file') . '</span>';
$html .= '</div>';
$html .= '<hr>';
$html .= '<div>';
$html .= '<button type="button" id="jstryWebhook" class="btn btn-primary" onclick="tryWebhook()">' . $language->get('Try webhook') . '</button>';
$html .= <<<EOF
<script>
function tryWebhook() {
var webhook = document.getElementById("jswebhook").value;
window.open(DOMAIN_BASE+webhook, '_blank');
}
</script>
EOF;
$html .= '</div>';
return $html;
}
public function beforeAll()
{
// Check Webhook
$webhook = $this->getValue('webhook');
if ($this->webhook($webhook)) {
$this->cleanUp();
// Download files
$this->downloadFiles();
// Delete the current content
$this->deleteContent();
// Generate the new content
$this->generateContent();
// End request
$this->response(array('status' => '0'));
}
}
private function downloadFiles()
{
// Download the zip file
Log::set('Plugin Remote Content' . LOG_SEP . 'Downloading the zip file.');
$source = $this->getValue('source');
$destinationPath = $this->workspace();
$destinationFile = $destinationPath . 'content.zip';
TCP::download($source, $destinationFile);
// Uncompress the zip file
Log::set('Plugin Remote Content' . LOG_SEP . 'Uncompress the zip file.');
$zip = new ZipArchive;
if ($zip->open($destinationFile) === true) {
$zip->extractTo($destinationPath);
$zip->close();
}
// Delete the zip file
unlink($destinationFile);
return true;
}
// Delete the page and uploads directories from bl-content
private function deleteContent()
{
// Clean the page database
global $pages;
$pages->db = array();
Filesystem::deleteRecursive(PATH_PAGES);
Filesystem::deleteRecursive(PATH_UPLOADS);
mkdir(PATH_PAGES, DIR_PERMISSIONS, true);
mkdir(PATH_UPLOADS, DIR_PERMISSIONS, true);
mkdir(PATH_UPLOADS_PROFILES, DIR_PERMISSIONS, true);
mkdir(PATH_UPLOADS_THUMBNAILS, DIR_PERMISSIONS, true);
return true;
}
private function cleanUp()
{
$workspace = $this->workspace();
Filesystem::deleteRecursive($workspace . DS);
mkdir($workspace, DIR_PERMISSIONS, true);
return true;
}
private function generateContent()
{
global $pages;
$root = Filesystem::listDirectories($this->workspace());
$root = $root[0]; // first directory created by the unzip
// For each page inside the pages directory
// Parse the page and add to the database
if (Filesystem::directoryExists($root . DS . 'pages')) {
$parentList = Filesystem::listDirectories($root . DS . 'pages' . DS);
foreach ($parentList as $parentDirectory) {
$parentKey = basename($parentDirectory);
if (Filesystem::fileExists($parentDirectory . DS . 'index.md')) {
$row = $this->parsePage($parentDirectory . DS . 'index.md');
$row['slug'] = $parentKey;
$pages->add($row);
}
$childList = Filesystem::listDirectories($parentDirectory . DS);
foreach ($childList as $childDirectory) {
$childKey = basename($childDirectory);
if (Filesystem::fileExists($childDirectory . DS . 'index.md')) {
$row = $this->parsePage($childDirectory . DS . 'index.md');
$row['slug'] = $childKey;
$row['parent'] = $parentKey;
$pages->add($row);
}
}
}
Theme::plugins('afterPageCreate');
reindexCategories();
reindexTags();
reindexAuthors();
reindexArchives();
reindexKinds();
}
return true;
}
private function response($data = array())
{
$json = json_encode($data);
header('Content-Type: application/json');
exit($json);
}
private function parsePage($filename)
{
$lines = file($filename);
$row = array();
// Title
$title = ltrim($lines[0], '#'); // Remove the first #
$title = trim($title);
unset($lines[0]);
$row['title'] = $title;
foreach ($lines as $key => $line) {
if (Text::startsWith($line, '<!--')) {
$line = preg_replace('/<!\-\-/', '', $line);
$line = preg_replace('/\-\->/', '', $line);
$line = trim($line);
$explode = $explode = explode(':', $line, 2);
//$field = Text::lowercase($explode[0]);
$field = $explode[0];
$field = trim($field);
unset($explode[0]);
$row[$field] = trim($explode[1]);
unset($lines[$key]);
} else {
break;
}
}
$row['content'] = implode($lines);
$row['username'] = 'admin';
return $row;
}
}