1 2mp3riot User Manual 3 4Dec 29, 2004 5 6 7----------------------------------------------------------------------------- 8 9If you want to test a program, then run it on a sample data set! 10Do not thing, that anything will work correctly! 11 12----------------------------------------------------------------------------- 13 14CONTENTS 15 16About This Program 17Usage 18Requirements 19Installation 20Problems under Windows and Dos 21Examples 22Changing html layout 23Html templates 24Release History 25Contacting the Author 26ToDo 27 28----------------------------------------------------------------------------- 29 30About This Program 31 32mp3riot is a command line utility written in perl to generate html files by 33searching recoursivly through directories. 34 35With the program some additional files are delivered: 36 - Copyright: the gnu public licence 37 - utf.dat: a file containing utf code to correct links 38 - example.unix: an example config file for unix 39 - example.win: an example config file for windows 40 - repl.dat: an example file for replacements (for windows users) 41 - Info.pm: the perl module MP3::Info is written by Chris Nandor 42 - MANUAL: this file 43 - mp3table.sql: file containing the sql skeletton 44 - group.dat: an exsample file for grouping 45 46Bugs: Doubtless many. Feel free to contact the author, but remember: 47 I do not promise anything. 48 f2html@linuxsecure.de 49 50Disclaimer: - I do not support Perl, html, or any OS 51 - I do not promise that this program does anything 52 - this program may distroy all your data 53 - I cannot promise that this program will not distroy 54 all human civilization 55 56----------------------------------------------------------------------------- 57 58Usage 59 60 perl mp3riot [options] 61 62 -h, --help Show this screen and exit 63 -k, --mkconf Use an assistant to write a config file 64 -o, --os <value> Default "unix", otherwise windows. Possible values are: 65 win, unix 66 -Q, --sortby <value> Default is "NAME" (the filename). You can sort 67 the fillist by the following criteria: 68 URLNAME, SHOWNAME, DIR, NAME, TITLE, ARTIST, 69 ALBUM, YEAR, COMMENT, GENRE, TRACKNUM, SIZE, 70 MODTIME, VBR, BITRATE, FREQUENCY, MINUTES, 71 SECONDS, FIRSTCHAR 72 -n, --doublicates Check for doublicates of files by their 73 filename 74 -D, --md5doublicates Check for doublicates of files by their 75 MD5 sum 76 -V, --seekvalues <n,+-n,n> Three values that have to be seperated by ",". This 77 is an useful option for --md5doublicates. 78 The first one is the offset in bytes, the second is 79 the number of bytes to seek (and the direction), and 80 the last value tells the program where to start from (1 means to 81 start from the begining of a file, 2 means to start 82 from the end of a file. So, a combination of 1000,-1128,2 83 tells the programm to start 1128 bytes before the file ends 84 (id3v1 tag is 128 bytes long!) and use 85 1000 bytes for calculation of md5 sums. 86 -b, --dbfile <file> Write database to a file for searching it 87 -m, --m3u <file> Write a m3u playlist file. Directory and filename or 88 "GROUPPATH" for writing m3u files for groups. 89 -X, --xml <file> Write a xml playlist file. Directory and filename or 90 "GROUPPATH" for writing xml files for groups. 91 -L, --pls <file> Write a pls playlist file. Directory and filename or 92 "GROUPPATH" for writing pls files for groups. 93 -W, --b4s <file> Write a b4s playlist file. Directory and filename or 94 "GROUPPATH" for writing b4s files for groups. 95 -t, --html <file> Write a html file. Directory and filename or 96 "GROUPPATH" for writing m3u files for groups. 97 -a, --http <name> Define the http address for url 98 -r, --remove Remove id3tags (do you know what you are doing?) 99 -i, --mp3info Use mp3/ogg info for html output 100 -e, --ext Remove file extensions in html output 101 -f, --filesize Use filesize for html output 102 -c, --check <ext> Select files by their extension(s) (e.g. mp3). 103 For every extension use a seperate flag! 104 -z, --skip <number> Skip n elements of mount/directories/names 105 -p, --conf <file> Use a config file 106 -w, --utf8 <file> File with UTF-8 code for replacements in links 107 -q, --nocs Do sorting not case sensitive 108 -j, --statfile <file> Write statistics to file 109 -d, --dir <directory> Define the (multiple) directory(ies) the 110 mp3s are stored in. For every directory use a 111 seperate flag! 112 -g, --sql <file> Filename to store sql table in (only for mp3 and ogg!) 113 -y, --replace <file> Name of replacement file; in the file use 114 <string_1>=<string_2> to transform <string_1> 115 into <string_2>; special characters like a 116 backslash have to be preceeded by a 117 backslash "\\" (used for directories) 118 -s, --seperate <path> Write seperate html files for every 119 character 120 -R, --rename Renames mp3 and ogg file using their id3tag. 121 The use of rename_template in the configfile 122 is optional. If rename_template is not used, 123 the program tries to create a filename like: 124 ARTIST - ALBUM - TRACKNUMBER - TITLE by using 125 the id3tag. It assumes, that the filenames have 126 a similar format and tries to guess, whether the 127 id3tag has enough information to create a better 128 filename. Old and new filenames are stored in 129 RENAME.bak 130 -B, --renameback Renames files back using the file RENAME.bak 131 -T, --templates Html templates are used. They have to be defined 132 in the conmfig file using the commands html_head, 133 html_change, html_body, html_footer, html_sep_head. 134 See the README for avalable templates! 135 -G, --groupfile <file> Filename for grouping information: 136 <groupname1>=<TYPE>=<string1>,<string2>,... 137 Prossible types are: NAME, DIR, TITLE, ARTIST, 138 ALBUM, YEAR, COMMENT, GENRE, TRACKNUM, SIZE, MODTIME, 139 VBR, BITRATE, FREQUENCY, MM, SS, EQUAL, FIRSTCHAR 140 -P, --grouppath <path> The path, where to write the html, m3u, xml, b4s, and pls 141 files for groups 142 -O, --older <number> Only files are selected, having a modification time 143 higher than the specified days 144 -Y, --younger <number> Only files are selected, having a modification time 145 less than the specified days 146 -I, --id3tag Use the id3 tag to get infos 147 -S, --random <number> Percentage of file to select randomly (e.g. 50 to select 148 50% of files/every second file) 149 150 Additionally, in the config file it is possible to use the commands: 151 exec= <param> Execute system command. This command can be used multiple 152 times 153 154 rename_template=<string> string with templates for renaming files by their id3tag 155 (to be used together with --rename) 156 157 The following rename templates are available: 158 **TITLE**, **ARTIST**, **ALBUM**, **YEAR**, **COMMENT**, **GENRE**. **TRACKNUM** 159 160 html_head= <string> Html code for the head 161 html_change= <string> Html code if the first character between two file names 162 change 163 html_body= <string> Html code for each filename 164 html_footer= <string> Html code for the foot. 165 html_sep_head= <string> Html code for the head seperate html files by first character 166 167 The following html templates are available: 168 **SUMOFFILES**, **SUMOFMEGS**, **DATE**, **URLNAME**, **SHOWNAME**, **DIR**, **NAME**, 169 **TITLE**, **ARTIST**, **ALBUM**, **YEAR**, **COMMENT**, **GENRE**, **TRACKNUM**, **SIZE**, 170 **MODTIME**, **VBR**, **BITRATE**, **FREQUENCY**, **MINUTES**, **SECONDS**, **HTMLINDEX**, 171 **FIRSTCHAR** 172 173----------------------------------------------------------------------------- 174 175Requirements 176 177 178mp3riot runs under all systems where perl is installed. The program was 179tested und Windows 2000 and Linux. 180 181You can download perl from http://www.perl.org 182 183 184Furthermore the skript needs two perl modules. (1) getopt that is normally 185part of every perl distributuion, and (2) Mp3Info. You can download Mp3Info 186from http://search.cpan.org. But a version is also delivered with f2html.pl. 187Under Unix systems like linux you can use the installation skripts. Or it 188can be copied into a folder like "/usr/lib/perl5/site_perl/5.8.1/MP3". 189Under Windows the perl module "Info.pm" has to be copied to the perl 190libary directory: "path were perl is installed"\lib\. There you have to 191create a directory called MP3. Into this directory you have to copy the 192file Info.pm. 193 194 195----------------------------------------------------------------------------- 196 197Installation 198 199mp3riot does not need to be installed. Just copy it to a directory and 200execute it from this directory, or copy to a directory and set the 201PATH variable. 202 203 204----------------------------------------------------------------------------- 205 206Problems under Windows and Dos 207 208The shell under Windows is limited to 256 characters. So sometimes it is not 209possible to define all option wanted. Therefor I inplemented the option to 210use a config file, in that all parameters can be written. 211 212 213----------------------------------------------------------------------------- 214 215Examples 216 217If you want to create a custom config file, then execute 218 219 perl mp3riot -k 220 221If you want to use a configfile, just type 222 223 perl mp3riot -p file.conf 224 225where file.conf is your configfile. 226 227With the command line 228 229 perl mp3riot -d /home/nikolei/download1 -d /home/nikolei/download2 230 -o unix -t /home/nikolei/content.html 231 232the script searches recursively through the two directories defined by 233"-d", builds a file list, sorts this filelist alphabetically by the filename, 234not by the name of the directory they are stored in, and writes the list to 235a html file defined by "-t". The options "-b" and "-m" can be used 236additionally or instead of "-t" to write a database file, that can be 237used by the script mp3search.pl, or to create a playlist. 238 239With the command line 240 241 perl mp3riot -d /home/nikolei/download1 -d /home/nikolei/download2 242 -o unix -s /home/nikolei 243 244the script does nearly the same as before. The difference is, that a 245seperate html file for every different first character of the file names 246is written into the directory defined by "-s". For example, the following 247files could be created: 248 249 /home/nikolei/1.html 250 /home/nikolei/a.html 251 /home/nikolei/b.html 252 /home/nikolei/t.html 253 254where "1.html" contains a list of all files beginning with a "1", 255"a" contains all files beginning with an "a" (for example aa.dat, 256ab.dat, ac.dat ...), and so on. 257 258 259With the command line 260 261 perl mp3riot -d /home/nikolei/download1 -o unix -c mp3 -c MP3 262 -t /home/nikolei/content.html 263 264the script writes out a html file, but uses not all files it has found, but 265only files that have the suffix "mp3" or "MP3". 266 267With the command line 268 269 perl mp3riot -d /home/nikolei/download1 -o unix -i -f -e 270 -t /home/nikolei/content.html 271 272the script writes out a html file. For this html file it uses additional 273information, if the file is a mp3 file (the "-i" option), i.e. the length 274of the track, the bitrate, the frequency, and if it is variable encoded. 275Defining "-f" option, the html file contains the size of each file, and 276given the "-e" option the file suffix is deleted in the html file. 277 278Using additionally the "-I" flags enables the use of the id3tag. 279 280 perl mp3riot -d /home/nikolei/download1 -o unix -i -f -e -I 281 -t /home/nikolei/content.html 282 283The id3tag information is used for sql output and can be used for 284html output with templates. 285 286 287With the command line 288 289 perl mp3riot -d /home/nikolei/download1 -w /home/nikolei/utf8.dat 290 -o unix -t /home/nikolei/content.html 291 292the script writes out a html file, and corrects special characters 293by changing them to their utf-8 code. Simply define a file where the utf-8 code 294is stored in by using option "-w". The file containing the utf-8 code for 295replacements must have the following form: 296 297 � %C0 298 � %E0 299 � %C1 300 301Thuch a substitution might be necessary, because you cannot download files 302containing special characters in their file name. Using such a utf-8 file the 303name of a link will be replaced so that a file is downloadable. For example: 304 305 <a href="�namal�.mp3">�namal�.mp3</a> 306 307becomes 308 309 <a href="%C0namal%E0.mp3">�namal�.mp3</a> 310 311With the command line 312 313 perl mp3riot -d /home/nikolei/download1 -y /home/nikolei/repl.dat 314 -o unix -t /home/nikolei/content.html 315 316the script writes out a html file, and corrects special patterns in the 317link, if option "-y" is used. The patterns and their substitution have to be 318stored in a file. The option can be used for path name substitution. Windows 319user have to be aware of using two backslashes instead of one! For example, 320the file repl.dat contains the following replacement table: 321 322 c:\\music\\good=/mp3c 323 c:\\music\\bad=/mp3d 324 325Then the pathname for a file stored in the directory c:\music\good will be 326corrected to /mp3c. This option is usefull if you want to setup a webserver 327for your files. Note that both strings are seperated by ------>. There are no 328spaces before or after any string! 329 330With the command line 331 332 perl mp3riot -d /home/nikolei/download1 -a http://www.yourdomain.net 333 -o unix -t /home/nikolei/content.html 334 335the sript writes out a html file and uses a http address for the links. 336It might be necessary do use this option together with option "-z"! 337 338With the command line 339 340 perl mp3riot -d /home/nikolei/download1 -z 2 341 -o unix -t /home/nikolei/content.html 342 343the sript writes out a html file, and skips the first 2 directories when 344writing the link. For exmaple 345 346 <a href="/home/nikolei/download1/name.mp3">name.mp3</a> 347 348becomes 349 350 <a href="/download1/name.mp3">name.mp3</a> 351 352This option is usedful if you have stored your file in subdirectory of 353the path where your homepage is stored in and if you want to put the files 354for download into the net. It might also be useful for samba/windows shares etc. 355 356Given the option -q in the commandline, the program does not work case 357sensitive any more. For example, it groups lower case and upper case 358characters of the same type together. So "a" and "A" are the same. 359 360The command line 361 362 perl mp3riot -d /home/nikolei/download1 -q 363 -o unix -t /home/nikolei/content.html 364 -j /home/nikolei/statistics.html 365 366forces the program to do the sorting ertc. not case sensitive (-q option) 367and to write a statistics html file to /home/nikolei/statistics.html. The 368other things are done on the same way as for the command line before 369 370You can sort the collected file not only by their filename (default), but you can 371use mp3- or tag-infos as a sorting criteria. For example: 372 373 perl mp3riot -d /home/nikolei/download1 --sortby DIR 374 -o unix -t /home/nikolei/content.html 375 -j /home/nikolei/statistics.html 376 377sort all files by the name of the directory they are stored in. The are other possible 378criteria like URLNAME, SHOWNAME, DIR, NAME, TITLE, ARTIST, ALBUM, YEAR, COMMENT, GENRE, TRACKNUM, SIZE, 379MODTIME, VBR, BITRATE, FREQUENCY, MINUTES, SECONDS, FIRSTCHAR. 380 381 382To write a sql data file just type 383 384 perl mp3riot -d /home/nikolei/download -o unix 385 -g /home/nikolei/sqldata.sql 386 387Only files that end with "mp3" or "MP3" make their way into the database file! 388The sql data consists of the following mp3 file information: file name, song title, 389artist, album, year, comment, genre, directory, filezize, modification time, 390vbr, bitrate, frequency, minutes, and seconds. 391 392If you want to check for dublicates of you files you can add the dublicates option 393(-n) to you command and the filenames that exist more than one time are 394listed on stdout. 395 396 perl mp3riot -d /home/nikolei/downlod1 -o unix -n 397 -g /home/nikolei/sqldata.sql 398 399 400You can try to find dublicate files based on their content. 401 402The statement 403 404 perl mp3riot -d /home/nikolei/download -o unix -D 405 -V 1000,-1128-2 406 407tells mp3riot to search for dublicate files in /home/nikolei/download using md5sums. 408The calculation of md5sums is restricted to a small part of the file. Here, the program 409uses only 1000 bytes. The 1000 bytes are located 1128 bytes starting from the end of the file (2). 410So the last 128 bytes (size of an idv1 tag) are not used. 411 412 413The command line 414 415 perl mp3riot -d /home/nikolei/download1 -r -o unix 416 417simply removes every id3tag it finds. 418 419 420The command line 421 422 perl mp3riot -d /home/nikolei/download1 -o unix -m /home/nikolei/mp3.m3u -S 20 423 424creates a m3u playlist containing a random sample of 20% of all files of the 425folder /home/nikolei/download1. 426 427 428The command line 429 430 perl mp3riot -d /home/nikolei/download1 -o unix -X /home/nikolei/mp3.xml 431 432creates a xml playlist. 433 434 435The command line 436 437 perl mp3riot -d /home/nikolei/download1 -o unix -L /home/nikolei/mp3.pls 438 439creates a pls playlist. 440 441 442The command line 443 444 perl mp3riot -d /home/nikolei/download1 -R -o unix 445 446renames all files containing an id3tag (nomally mp3 and ogg files) by the conent of 447the tag in the form: 448 449 ARTIST - ALBUM - TRACKNUMBER - TITLE.mp3 450 451The information about what files have been renamed and how can be found in the 452file "RENAME.bak" in the mp3riot-directory. This file is used when you want to rename 453your files back, so that they get their original name. This option is only useful for 454for renaming new files. It is not good to run it on files that have already a good 455naming shema or that already have been renamed. 456 457This can be done using the command line 458 459 perl mp3riot -d /home/nikolei/download1 -B -o unix 460 461 462In the config file you can use a template to rename files using the id3tag. you need the 463commands: 464 465rename 466rename_template=<string> 467 468<string can be any string and can be filled with the following templates: 469**TITLE**, **ARTIST**, **ALBUM**, **YEAR**, **COMMENT**, **GENRE**. **TRACKNUM** 470 471So one good choice for rename_template would be: 472 473rename_template=**ARTIST** - **ALBUM** - **TRACKNUM** - **TITLE** 474 475 476It has to be noted, that the options can be used together. For example 477 478 perl mp3riot -d /home/nikolei/download1 -d /home/nikolei/download2 479 -o unix -q -g -i -l -f -e -R -n -z 3 480 -y /home/nikolei/repl.dat 481 -g /home/nikolei/mp3.sql -j /home/nikolei/stat.html 482 -w /home/nikolei/utf.dat -c MP3 -c mp3 483 -b /home/nikolei/content.db -m /home/nikolei/content.m3u 484 -t /home/nikolei/content.html -a http://mydomain.net/music 485 486Because it is too much to write if you want to update the generated files 487more frequently, you can write everything into a config file. In the config 488file you can use the same option, but they have to be written in a slighly 489different way: 490 491 -d /home/nikolei/download1 492 493becomes 494 495 d=/home/nikolei/download1 496 497 or 498 499 dir=/home/nikolei/download1 500 501and so on. But be aware about that one or more spaces (e.g. at the end of the 502line) do also belong to the filename. So when you get an error message like 503"cannot open directory xxx" then it may be due to your rights reading this 504directory or because you used spaces in the definition of the directory. 505 506An additional option is available if you are using a config file: 507"x=". with this option, that you can use several times, it is possibles to 508make system calls. For example, if you want to copy the html file to an 509other directory, then just type: 510 511 x=copy /home/nikolei/content.html /home/nikolei/public_html/content.tml 512 513It might be also useful to write a seperate script (under dos a so called 514batch file). This file could execute the script mp3riot several times 515using different config files. This can be useful if you want to handle some 516directories in a different way. 517 518Or you can use the batch option to updaten or create you aql database: 519 520 x=mysql mp3 < sqldata.sql 521 522 523Fortunately, everybody is free to modify the html code within the script 524to adjust the output. 525 526 527If you want to use your own html code, then you can do this using the 528tamplates option. Because you have to fill some variables, it is best to 529use a confiug file for it. See the Html templates section for further 530details. 531 532You can select file not only by their extension, but also by their 533modification time. Yon can select files that are a specified number of day 534older ("-O") and/or younger ("-Y") than the current date. For example: 535 536 perl mp3riot -d /home/nikolei/download1 -q 537 -o unix -t /home/nikolei/content.html 538 -O 10 539 -Y 20 540 541With this options, you can select files, that are older than 10 and younger 542than 20 days. 543 544Another useful option is grouping. For example, if you have some files 545beginning with the same string, and you want to build a seperate 546html file for them, you can do this by specifiing the in a groupfile. 547The syntax within the groupfile is: 548 549 <groupname1>=<TYPE>=<string1>,<string2>,... 550 <groupname2>=<TYPE>=<string1>,<string2>,... 551 end so on. 552 553<groupname1> is the name of the group 1. <TYPE> is the type of group. 554And <string1> is the first string in the group to search for. 555Possible values for type are: 556 557 NAME : the name of the file 558 FIRSTCHAR : the first character of the filename 559 DIR : the directory, where the file is stored in 560 TITLE : the title of the song (using id3tag) 561 ARTIST : the artist of the song (using id3tag) 562 ALBUM : the album of the song (using id3tag) 563 YEAR : the year of the song (using id3tag) 564 COMMENT : the comment of the song (using id3tag) 565 GENRE : the genre of the song (using id3tag) 566 SIZE : the size of the file 567 MODTIME : the modification time of the file (in non-leap seconds since January 1st, 1970 UTC) 568 VBR : is 1, if the song is encodet with variable bitrate 569 BITRATE : the bitrate of the song 570 FREQUENCY : the frequency of the song 571 MM : song lentgh in minutes 572 SS : song length in seconds 573 EQUAL : special type, used to build groups automatically based on characteristis 574 575Fortunately, every group can have a different <TYPE>. 576 577For example, to put all songs from Red Hot Chili Peppers into one file, 578and the ones from New Model Army into another, create a group file 579like this: 580 581 Red Hot Chili Peppers=NAME=Red Hot Chili Peppers,Red_Hot_Chili_Peppers 582 New Model Army=NAME=New Model Army,New_Model_Army 583 584EQUAL is a special <TYPE>. It functions like an aggrigator. The left and 585the right statement (<groupname> and <string>) have to be <TYPES> (e.g. NAME, 586DIR, ...). Both should be the same, So that: 587 588 DIR=EQUAL=DIR 589 590will group together all file, that are stored in the same directory. The output 591file will then be named after the name of DIR. 592 593 594On the commandline, you can specify the groupfile using the "-G" option. 595Additionally, a path has to be specified, where to store the html files 596for the defined groups. This can ba done using the "-P" option. 597The names of the html files for the groups are then <groupname>.html. 598All other files, that do not match a group, are written into the 599normal file. 600 601 perl mp3riot -d /home/nikolei/download1 -q 602 -o unix -t /home/nikolei/therest.html 603 -G /home/nikolei/groupfile 604 -p /home/nikolei 605 606The type EQUAL can be used to make a seperate html file for every different characteristic. For 607example, you can build a seperate html file for any single (atomic sub-) directory, that exists, 608by defining: 609 610DIR=EQUAL=DIR 611 612The html files are stored in the specified directory. To make html file for any genre, year or whatever, 613is straightforward. 614 615GENRE=EQUAL=GENRE 616 617or 618 619YEAR=EQUAL=YEAR 620 621All regular types can be used. 622 623 624----------------------------------------------------------------------------- 625 626Changing html layout 627 628If you want to change the layout of the htmloutput, you have to go directly 629into the code (although it is planned to make changing the htmlcode more 630flexible by using templates). The functions that contain html are: 631 632Writestatfile: here you can change the layout of the statistics file. 633 634Getmp3info: in this function layout is defined when using the command line 635 parameter "mp3info" 636 637Getogginfo: in this function layout is defined when using the command line 638 parameter "mp3info" 639 640Date: here the layout of the actual date is defined. 641 642Writehtml: here some layout of the html output can be changed. 643 644Htmlheader: here you can change the header for "Writehtml". 645 646Htmlfooter: here you can change the footer for "Writehtml". 647 648Htmlchange: here the html code is defined when the first character from 649 on file to the other changes. 650 651Htmlbody: here the htmlcode for writing each file is defined. 652 653Writesephtml: here seperate html files for every different first character 654 is written out. 655 656Sephtmlheader: here the header for "Writesephtml" is defined. 657 658 659 660----------------------------------------------------------------------------- 661 662Html templates 663 664Since version 1.0 it is possible to use html templates. Templates have to 665be activated usinf the "-T" oder "--templates" flag. Additionally, in the 666configuration file, variables with html code and templates have to be filled. 667 668There are four varibales to can fill with your own html code. These are: 669 670 html_head : The header of an html file 671 html_sep_head : The header of a html file for seperated files by fist character 672 html_body : the body, or simply, every song, file or record 673 html_change : if the first character between two filenames change 674 675Templates are identified via keywords. Every keyword start with two asterics and 676also ends with two asterics. Please note, that not all templates are available 677for all variables! Implemeted templates are: 678 679 **SUMOFFILES** : Sum of files listed in html file 680 **SUMOFMEGS** : Sum of megabytes of files listed in html file 681 **DATE** : Date of creation of html file 682 **URLNAME** : URL name of file (name within the <a href=...>-tag) 683 **SHOWNAME** : The name that is shown (name between the tag <a></a> 684 **DIR** : Directory where the file is located 685 **NAME** : Original name of the file 686 **TITLE** : Tile of the song (using id3-tag) 687 **ARTIST** : Artist of the song (using id3-tag) 688 **ALBUM** : Album of the song (using id3-tag) 689 **YEAR** : Year the album was released (using id3-tag) 690 **COMMENT** : Commentstring of the song (using id3-tag) 691 **GENRE** : Genre of the song (using id3-tag) 692 **SIZE** : Fize of the file in kilobytes 693 **MODTIME** : Modification time of the file in the fromat <year>-<month>-<day> 694 **VBR** : Indicator whether variable bitrate is used or not, if it is an 695 mp3 or ogg vorbis file 696 **BITRATE** : Bitrate, if it is an mp3 or ogg vorbis file 697 **FREQUENCY** : Frequency of the file, if it is an mp3 or ogg vorbis file 698 **MINUTES** : Minutes, the song lasts, if it is an mp3 or ogg vorbis file 699 **SECONDS** : Seconds, the song lasts, if it is an mp3 or ogg vorbis file 700 **HTMLINDEX** : Prints a linked index of fist chararacters for html output 701 **FIRSTCHAR** : The first character of the filename 702 703For example, in order to get exactly the same result for html output as 704the program gernerates by default, you can define the following varibales: 705 706 html_head=<html><body>**HTMLINDEX**<br> 707 html_change=<P><A HREF="#top">back to top</A></P><P><A NAME="**FIRSTCHAR**">**FIRSTCHAR**</A></P> 708 html_body=<BR><A HREF="**URLNAME**">**SHOWNAME**</A> **SIZE** kb **MINUTES**' **SECONDS**'' 709 html_footer=<BR><P><A HREF="#top">back to top</a></P><P>Sum of files is **SUMOFFILES**.<br>Sum of megabytes is **SUMOFMEGS**.<br>Generated by mp3riot on **DATE**, (c)2000-2003 Nikolei Steinhage</P></body></html> 710 html_sep_head=<HTML><BODY><P><B></B>**FIRSTCHAR**</P> 711 712 713----------------------------------------------------------------------------- 714 715Release History 716 717 718 f2html.pl 0.1-20001127 719 Changes: 720 - Initial release 721 722 f2html.pl 0.2-20010117 723 Changes: 724 - The manual has been updated. 725 - The option -c has been updated. Now this option can be used more 726 than only one time. So one is able to select file by different 727 extensions. 728 729 f2html.pl 0.3-20010628 730 Changes: 731 - Some checks and corrections for pathnames 732 - Only existing characters are written out at the top of a html 733 file 734 - Rewrite of sum of files and sizes. Important for writing 735 seperate html files for every character 736 - The option -q has been implemented and allows for doing the 737 procedures in a non case sensitive way 738 - The option -j has been implemented. A html file with statistics 739 can be written out. 740 741 f2html.pl 0.4-20011127 742 Changes: 743 - Now f2html comes with a new version of Info.pm 744 from MP3-Info-0.91 by Chris Nandor 745 - Minor Bugfixes 746 - New option to create sql database 747 - New option to create a config file 748 749 f2html.pl 0.5-20020626 750 Changes: 751 - Fixed problem with sql data output when files contain the 752 charakter "'" 753 - Name of option "hex" changed to "utf8" 754 - Implemeted progress bar for prepating html files 755 - More information about what the program is doing 756 757 f2html.pl 0.6-20020718 758 Changes: 759 - New method (experimental) for faster sorting. 760 Useful for indexing huge number of files or mp3 files 761 with additional information. 762 - New option for checking for dublicates of filenames 763 - Now f2html.pl comes with a new version of Info.pm 764 from MP3-Info-1.01 by Chris Nandor 765 766 f2html.pl 0.7-20021016 767 Changes: 768 - bug for the option "check" in config file and configuration wizard fixed 769 - bug for the check of the mp3 extension when mp3info was enabled fixed 770 - bug of sum of megs in html output fixed 771 - bug in mp3table.sql fixed 772 - basic ogg vorbis support implemented (thanks to Jens Burkal) 773 774 f2html.pl 0.8-20021105 775 Changes: 776 - some changes in the documentation 777 - new option to rename files using their id3tag 778 - new option to rename files back 779 - some code fixes 780 781 f2html.pl 0.9-20030313 782 Changes: 783 - Fixed a commandline parameter bug where the parameters 784 were handled non case sensitive. Now there are handled case sensitive 785 As a result the functions RENAME and RENAMEBACK did not work 786 when called with the short command line argument. 787 - Fixed a commandline parameter bug that occured with Perl 5.8.0 and 788 Getopt::Long 2.32. The "-s" flag in line 1 of the perl script 789 causes the program to count the command line parameters in 790 an usual way, so that command line parameters got disturbed and did 791 not work any more. 792 793 f2html.pl 1.0-20030319 794 Changes: 795 - Fixed some smaller bugs 796 - Removed option for fast sorting (not necessary any more) 797 - Rebuild the internal data structure completely 798 - Implemented selection of files by their modification time 799 (younger and/or older than days from now) 800 - Implemented grouping of files by string matching between 801 group defninitions by various types 802 - Implemented variable html-code definitions and templates 803 - Changed definition for string replacement 804 - f2html.pl now comes with a new version of Info.pm from 805 MP3-Info-1.02 by Chris Nandor 806 - The use of the id3tag for sql and html output is now optional 807 - Manpage is not supported any more. 808 809 mp3riot 1.1-20030728 810 Changes: 811 - Renamed f2html.pl into mp3riot 812 - Fixed output of playlist in M3U format, so that the M3U file 813 is now containing full information 814 - Fixed bug for retreaving the TITLE of an id3tag 815 - Added output of playlist in XML format 816 - Added output of playlist in PLS format 817 - Added random fileselection for random playlists 818 - Added the tracknumber for sql output 819 - Added **TRACKNUM** (tracknumber) and as a template variable 820 for html output 821 - Added TRACKNUM (tracknumber) as a variable for groupings 822 - Added tracknumber and comment for db output 823 - Fixed bug in renaming function when special characters are 824 present in the id3tag 825 - Added rename_template to do renaming of files using their id3tag 826 in a flexible way 827 - Fixed a bug in renameback 828 829 mp3riot 1.2-20040928 830 Changes: 831 - Fixed bug in sql output 832 - Flexible search for doublicate files using md5 sums 833 - search for doublicates by filenames seperated from search function 834 - fixed bug in xml output 835 - filesize in html output is now rouded 836 - replaced progress bar by counter in percentage 837 - added counter for collected files 838 - fixed bug in index in html output 839 - fixed bug in html output for grouping 840 - extended grouping function by new type "EQUAL" 841 - bugfix in pls output 842 843 mp3riot 1.3-20041220 844 Changes: 845 - extended grouping fuction for all playlistfiles 846 - renaming of special characters for filenames og groups 847 - support of b4s playlistformat 848 - sorting of filelist by various criterias of id3tag, mp3 and 849 file information (e.g. ARTIST, BITRATE etc.) 850 - extended output of doublicate function by diretory names 851 - added FIRSTCHAR as a value for grouping 852 - updated manual 853 854----------------------------------------------------------------------------- 855 856Contacting The Author 857 858You you have found bugs, need help, or have some ideas for further 859development of the program, feel free to mail me 860 861 mp3riot@linxsecure.de 862 863----------------------------------------------------------------------------- 864 865Todo 866 867There are still a lot of things to do. But first of all I have to write a 868better manual with a lot of examples in it. To me, this seems very necessary, 869bacause some users may encounter problems using this program. Some feature 870like sql-interface, advanced sorting and grouping have to be implemented. 871PHP interface has to be written. Change all command line examples to config file examples. 872 873 874 875 876