#!/usr/bin/perl # # /* * * * * * * * * * * * * * * * * * * * *\ # * file: ~/.torsmorc_orpheus * # * author: Kannan Thambiah * # * date: 08.10.2004 * # * kontakt: pygospa@yahoo.de * # * url: bytebreaker.funpic.de * # * * # * notice: * # * ======= * # * Bitte beim nutzen dieser Datei die * # * Kommentare unveraendert lassen. Zu- * # * saetze und Aenderungen koennen gern * # * gemacht werden, diese dann beim ver- * # * oeffentlichen aber bitte als solche * # * Kennzeichnen. * # * Auch das Programm darf nach be- * # * lieben veraendert wird, solange es * # * nicht gegen die Lizensbedingungen * # * verstoeszt, mit denen dieses * # * Dokument versehen ist. * # * Ich bitte bei Aenderungen auch mir * # * eine Kopie zukommen zu lassen. * # * Danke! * # * * # * dependencies: * # * ============= * # * Dieses Programm benoetigt die Pro- * # * gramme lofs und mp3info, welche auf * # * dem System installiert und ausfuehr- * # * bar sein muessen. * # * * # * copyright: * # * ========== * # * Das copyright fuer dieses Skript * # * liegt bei mir, Kannan Thambiah. * # * * # * license: * # * ======== * # * Dieses Dokument unterliegt der * # * Attribution-NonCommercial-Share- * # * Alike 2.0 Germany * # * http://creativecommons.org/ * # * licenses/by-nc-sa/2.0/de/ * # * * # \* * * * * * * * * * * * * * * * * * * * */ # # Argumente die beim Aufruf mirgegeben wurden, # # werden gespeichert und ueberprueft. # $numArgs = $#ARGV+1; if($numArgs != 1) { print "Usage error: .torsmo_orpheus ARGUMENT, where ARGUMENT may be:\n\tTitle, Time, Artist, Album, Track or Year.\nExiting!\n"; exit; } # Ueberpruefung ob lofs installiert ist und auch # # richtig laeuft # elsif (!`/usr/sbin/lsof -Fc -S 2`) { print "Dependency error: lsof could not be executed on your computer and .torsmo_orpheus cannot work without it. Please check, whether it is installed and if so, if it has the right permissions set for execution.\nExiting!\n"; exit; } # Ueberpruefen ob mp3info installiert ist und auch # # richtig laueft. # elsif (!`/usr/bin/mp3info`) { print "Dependency error: mp3info could not be executed on your computer and .torsmo_orpheus cannot work without it. Please chech, wether it is installed and if so, if it has the right permissions set for execution.\nExiting!\n"; exit; } # Sind alle Bedingungen erfuellt, gehts zum # # Hauptteil des Programms. # else { # Mitgegebene Arugument wird in $key gespeicher. # $key = $ARGV[0]; # Der Dateiname wird mit lsof ermittelt. # $raw = `/usr/sbin/lsof -S 2 -n -P | grep mpg123 | grep -i mp3 | grep REG | tail -n 1`; @split = split(/\//,$raw); # String wird beim Erreichen von / geteilt. $pocet = $#split; # Teile werden gezaehlt. $filename = ""; # Teile werden zusammengefuegt um den Datei- for ($i=1; $i<=$pocet; ++$i) # namen zu erstellen und zu speichern. { $filename .= "/"; $filename .= @split[$i]; } chomp($filename); # Wenn der Dateiname ermittelt werden konnte, # # koennen nun alle weiteren Daten ermittelt werden# if ($filename) { if($key eq "Title") { $title = `mp3info -p %t "$filename" 2> /dev/null`; print $title; } elsif($key eq "Time") { $min = `mp3info -p %m "$filename" 2> /dev/null`; $sec = `mp3info -p %s "$filename" 2> /dev/null`; if($min || $sec) { $time = "[".$min.":".$sec."]"; print $time; } } elsif($key eq "Artist") { $artist = `mp3info -p %a "$filename" 2> /dev/null`; print $artist; } elsif($key eq "Album") { $album = `mp3info -p %l "$filename" 2> /dev/null`; print $album; } elsif($key eq "Track") { $track = `mp3info -p %n "$filename" 2> /dev/null`; if($track) { print "[Track".$track."]"; } } elsif($key eq "Year") { $year = `mp3info -p %y "$filename" 2> /dev/null`; print $year; } elsif($key eq "File") { $file = `mp3info -p %f "$filename" 2> /dev/null`; print $file; } elsif($key eq "Audio") { $bitrate = `mp3info -p %r "$filename" 2> /dev/null`; $samplingfreq = `mp3info -p %Q "$filename" 2> /dev/null`; $sm = `mp3info -p %o "$filename" 2> /dev/null`; print $bitrate." kB/s, ".$samplingfreq." Hz (".$sm.")"; } elsif($key eq "Media") { $ver = `mp3info -p %v "$filename" 2> /dev/null`; $layer = `mp3info -p %L "$filename" 2> /dev/null`; print "MPEG ".$ver.", Layer ".$layer; } else { print "Usage error: You have entered an wrong ARGUMENT. The following ARGUMENTS can be entered:\n\tTitle, Time, Artist, Album, Track or Year.\nExiting!\n"; exit; } } } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Copyleft by Kannan Thambiah. # # Use it on your own risk. I will not be held responsible # # for any problems or datalosses due to executing this # # script. # # Licensed under the: # # Attribution-NonCommercial-ShareAlike 2.0 Creative Commons # # http://creativecommons.org/licenses/by-nc-sa/2.0/de/ # # http://creativecommons.org/licenses/by-nc-sa/2.0 [english] # # # # Contact me: pygospa@yahoo.de # # Jabber me: pygospa@jabber.ccc.de # # Visite me: http://bytebreaker.funpic.de # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #