Initial commit

This commit is contained in:
Joey Kimsey
2024-08-04 21:15:59 -04:00
parent c9d1fb983f
commit 0d469501ee
695 changed files with 70184 additions and 71 deletions

View File

@ -0,0 +1,280 @@
<?php
/**
* app/plugins/notes/controllers/notes.php
*
* This is the notes controller.
*
* @package TP Notes
* @version 3.0
* @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE]
*/
namespace TheTempusProject\Controllers;
use TheTempusProject\Classes\Controller;
use TheTempusProject\Classes\Plugin;
use TheTempusProject\Houdini\Classes\Views;
use TheTempusProject\Houdini\Classes\Template;
use TheTempusProject\Bedrock\Functions\Input;
use TheTempusProject\Bedrock\Functions\Date;
use TheTempusProject\TheTempusProject as App;
class Testing extends Controller {
protected static $notes;
protected static $notebooks;
public function __construct() {
parent::__construct();
self::$title = 'Testing- {SITENAME}';
self::$pageDescription = 'On this page you can create and manage tasks and lists.';
Template::setTemplate( 'testing' );
}
public function plugins() {
$filesharePlugin = 'TheTempusProject\Plugins\Contacts';
if ( class_exists( $filesharePlugin ) ) {
$plugins = new $filesharePlugin;
$x = $plugins->checkEnabled();
dv( $x );
}
}
// Example usage
public function dates() {
$timezone = Date::getTimezone();
$currentTime = time();
$out = date( 'H:i:s F d, Y', $currentTime );
dv( $out );
$currentDate = date( 'F d, Y', strtotime($currentTime) );
// Post
$time = Input::exists('time') ? Input::post('time') : '00:00';
$date = Input::exists('date') ? Input::post('date') : $currentDate;
// Get
$hour = Input::exists('hour') ? Input::get('hour') : '00';
$minute = Input::exists('minute') ? Input::get('minute') : '00';
$day = Input::exists('day') ? Input::get('day') : date( 'd', $currentTime );
$month = Input::exists('month') ? Input::get('month') : date( 'M', $currentTime );
$year = Input::exists('year') ? Input::get('year') : date( 'Y', $currentTime );
// Views::view( 'testing.testing' );
}
public function index() {
Views::view( 'testing.testing' );
}
public function timeTools() {
Views::view( 'testing.time' );
}
public function testBA() {
Views::view( 'testing.test2' );
}
public function generate_uuid() {
$data = random_bytes(16);
$data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0100
$data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
// $uuid = generate_uuid();
// echo $uuid;
}
public function unshortener() {
// Example usage
$shortUrl = "http://bit.ly/example";
$finalUrl = resolveShortenedUrl($shortUrl);
echo "Final URL: " . $finalUrl;
Views::view( 'testing.test2' );
}
public function getUrlInfo() {
// Example usage
// $url = "https://www.google.com/intl/en/gmail/about/";
$url = "https://gmail.com";
// $url = "https://twitter.com/";
// $url = "https://x.com/";
// $url = "https://www.google.com/";
// $url = "https://www.apple.com/";
// $url = "https://www.php.net/manual/en/function.get-meta-tags.php";
// $url = "http://192.168.1.194:8028/";
$outUrl = $this->resolveShortenedUrl($url);
$outUrl = urldecode($outUrl);
$array = explode( '?', $outUrl );
$url = $array[0];
$params = explode( '&', $array[1] );
// echo "Decoded URL: $decoded_url";
dv( $params );
$metaInfo = $this->getMetaTagsAndFavicon($url);
// echo "Title: " . $metaInfo['title'] . "\n";
// echo "Description: " . $metaInfo['description'] . "\n";
// echo "Image: " . $metaInfo['image'] . "\n";
// echo "Favicon: " . $metaInfo['favicon'] . "\n";
}
private function getMetaTagsAndFavicon($url) {
// $url = 'https://www.google.com';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
curl_close($ch);
// dv( $html );
if ($html === false) {
return null;
}
// Fetch the HTML content of the URL
// $html = file_get_contents($url);
$meta = get_meta_tags( $url );
// $url = 'http://example.com/';
$dom = new \DOMDocument('1.0', 'utf-8');
$dom->strictErrorChecking = false;
$dom->loadHTML($html, LIBXML_NOERROR);
// $dom->loadHTML( $html );
$xml = simplexml_import_dom($dom);
$arr = $xml->xpath('//link[@rel="shortcut icon"]');
// dv('here');
if ( isset($arr) && is_array( $arr ) && isset($arr[0]) && is_array( $arr[0] )) {
// echo $arr[0]['href'];
}
// dv( $arr );
// Check if the HTML was successfully fetched
// if ($html === false) {
// return null;
// }
// $html = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
// Create a DOMDocument and load the HTML
// @ $dom->loadHTML($html);
// $xml = simplexml_import_dom($doc);
// $arr = $xml->xpath('//link[@rel="shortcut icon"]');
// Initialize the array to hold the meta information
$metaInfo = [
'title' => null,
'description' => null,
'image' => null,
'favicon' => null
];
// Get the title of the page
$titles = $dom->getElementsByTagName('title');
if ($titles->length > 0) {
$metaInfo['title'] = $titles->item(0)->nodeValue;
}
// Get the meta tags
$metaTags = $dom->getElementsByTagName('meta');
$metadata = [];
// dv( $metaTags );
foreach ($metaTags as $meta) {
$metadata[] = [
'name' => $meta->getAttribute('name'),
'property' => $meta->getAttribute('property'),
'content' => $meta->getAttribute('content')
];
if ($meta->getAttribute('name') === 'description') {
$metaInfo['description'] = $meta->getAttribute('content');
}
if ($meta->getAttribute('itemprop') === 'image') {
$metaInfo['google_image'] = $meta->getAttribute('content');
}
if ($meta->getAttribute('property') === 'og:image') {
$metaInfo['image'] = $meta->getAttribute('content');
}
}
// Get the link tags to find the favicon
$linkTags = $dom->getElementsByTagName('link');
$metadata['links'] = [];
foreach ($linkTags as $link) {
$metadata['links'][] = [ $link->getAttribute('rel') => $link->getAttribute('href') ];
if ($link->getAttribute('rel') === 'icon' || $link->getAttribute('rel') === 'shortcut icon') {
$metaInfo['favicon'] = $link->getAttribute('href');
break;
}
}
$metaInfo['metadata'] = $metadata;
dv( $metaInfo );
return $metaInfo;
}
private function resolveShortenedUrl($url) {
// Initialize the headers array
$headers = get_headers($url, 1);
// Check if the 'Location' header exists
if ( isset( $headers['Location'] ) ) {
// If there are multiple 'Location' headers, get the last one
if (is_array($headers['Location'])) {
return end($headers['Location']);
} else {
return $headers['Location'];
}
} else {
return $url; // No redirection, return the original URL
}
}
}