From 018b50d316125903c03b8551265df517de87eb8d Mon Sep 17 00:00:00 2001
From: Rudi Grinberg <rudi.grinberg@sourcefabric.org>
Date: Tue, 18 Sep 2012 11:45:10 -0400
Subject: [PATCH 1/7] added better logging

---
 airtime_mvc/application/controllers/AudiopreviewController.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/airtime_mvc/application/controllers/AudiopreviewController.php b/airtime_mvc/application/controllers/AudiopreviewController.php
index c66539c37..d81e00030 100644
--- a/airtime_mvc/application/controllers/AudiopreviewController.php
+++ b/airtime_mvc/application/controllers/AudiopreviewController.php
@@ -55,7 +55,7 @@ class AudiopreviewController extends Zend_Controller_Action
             $uri = $webstream->getDbUrl();
             $mime = $webstream->getDbMime();
         } else {
-            throw new Exception("Unknown type for audio preview!");
+            throw new Exception("Unknown type for audio preview!.Type=$type");
         }
 
         $this->view->uri = $uri;

From 6fc0d50c9fd5cb50162975821e6bcc61615f1bff Mon Sep 17 00:00:00 2001
From: Rudi Grinberg <rudi.grinberg@sourcefabric.org>
Date: Tue, 18 Sep 2012 11:46:35 -0400
Subject: [PATCH 2/7] lined up

---
 .../controllers/AudiopreviewController.php    | 22 +++++++++----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/airtime_mvc/application/controllers/AudiopreviewController.php b/airtime_mvc/application/controllers/AudiopreviewController.php
index d81e00030..bd7505595 100644
--- a/airtime_mvc/application/controllers/AudiopreviewController.php
+++ b/airtime_mvc/application/controllers/AudiopreviewController.php
@@ -21,9 +21,9 @@ class AudiopreviewController extends Zend_Controller_Action
     {
         global $CC_CONFIG;
 
-        $audioFileID = $this->_getParam('audioFileID');
+        $audioFileID     = $this->_getParam('audioFileID');
         $audioFileArtist = $this->_getParam('audioFileArtist');
-        $audioFileTitle = $this->_getParam('audioFileTitle');
+        $audioFileTitle  = $this->_getParam('audioFileTitle');
         $type = $this->_getParam('type');
 
         $request = $this->getRequest();
@@ -47,23 +47,23 @@ class AudiopreviewController extends Zend_Controller_Action
         }
 
         if ($type == "audioclip") {
-            $uri = "/api/get-media/file/".$audioFileID;
+            $uri   = "/api/get-media/file/".$audioFileID;
             $media = Application_Model_StoredFile::Recall($audioFileID);
-            $mime = $media->getPropelOrm()->getDbMime();
+            $mime  = $media->getPropelOrm()->getDbMime();
         } elseif ($type == "stream") {
             $webstream = CcWebstreamQuery::create()->findPk($audioFileID);
-            $uri = $webstream->getDbUrl();
-            $mime = $webstream->getDbMime();
+            $uri       = $webstream->getDbUrl();
+            $mime      = $webstream->getDbMime();
         } else {
             throw new Exception("Unknown type for audio preview!.Type=$type");
         }
 
-        $this->view->uri = $uri;
-        $this->view->mime = $mime;
-        $this->view->audioFileID = $audioFileID;
+        $this->view->uri             = $uri;
+        $this->view->mime            = $mime;
+        $this->view->audioFileID     = $audioFileID;
         $this->view->audioFileArtist = $audioFileArtist;
-        $this->view->audioFileTitle = $audioFileTitle;
-        $this->view->type = $type;
+        $this->view->audioFileTitle  = $audioFileTitle;
+        $this->view->type            = $type;
 
         $this->_helper->viewRenderer->setRender('audio-preview');
     }

From 8657a804595b826d0664f60cc2647369319cad3e Mon Sep 17 00:00:00 2001
From: Rudi Grinberg <rudi.grinberg@sourcefabric.org>
Date: Tue, 18 Sep 2012 11:51:13 -0400
Subject: [PATCH 3/7] removed return ''

---
 airtime_mvc/application/models/StoredFile.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php
index 420510953..6c8c5d992 100644
--- a/airtime_mvc/application/models/StoredFile.php
+++ b/airtime_mvc/application/models/StoredFile.php
@@ -407,7 +407,7 @@ SQL;
      */
     public function getFileExtension()
     {
-        return "";
+        //return "";
         // TODO : what's the point of having this function? Can we not just use
         // the extension from the file_path column from cc_files?
         $mime = $this->_file->getDbMime();

From bc873a3ece825fc36c45ed5bccd1e993d7af4bb6 Mon Sep 17 00:00:00 2001
From: Rudi Grinberg <rudi.grinberg@sourcefabric.org>
Date: Tue, 18 Sep 2012 12:04:54 -0400
Subject: [PATCH 4/7] Added extension handling for file path

---
 airtime_mvc/application/models/StoredFile.php | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php
index 6c8c5d992..e31e6fd4e 100644
--- a/airtime_mvc/application/models/StoredFile.php
+++ b/airtime_mvc/application/models/StoredFile.php
@@ -399,6 +399,17 @@ SQL;
         $this->_file->save();
     }
 
+
+    public function getRealFileExtension() {
+        $path = $this->_file->getDbFilepath();
+        $path_elements = explode('.', $path);
+        if (count($path_elements) < 2) {
+            return "";
+        } else {
+            return $path_elements[count($path_elements) - 1];
+        }
+    }
+
     /**
      * Return suitable extension.
      *
@@ -407,9 +418,13 @@ SQL;
      */
     public function getFileExtension()
     {
-        //return "";
         // TODO : what's the point of having this function? Can we not just use
         // the extension from the file_path column from cc_files?
+        $possible_ext = $this->getRealFileExtension();
+        if ($possible_ext !== "") {
+            return $possible_ext;
+        }
+
         $mime = $this->_file->getDbMime();
 
         if ($mime == "audio/ogg" || $mime == "application/ogg") {

From f9319b869afd8711222108d3973cb8c0856c4df9 Mon Sep 17 00:00:00 2001
From: Rudi Grinberg <rudi.grinberg@sourcefabric.org>
Date: Tue, 18 Sep 2012 12:08:30 -0400
Subject: [PATCH 5/7] Corrected comments

---
 airtime_mvc/application/models/StoredFile.php | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php
index e31e6fd4e..dd945d328 100644
--- a/airtime_mvc/application/models/StoredFile.php
+++ b/airtime_mvc/application/models/StoredFile.php
@@ -418,13 +418,15 @@ SQL;
      */
     public function getFileExtension()
     {
-        // TODO : what's the point of having this function? Can we not just use
-        // the extension from the file_path column from cc_files?
         $possible_ext = $this->getRealFileExtension();
         if ($possible_ext !== "") {
             return $possible_ext;
         }
 
+
+        // We fallback to guessing the extension from the mimetype if we
+        // cannot extract it from the file name
+
         $mime = $this->_file->getDbMime();
 
         if ($mime == "audio/ogg" || $mime == "application/ogg") {

From b0f2176329c15955eb46609cece231f557290bf2 Mon Sep 17 00:00:00 2001
From: Martin Konecny <martin.konecny@gmail.com>
Date: Tue, 18 Sep 2012 12:40:44 -0400
Subject: [PATCH 6/7] fix some TODO's in webstream.php

---
 .../application/controllers/WebstreamController.php   | 11 -----------
 airtime_mvc/application/models/Webstream.php          | 11 +++++------
 2 files changed, 5 insertions(+), 17 deletions(-)

diff --git a/airtime_mvc/application/controllers/WebstreamController.php b/airtime_mvc/application/controllers/WebstreamController.php
index e9e93fe44..ebb5acbf6 100644
--- a/airtime_mvc/application/controllers/WebstreamController.php
+++ b/airtime_mvc/application/controllers/WebstreamController.php
@@ -35,17 +35,6 @@ class WebstreamController extends Zend_Controller_Action
         $webstream->setDbUtime(new DateTime("now", new DateTimeZone('UTC')));
         $webstream->setDbMtime(new DateTime("now", new DateTimeZone('UTC')));
 
-        /*
-        $type = "stream";
-        $objInfo = Application_Model_Library::getObjInfo($type);
-
-        $obj = new $objInfo['className']($webstream);
-        $obj->setName($webstream->getDbName());
-        $obj->setMetadata('dc:creator', $userInfo->id);
-
-        $type = "stream";
-        Application_Model_Library::changePlaylist($obj->getId(), $type);
-        */
         //clear the session in case an old playlist was open: CC-4196
         Application_Model_Library::changePlaylist(null, null);
 
diff --git a/airtime_mvc/application/models/Webstream.php b/airtime_mvc/application/models/Webstream.php
index e3f08858a..561f97b12 100644
--- a/airtime_mvc/application/models/Webstream.php
+++ b/airtime_mvc/application/models/Webstream.php
@@ -39,7 +39,7 @@ class Application_Model_Webstream implements Application_Model_LibraryEditable
 
     public function getLastModified($p_type)
     {
-        return "modified";
+        return $this->webstream->getDbMtime();
     }
 
     public function getDefaultLength()
@@ -215,15 +215,16 @@ class Application_Model_Webstream implements Application_Model_LibraryEditable
         return true;
     }
 
-    // TODO : properly implement this interface
+    // TODO : Fix this interface
     public function setMetadata($key, $val)
     {
-        throw new Exception("setMetadata is not imeplemented by WebStream yet");
+        //This function should not be defined in the interface.
+        throw new Exception("Not implemented.");
     }
 
     public function setName($name)
     {
-        throw new Exception("setName is not imeplemented by WebStream yet");
+        $this->webstream->setDbName($name);
     }
     
     public function setLastPlayed($timestamp)
@@ -243,8 +244,6 @@ class Application_Model_Webstream implements Application_Model_LibraryEditable
         //TODO: What if invalid url?
         $content = curl_exec($ch);
 
-        Logging::debug($content);
-
         // close cURL resource, and free up system resources
         curl_close($ch);
         

From b1f0bdb6ae49d9b2a56294b4ce295984685a7d2c Mon Sep 17 00:00:00 2001
From: Martin Konecny <martin.konecny@gmail.com>
Date: Tue, 18 Sep 2012 12:41:19 -0400
Subject: [PATCH 7/7] CC-4377: Make sure upgrade script handles new required
 packages

-removing package checking from main install script (not its duty to perform this)
---
 install_minimal/airtime-install | 30 ------------------------------
 1 file changed, 30 deletions(-)

diff --git a/install_minimal/airtime-install b/install_minimal/airtime-install
index 14f713296..b0034ab59 100755
--- a/install_minimal/airtime-install
+++ b/install_minimal/airtime-install
@@ -82,36 +82,6 @@ SCRIPT=`readlink -f $0`
 SCRIPTPATH=`dirname $SCRIPT`
 AIRTIMEROOT=$SCRIPTPATH/../
 
-#Check if required zend mvc library is present. This is a temporary workaround for 2.0.1, 
-#and we should probably create a separate file that checks whether ALL dependencies are satisfied before 
-#allowing the install to continue. However in that case, we wouldn't check for Debian packages so that we 
-#can become less Debian platform dependent in the future...
-
-set +e
-dpkg -l | grep zendframework > /dev/null 2>&1
-ZENDFRAMEWORK=$?
-
-dpkg -l | grep libzend-framework-php > /dev/null 2>&1
-LIBZEND=$?
-
-dpkg -l | grep lsof > /dev/null 2>&1
-LSOF_EXIST=$?
-
-dpkg -l | grep sudo > /dev/null 2>&1
-SUDO_EXIST=$?
-
-set -e
-
-if [ "$ZENDFRAMEWORK" != "0" -a "$LIBZEND" != "0" ]; then
-    echo "zendframework/libzend-framework-php package missing. Please run airtime-full-install"
-    exit 1
-fi
-
-if [ "$LSOF_EXIST" != "0" -o "$SUDO_EXIST" != "0" ]; then
-    echo "Packages missing. Please run airtime-full-install"
-    exit 1
-fi
-
 echo "* Making sure /etc/default/locale is set properly"
 set +e
 update-locale