BottomFeeder includes a workspace that allows scripting - but it's deeper than that. If you save your script to file called .btfrc and put it in the same directory as the image (or exe), it will get filed in at startup. For instance, I just had one of the IRC regulars ask me about a change to the localhost server that Bf runs. If you hit this url - http://localhost:8666/btf - while Bf is running, it will give you a list of your subscriptions, along with the top five items. Well, what if you wanted only the new items? Simple enough, if you have a small change to one method:
printHtmlOn: aStream
(self link isNil or: [self link isEmpty])
ifFalse: [
aStream
nextPutAll: '<a href="';
nextPutAll: self link;
nextPutAll: '">'.
].
aStream nextPutAll: self title.
(self link isNil or: [self link isEmpty])
ifFalse: [
aStream nextPutAll: '</a>'.
].
(self items notNil and: [self items notEmpty])
ifTrue: [| toPrint |
toPrint := self allNewItems.
aStream nextPutAll: '<ul>'.
toPrint do: [:each |
aStream cr.
aStream nextPutAll: '<li>'.
each printHtmlOn: aStream].
aStream nextPutAll: '</ul>'.
aStream cr].
aStream
nextPutAll: '<br/>';
cr
The only change was in the line: toPrint := self allNewItems. That had explicitly grabbed the top five before. Now, you do need to know the Bf API to make this sort of change. However, the cool thing is that it doesn't need to be a one-off effort. I've used this feature myself, and I know a few other people who have as well. The nice thing is that I didn't have to go out of my way to add scripting support to the application - it just happened. In fact, I wasn't even the first person to notice :)