tangled
alpha
login
or
join now
t1c.dev
/
rocksky
forked from
rocksky.app/rocksky
2
fork
atom
A decentralized music tracking and discovery platform built on AT Protocol 🎵
2
fork
atom
overview
issues
pulls
pipelines
Merge branch 'main' into feat/feed-generator
tsiry-sandratraina.com
3 months ago
a3f2c00e
660383bb
+11
-9
1 changed file
expand all
collapse all
unified
split
apps
api
src
tealfm
index.ts
+11
-9
apps/api/src/tealfm/index.ts
···
20
20
async function publishPlayingNow(
21
21
agent: Agent,
22
22
track: MusicbrainzTrack,
23
23
-
duration: number
23
23
+
duration: number,
24
24
) {
25
25
try {
26
26
// wait 60 seconds to ensure the track is actually being played
···
31
31
const record = Play.isRecord(play.value) ? play.value : null;
32
32
return (
33
33
(record?.recordingMbId === track.trackMBID ||
34
34
-
(record?.duration === duration &&
34
34
+
(Math.abs(record?.duration - duration) < 4 &&
35
35
record?.trackName === track.name)) &&
36
36
// diff in seconds less than 60 seconds
37
37
Math.abs(
38
38
-
new Date(record.playedTime).getTime() -
39
39
-
new Date(track.timestamp).getTime()
40
40
-
) < 60000
38
38
+
new Date(record.playedTime).getTime() -
39
39
+
new Date(track.timestamp).getTime(),
40
40
+
) < 60000
41
41
);
42
42
});
43
43
if (alreadyPlayed) {
44
44
console.log(
45
45
-
`Track ${chalk.cyan(track.name)} by ${chalk.cyan(
46
46
-
track.artist.map((a) => a.name).join(", ")
47
47
-
)} already played recently. Skipping...`
45
45
+
`Track ${chalk.cyan(track.name)} by ${
46
46
+
chalk.cyan(
47
47
+
track.artist.map((a) => a.name).join(", "),
48
48
+
)
49
49
+
} already played recently. Skipping...`,
48
50
);
49
51
return;
50
52
}
···
90
92
async function publishStatus(
91
93
agent: Agent,
92
94
track: MusicbrainzTrack,
93
93
-
duration: number
95
95
+
duration: number,
94
96
) {
95
97
const item: PlayView = {
96
98
trackName: track.name,