Explorar el Código

Statusmessage now saves proper filenames with StatusTwitter

logicp hace 7 años
padre
commit
c9b1e07eaa
Se han modificado 2 ficheros con 27 adiciones y 13 borrados
  1. 7 2
      src/Entity/Status.php
  2. 20 11
      src/StatusTwitter.php

+ 7 - 2
src/Entity/Status.php

@@ -250,10 +250,15 @@ class Status extends ContentEntityBase implements StatusInterface {
       ->setDisplayConfigurable('form', TRUE)
       ->setDisplayConfigurable('view', TRUE);
 
-    $fields['message'] = BaseFieldDefinition::create('string_long')
+    $fields['message'] = BaseFieldDefinition::create('text_long')
       ->setLabel(t('Message'))
       ->setDescription(t('The message of the Status entity.'))
-      ->setRevisionable(TRUE);
+      ->setRevisionable(TRUE)
+      ->setDisplayOptions('view', array(
+        'label' => 'above',
+        'type' => 'full_html',
+        'weight' => -4,
+      ));
 
     $fields['status'] = BaseFieldDefinition::create('boolean')
       ->setLabel(t('Publishing status'))

+ 20 - 11
src/StatusTwitter.php

@@ -16,6 +16,7 @@ use Drupal\statusmessage\Entity;
 use Drupal\taxonomy\Entity\Term;
 use Drupal\node\Entity\Node;
 use Drupal\file\Entity\File;
+//use Drupal\Core\File;
 
 
 class StatusTwitter {
@@ -131,7 +132,7 @@ class StatusTwitter {
       }
 
       if ($media->video) {
-        $tweetNode->set('field_tweet_video', $media->video);
+        $tweetNode->set('field_video', $media->video);
       }
 
       if ($media->userImage) {
@@ -206,12 +207,14 @@ class StatusTwitter {
 
     if ($data->user->profile_image_url_https) {
       $userImage = file_get_contents($data->user->profile_image_url_https);
-      $file = file_save_data($userImage);
+      $file = file_save_data($userImage, 'public://' . substr($data->user->profile_image_url_https, strrpos($data->user->profile_image_url_https, '/') + 1));
+
+
       $userImage = $file->id();
     }
     foreach($data->extended_entities->media as $media)  {
       $image = file_get_contents($media->media_url);
-      $file = file_save_data($image);
+      $file = file_save_data($image, 'public://' . substr($media->media_url, strrpos($media->media_url, '/') + 1));
       $images[] = $file->id();
     }
     if(!empty($data->extended_entities->media[0]->video_info->variants)) {
@@ -221,14 +224,20 @@ class StatusTwitter {
       $bitrate->value = null;
       $bitrate->index = null;
 
-      for ($z = 0; $z < $data->extended_entities->media[0]->video_info->variants; $z++) {
-        if (!empty($data->extended_entities->media[0]->video_info->variants[$z]->bitrate) &&
-          $data->extended_entities->media[0]->video_info->variants[$z]->content_type === 'video/mp4') {
-          if ($data->extended_entities->media[0]->video_info->variants[$z]->bitrate > $bitrate->value) {
-            $bitrate->value = $data->extended_entities->media[0]->video_info->variants[$z]->bitrate;
-            $bitrate->index = $z;
+      $variantCount = count($data->extended_entities->media[0]->video_info->variants);
+      if ($variantCount > 1) {
+        for ($z = 0; $z < $variantCount; $z++) {
+          if ($data->extended_entities->media[0]->video_info->variants[$z]->bitrate &&
+            $data->extended_entities->media[0]->video_info->variants[$z]->content_type === 'video/mp4'
+          ) {
+            if ($data->extended_entities->media[0]->video_info->variants[$z]->bitrate > $bitrate->value) {
+              $bitrate->value = $data->extended_entities->media[0]->video_info->variants[$z]->bitrate;
+              $bitrate->index = $z;
+            }
           }
         }
+      } else {
+        $bitrate->index = 0;
       }
 
       if ($bitrate->index !== null) {
@@ -238,7 +247,7 @@ class StatusTwitter {
 //          'id' => 'id',
 //        ])->save();
         $video = file_get_contents($data->extended_entities->media[0]->video_info->variants[$bitrate->index]->url);
-        $file = file_save_data($video);
+        $file = file_save_data($video, 'public://' . substr($data->extended_entities->media[0]->video_info->variants[$bitrate->index]->url, strrpos($data->extended_entities->media[0]->video_info->variants[$bitrate->index]->url, '/') + 1));
         $video = $file->id();
       }
     }
@@ -294,7 +303,7 @@ class StatusTwitter {
     $term = null;
     foreach($data->entities->user_mentions as $u) {
       $term = \Drupal::entityQuery('taxonomy_term')
-        ->condition('name', $u->text)
+        ->condition('name', $u->screen_name)
         ->condition('vid', 'twitter_user')
         ->execute();