Merge branch 'devel' of dev.sourcefabric.org:airtime into devel
This commit is contained in:
commit
8b5f94fa9f
|
@ -686,7 +686,8 @@ class ApiController extends Zend_Controller_Action
|
||||||
$request = $this->getRequest();
|
$request = $this->getRequest();
|
||||||
$dir_id = $request->getParam('dir_id');
|
$dir_id = $request->getParam('dir_id');
|
||||||
|
|
||||||
$this->view->files = Application_Model_StoredFile::listAllFiles($dir_id);
|
$this->view->files =
|
||||||
|
Application_Model_StoredFile::listAllFiles($dir_id,$all=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function listAllWatchedDirsAction()
|
public function listAllWatchedDirsAction()
|
||||||
|
@ -859,7 +860,8 @@ class ApiController extends Zend_Controller_Action
|
||||||
|
|
||||||
$watchDir = Application_Model_MusicDir::getDirByPath($rd);
|
$watchDir = Application_Model_MusicDir::getDirByPath($rd);
|
||||||
// get all the files that is under $dirPath
|
// get all the files that is under $dirPath
|
||||||
$files = Application_Model_StoredFile::listAllFiles($dir->getId(), true);
|
$files = Application_Model_StoredFile::listAllFiles(
|
||||||
|
$dir->getId(),$all=false, true);
|
||||||
foreach ($files as $f) {
|
foreach ($files as $f) {
|
||||||
// if the file is from this mount
|
// if the file is from this mount
|
||||||
if (substr($f->getFilePath(), 0, strlen($rd)) === $rd) {
|
if (substr($f->getFilePath(), 0, strlen($rd)) === $rd) {
|
||||||
|
|
|
@ -13,6 +13,7 @@ class UsersettingsController extends Zend_Controller_Action
|
||||||
->addActionContext('get-timeline-datatable', 'json')
|
->addActionContext('get-timeline-datatable', 'json')
|
||||||
->addActionContext('set-timeline-datatable', 'json')
|
->addActionContext('set-timeline-datatable', 'json')
|
||||||
->addActionContext('remindme', 'json')
|
->addActionContext('remindme', 'json')
|
||||||
|
->addActionContext('remindme-never', 'json')
|
||||||
->addActionContext('donotshowregistrationpopup', 'json')
|
->addActionContext('donotshowregistrationpopup', 'json')
|
||||||
->initContext();
|
->initContext();
|
||||||
}
|
}
|
||||||
|
@ -88,6 +89,13 @@ class UsersettingsController extends Zend_Controller_Action
|
||||||
Zend_Session::namespaceUnset('referrer');
|
Zend_Session::namespaceUnset('referrer');
|
||||||
Application_Model_Preference::SetRemindMeDate();
|
Application_Model_Preference::SetRemindMeDate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function remindmeNeverAction()
|
||||||
|
{
|
||||||
|
Zend_Session::namespaceUnset('referrer');
|
||||||
|
//pass in true to indicate 'Remind me never' was clicked
|
||||||
|
Application_Model_Preference::SetRemindMeDate(true);
|
||||||
|
}
|
||||||
|
|
||||||
public function donotshowregistrationpopupAction()
|
public function donotshowregistrationpopupAction()
|
||||||
{
|
{
|
||||||
|
|
|
@ -35,7 +35,7 @@ class Application_Model_Email
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$config = array(
|
$config = array(
|
||||||
'ssl' => 'ssl'
|
'ssl' => 'tls'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -587,10 +587,14 @@ class Application_Model_Preference
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function SetRemindMeDate()
|
public static function SetRemindMeDate($p_never = false)
|
||||||
{
|
{
|
||||||
$weekAfter = mktime(0, 0, 0, gmdate("m"), gmdate("d")+7, gmdate("Y"));
|
if ($p_never) {
|
||||||
self::setValue("remindme", $weekAfter);
|
self::setValue("remindme", -1);
|
||||||
|
} else {
|
||||||
|
$weekAfter = mktime(0, 0, 0, gmdate("m"), gmdate("d")+7, gmdate("Y"));
|
||||||
|
self::setValue("remindme", $weekAfter);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function GetRemindMeDate()
|
public static function GetRemindMeDate()
|
||||||
|
@ -1105,9 +1109,13 @@ class Application_Model_Preference
|
||||||
{
|
{
|
||||||
$today = mktime(0, 0, 0, gmdate("m"), gmdate("d"), gmdate("Y"));
|
$today = mktime(0, 0, 0, gmdate("m"), gmdate("d"), gmdate("Y"));
|
||||||
$remindDate = Application_Model_Preference::GetRemindMeDate();
|
$remindDate = Application_Model_Preference::GetRemindMeDate();
|
||||||
if ($remindDate == NULL || $today >= $remindDate) {
|
$retVal = false;
|
||||||
return true;
|
|
||||||
|
if ($remindDate == NULL || ($remindDate != -1 && $today >= $remindDate)) {
|
||||||
|
$retVal = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getCurrentLibraryTableSetting()
|
public static function getCurrentLibraryTableSetting()
|
||||||
|
|
|
@ -1006,19 +1006,21 @@ class Application_Model_StoredFile
|
||||||
* @param $dir_id - if this is not provided, it returns all files with full path constructed.
|
* @param $dir_id - if this is not provided, it returns all files with full path constructed.
|
||||||
* @param $propelObj - if this is true, it returns array of proepl obj
|
* @param $propelObj - if this is true, it returns array of proepl obj
|
||||||
*/
|
*/
|
||||||
public static function listAllFiles($dir_id=null, $propelObj=false)
|
public static function listAllFiles($dir_id=null, $all, $propelObj=false)
|
||||||
{
|
{
|
||||||
$con = Propel::getConnection();
|
$con = Propel::getConnection();
|
||||||
|
|
||||||
|
$file_exists = $all ? "" : "and f.file_exists = 'TRUE'";
|
||||||
|
|
||||||
if ($propelObj) {
|
if ($propelObj) {
|
||||||
$sql = "SELECT m.directory || f.filepath as fp"
|
$sql = "SELECT m.directory || f.filepath as fp"
|
||||||
." FROM CC_MUSIC_DIRS m"
|
." FROM CC_MUSIC_DIRS m"
|
||||||
." LEFT JOIN CC_FILES f"
|
." LEFT JOIN CC_FILES f"
|
||||||
." ON m.id = f.directory WHERE m.id = $dir_id and f.file_exists = 'TRUE'";
|
." ON m.id = f.directory WHERE m.id = $dir_id $file_exists";
|
||||||
} else {
|
} else {
|
||||||
$sql = "SELECT filepath as fp"
|
$sql = "SELECT filepath as fp"
|
||||||
." FROM CC_FILES"
|
." FROM CC_FILES as f"
|
||||||
." WHERE directory = $dir_id and file_exists = 'TRUE'";
|
." WHERE f.directory = $dir_id $file_exists";
|
||||||
}
|
}
|
||||||
$rows = $con->query($sql)->fetchAll();
|
$rows = $con->query($sql)->fetchAll();
|
||||||
|
|
||||||
|
|
|
@ -231,6 +231,25 @@ class Application_Model_User
|
||||||
$this->_userInstance->delete();
|
$this->_userInstance->delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public function getOwnedFiles()
|
||||||
|
{
|
||||||
|
$user = $this->_userInstance;
|
||||||
|
// do we need a find call at the end here?
|
||||||
|
return $user->getCcFilessRelatedByDbOwnerId();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function donateFilesTo($user)
|
||||||
|
{
|
||||||
|
$my_files = $this->getOwnedFiles();
|
||||||
|
foreach ($my_files as $file) {
|
||||||
|
$file->reassignTo($user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteAllFiles()
|
||||||
|
{
|
||||||
|
$my_files = $this->getOwnedFiles();
|
||||||
|
}
|
||||||
|
|
||||||
private function createUser()
|
private function createUser()
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,5 +40,8 @@ class CcFiles extends BaseCcFiles {
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function reassignTo($user) {
|
||||||
|
$this->setDbOwnerId( $user->getDbId() );
|
||||||
|
}
|
||||||
|
|
||||||
} // CcFiles
|
} // CcFiles
|
||||||
|
|
|
@ -26,6 +26,18 @@ $(document).ready(function(){
|
||||||
$(this).dialog("close");
|
$(this).dialog("close");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: "remind_never",
|
||||||
|
text: "Remind me never",
|
||||||
|
click: function() {
|
||||||
|
var url ='/Usersettings/remindme-never';
|
||||||
|
$.ajax({
|
||||||
|
url: url,
|
||||||
|
data: {format:"json"}
|
||||||
|
});
|
||||||
|
$(this).dialog("close");
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "help_airtime",
|
id: "help_airtime",
|
||||||
text: "Yes, help Airtime",
|
text: "Yes, help Airtime",
|
||||||
|
|
|
@ -79,9 +79,16 @@ class Manager(Loggable):
|
||||||
watch_dir)
|
watch_dir)
|
||||||
self.remove_watch_directory(normpath(watch_dir))
|
self.remove_watch_directory(normpath(watch_dir))
|
||||||
|
|
||||||
def watch_signal(self): return self.watch_listener.signal
|
def watch_signal(self):
|
||||||
|
"""
|
||||||
|
Return the signal string our watch_listener is reading events from
|
||||||
|
"""
|
||||||
|
return self.watch_listener.signal
|
||||||
|
|
||||||
def __remove_watch(self,path):
|
def __remove_watch(self,path):
|
||||||
|
"""
|
||||||
|
Remove path from being watched (first will check if 'path' is watched)
|
||||||
|
"""
|
||||||
# only delete if dir is actually being watched
|
# only delete if dir is actually being watched
|
||||||
if path in self.__wd_path:
|
if path in self.__wd_path:
|
||||||
wd = self.__wd_path[path]
|
wd = self.__wd_path[path]
|
||||||
|
@ -89,11 +96,16 @@ class Manager(Loggable):
|
||||||
del(self.__wd_path[path])
|
del(self.__wd_path[path])
|
||||||
|
|
||||||
def __add_watch(self,path,listener):
|
def __add_watch(self,path,listener):
|
||||||
|
"""
|
||||||
|
Start watching 'path' using 'listener'. First will check if directory
|
||||||
|
is being watched before adding another watch
|
||||||
|
"""
|
||||||
self.logger.info("Adding listener '%s' to '%s'" %
|
self.logger.info("Adding listener '%s' to '%s'" %
|
||||||
( listener.__class__.__name__, path) )
|
( listener.__class__.__name__, path) )
|
||||||
wd = self.wm.add_watch(path, pyinotify.ALL_EVENTS, rec=True,
|
if not self.has_watch(path):
|
||||||
auto_add=True, proc_fun=listener)
|
wd = self.wm.add_watch(path, pyinotify.ALL_EVENTS, rec=True,
|
||||||
self.__wd_path[path] = wd.values()[0]
|
auto_add=True, proc_fun=listener)
|
||||||
|
if wd: self.__wd_path[path] = wd.values()[0]
|
||||||
|
|
||||||
def __create_organizer(self, target_path, recorded_path):
|
def __create_organizer(self, target_path, recorded_path):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -14,8 +14,8 @@ from configobj import ConfigObj
|
||||||
|
|
||||||
from media.monitor.exceptions import FailedToSetLocale, FailedToCreateDir
|
from media.monitor.exceptions import FailedToSetLocale, FailedToCreateDir
|
||||||
|
|
||||||
supported_extensions = [u"mp3", u"ogg", u"oga"]
|
#supported_extensions = [u"mp3", u"ogg", u"oga"]
|
||||||
#supported_extensions = [u"mp3", u"ogg", u"oga", u"flac", u"aac", u"bwf"]
|
supported_extensions = [u"mp3", u"ogg", u"oga", u"flac", u"aac", u"bwf"]
|
||||||
unicode_unknown = u'unknown'
|
unicode_unknown = u'unknown'
|
||||||
|
|
||||||
path_md = ['MDATA_KEY_TITLE', 'MDATA_KEY_CREATOR', 'MDATA_KEY_SOURCE',
|
path_md = ['MDATA_KEY_TITLE', 'MDATA_KEY_CREATOR', 'MDATA_KEY_SOURCE',
|
||||||
|
@ -285,11 +285,11 @@ def organized_path(old_path, root_path, orig_md):
|
||||||
# MDATA_KEY_BITRATE is in bytes/second i.e. (256000) we want to turn this
|
# MDATA_KEY_BITRATE is in bytes/second i.e. (256000) we want to turn this
|
||||||
# into 254kbps
|
# into 254kbps
|
||||||
normal_md = default_to_f(orig_md, path_md, unicode_unknown, default_f)
|
normal_md = default_to_f(orig_md, path_md, unicode_unknown, default_f)
|
||||||
if normal_md['MDATA_KEY_BITRATE']:
|
try:
|
||||||
formatted = str(int(normal_md['MDATA_KEY_BITRATE']) / 1000)
|
formatted = str(int(normal_md['MDATA_KEY_BITRATE']) / 1000)
|
||||||
normal_md['MDATA_KEY_BITRATE'] = formatted + 'kbps'
|
normal_md['MDATA_KEY_BITRATE'] = formatted + 'kbps'
|
||||||
else: normal_md['MDATA_KEY_BITRATE'] = unicode_unknown
|
except:
|
||||||
|
normal_md['MDATA_KEY_BITRATE'] = unicode_unknown
|
||||||
|
|
||||||
if is_airtime_recorded(normal_md):
|
if is_airtime_recorded(normal_md):
|
||||||
title_re = re.match("(?P<show>.+)-(?P<date>\d+-\d+-\d+-\d+:\d+:\d+)$",
|
title_re = re.match("(?P<show>.+)-(?P<date>\d+-\d+-\d+-\d+:\d+:\d+)$",
|
||||||
|
|
Loading…
Reference in New Issue