MCPcopy Create free account
hub / github.com/Moosync/Moosync / increment_play_time

Method increment_play_time

src-tauri/database/src/database.rs:1153–1181  ·  view source on GitHub ↗
(&self, id: String, duration: f64)

Source from the content-addressed store, hash-verified

1151
1152 #[tracing::instrument(level = "debug", skip(self))]
1153 pub fn increment_play_time(&self, id: String, duration: f64) -> Result<()> {
1154 trace!("Incrementing play time");
1155 let mut conn = self.pool.get().unwrap();
1156 let play_time = QueryDsl::select(analytics, schema::analytics::play_time)
1157 .filter(schema::analytics::song_id.eq(id.clone()))
1158 .first::<Option<f64>>(&mut conn);
1159
1160 if play_time.is_err() {
1161 insert_into(analytics)
1162 .values(Analytics {
1163 id: Some(Uuid::new_v4().to_string()),
1164 song_id: Some(id),
1165 play_count: Some(0),
1166 play_time: Some(duration),
1167 })
1168 .execute(&mut conn)?;
1169 info!("Added new play time");
1170 return Ok(());
1171 }
1172
1173 update(analytics)
1174 .filter(schema::analytics::song_id.eq(id))
1175 .set(schema::analytics::play_time.eq(schema::analytics::play_time + duration))
1176 .execute(&mut conn)?;
1177
1178 info!("Incremented playtime");
1179
1180 Ok(())
1181 }
1182
1183 pub fn get_top_listened_songs(&self) -> Result<AllAnalytics> {
1184 let songs = analytics

Callers 2

test_remove_songsFunction · 0.80
test_analyticsFunction · 0.80

Calls 4

getMethod · 0.80
cloneMethod · 0.80
setMethod · 0.80
eqMethod · 0.45

Tested by 2

test_remove_songsFunction · 0.64
test_analyticsFunction · 0.64