Short: Setlist-FM-dl Author: IKE Uploader: ike ezcyberspace com Type: comm/net Version: 0.5 Requires: BetterString.mcc, TextEditor.mcc Architecture: ppc-morphos INTRODUCTION ------------ 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. Main Features: * 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: ike@ezcyberspace.com INSTALLATION ------------ Just place the 'Setlist-FM-dl' program and 'xml' folder (the xsl stylesheets) folder wherever you'd like on your harddrive... USAGE ----- - 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: ike@ezcyberspace.com VERSION HISTORY --------------- 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 2.2.6.22 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... RECOMPILING ----------- 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 TO DO ----- - 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... LICENSE ------- 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. ABOUT ----- - 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 Look at some of my other projects and ports @ http://www.ezcyberspace.com/programming.shtml 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. Operation successful.