Source Code

;; nasheed-hub -- nasheed (Islamic song) sharing platform
(define-data-var track-count uint u0)
(define-map tracks uint { artist: principal, title: (string-ascii 50), genre: (string-ascii 20), plays: uint })
(define-public (upload-track (title (string-ascii 50)) (genre (string-ascii 20)))
  (let ((id (+ (var-get track-count) u1)))
    (var-set track-count id)
    (map-set tracks id { artist: tx-sender, title: title, genre: genre, plays: u0 }) (ok id)))
(define-public (play-track (id uint))
  (let ((t (unwrap! (map-get? tracks id) (err u404))))
    (map-set tracks id (merge t { plays: (+ (get plays t) u1) })) (ok true)))
(define-read-only (get-track (id uint)) (map-get? tracks id))
(define-read-only (get-count) (var-get track-count))

Functions (4)

FunctionAccessArgs
upload-trackpublictitle: (string-ascii 50
play-trackpublicid: uint
get-trackread-onlyid: uint
get-countread-only