Example #1
0
 def update_rating(self):
     for sid in db.c.fetch_list(
             "SELECT sid FROM r4_album_sid WHERE album_id = %s",
         (self.id, )):
         ratings = db.c.fetch_all(
             "SELECT r4_song_ratings.song_rating_user AS rating, COUNT(r4_song_ratings.user_id) AS count "
             "FROM r4_songs "
             "JOIN r4_song_sid ON (r4_songs.song_id = r4_song_sid.song_id AND r4_song_sid.sid = %s AND r4_song_sid.song_exists = TRUE) "
             "JOIN r4_song_ratings ON (r4_song_sid.song_id = r4_song_ratings.song_id) "
             "JOIN phpbb_users ON (r4_song_ratings.user_id = phpbb_users.user_id AND phpbb_users.radio_inactive = FALSE) "
             "WHERE r4_songs.album_id = %s "
             "GROUP BY rating ", (sid, self.id))
         (points, potential_points) = rating.rating_calculator(ratings)
         log.debug(
             "song_rating", "%s album ratings for %s (%s)" %
             (potential_points, self.data['name'],
              config.station_id_friendly[sid]))
         if points > 0 and potential_points > config.get(
                 "rating_threshold_for_calc"):
             self.rating_precise = ((points / potential_points) * 4) + 1
             self.data['rating'] = round(self.rating_precise, 1)
             self.data['rating_count'] = potential_points
             log.debug(
                 "album_rating", "%s new rating for %s" %
                 (self.rating_precise, self.data['name']))
             db.c.update(
                 "UPDATE r4_album_sid SET album_rating = %s, album_rating_count = %s WHERE album_id = %s AND sid = %s",
                 (self.rating_precise, potential_points, self.id, sid))
Example #2
0
    def update_rating(self, skip_album_update=False):
        ratings = db.c.fetch_all(
            "SELECT song_rating_user AS rating, COUNT(user_id) AS count FROM r4_song_ratings JOIN phpbb_users USING (user_id) WHERE song_id = %s AND radio_inactive = FALSE AND song_rating_user IS NOT NULL GROUP BY song_rating_user",
            (self.id, ),
        )
        (points, potential_points) = rating.rating_calculator(ratings)

        log.debug("song_rating",
                  "%s ratings for %s" % (potential_points, self.filename))
        if points > 0 and potential_points > config.get(
                "rating_threshold_for_calc"):
            self.data["rating"] = ((points / potential_points) * 4) + 1
            self.data["rating_count"] = potential_points
            log.debug(
                "song_rating",
                "rating update: %s for %s" %
                (self.data["rating"], self.filename),
            )
            db.c.update(
                "UPDATE r4_songs SET song_rating = %s, song_rating_count = %s WHERE song_id = %s",
                (self.data["rating"], potential_points, self.id),
            )

        if not skip_album_update:
            for album in self.albums:
                album.update_rating()
Example #3
0
 def update_rating(self):
     for sid in db.c.fetch_list("SELECT sid FROM r4_album_sid WHERE album_id = %s", (self.id,)):
         ratings = db.c.fetch_all(
             "SELECT r4_song_ratings.song_rating_user AS rating, COUNT(r4_song_ratings.user_id) AS count "
             "FROM r4_songs "
             "JOIN r4_song_sid ON (r4_songs.song_id = r4_song_sid.song_id AND r4_song_sid.sid = %s AND r4_song_sid.song_exists = TRUE) "
             "JOIN r4_song_ratings ON (r4_song_sid.song_id = r4_song_ratings.song_id) "
             "JOIN phpbb_users ON (r4_song_ratings.user_id = phpbb_users.user_id AND phpbb_users.radio_inactive = FALSE) "
             "WHERE r4_songs.album_id = %s "
             "GROUP BY rating ",
             (sid, self.id),
         )
         (points, potential_points) = rating.rating_calculator(ratings)
         log.debug(
             "song_rating",
             "%s album ratings for %s (%s)" % (potential_points, self.data["name"], config.station_id_friendly[sid]),
         )
         if points > 0 and potential_points > config.get("rating_threshold_for_calc"):
             self.rating_precise = ((points / potential_points) * 4) + 1
             self.data["rating"] = round(self.rating_precise, 1)
             self.data["rating_count"] = potential_points
             log.debug("album_rating", "%s new rating for %s" % (self.rating_precise, self.data["name"]))
             db.c.update(
                 "UPDATE r4_album_sid SET album_rating = %s, album_rating_count = %s WHERE album_id = %s AND sid = %s",
                 (self.rating_precise, potential_points, self.id, sid),
             )
Example #4
0
	def update_rating(self, skip_album_update=False):
		ratings = db.c.fetch_all("SELECT song_rating_user AS rating, COUNT(user_id) AS count FROM r4_song_ratings JOIN phpbb_users USING (user_id) WHERE song_id = %s AND radio_inactive = FALSE AND song_rating_user IS NOT NULL GROUP BY song_rating_user", (self.id,))
		(points, potential_points) = rating.rating_calculator(ratings)

		log.debug("song_rating", "%s ratings for %s" % (potential_points, self.filename))
		if points > 0 and potential_points > config.get("rating_threshold_for_calc"):
			self.data['rating'] = ((points / potential_points) * 4) + 1
			self.data['rating_count'] = potential_points
			log.debug("song_rating", "rating update: %s for %s" % (self.data['rating'], self.filename))
			db.c.update("UPDATE r4_songs SET song_rating = %s, song_rating_count = %s WHERE song_id = %s", (self.data['rating'], potential_points, self.id))

		if not skip_album_update:
			for album in self.albums:
				album.update_rating()