diff --git a/lib/Controller/YoutubeController.php b/lib/Controller/YoutubeController.php
index b9d87ab..549041a 100644
--- a/lib/Controller/YoutubeController.php
+++ b/lib/Controller/YoutubeController.php
@@ -50,7 +50,7 @@ class YoutubeController extends Controller
$folderLink = $this->urlGenerator->linkToRoute('files.view.index', $params);
foreach ($data as $value) {
$tmp = [];
- $extra = unserialize($value['data']);
+ $extra = $this->dbconn->getExtra($value["data"]);
$filename = sprintf('%s', $folderLink, $value['filename']);
$fileInfo = sprintf('
%s | % s
', $extra['link'], $value['filesize'], date("Y-m-d H:i:s", $value['timestamp']));
$tmp['filename'] = array($filename, $fileInfo);
@@ -117,7 +117,7 @@ class YoutubeController extends Controller
}
$row = $this->dbconn->getByGid($gid);
- $data = unserialize($row['data']);
+ $data = $this->dbconn->getExtra($value["data"]);;
if (!isset($data['pid'])) {
if ($this->dbconn->deleteByGid($gid)) {
$msg = sprintf("%s is deleted from database!", $gid);
@@ -152,7 +152,7 @@ class YoutubeController extends Controller
return new JSONResponse(['error' => "no gid value is received!"]);
}
$row = $this->dbconn->getByGid($gid);
- $data = unserialize($row['data']);
+ $data = $this->dbconn->getExtra($row["data"]);
if (!empty($data['link'])) {
//$this->dbconn->deleteByGid($gid);
$resp = $this->youtube->forceIPV4()->download($data['link']);
diff --git a/lib/Tools/DbHelper.php b/lib/Tools/DbHelper.php
index 55f7e55..6019864 100644
--- a/lib/Tools/DbHelper.php
+++ b/lib/Tools/DbHelper.php
@@ -124,4 +124,18 @@ class DbHelper
return $query->execute();
}
+ public function getDBType(): string
+ {
+ return \OC::$server->getConfig()->getSystemValue('dbtype', "mysql");
+ }
+
+ public function getExtra($data)
+ {
+ if ($this->getDBType() == "pgsql" && is_resource($data)) {
+ $extra = pg_unescape_bytea(stream_get_contents($data));
+ return unserialize($extra);
+ }
+ return unserialize($data);
+ }
+
}
diff --git a/lib/Tools/YoutubeHelper.php b/lib/Tools/YoutubeHelper.php
index 821938c..b8d66da 100644
--- a/lib/Tools/YoutubeHelper.php
+++ b/lib/Tools/YoutubeHelper.php
@@ -57,6 +57,10 @@ class YoutubeHelper
$this->gid = Helper::generateGID($extra['link']);
$file = $this->getFilePath($buffer);
if ($file) {
+ $extra = serialize($extra);
+ if($this->dbconn->getDBType() == "pgsql"){
+ $extra = pg_escape_bytea($extra);
+ }
$data = [
'uid' => $this->user,
'gid' => $this->gid,
@@ -64,7 +68,7 @@ class YoutubeHelper
'filename' => basename($file),
'status' => Helper::STATUS['ACTIVE'],
'timestamp' => time(),
- 'data' => serialize($extra),
+ 'data' => $extra,
];
//save the filename as this runs only once
$this->file = $file;