Mvtr (multi version tag reader)

0/5 (3 avis)

Snippet vu 3 251 fois - Téléchargée 28 fois

Contenu du snippet

Vala juste un ptit identifieur qui retourne les id3v2 tags d'un fichier mp3
Si le fichier ne comporte pas de tag v2.0, l'identifieur retournera les valeurs des tags v1.0
Si la valeur retournée est $false, c'est que le fichier n'existe pas
L'identifieur retourne null si le tag demandé n'existe pas
Le readme est inclu dans le code source.

Source / Exemple :


;MVTR (Multi Version Tag Reader ^^;) v1.0 by Seregon

;This snippet is for all those guys using dlls to retrieve id3v2 tags info ;)
;How to use:
;$idtag(path\file.mp3).title -> returns file's title
;$idtag(path\file.mp3).artist -> returns file's artist
;$idtag(path\file.mp3).album -> returns file's album
;$idtag(path\file.mp3).year -> returns file's year
;$idtag(path\file.mp3).genre -> returns file's genre
;$idtag(path\file.mp3).time -> returns file's length
;$idtag(path\file.mp3).kbps -> returns file's sound frequency
;$idtag(path\file.mp3).version -> returns id3tag version
;Documentation:
;www.id3.org -> official website
;www.id3.org/id3v2.3.0.html -> id3v2.3.0 structure

alias idtag {
  if ($exists($1) == $false) { return $false }
  else {
    bread " $+ $1 $+ " 0 10 &idtag_1
    if ($ascii($bvar(&idtag_1,1,3)) == ID3) {
      bread " $+ $1 $+ " 10 $base($base($bvar(&idtag_1,7,1),10,2,7) $+ $base($bvar(&idtag_1,8,1),10,2,7) $+ $base($bvar(&idtag_1,9,1),10,2,7) $+ $base($bvar(&idtag_1,10,1),10,2,7),2,10) &idtag_2
      if ($prop == title) { set -u %tit2 $base($base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TIT2).text + 4), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TIT2).text + 5), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TIT2).text + 6), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TIT2).text + 7), 1),10,16),16,10) | return $iif($bfind(&idtag_2,1,TIT2).text != 0, $ascii($bvar(&idtag_2, $calc($bfind(&idtag_2, 1, TIT2).text + 10), %tit2)), $null) }
      if ($prop == artist) { set -u %tpe1 $base($base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TPE1).text + 4), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TPE1).text + 5), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TPE1).text + 6), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TPE1).text + 7), 1),10,16),16,10) | return $iif($bfind(&idtag_2,1,TPE1).text != 0, $ascii($bvar(&idtag_2, $calc($bfind(&idtag_2, 1, TPE1).text + 10), %tpe1)), $null) }
      if ($prop == album) { set -u %talb $base($base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TALB) + 4), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TALB) + 5), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TALB) + 6), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TALB) + 7), 1),10,16),16,10) | return $iif($bfind(&idtag_2,1,TALB) != 0, $ascii($bvar(&idtag_2, $calc($bfind(&idtag_2, 1, TALB) + 10), %talb)), $null) }
      if ($prop == year) { set -u %tyer $base($base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TYER) + 4), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TYER) + 5), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TYER) + 6), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TYER) + 7), 1),10,16),16,10) | return $iif($bfind(&idtag_2,1,TYER) != 0, $ascii($bvar(&idtag_2, $calc($bfind(&idtag_2, 1, TYER) + 10), %tyer)), $null) }
      if ($prop == genre) { set -u %tcon $base($base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TCON) + 4), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TCON) + 5), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TCON) + 6), 1),10,16) $+ $base($bvar(&idtag_2, $calc($bfind(&idtag_2,1,TCON) + 7), 1),10,16),16,10) | return $iif($bfind(&idtag_2,1,TCON) != 0, $ascii($bvar(&idtag_2, $calc($bfind(&idtag_2, 1, TCON) + 10), %tcon)), $null) }
      if ($prop == time) { return $remove($sound($1).length,$right($sound($1).length,3)) }
      if ($prop == kbps) { return $sound($1).bitrate }
      if ($prop == version) { return $base($bvar(&idtag_1,4,1),10,16) $+ $chr(46) $+ $base($bvar(&idtag_1,5,1),10,16) }
    }
    else {
      if ($prop == title) { return $iif($sound($1).title == $false, $null, $sound($1).title) }
      if ($prop == artist) { return $iif($sound($1).artist == $false, $null, $sound($1).artist) }
      if ($prop == album) { return $iif($sound($1).album == $false, $null, $sound($1).album) }
      if ($prop == year) { return $iif($sound($1).album == $false, $null, $sound($1).year) }
      if ($prop == genre) { return $iif($sound($1).album == $false, $null, $sound($1).genre) }
      if ($prop == time) { return $remove($sound($1).length,$right($sound($1).length,3)) }
      if ($prop == kbps) { return $sound($1).bitrate }
      if ($prop == version) { return 1.0 }
    }
  }
}
;This id is used in the $idtag command. It converts several ascii values into caracters. For example, $ascii(72 101 108 108 111 32 84 104 101 114 101) will returns "Hello There"
alias ascii {
  set -u %ascii.i 1
  if ($prop == $null) {
    while (%ascii.i <= $numtok($1,32)) { set -u %ascii %ascii $+ $iif($gettok($1,%ascii,32) != 32, $chr($gettok($1,%ascii,32)), $eval($chr(32),0)) | inc %ascii.i }
  }
  return $replace(%ascii, $eval($chr(32),0),$chr(32))
}

A voir également

Ajouter un commentaire Commentaires
cs_RysS Messages postés 56 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 22 mai 2004
8 août 2003 à 18:26
un reader de tagV2 existe ds mIRC ? j'aimerai bien savoir ou
Kerrigan Messages postés 708 Date d'inscription lundi 15 juillet 2002 Statut Membre Dernière intervention 17 mars 2005
8 août 2003 à 18:19
c jolie mais ça existe deja dans le mirc, ceci dit c'est tres interessant comme ça on sait comment ça marche
cs_RysS Messages postés 56 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 22 mai 2004
1 août 2003 à 21:12
o lieu de faire

gnagnagnagna 1
gnagnagnagna 2
gnagnagnagna 3
gnagnagnagna 4

on fé un joli replace suivi de
gnagnagnagna N

ça mange pas de pain et c bien plus malin

Ps:il manque lecteur Unicode (que je n'ai toujours pas mis a jour sur ma version de reader

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.