Mvtr (multi version tag reader)

0/5 (3 avis)

Snippet vu 3 171 fois - Téléchargée 27 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
Messages postés
56
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
22 mai 2004

un reader de tagV2 existe ds mIRC ? j'aimerai bien savoir ou
Messages postés
708
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
17 mars 2005

c jolie mais ça existe deja dans le mirc, ceci dit c'est tres interessant comme ça on sait comment ça marche
Messages postés
56
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
22 mai 2004

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.