Changeset View
Changeset View
Standalone View
Standalone View
src/applications/macro/controller/PhabricatorMacroMemeController.php
| Show All 37 Lines | public static function generateMacro($viewer, $macro_name, $upper_text, | ||||
| $upper_text = strtoupper($upper_text); | $upper_text = strtoupper($upper_text); | ||||
| $lower_text = strtoupper($lower_text); | $lower_text = strtoupper($lower_text); | ||||
| $mixed_text = md5($upper_text).':'.md5($lower_text); | $mixed_text = md5($upper_text).':'.md5($lower_text); | ||||
| $hash = 'meme'.hash('sha256', $mixed_text); | $hash = 'meme'.hash('sha256', $mixed_text); | ||||
| $xform = id(new PhabricatorTransformedFile()) | $xform = id(new PhabricatorTransformedFile()) | ||||
| ->loadOneWhere('originalphid=%s and transform=%s', | ->loadOneWhere('originalphid=%s and transform=%s', | ||||
| $file->getPHID(), $hash); | $file->getPHID(), $hash); | ||||
| $preview_key = PhabricatorFileThumbnailTransform::TRANSFORM_MACRO; | |||||
| $xform_preview = PhabricatorFileTransform::getTransformByKey($preview_key); | |||||
| if ($xform) { | if ($xform) { | ||||
| $memefile = id(new PhabricatorFileQuery()) | $memefile = id(new PhabricatorFileQuery()) | ||||
| ->setViewer($viewer) | ->setViewer($viewer) | ||||
| ->withPHIDs(array($xform->getTransformedPHID())) | ->withPHIDs(array($xform->getTransformedPHID())) | ||||
| ->executeOne(); | ->executeOne(); | ||||
| if ($memefile) { | if ($memefile) { | ||||
| if ($macro->getUseOriginalSize()) { | |||||
| return $memefile->getBestURI(); | return $memefile->getBestURI(); | ||||
| } else { | |||||
| return $memefile->getURIForTransform($xform_preview); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites(); | $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites(); | ||||
| $transformers = (new PhabricatorImageTransformer()); | $transformers = (new PhabricatorImageTransformer()); | ||||
| $newfile = $transformers | $newfile = $transformers | ||||
| ->executeMemeTransform($file, $upper_text, $lower_text); | ->executeMemeTransform($file, $upper_text, $lower_text); | ||||
| $xfile = new PhabricatorTransformedFile(); | $xfile = new PhabricatorTransformedFile(); | ||||
| $xfile->setOriginalPHID($file->getPHID()); | $xfile->setOriginalPHID($file->getPHID()); | ||||
| $xfile->setTransformedPHID($newfile->getPHID()); | $xfile->setTransformedPHID($newfile->getPHID()); | ||||
| $xfile->setTransform($hash); | $xfile->setTransform($hash); | ||||
| $xfile->save(); | $xfile->save(); | ||||
| if ($macro->getUseOriginalSize()) { | |||||
| return $newfile->getBestURI(); | return $newfile->getBestURI(); | ||||
| } else { | |||||
| return $newfile->getURIForTransform($xform_preview); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||