From ddae624dc3665c26ba4b5503286eefe3952a56ba Mon Sep 17 00:00:00 2001 From: Rello Date: Thu, 27 Apr 2017 23:58:34 +0200 Subject: [PATCH 1/4] Update routes.php --- appinfo/routes.php | 1 + 1 file changed, 1 insertion(+) diff --git a/appinfo/routes.php b/appinfo/routes.php index 57f34878..6ddacd4c 100755 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -47,4 +47,5 @@ ['name' => 'category#getCategory', 'url' => '/getcategory', 'verb' => 'GET'], ['name' => 'category#getCategoryItems', 'url' => '/getcategoryitems', 'verb' => 'GET'], ['name' => 'category#setFavorite', 'url' => '/setfavorite', 'verb' => 'GET'], + ['name' => 'category#setStatistics', 'url' => '/setstatistics', 'verb' => 'GET'], ]]); From 629c28f163946b22bbc6bd281360106b8956c8f2 Mon Sep 17 00:00:00 2001 From: Rello Date: Fri, 28 Apr 2017 00:00:49 +0200 Subject: [PATCH 2/4] Update database.xml --- appinfo/database.xml | 45 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/appinfo/database.xml b/appinfo/database.xml index bd0b331e..28ee303c 100755 --- a/appinfo/database.xml +++ b/appinfo/database.xml @@ -316,5 +316,48 @@ - + + *dbprefix*audioplayer_statistics + + + id + integer + true + true + true + true + + + user_id + text + true + 64 + + + track_id + integer + true + + + playtime + integer + false + + + playcount + integer + false + + + aa_statistics_file_user_id_idx + true + + track_id + + + user_id + + + +
From 10c735d948ec1f077a278651b54cbdac3cc8a227 Mon Sep 17 00:00:00 2001 From: Rello Date: Fri, 28 Apr 2017 00:01:27 +0200 Subject: [PATCH 3/4] Update categorycontroller.php --- controller/categorycontroller.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/controller/categorycontroller.php b/controller/categorycontroller.php index f8165093..cf1b984a 100644 --- a/controller/categorycontroller.php +++ b/controller/categorycontroller.php @@ -356,4 +356,28 @@ public function setFavorite() { } return $return; } + /** + * @NoAdminRequired + */ + public function setStatistics() { + $track_id = $this->params('track_id'); + $date = new \DateTime(); + $playtime = $date->getTimestamp(); + + $SQL='SELECT id, playcount FROM *PREFIX*audioplayer_statistics WHERE `user_id`= ? AND `track_id`= ?'; + $stmt = $this->db->prepareQuery($SQL); + $result = $stmt->execute(array($this->userId, $track_id)); + $row = $result->fetchRow(); + if (isset($row['id'])) { + $playcount = $row['id'] + 1; + $stmt = $this->db->prepareQuery( 'UPDATE `*PREFIX*audioplayer_statistics` SET `playcount`= ?, `playtime`= ? WHERE `id` = ?'); + $stmt->execute(array($playcount, $playtime, $row['id'])); + return 'update'; + } else { + $stmt = $this->db->prepareQuery( 'INSERT INTO `*PREFIX*audioplayer_statistics` (`user_id`,`track_id`,`playtime`,`playcount`) VALUES(?,?,?,?)' ); + $result = $stmt->execute(array($this->userId, $track_id, $playtime, 1)); + $insertid = $this->db->getInsertId('*PREFIX*audioplayer_statistics'); + return $insertid; + } + } } From 91295aea7ac665329653964421ade03341a64d17 Mon Sep 17 00:00:00 2001 From: Rello Date: Fri, 28 Apr 2017 00:15:19 +0200 Subject: [PATCH 4/4] Update app.js --- js/app.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/js/app.js b/js/app.js index 33af50cd..af2bc63b 100755 --- a/js/app.js +++ b/js/app.js @@ -190,11 +190,13 @@ Audios.prototype.PlaylistSongs = function(){ if(!$(this).closest('li').hasClass('isActive')){ $(this).closest('li').addClass('isActive'); $this.AudioPlayer.actions.play($(this).closest('li').index()); + $this.set_statistics(); }else{ if($('.sm2-bar-ui').hasClass('playing')){ $this.AudioPlayer.actions.stop(); }else{ $this.AudioPlayer.actions.play(); + $this.set_statistics(); } } return false; @@ -458,6 +460,7 @@ Audios.prototype.loadAlbums = function(){ $(this).parent().parent().find('.albumSelect li:first-child').addClass('isActive'); $this.AudioPlayer.actions.play(0); } + $this.set_statistics(); var myCover=$('.album.is-active .albumcover'); if(myCover.css('background-image') == 'none'){ $('.sm2-playlist-cover').text(myCover.text()).css({'background-color':myCover.css('background-color'),'color':myCover.css('color'),'background-image':'none'}); @@ -539,7 +542,7 @@ Audios.prototype.loadSongsRow = function(elem){ var can_play = soundManager.html5; var li = $('
  • ').attr({ - 'data-id' : elem.id, + 'data-trackid' : elem.id, 'data-fileid' : elem.fid, 'data-title' : elem.tit, 'data-artist' : elem.art, @@ -808,11 +811,13 @@ Audios.prototype.loadIndividualCategory = function(evt) { $('#individual-playlist li i.fav').show(); activeLi.addClass('isActive'); $this.AudioPlayer.actions.play(activeLi.index()); + $this.set_statistics(); }else{ if($('.sm2-bar-ui').hasClass('playing')){ $this.AudioPlayer.actions.stop(); }else{ $this.AudioPlayer.actions.play(); + $this.set_statistics(); } } } @@ -1711,6 +1716,17 @@ Audios.prototype.get_cover = function(user_type, callback) { }); }; +Audios.prototype.set_statistics = function() { + var track_id = $('#activePlaylist li.selected').data('trackid'); + $.ajax({ + type : 'GET', + url : OC.generateUrl('apps/audioplayer/setstatistics'), + data : {'track_id': track_id}, + success : function(ajax_data) { + } + }); +}; + Audios.prototype.sort_playlist = function(evt) { var column = $(evt.target).attr('class').split('-')[1]; var order = $(evt.target).data('order'); @@ -1759,6 +1775,7 @@ Audios.prototype.soundmanager_callback = function(SMaction) { } $('.sm2-playlist-cover').attr({'style':addCss}).text(addDescr); + $this.set_statistics(); } };