Possible addition to websources commands?


#1

First off, many thanks to Florian for a great app in MP3tag and to Dano for a great set of amg websource files.

There may already be a way to do what I am thinking of but I don't see it. I think an easy solution would be to include a command in the websources framework to erase the contents of a field that has been output.

I am trying to tag my classical music using track info from the AMG "tracks" pages. I have modified Dano's .src to search by album title and pull the info as it appears on the AMG Tracks pages, which are more complete than the Overview pages referenced by the current .src. However, in some track listings, AMG intentionally does not output the composer name or the name of the work, when these are the same as the previous line and the work title is unchanged. Here are 2 examples:

hxtp://www.allmusic.com/cg/amg.dll?p=amg&sql=43:20700~T2
Same composer throughout, different works and different movements within a work

hxtp://www.allmusic.com/cg/amg.dll?p=amg&sql=43:21651~T2
Different composers as well as different works and movements

What I'd like to be able to do is "save" the Composer name and Work title from the most recent instances where they exist, so that I can reuse them in place of the subsequnt blank fields. I have tried using SayOutput S and referencing the field name (e.g., SayOutput "Composer") but this writes the entire contents of field S to the output. Once I have 2 entries in field S, another SayOutput doubles this to 4 entries, and the next takes it to 8 entries.

I thought I might solve that problem by creating a temporary output field that I would not re-write. For example, "TempComposer" could hold Mozart in the first example and get re-used for the blanks:

OutputTo "TempComposer"
Say "Mozart"
...
OutputTo "Composer"
SayOutput "TempComposer"

However, in the second URL above, I do not see a way to change "TempComposer" to Ravel once I finish with Mussorgsky. Since "Say" appends text to the output field, the best I can do is to Change "TempComposer" to "MussorgskyRavel."

The same problem exists with titles of works that have multiple movements, as both URLs above indicate.

I also thought I might be able to address this issue using SayOutput "Output" and looping through a single class of information at a time (e.g., complete all of the Composer data, then GoToLine 1, then complete all Title data). However, it appears that SayOutput "Output" only writes an empty string rather than the most recent output (at least, that's all that showed up in my debug log and in my results in the GUI). In any case, being able to write, store and then overwrite the contents of a field would be more broadly useful.

A secondary issue, lower priority but useful, would be to enable the websources framework to capture and concatenate multiple web pages before parsing them. In the context of AMG, this would enable capture of the Overview, Review, Tracks and Credits pages, each of which contains complementary information.

Thanks for any thoughts on these issues.