parse_url: recognize image/video/audio files + move functions into own class

This commit is contained in:
rabuzarus 2016-11-24 01:11:22 +01:00
parent 0628068977
commit e9226eaf45
5 changed files with 625 additions and 486 deletions

View file

@ -1,6 +1,15 @@
<?php
/**
* @file include/plaintext.php
*/
use \Friendica\ParseUrl;
require_once("include/Photo.php");
require_once("include/bbcode.php");
require_once("include/html2plain.php");
require_once("include/network.php");
/**
* @brief Fetches attachment data that were generated the old way
@ -181,20 +190,17 @@ function get_attached_data($body) {
// if nothing is found, it maybe having an image.
if (!isset($post["type"])) {
require_once("mod/parse_url.php");
require_once("include/Photo.php");
$URLSearchString = "^\[\]";
if (preg_match_all("(\[url=([$URLSearchString]*)\]\s*\[img\]([$URLSearchString]*)\[\/img\]\s*\[\/url\])ism", $body, $pictures, PREG_SET_ORDER)) {
if (count($pictures) == 1) {
// Checking, if the link goes to a picture
$data = parseurl_getsiteinfo_cached($pictures[0][1], true);
$data = ParseUrl::getSiteinfoCached($pictures[0][1], true);
// Workaround:
// Sometimes photo posts to the own album are not detected at the start.
// So we seem to cannot use the cache for these cases. That's strange.
if (($data["type"] != "photo") AND strstr($pictures[0][1], "/photos/"))
$data = parseurl_getsiteinfo($pictures[0][1], true);
$data = ParseUrl::getSiteinfo($pictures[0][1], true);
if ($data["type"] == "photo") {
$post["type"] = "photo";
@ -246,8 +252,7 @@ function get_attached_data($body) {
$post["text"] = trim($body);
}
} elseif (isset($post["url"]) AND ($post["type"] == "video")) {
require_once("mod/parse_url.php");
$data = parseurl_getsiteinfo_cached($post["url"], true);
$data = ParseUrl::getSiteinfoCached($post["url"], true);
if (isset($data["images"][0]))
$post["image"] = $data["images"][0]["src"];
@ -288,9 +293,6 @@ function shortenmsg($msg, $limit, $twitter = false) {
* @return string The converted message
*/
function plaintext($a, $b, $limit = 0, $includedlinks = false, $htmlmode = 2, $target_network = "") {
require_once("include/bbcode.php");
require_once("include/html2plain.php");
require_once("include/network.php");
// Remove the hash tags
$URLSearchString = "^\[\]";