General / Allgemeines > Programming

Übergabe von Containerlinks (Name)

<< < (2/2)

Rembrandt:
Hi!

So ich habe einmal was zusammen gestellt, vorweg es gibt natürlich mehrere Möglichkeiten um ans Ziel zu kommen.
Der Code sieht im ersten Moment aufwendiger aus, hat aber den Vorteil wenn du einen weiteren Anbieter nutzen möchtest kannst du in der "function shareLink"  ganz einfach ein weiteres "case" anlegen.

1.) die beiden functionen in die Datei "includes/functions.php" vor "?>" hinein kopieren.

function curlSharelink($shareLinkUrl, $shareLinkArray, $shareLinkReturn){
  $cInit = curl_init();
  curl_setopt($cInit, CURLOPT_URL, $shareLinkUrl);
  curl_setopt($cInit, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt($cInit, CURLOPT_POST, 1); 
  curl_setopt($cInit, CURLOPT_FOLLOWLOCATION, 1); 
  curl_setopt($cInit, CURLOPT_POSTFIELDS, $shareLinkArray); 
  $downloadName = explode(';', curl_exec($cInit));
  curl_close($cInit); 
  return $downloadName[$shareLinkReturn];
}

function shareLink($shareLinkUrl, $image_name=''){
  if($shareLinkUrl){
    $shareLink = parse_url($shareLinkUrl, PHP_URL_HOST);

    switch ($shareLink) {
      case ($shareLink == "share-links.biz") :
        $folderCodes = str_replace('http://share-links.biz/_', '', $shareLinkUrl);   
        $shareLinkArray = array(    
          'apikey' => '2ed183155346a56a',
          'folderCodes' => $folderCodes
        );
        $shareLinkReturn = 1;
      return curlSharelink($shareLinkUrl, $shareLinkArray, $shareLinkReturn);
      break;
      
      case ($shareLink == "ncrypt.in") :
        $shareLinkArray = array(
          'link' => $shareLinkUrl
        );
        $shareLinkReturn = 4;
      return curlSharelink($shareLinkUrl, $shareLinkArray, $shareLinkReturn);
      break;
      
      default:
      return $image_name;
      break; 
    }
  }
  else{
    return $image_name;
  }
}


2.)  suche in der member.php in der section "($action == "uploadimage")":

$upload_cat = ($direct_upload) ? $cat_id : 0;

und füge darunter ein:

$image_name = shareLink($remote_media_file,$image_name);


Testen konnte ich es nicht, da ich auf diesen Seiten keinen Zugang habe.
Aber ich nehme mal an das wenn du dir den Code der beiden "functionen" ansiehst wirst du ihn verstehen und gegeben falls korrigieren können.

mfg Andi

.Infecto:
Vielen vielen Dank.
Das werde ich die Tage testen und melde mich mit einem Feedback zurück!

Rembrandt:
Na da bin ich schon gespannt ob es funktioniert .  :)

.Infecto:
Das denke ich mir.
Bisher habe ich das so gelöst, einwandfrei.

                $sldl = str_replace(SHARELINKZBIZ_FOLDERKEY, '', $image_download_url);
                
                if ($image_download_url == SHARELINKZBIZ_FOLDERKEY . $sldl . '') {
                    $sl_curl = curl_init();
                    curl_setopt($sl_curl, CURLOPT_URL, SHARELINKZBIZ);
                    curl_setopt($sl_curl, CURLOPT_RETURNTRANSFER, 1);
                    curl_setopt($sl_curl, CURLOPT_POST, 1);
                    curl_setopt($sl_curl, CURLOPT_FOLLOWLOCATION, 1);
                    $array = array(
                        'apikey' => 'xxx',
                        'folderCode' => $sldl
                    );
                    curl_setopt($sl_curl, CURLOPT_POSTFIELDS, $array);
                    $sl_echo = explode(';', curl_exec($sl_curl));
                    curl_close($sl_curl);
                    if ($config['container_name'] == 0) {
                        $image_filesize = byte_umrechner($sl_echo[2]);
                        $image_provider = $sl_echo[3];
                    } else {
                        $sls_curl = curl_init();
                        curl_setopt($sls_curl, CURLOPT_URL, SHARELINKZBIZ_STATS);
                        curl_setopt($sls_curl, CURLOPT_RETURNTRANSFER, 1);
                        curl_setopt($sls_curl, CURLOPT_POST, 1);
                        curl_setopt($sls_curl, CURLOPT_FOLLOWLOCATION, 1);
                        $arrays = array(
                            'apikey' => 'xxx',
                            'folderCodes' => $sldl
                        );
                        curl_setopt($sls_curl, CURLOPT_POSTFIELDS, $arrays);
                        $sls_echo = explode(';', curl_exec($sls_curl));
                        curl_close($sls_curl);
                        $image_name     = $sls_echo[1];
                        $image_filesize = byte_umrechner($sl_echo[2]);
                        $image_provider = $sl_echo[3];
                    }
                }
                
                $ncdl = str_replace(NCRYPTIN_FOLDERKEY, '', $image_download_url);
                
                if ($image_download_url == NCRYPTIN_FOLDERKEY . $ncdl . '') {
                    $nc_curl = curl_init();
                    curl_setopt($nc_curl, CURLOPT_URL, NCRYPTIN);
                    curl_setopt($nc_curl, CURLOPT_RETURNTRANSFER, 1);
                    curl_setopt($nc_curl, CURLOPT_POST, 1);
                    curl_setopt($nc_curl, CURLOPT_FOLLOWLOCATION, 1);
                    $array = array(
                        'link' => NCRYPTIN_FOLDERKEY . $ncdl
                    );
                    curl_setopt($nc_curl, CURLOPT_POSTFIELDS, $array);
                    $nc_echo = explode(';', curl_exec($nc_curl));
                    curl_close($nc_curl);
                    if ($config['container_name'] == 0) {
                        $image_filesize = byte_umrechner($nc_echo[2]);
                        $image_provider = $nc_echo[1];
                    } else {
                        $image_filesize = byte_umrechner($nc_echo[2]);
                        $image_provider = $nc_echo[1];
                        $image_name     = $nc_echo[4];
                    }
                }
                
                $lcdl = str_replace(LINKCRYPTWS_FOLDERKEY, '', $image_download_url);
                
                if ($image_download_url == LINKCRYPTWS_FOLDERKEY . $lcdl . '') {
                    $returnData = file_get_contents(LINKCRYPTWS . $lcdl);
                    
                    if (!$returnData or !$returnData = @simplexml_load_string($returnData)) {
                        echo "Keine Daten empfangen!";
                    } else {
                        $image_filesize = $returnData->folderSize . ' MB';
                        $image_provider = $returnData->folderHoster;
                        if ($config['container_name'] == 1) {
                        }
                        $image_name = $image_name;
                    }
                }

Aber wie gesagt, deine Variante werde ich mir in jedem Fall anschauen.
Um selber dein Script zu testen, brauchst du im Grunde keine Zugangsdaten.
Bis auf Share-Linkz, ist die Abfrage der Daten ohne APIKey möglich.
Für Share-Linkz kann ich dir einen zum testen geben.
Für die anderen, reicht lediglich ein Ordnerlink.

Rembrandt:

--- Quote from: .Infecto on November 12, 2014, 01:17:32 AM ---...
Für Share-Linkz kann ich dir einen zum testen geben.
Für die anderen, reicht lediglich ein Ordnerlink.

--- End quote ---
Ah ok, kannst du mir die beiden Links per PM zukommen lassen?

mfg Andi

Navigation

[0] Message Index

[*] Previous page

Go to full version