All pastes #342056 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-02-06 01:49 UTC
rendered paste body
alias extractfil {
  if (!$1) { return }  
  ;$1 = filnavn
  ; argument 1 er filnavnet
  if ($exists($1)) { echo -a Leser filen $1 $+ . }
  else { echo -a Filen $1 eksisterer ikke. | return }

  ; sjekker at formatet er riktig på filen
  ; xmcd er i toppen av hver fil
  if (xmcd !isin $read($1,1)) {
    echo -a Filen $1 er feil format.
    return
  }

  ; antall linjer i filen
  var %linjer = $lines($1)
  var %i = 0
  while (%i <= %linjer) {
    ; leser linje nr %i
    var %cddb.lest = $read($1,%i)

    if (= isin %cddb.lest) {

      if (discid= isin %cddb.lest) {
        ; finner cd-iden
        var %cddb.discid = $gettok(%cddb.lest, 2, 61)
      }

      if (dyear= isin %cddb.lest) {
        ; finner året
        var %cddb.year = $gettok(%cddb.lest, 2, 61)
        if (!%cddb.year) { var %cddb.year Year unknown }
      }

      if (dgenre= isin %cddb.lest) {
        ; finner genren
        var %cddb.genre = $gettok(%cddb.lest, 2, 61)
        if (!%cddb.genre) { var %cddb.genre Genre unknown }
      }

      if (dtitle= isin %cddb.lest) {
        ; kutter opp artisten og navnet på cden
        var %cddb.artist = $gettok($gettok(%cddb.lest, 2, 61), 1, 47)
        var %cddb.cdname = $gettok($gettok(%cddb.lest, 2, 61), 2, 47)

        ; bytter cdnavn til artistnavn, og setter artist til various
        if (!%cddb.cdname) { var %cddb.cdname = %cddb.artist | var %cddb.artist = VA }
        $replace(%cddb.artist, Various Artist, VA, Various, VA)
      }

      if ($regex(%cddb.lest, (TTITLE[0-9]{1,2}=))) {
        var %cddb.spor = $calc($remove($gettok(%cddb.lest, 1, 61), TTITLE) +1)
        var %cddb.tittel = $gettok(%cddb.lest, 2, 61)

        ; hvis det er Various Artist
        if (%cddb.artist == VA) {
          var %cddb.tittel = $replace(%cddb.tittel, $+($chr(32), $chr(45), $chr(32)), $chr(254))
          var %cddb.split.art = $gettok(%cddb.tittel, 1, 254)
          var %cddb.split.tit = $gettok(%cddb.tittel, 2, 254)
          ; skriver til fil når det er various artist
          ; echo -a INSERT INTO cdtracks (ID, TrackID, Artist, Title) VALUES(' $+ %cddb.discid $+ ',' $+ %cddb.spor $+ ',' $+ %cddb.split.art $+ ',' $+ %cddb.split.tit $+ ')
          write cdtracks.txt INSERT INTO cdtracks (ID, TrackID, Artist, Title) VALUES(' $+ %cddb.discid $+ ',' $+ %cddb.spor $+ ',' $+ %cddb.split.art $+ ',' $+ %cddb.split.tit $+ ')
        }
        else {
          ; skriver til fil
          ; echo -a INSERT INTO cdtracks (ID, TrackID, Artist, Title) VALUES(' $+ %cddb.discid $+ ',' $+ %cddb.spor $+ ',' $+ %cddb.artist $+ ',' $+ %cddb.tittel $+ ')
          write cdtracks.txt INSERT INTO cdtracks (ID, TrackID, Artist, Title) VALUES(' $+ %cddb.discid $+ ',' $+ %cddb.spor $+ ',' $+ %cddb.artist $+ ',' $+ %cddb.tittel $+ ')
        }
      }
    }
    ; øker %i
    inc %i
  }
  ;echo -a INSERT INTO cdinfo (ID, Artist, Title, Year, Genre) VALUES(' $+ %cddb.discid $+ ',' $+ %cddb.artist $+ ',' $+ %cddb.cdname $+ ',' $+ %cddb.year $+ ',' $+ %cddb.genre $+ ')
  write cdinfo.txt INSERT INTO cdinfo (ID, Artist, Title, Year, Genre) VALUES(' $+ %cddb.discid $+ ',' $+ %cddb.artist $+ ',' $+ %cddb.cdname $+ ',' $+ %cddb.year $+ ',' $+ %cddb.genre $+ ')
}
alias allefiler {
  if (!$1) { return }
  remove cdtracks.txt
  remove cdinfo.txt
  ; finner alle filer i mappen
  var %cddb.all.files = $findfile($1,*,0)
  echo -a Fant %cddb.all.files filer
  var %j = 1
  while (%j <= %cddb.all.files) {
    extractfil $findfile($1,*,%j)
    ;echo -a  
    inc %j
  }
  run cdtracks.txt
  run cdinfo.txt
}