Requires: BetterString.mcc, TextEditor.mcc
Setlist-FM-dl is a simple program that utilizes the setlist.fm API to download various data.
It downloads .xml data by utilizing libcurl, libssl and libxml. It also does .xml-to-.html
transformations via libxslt. This program is a simple example of an implementation on MorphOS
of cURL/SSL as well as the useage of libxml and libxslt.
* Downloads user concert data from Setlist.fm
* Saves output file in "ram:" in '.csv' format
* Does various searches via the open setlist.fm API
* Converts downloaded .xml data into .html via libxslt for future use and manipulation
Thanks for your interest!
Send email/feedback to:
Just place the 'Setlist-FM-dl' program and 'xml' folder (the xsl stylesheets) folder wherever
you'd like on your harddrive...
- Enter a User Name and press the Download button...to get that user's concert history
...or search via the various Search items (requires setlist.fm user account and API key...
it's totally free to signup for an API key...)
- Have a look at the 'hot help' bubbles to get an idea of the basic program usage...
- To use the Search and '.xml to .html' conversions you must have a setlist.fm account:
https://www.setlist.fm/signup (it's totally free to have an account...)
- Once you have a user account you must apply for an API key (free) and enter it in the Prefs:
https://www.setlist.fm/settings/api (it's totally free to signup for an API key...)
- You can state the reason for API key request as "to utilize the Setlist-FM-dl program"...
- You can use '%20' where spaces are needed, an example search: 'The%20Who' or 'Pink%20Floyd'
- You can see how many pages were returned for your search in the main window at the top
of the .xml code and adjust your page number search as necessary. The API will only return
20-30 items for each search request (depending on the request). This is a limit of the API!
- xsl stylesheets can be edited to manipulate the .html output of the various searches (be
careful if you're not sure what your doing...as the output formatting is easy to break!)
- Internationalization: This preference is used for localizing cities, countries, etc. The
default language is English (en), but you can provide any of the following languages: Spanish (es),
French (fr), German (de), Portuguese (pt), Turkish (tr), Italian (it) or Polish (pl) codes.
Just enter the two letter language code in the Prefs settings...
- Any other questions? Feel free to send me an email at: firstname.lastname@example.org
0.1 - first working iteration
0.2 - source cleanup
0.3 - initial release
0.4 - modified source to download .xml
0.4.1 - worked with .xml and xsltproc to build .html output
0.4.2 - built libxslt 1.1.9 against libxml2 220.127.116.11 and compiled working example
that does equivalent of xsltproc...yeah!
0.4.3 - saves file
0.4.4 - implemented search items & settings window; saves language pref (buggy)
0.4.5 - implemented country and userid, massive source cleanup...
0.4.6 - working .xml-to-.html conversion for userid & countries
0.4.7 - working dialogs for userid & countries; hardcoded remainder of search items
0.4.8 - working userid attended & artists search...
0.4.9 - working cities, setlists & venues search; code cleanup...
0.5 - saves x-api-key and language prefs, added user/edited search; massive code
cleanup, added tabbed 'Search' window and second public release...
Built with MorphOS SDK 3.12 and gcc 2.95.3
Major dependencies: libcurl, libssl, libxml2, libxslt
Compile: gcc -o Setlist-FM-dl setlistfmdl.c -lcurl -lssl -lcrypto -ldl -lpthread
-lxml2 -lxslt -lz -liconv -lm -s -Wall
- error checking...program does not do any error checking, but when run from the
command line you can see what is happening with your cURL requests and, however,
it also gives feedback of the server response in the main window...
- Other ideas to implement? I'm listening...
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- NList/parsecsv code based on ViewCSV. Thanks Watertonian!
- .xml-to-.html code based on libxslt_tutorial.c and xsltproc.c
by John Fleck and Daniel Veillard respectively ...Thanks!
- download entire user concert history in .csv format uses Rob Medico's
frontend at https://backup-setlistfm.herokuapp.com ...Thanks!
Setlist-FM-dl is ©2019 IKE <email@example.com>
Look at some of my other projects and ports @
LhA Freeware Version 2.7.14
Copyright © 1991-94 by Stefan Boberg.
Copyright © 1998,1999 by Jim Cooper and David Tritscher.
Copyright © 2000-2013 by Ralph Schmidt, Harry Sintonen and Frank Mariak.
Creating new archive 'Setlist-FM-dl-0.5.lha':
Frozen: ( 51.6%) 5650 => 2731 : Setlist-FM-dl-0.5/readme.txt
Stored: ( 0.0%) 40 => 40 : Setlist-FM-dl-0.5/readme.txt.info
Stored: ( 0.0%) 298235 => 298235 : Setlist-FM-dl-0.5/screengrab.png
Frozen: ( 58.1%) 4391716 =>1836952 : Setlist-FM-dl-0.5/Setlist-FM-dl
Frozen: ( 4.0%) 10448 => 10030 : Setlist-FM-dl-0.5/Setlist-FM-dl.info
Frozen: ( 31.6%) 240 => 164 : Setlist-FM-dl-0.5/src/Makefile
Frozen: ( 82.7%) 67186 => 11579 : Setlist-FM-dl-0.5/src/setlistfmdl.c
Frozen: ( 47.3%) 604 => 318 : Setlist-FM-dl-0.5/xml/artists.xml
Frozen: ( 65.6%) 1323 => 454 : Setlist-FM-dl-0.5/xml/attended.xml
Frozen: ( 53.2%) 683 => 319 : Setlist-FM-dl-0.5/xml/cities.xml
Frozen: ( 48.5%) 599 => 308 : Setlist-FM-dl-0.5/xml/countries.xml
Frozen: ( 65.7%) 1321 => 453 : Setlist-FM-dl-0.5/xml/edited.xml
Frozen: ( 65.9%) 1323 => 451 : Setlist-FM-dl-0.5/xml/setlists.xml
Frozen: ( 40.8%) 499 => 295 : Setlist-FM-dl-0.5/xml/user.xml
Frozen: ( 55.6%) 808 => 358 : Setlist-FM-dl-0.5/xml/venues.xml
15 files added, all files OK.