From bcad40a05ab2dc2a341a3227e30b96668bce4500 Mon Sep 17 00:00:00 2001 From: Karl 'vollmerk' Vollmer Date: Thu, 9 Jun 2005 16:34:40 +0000 Subject: New Import --- admin/access.php | 85 + admin/album.php | 114 + admin/artist.php | 121 + admin/catalog.php | 282 ++ admin/duplicates.php | 59 + admin/flags.php | 91 + admin/index.php | 96 + admin/mail.php | 139 + admin/orphan.php | 71 + admin/preferences.php | 92 + admin/song.php | 182 ++ admin/users.php | 181 ++ albumart.php | 59 + albums.php | 181 ++ amp-mpd.php | 140 + artists.php | 126 + batch.php | 71 + bin/.htaccess | 1 + bin/archive/export_playlist.pl | 80 + bin/archive/import_playlist.pl | 118 + bin/archive/migrate_user.pl | 56 + bin/catalog_update.php.inc | 18 + bin/compare_config.php.inc | 55 + bin/create_genre | 32 + bin/filesort.pl | 29 + bin/fileupdate.pl | 346 +++ bin/genres.txt | 148 + bin/init | 11 + bin/moosic | 6 + bin/moosicd | 6 + bin/parse_m3u.php.inc | 47 + bin/print_amazon.php.inc | 42 + bin/print_tags.php.inc | 34 + config/.htaccess | 1 + config/ampache.cfg.php.dist | 461 +++ config/ampache.cfg.php.dist.de | 247 ++ config/motd.php.dist | 3 + docs/CHANGELOG | 771 +++++ docs/GPL-LICENSE | 280 ++ docs/INSTALL | 189 ++ docs/INSTALL.de | 252 ++ docs/MIGRATION | 39 + docs/MIGRATION.de | 31 + docs/README | 149 + docs/README.de | 114 + download/index.php | 61 + favicon.ico | Bin 0 -> 4286 bytes flag.php | 55 + images/ampache-dark-bg.gif | Bin 0 -> 138 bytes images/ampache-light-bg.gif | Bin 0 -> 138 bytes images/ampache-mid.gif | Bin 0 -> 268 bytes images/ampache.gif | Bin 0 -> 6343 bytes images/blank-pixel.gif | Bin 0 -> 43 bytes images/blankalbum.gif | Bin 0 -> 11378 bytes images/blankalbum.jpg | Bin 0 -> 20730 bytes images/headphone.gif | Bin 0 -> 861 bytes images/table.gif | Bin 0 -> 5680 bytes index.php | 139 + info.php | 1 + install.php | 132 + lib/Browser.php | 1082 +++++++ lib/album.php | 31 + lib/archive.php | 778 +++++ lib/artist.php | 122 + lib/batch.php | 63 + lib/debug.php | 361 +++ lib/duplicates.php | 117 + lib/flag.php | 348 +++ lib/general.php | 554 ++++ lib/gettext.php | 36 + lib/install.php | 238 ++ lib/log.php | 77 + lib/mpd.php | 75 + lib/perl/Local/Ampache/Ampache.pm | 237 ++ lib/perl/Local/Ampache/Makefile.PL | 7 + lib/preferences.php | 281 ++ lib/rss.php | 64 + lib/search.php | 185 ++ lib/song.php | 57 + lib/themes.php | 124 + lib/ui.php | 437 +++ lib/xmlrpc.php | 143 + libglue/README | 393 +++ libglue/auth.php | 399 +++ libglue/config.php | 173 ++ libglue/dbh.php | 53 + libglue/libdb.php | 95 + libglue/session.php | 417 +++ libglue/session2.php | 346 +++ locale/base/TRANSLATIONS | 124 + locale/base/gather-messages.sh | 6 + locale/base/messages.po | 1801 ++++++++++++ locale/de_DE/LC_MESSAGES/messages.mo | Bin 0 -> 17703 bytes locale/de_DE/LC_MESSAGES/messages.po | 2026 +++++++++++++ locale/fr_FR/LC_MESSAGES/messages.mo | Bin 0 -> 1651 bytes locale/fr_FR/LC_MESSAGES/messages.po | 1847 ++++++++++++ locale/tr_TR/LC_MESSAGES/messages.mo | Bin 0 -> 28712 bytes locale/tr_TR/LC_MESSAGES/messages.po | 1866 ++++++++++++ localplay.php | 92 + login.php | 109 + logout.php | 16 + modules/admin.php | 304 ++ modules/amazon/AmazonSearchEngine.class.php | 189 ++ modules/amazon/Snoopy.class.php | 1234 ++++++++ modules/catalog.php | 223 ++ modules/class/access.php | 189 ++ modules/class/album.php | 463 +++ modules/class/artist.php | 207 ++ modules/class/catalog.php | 1934 +++++++++++++ modules/class/error.php | 94 + modules/class/playlist.php | 366 +++ modules/class/song.php | 657 +++++ modules/class/stream.php | 291 ++ modules/class/update.php | 880 ++++++ modules/class/user.php | 604 ++++ modules/class/view.php | 229 ++ modules/id3/audioinfo.class.php | 463 +++ modules/id3/changelog.txt | 2375 +++++++++++++++ modules/id3/demos/demo.audioinfo.class.php | 319 ++ modules/id3/demos/demo.browse.php | 626 ++++ modules/id3/demos/demo.cache.dbm.php | 29 + modules/id3/demos/demo.cache.mysql.php | 29 + modules/id3/demos/demo.joinmp3.php | 96 + modules/id3/demos/demo.mimeonly.php | 53 + modules/id3/demos/demo.mysql.php | 1825 ++++++++++++ modules/id3/demos/demo.simple.php | 53 + modules/id3/demos/demo.write.php | 254 ++ modules/id3/demos/index.php | 1 + modules/id3/dependencies.txt | 24 + modules/id3/getid3/extension.cache.dbm.php | 222 ++ modules/id3/getid3/extension.cache.mysql.php | 171 ++ modules/id3/getid3/getid3.lib.php | 1427 +++++++++ modules/id3/getid3/getid3.php | 1259 ++++++++ modules/id3/getid3/module.archive.gzip.php | 209 ++ modules/id3/getid3/module.archive.rar.php | 32 + modules/id3/getid3/module.archive.szip.php | 97 + modules/id3/getid3/module.archive.tar.php | 179 ++ modules/id3/getid3/module.archive.zip.php | 415 +++ modules/id3/getid3/module.audio-video.asf.php | 1593 ++++++++++ modules/id3/getid3/module.audio-video.bink.php | 70 + modules/id3/getid3/module.audio-video.matroska.php | 78 + modules/id3/getid3/module.audio-video.mpeg.php | 292 ++ modules/id3/getid3/module.audio-video.nsv.php | 224 ++ .../id3/getid3/module.audio-video.quicktime.php | 1292 +++++++++ modules/id3/getid3/module.audio-video.real.php | 528 ++++ modules/id3/getid3/module.audio-video.riff.php | 1995 +++++++++++++ modules/id3/getid3/module.audio-video.swf.php | 153 + modules/id3/getid3/module.audio.aac.php | 538 ++++ modules/id3/getid3/module.audio.ac3.php | 497 ++++ modules/id3/getid3/module.audio.au.php | 163 ++ modules/id3/getid3/module.audio.avr.php | 125 + modules/id3/getid3/module.audio.bonk.php | 213 ++ modules/id3/getid3/module.audio.flac.php | 309 ++ modules/id3/getid3/module.audio.la.php | 227 ++ modules/id3/getid3/module.audio.lpac.php | 125 + modules/id3/getid3/module.audio.midi.php | 520 ++++ modules/id3/getid3/module.audio.mod.php | 101 + modules/id3/getid3/module.audio.monkey.php | 202 ++ modules/id3/getid3/module.audio.mp3.php | 1944 +++++++++++++ modules/id3/getid3/module.audio.mpc.php | 296 ++ modules/id3/getid3/module.audio.ogg.php | 543 ++++ modules/id3/getid3/module.audio.optimfrog.php | 408 +++ modules/id3/getid3/module.audio.rkau.php | 92 + modules/id3/getid3/module.audio.shorten.php | 178 ++ modules/id3/getid3/module.audio.tta.php | 107 + modules/id3/getid3/module.audio.voc.php | 205 ++ modules/id3/getid3/module.audio.vqf.php | 159 + modules/id3/getid3/module.audio.wavpack.php | 372 +++ modules/id3/getid3/module.graphic.bmp.php | 683 +++++ modules/id3/getid3/module.graphic.gif.php | 183 ++ modules/id3/getid3/module.graphic.jpg.php | 72 + modules/id3/getid3/module.graphic.pcd.php | 130 + modules/id3/getid3/module.graphic.png.php | 519 ++++ modules/id3/getid3/module.graphic.tiff.php | 221 ++ modules/id3/getid3/module.misc.exe.php | 59 + modules/id3/getid3/module.misc.iso.php | 386 +++ modules/id3/getid3/module.tag.apetag.php | 284 ++ modules/id3/getid3/module.tag.id3v1.php | 356 +++ modules/id3/getid3/module.tag.id3v2.php | 3040 ++++++++++++++++++++ modules/id3/getid3/module.tag.lyrics3.php | 271 ++ modules/id3/getid3/write.apetag.php | 227 ++ modules/id3/getid3/write.id3v1.php | 104 + modules/id3/getid3/write.id3v2.php | 2028 +++++++++++++ modules/id3/getid3/write.lyrics3.php | 78 + modules/id3/getid3/write.metaflac.php | 167 ++ modules/id3/getid3/write.php | 582 ++++ modules/id3/getid3/write.real.php | 140 + modules/id3/getid3/write.vorbiscomment.php | 124 + modules/id3/helperapps/cygwin1.dll | Bin 0 -> 971080 bytes modules/id3/helperapps/head.exe | Bin 0 -> 24064 bytes modules/id3/helperapps/md5sum.exe | Bin 0 -> 28160 bytes modules/id3/helperapps/metaflac.exe | Bin 0 -> 118784 bytes modules/id3/helperapps/readme.txt | 47 + modules/id3/helperapps/sha1sum.exe | Bin 0 -> 68096 bytes modules/id3/helperapps/shorten.exe | Bin 0 -> 60928 bytes modules/id3/helperapps/tail.exe | Bin 0 -> 35328 bytes modules/id3/helperapps/vorbiscomment.exe | Bin 0 -> 192512 bytes modules/id3/license.txt | 340 +++ modules/id3/readme.txt | 329 +++ modules/id3/structure.txt | 2247 +++++++++++++++ modules/init.php | 300 ++ modules/lib.php | 1518 ++++++++++ modules/mpd/CHANGELOG | 38 + modules/mpd/COPYING | 340 +++ modules/mpd/README | 58 + modules/mpd/USAGE | 378 +++ modules/mpd/mpd-class-example.php | 144 + modules/mpd/mpd.class.php | 968 +++++++ modules/slimserver/slim.class.php | 163 ++ modules/xmlrpc/ChangeLog | 263 ++ modules/xmlrpc/README | 7 + modules/xmlrpc/doc/Makefile | 17 + modules/xmlrpc/doc/apidocs.html | 598 ++++ modules/xmlrpc/doc/arrayuse.html | 253 ++ modules/xmlrpc/doc/bugs.html | 159 + modules/xmlrpc/doc/custom.dsl | 25 + modules/xmlrpc/doc/debugging.html | 188 ++ modules/xmlrpc/doc/examples.html | 159 + modules/xmlrpc/doc/helpers.html | 318 ++ modules/xmlrpc/doc/index.html | 453 +++ modules/xmlrpc/doc/introduction.html | 280 ++ modules/xmlrpc/doc/jellyfish.html | 180 ++ modules/xmlrpc/doc/manifest.html | 310 ++ modules/xmlrpc/doc/reserved.html | 191 ++ modules/xmlrpc/doc/support.html | 209 ++ modules/xmlrpc/doc/sysmethhelp.html | 155 + modules/xmlrpc/doc/sysmethodsig.html | 191 ++ modules/xmlrpc/doc/xmlrpc-server.html | 487 ++++ modules/xmlrpc/doc/xmlrpc_php.sgml | 1487 ++++++++++ modules/xmlrpc/doc/xmlrpcmsg.html | 507 ++++ modules/xmlrpc/doc/xmlrpcresp.html | 374 +++ modules/xmlrpc/doc/xmlrpcval.html | 933 ++++++ modules/xmlrpc/xmlrpc.inc | 1476 ++++++++++ modules/xmlrpc/xmlrpcs.inc | 466 +++ play/index.php | 282 ++ play/pupload.php | 227 ++ playlist.php | 299 ++ preferences.php | 70 + qtembed.php | 86 + register.php | 116 + rss.php | 28 + search.php | 43 + server.php | 37 + song.php | 135 + sql/ampache.sql | 591 ++++ stats.php | 83 + templates/add_catalog.inc | 109 + templates/admin_menu.inc | 54 + templates/catalog.inc | 110 + templates/customize_catalog.inc | 74 + templates/flag.inc | 149 + templates/header.inc | 130 + templates/javascript_refresh.inc | 41 + templates/list_duplicates.inc | 87 + templates/list_flagged.inc | 92 + templates/list_header.inc | 99 + templates/menu.inc | 85 + templates/show_access_list.inc | 72 + templates/show_add_access.inc | 76 + templates/show_admin_index.inc | 35 + templates/show_album.inc | 67 + templates/show_albums.inc | 82 + templates/show_artist.inc | 96 + templates/show_artists.inc | 76 + templates/show_box.inc | 43 + templates/show_confirm_action.inc.php | 32 + templates/show_confirmation.inc.php | 33 + templates/show_disabled_songs.inc | 67 + templates/show_import_playlist.inc.php | 53 + templates/show_install.inc | 82 + templates/show_install_account.inc.php | 76 + templates/show_install_config.inc | 136 + templates/show_localplay.inc | 68 + templates/show_login_form.inc | 83 + templates/show_mpd.inc | 97 + templates/show_mpdplay.inc | 152 + templates/show_now_playing.inc | 65 + templates/show_play_selected.inc.php | 65 + templates/show_preferences.inc | 92 + templates/show_search.inc | 89 + templates/show_songs.inc | 150 + templates/show_test.inc | 271 ++ templates/show_upload.inc | 83 + templates/show_user.inc.php | 93 + templates/show_user_registration.inc.php | 73 + templates/show_users.inc | 130 + templates/song_edit.inc | 86 + templates/style.inc | 256 ++ templates/tool_box.inc | 43 + templates/userform.inc | 108 + test.php | 45 + themes/burgundy/images/ampache-dark-bg.gif | Bin 0 -> 37 bytes themes/burgundy/images/ampache-light-bg.gif | Bin 0 -> 37 bytes themes/burgundy/images/ampache-mid.gif | Bin 0 -> 40 bytes themes/burgundy/images/ampache.gif | Bin 0 -> 1978 bytes themes/burgundy/images/blank-pixel.gif | Bin 0 -> 43 bytes themes/burgundy/images/blankalbum.gif | Bin 0 -> 11378 bytes themes/burgundy/images/blankalbum.jpg | Bin 0 -> 20730 bytes themes/burgundy/images/headphone.gif | Bin 0 -> 861 bytes themes/burgundy/images/table.gif | Bin 0 -> 5680 bytes themes/burgundy/templates/style.inc | 271 ++ themes/burgundy/theme.cfg.php | 68 + themes/classic/images/ampache-dark-bg.gif | Bin 0 -> 138 bytes themes/classic/images/ampache-light-bg.gif | Bin 0 -> 138 bytes themes/classic/images/ampache-mid.gif | Bin 0 -> 268 bytes themes/classic/images/ampache.gif | Bin 0 -> 6343 bytes themes/classic/images/blank-pixel.gif | Bin 0 -> 43 bytes themes/classic/images/blankalbum.gif | Bin 0 -> 11378 bytes themes/classic/images/blankalbum.jpg | Bin 0 -> 20730 bytes themes/classic/images/headphone.gif | Bin 0 -> 861 bytes themes/classic/images/table.gif | Bin 0 -> 5680 bytes themes/classic/theme.cfg.php | 68 + themes/greyblock/images/ampache-dark-bg.gif | Bin 0 -> 141 bytes themes/greyblock/images/ampache-light-bg.gif | Bin 0 -> 91 bytes themes/greyblock/images/ampache-mid.gif | Bin 0 -> 147 bytes themes/greyblock/images/ampache.gif | Bin 0 -> 9492 bytes themes/greyblock/images/blank-pixel.gif | Bin 0 -> 43 bytes themes/greyblock/images/blankalbum.gif | Bin 0 -> 11378 bytes themes/greyblock/images/blankalbum.jpg | Bin 0 -> 22197 bytes themes/greyblock/images/headphone.gif | Bin 0 -> 861 bytes themes/greyblock/images/table.gif | Bin 0 -> 5680 bytes themes/greyblock/templates/style.inc | 270 ++ themes/greyblock/theme.cfg.php | 68 + update.php | 80 + upload.php | 319 ++ user.php | 85 + 326 files changed, 86336 insertions(+) create mode 100644 admin/access.php create mode 100644 admin/album.php create mode 100644 admin/artist.php create mode 100644 admin/catalog.php create mode 100644 admin/duplicates.php create mode 100644 admin/flags.php create mode 100644 admin/index.php create mode 100644 admin/mail.php create mode 100644 admin/orphan.php create mode 100644 admin/preferences.php create mode 100644 admin/song.php create mode 100644 admin/users.php create mode 100644 albumart.php create mode 100644 albums.php create mode 100644 amp-mpd.php create mode 100644 artists.php create mode 100644 batch.php create mode 100644 bin/.htaccess create mode 100755 bin/archive/export_playlist.pl create mode 100755 bin/archive/import_playlist.pl create mode 100755 bin/archive/migrate_user.pl create mode 100644 bin/catalog_update.php.inc create mode 100644 bin/compare_config.php.inc create mode 100755 bin/create_genre create mode 100755 bin/filesort.pl create mode 100755 bin/fileupdate.pl create mode 100755 bin/genres.txt create mode 100755 bin/init create mode 100755 bin/moosic create mode 100755 bin/moosicd create mode 100644 bin/parse_m3u.php.inc create mode 100755 bin/print_amazon.php.inc create mode 100644 bin/print_tags.php.inc create mode 100644 config/.htaccess create mode 100644 config/ampache.cfg.php.dist create mode 100644 config/ampache.cfg.php.dist.de create mode 100644 config/motd.php.dist create mode 100755 docs/CHANGELOG create mode 100755 docs/GPL-LICENSE create mode 100755 docs/INSTALL create mode 100644 docs/INSTALL.de create mode 100755 docs/MIGRATION create mode 100644 docs/MIGRATION.de create mode 100755 docs/README create mode 100644 docs/README.de create mode 100644 download/index.php create mode 100644 favicon.ico create mode 100644 flag.php create mode 100755 images/ampache-dark-bg.gif create mode 100755 images/ampache-light-bg.gif create mode 100755 images/ampache-mid.gif create mode 100755 images/ampache.gif create mode 100644 images/blank-pixel.gif create mode 100644 images/blankalbum.gif create mode 100644 images/blankalbum.jpg create mode 100755 images/headphone.gif create mode 100755 images/table.gif create mode 100644 index.php create mode 100644 info.php create mode 100644 install.php create mode 100644 lib/Browser.php create mode 100644 lib/album.php create mode 100644 lib/archive.php create mode 100644 lib/artist.php create mode 100644 lib/batch.php create mode 100644 lib/debug.php create mode 100644 lib/duplicates.php create mode 100644 lib/flag.php create mode 100644 lib/general.php create mode 100644 lib/gettext.php create mode 100644 lib/install.php create mode 100644 lib/log.php create mode 100644 lib/mpd.php create mode 100755 lib/perl/Local/Ampache/Ampache.pm create mode 100755 lib/perl/Local/Ampache/Makefile.PL create mode 100644 lib/preferences.php create mode 100644 lib/rss.php create mode 100644 lib/search.php create mode 100644 lib/song.php create mode 100644 lib/themes.php create mode 100644 lib/ui.php create mode 100644 lib/xmlrpc.php create mode 100644 libglue/README create mode 100644 libglue/auth.php create mode 100644 libglue/config.php create mode 100644 libglue/dbh.php create mode 100644 libglue/libdb.php create mode 100644 libglue/session.php create mode 100644 libglue/session2.php create mode 100644 locale/base/TRANSLATIONS create mode 100755 locale/base/gather-messages.sh create mode 100644 locale/base/messages.po create mode 100644 locale/de_DE/LC_MESSAGES/messages.mo create mode 100644 locale/de_DE/LC_MESSAGES/messages.po create mode 100644 locale/fr_FR/LC_MESSAGES/messages.mo create mode 100644 locale/fr_FR/LC_MESSAGES/messages.po create mode 100644 locale/tr_TR/LC_MESSAGES/messages.mo create mode 100644 locale/tr_TR/LC_MESSAGES/messages.po create mode 100644 localplay.php create mode 100644 login.php create mode 100644 logout.php create mode 100644 modules/admin.php create mode 100644 modules/amazon/AmazonSearchEngine.class.php create mode 100644 modules/amazon/Snoopy.class.php create mode 100644 modules/catalog.php create mode 100644 modules/class/access.php create mode 100644 modules/class/album.php create mode 100644 modules/class/artist.php create mode 100644 modules/class/catalog.php create mode 100644 modules/class/error.php create mode 100644 modules/class/playlist.php create mode 100644 modules/class/song.php create mode 100644 modules/class/stream.php create mode 100644 modules/class/update.php create mode 100644 modules/class/user.php create mode 100644 modules/class/view.php create mode 100755 modules/id3/audioinfo.class.php create mode 100644 modules/id3/changelog.txt create mode 100644 modules/id3/demos/demo.audioinfo.class.php create mode 100644 modules/id3/demos/demo.browse.php create mode 100644 modules/id3/demos/demo.cache.dbm.php create mode 100644 modules/id3/demos/demo.cache.mysql.php create mode 100644 modules/id3/demos/demo.joinmp3.php create mode 100644 modules/id3/demos/demo.mimeonly.php create mode 100644 modules/id3/demos/demo.mysql.php create mode 100644 modules/id3/demos/demo.simple.php create mode 100644 modules/id3/demos/demo.write.php create mode 100644 modules/id3/demos/index.php create mode 100644 modules/id3/dependencies.txt create mode 100644 modules/id3/getid3/extension.cache.dbm.php create mode 100644 modules/id3/getid3/extension.cache.mysql.php create mode 100644 modules/id3/getid3/getid3.lib.php create mode 100644 modules/id3/getid3/getid3.php create mode 100644 modules/id3/getid3/module.archive.gzip.php create mode 100644 modules/id3/getid3/module.archive.rar.php create mode 100644 modules/id3/getid3/module.archive.szip.php create mode 100644 modules/id3/getid3/module.archive.tar.php create mode 100644 modules/id3/getid3/module.archive.zip.php create mode 100644 modules/id3/getid3/module.audio-video.asf.php create mode 100644 modules/id3/getid3/module.audio-video.bink.php create mode 100644 modules/id3/getid3/module.audio-video.matroska.php create mode 100644 modules/id3/getid3/module.audio-video.mpeg.php create mode 100644 modules/id3/getid3/module.audio-video.nsv.php create mode 100644 modules/id3/getid3/module.audio-video.quicktime.php create mode 100644 modules/id3/getid3/module.audio-video.real.php create mode 100644 modules/id3/getid3/module.audio-video.riff.php create mode 100644 modules/id3/getid3/module.audio-video.swf.php create mode 100644 modules/id3/getid3/module.audio.aac.php create mode 100644 modules/id3/getid3/module.audio.ac3.php create mode 100644 modules/id3/getid3/module.audio.au.php create mode 100644 modules/id3/getid3/module.audio.avr.php create mode 100644 modules/id3/getid3/module.audio.bonk.php create mode 100644 modules/id3/getid3/module.audio.flac.php create mode 100644 modules/id3/getid3/module.audio.la.php create mode 100644 modules/id3/getid3/module.audio.lpac.php create mode 100644 modules/id3/getid3/module.audio.midi.php create mode 100644 modules/id3/getid3/module.audio.mod.php create mode 100644 modules/id3/getid3/module.audio.monkey.php create mode 100644 modules/id3/getid3/module.audio.mp3.php create mode 100644 modules/id3/getid3/module.audio.mpc.php create mode 100644 modules/id3/getid3/module.audio.ogg.php create mode 100644 modules/id3/getid3/module.audio.optimfrog.php create mode 100644 modules/id3/getid3/module.audio.rkau.php create mode 100644 modules/id3/getid3/module.audio.shorten.php create mode 100644 modules/id3/getid3/module.audio.tta.php create mode 100644 modules/id3/getid3/module.audio.voc.php create mode 100644 modules/id3/getid3/module.audio.vqf.php create mode 100644 modules/id3/getid3/module.audio.wavpack.php create mode 100644 modules/id3/getid3/module.graphic.bmp.php create mode 100644 modules/id3/getid3/module.graphic.gif.php create mode 100644 modules/id3/getid3/module.graphic.jpg.php create mode 100644 modules/id3/getid3/module.graphic.pcd.php create mode 100644 modules/id3/getid3/module.graphic.png.php create mode 100644 modules/id3/getid3/module.graphic.tiff.php create mode 100644 modules/id3/getid3/module.misc.exe.php create mode 100644 modules/id3/getid3/module.misc.iso.php create mode 100644 modules/id3/getid3/module.tag.apetag.php create mode 100644 modules/id3/getid3/module.tag.id3v1.php create mode 100644 modules/id3/getid3/module.tag.id3v2.php create mode 100644 modules/id3/getid3/module.tag.lyrics3.php create mode 100644 modules/id3/getid3/write.apetag.php create mode 100644 modules/id3/getid3/write.id3v1.php create mode 100644 modules/id3/getid3/write.id3v2.php create mode 100644 modules/id3/getid3/write.lyrics3.php create mode 100644 modules/id3/getid3/write.metaflac.php create mode 100644 modules/id3/getid3/write.php create mode 100644 modules/id3/getid3/write.real.php create mode 100644 modules/id3/getid3/write.vorbiscomment.php create mode 100644 modules/id3/helperapps/cygwin1.dll create mode 100755 modules/id3/helperapps/head.exe create mode 100755 modules/id3/helperapps/md5sum.exe create mode 100755 modules/id3/helperapps/metaflac.exe create mode 100644 modules/id3/helperapps/readme.txt create mode 100755 modules/id3/helperapps/sha1sum.exe create mode 100755 modules/id3/helperapps/shorten.exe create mode 100755 modules/id3/helperapps/tail.exe create mode 100755 modules/id3/helperapps/vorbiscomment.exe create mode 100644 modules/id3/license.txt create mode 100644 modules/id3/readme.txt create mode 100644 modules/id3/structure.txt create mode 100644 modules/init.php create mode 100644 modules/lib.php create mode 100644 modules/mpd/CHANGELOG create mode 100644 modules/mpd/COPYING create mode 100644 modules/mpd/README create mode 100644 modules/mpd/USAGE create mode 100644 modules/mpd/mpd-class-example.php create mode 100644 modules/mpd/mpd.class.php create mode 100755 modules/slimserver/slim.class.php create mode 100644 modules/xmlrpc/ChangeLog create mode 100644 modules/xmlrpc/README create mode 100755 modules/xmlrpc/doc/Makefile create mode 100644 modules/xmlrpc/doc/apidocs.html create mode 100644 modules/xmlrpc/doc/arrayuse.html create mode 100644 modules/xmlrpc/doc/bugs.html create mode 100644 modules/xmlrpc/doc/custom.dsl create mode 100644 modules/xmlrpc/doc/debugging.html create mode 100644 modules/xmlrpc/doc/examples.html create mode 100644 modules/xmlrpc/doc/helpers.html create mode 100644 modules/xmlrpc/doc/index.html create mode 100644 modules/xmlrpc/doc/introduction.html create mode 100644 modules/xmlrpc/doc/jellyfish.html create mode 100644 modules/xmlrpc/doc/manifest.html create mode 100644 modules/xmlrpc/doc/reserved.html create mode 100644 modules/xmlrpc/doc/support.html create mode 100644 modules/xmlrpc/doc/sysmethhelp.html create mode 100644 modules/xmlrpc/doc/sysmethodsig.html create mode 100644 modules/xmlrpc/doc/xmlrpc-server.html create mode 100644 modules/xmlrpc/doc/xmlrpc_php.sgml create mode 100644 modules/xmlrpc/doc/xmlrpcmsg.html create mode 100644 modules/xmlrpc/doc/xmlrpcresp.html create mode 100644 modules/xmlrpc/doc/xmlrpcval.html create mode 100755 modules/xmlrpc/xmlrpc.inc create mode 100755 modules/xmlrpc/xmlrpcs.inc create mode 100644 play/index.php create mode 100644 play/pupload.php create mode 100644 playlist.php create mode 100644 preferences.php create mode 100644 qtembed.php create mode 100644 register.php create mode 100644 rss.php create mode 100644 search.php create mode 100644 server.php create mode 100644 song.php create mode 100755 sql/ampache.sql create mode 100644 stats.php create mode 100644 templates/add_catalog.inc create mode 100644 templates/admin_menu.inc create mode 100644 templates/catalog.inc create mode 100644 templates/customize_catalog.inc create mode 100644 templates/flag.inc create mode 100644 templates/header.inc create mode 100644 templates/javascript_refresh.inc create mode 100644 templates/list_duplicates.inc create mode 100644 templates/list_flagged.inc create mode 100644 templates/list_header.inc create mode 100644 templates/menu.inc create mode 100644 templates/show_access_list.inc create mode 100644 templates/show_add_access.inc create mode 100644 templates/show_admin_index.inc create mode 100644 templates/show_album.inc create mode 100644 templates/show_albums.inc create mode 100644 templates/show_artist.inc create mode 100644 templates/show_artists.inc create mode 100644 templates/show_box.inc create mode 100644 templates/show_confirm_action.inc.php create mode 100644 templates/show_confirmation.inc.php create mode 100644 templates/show_disabled_songs.inc create mode 100644 templates/show_import_playlist.inc.php create mode 100644 templates/show_install.inc create mode 100644 templates/show_install_account.inc.php create mode 100644 templates/show_install_config.inc create mode 100644 templates/show_localplay.inc create mode 100644 templates/show_login_form.inc create mode 100644 templates/show_mpd.inc create mode 100644 templates/show_mpdplay.inc create mode 100644 templates/show_now_playing.inc create mode 100644 templates/show_play_selected.inc.php create mode 100644 templates/show_preferences.inc create mode 100644 templates/show_search.inc create mode 100644 templates/show_songs.inc create mode 100644 templates/show_test.inc create mode 100644 templates/show_upload.inc create mode 100644 templates/show_user.inc.php create mode 100644 templates/show_user_registration.inc.php create mode 100644 templates/show_users.inc create mode 100644 templates/song_edit.inc create mode 100644 templates/style.inc create mode 100644 templates/tool_box.inc create mode 100644 templates/userform.inc create mode 100644 test.php create mode 100755 themes/burgundy/images/ampache-dark-bg.gif create mode 100755 themes/burgundy/images/ampache-light-bg.gif create mode 100755 themes/burgundy/images/ampache-mid.gif create mode 100755 themes/burgundy/images/ampache.gif create mode 100644 themes/burgundy/images/blank-pixel.gif create mode 100644 themes/burgundy/images/blankalbum.gif create mode 100644 themes/burgundy/images/blankalbum.jpg create mode 100755 themes/burgundy/images/headphone.gif create mode 100755 themes/burgundy/images/table.gif create mode 100644 themes/burgundy/templates/style.inc create mode 100644 themes/burgundy/theme.cfg.php create mode 100755 themes/classic/images/ampache-dark-bg.gif create mode 100755 themes/classic/images/ampache-light-bg.gif create mode 100755 themes/classic/images/ampache-mid.gif create mode 100755 themes/classic/images/ampache.gif create mode 100644 themes/classic/images/blank-pixel.gif create mode 100644 themes/classic/images/blankalbum.gif create mode 100644 themes/classic/images/blankalbum.jpg create mode 100755 themes/classic/images/headphone.gif create mode 100755 themes/classic/images/table.gif create mode 100644 themes/classic/theme.cfg.php create mode 100644 themes/greyblock/images/ampache-dark-bg.gif create mode 100644 themes/greyblock/images/ampache-light-bg.gif create mode 100644 themes/greyblock/images/ampache-mid.gif create mode 100644 themes/greyblock/images/ampache.gif create mode 100644 themes/greyblock/images/blank-pixel.gif create mode 100644 themes/greyblock/images/blankalbum.gif create mode 100644 themes/greyblock/images/blankalbum.jpg create mode 100644 themes/greyblock/images/headphone.gif create mode 100644 themes/greyblock/images/table.gif create mode 100644 themes/greyblock/templates/style.inc create mode 100644 themes/greyblock/theme.cfg.php create mode 100644 update.php create mode 100644 upload.php create mode 100644 user.php diff --git a/admin/access.php b/admin/access.php new file mode 100644 index 00000000..31793907 --- /dev/null +++ b/admin/access.php @@ -0,0 +1,85 @@ +has_access(100)) { + header("Location: http://" . conf('web_path') . "/index.php?access=denied"); + exit(); +} + + +show_template('header'); + +show_menu_items('Admin'); +show_admin_menu('Access Lists'); +show_clear(); +if ( $action == 'show_confirm_delete' ) { + show_confirm_action(_("Do you really want to delete this Access Record?"), "admin/access.php", "access_id=" . $_REQUEST['access_id'] . "&action=delete_host"); +} +/*! + @action delete_host + @discussion deletes an access list entry +*/ +elseif ( $action == 'delete_host' ) { + $access->delete($_REQUEST['access_id']); + show_confirmation(_("Entry Deleted"),_("Your Access List Entry has been removed"),"admin/access.php"); + +} // delete_host +/*! + @action add_host + @discussion add a new access list entry +*/ +elseif ($action == 'add_host') { + + $access->create($_REQUEST['name'], $_REQUEST['start'],$_REQUEST['end'],$_REQUEST['level']); + show_confirmation(_("Entry Added"),_("Your new Access List Entry has been created"),"admin/access.php"); + +} // add_host +/*! + @action show_add_host + @discussion show the add host box +*/ +elseif ( $action == 'show_add_host' ) { + include(conf('prefix') . "/templates/show_add_access.inc"); +} +else { + $list = array(); + $list = $access->get_access_list(); + include(conf('prefix') ."/templates/show_access_list.inc"); +} +echo "

"; + +show_admin_menu('Access Lists'); +show_menu_items('Admin'); + +?> + + + + diff --git a/admin/album.php b/admin/album.php new file mode 100644 index 00000000..7b8751f0 --- /dev/null +++ b/admin/album.php @@ -0,0 +1,114 @@ +has_access(100)) { + header("Location:" . conf('web_path') . "/index.php?access=denied"); + exit(); +} + + +if ( $action == 'Change Name' ) { + + update_album_name($album, $new_name); + + if ( $update_tag ) { + // get songs associated with this + $songs = get_songs_from_album($album); + + // run update_local_mp3 + $total_updated = update_local_mp3($new_name, 'album', $songs); + $update_text = "Updated the database and $total_updated local files."; + } + + // set the action to view so everybody can see the changes + $action = 'View'; +} + +show_template('header'); + +show_menu_items('Admin'); +show_admin_menu('Catalog'); + +?> + +

Use this form to change the name(s) of albums in the database. In order to update your +local MP3's your Apache user must have write-permission to your MP3's.

+ +
+ + + + + + +
Select Album:
+
+ +
+ + + +

+ +
+ + + + + + + + + +
Album Name:  
  + Update MP3 tag Note: this will only modify your local MP3's +
+ +
+ + + + + diff --git a/admin/artist.php b/admin/artist.php new file mode 100644 index 00000000..ebec5db6 --- /dev/null +++ b/admin/artist.php @@ -0,0 +1,121 @@ +has_access(100)) { + header("Location:". conf('web_path') . "/index.php?access=denied"); + exit(); +} + +$dbh = dbh(); + +if ( $action == 'Change Name' ) { + if ( $settings[demo_mode] == 'false' && $username != $settings[demo_user] ) { + $old_artist_name = get_artist_name($artist); + update_artist_name($artist, $new_name); + + if ( $update_tag ) { + // get songs associated with this + $song_ids = get_song_ids_from_artist($artist); + + // run update_local_mp3 + $total_updated = update_local_mp3($new_name, 'artist', $song_ids); + $update_text = "Updated $old_artist_name to $new_name and $total_updated local files."; + } + else { + $update_text = "Updated $old_artist_name to $new_name."; + } + + // set the action to view so everybody can see the changes + $action = 'View'; + } +} + +show_template('header'); + +show_menu_items(".."); +show_admin_menu('Catalog'); + +?> + +

Use this form to change the name(s) of artists in the database. In order to update your +local MP3's your Apache user must have write-permission to your MP3's.

+ +
+ + + + + + +
Select Artist:
+
+ +
+ + + +

+ +
+ + + + + + + + +
Artist Name:  
  + Update MP3 tag Note: this will only modify your local MP3's +
+ +
+ + + + + diff --git a/admin/catalog.php b/admin/catalog.php new file mode 100644 index 00000000..d3c4bc6d --- /dev/null +++ b/admin/catalog.php @@ -0,0 +1,282 @@ +has_access(100)) { + access_denied(); +} + + +/* Set any vars we are going to need */ +$catalog = new Catalog($_REQUEST['catalog_id']); + +show_template('header'); + +/* Generate the menus */ +show_menu_items('Admin'); +show_admin_menu('Catalog'); +show_clear(); + + +/* Big switch statement to handle various actions */ +switch ($_REQUEST['action']) { + case 'fixed': + delete_flagged($flag); + $type = 'show_flagged_songs'; + include(conf('prefix') . '/templates/flag.inc'); + break; + + case _("Add to Catalog(s)"): + if (conf('demo_mode')) { break; } + if ($_REQUEST['catalogs'] ) { + foreach ($_REQUEST['catalogs'] as $catalog_id) { + $catalog = new Catalog($catalog_id); + $catalog->add_to_catalog($_REQUEST['update_type']); + } + } + include(conf('prefix') . '/templates/catalog.inc'); + break; + + case _("Add to all Catalogs"): + if (conf('demo_mode')) { break; } + $catalogs = $catalog->get_catalogs(); + + foreach ($catalogs as $data) { + $data->add_to_catalog($_REQUEST['update_type']); + } + include(conf('prefix') . '/templates/catalog.inc'); + break; + + case _("Update Catalog(s)"): + if (conf('demo_mode')) { break; } + if (isset($_REQUEST['catalogs'])) { + foreach ($_REQUEST['catalogs'] as $catalog_id) { + $catalog = new Catalog($catalog_id); + $catalog->verify_catalog($catalog_id->id,$_REQUEST['update_type']); + } + } + include(conf('prefix') . '/templates/catalog.inc'); + break; + + case _("Update All Catalogs"): + if (conf('demo_mode')) { break; } + $catalogs = $catalog->get_catalogs(); + + foreach ($catalogs as $data) { + $data->verify_catalog($data->id,$_REQUEST['update_type']); + } + include(conf('prefix') . '/templates/catalog.inc'); + break; + + case 'delete_catalog': + if (conf('demo_mode')) { break; } + if ($_REQUEST['confirm'] === 'Yes') { + $catalog = new Catalog($_REQUEST['catalog_id']); + $catalog->delete_catalog(); + } + include(conf('prefix') . '/templates/catalog.inc'); + break; + + case 'remove_disabled': + if (conf('demo_mode')) { break; } + $song = $_REQUEST['song']; + if (count($song)) { + $catalog->remove_songs($song); + echo "

Songs Removed...

"; + } + else { + echo "

No Songs Removed...

"; + } + include(conf('prefix') . '/templates/catalog.inc'); + break; + + case _("Clean Catalog(s)"): + if (conf('demo_mode')) { break; } + + // Make sure they checked something + if (isset($_REQUEST['catalogs'])) { + foreach($_REQUEST['catalogs'] as $catalog_id) { + $catalog = new Catalog($catalog_id); + $catalog->clean_catalog(0,$_REQUEST['update_type']); + } // end foreach catalogs + } + include(conf('prefix') . '/templates/catalog.inc'); + break; + case 'update_catalog_settings': + if (conf('demo_mode')) { break; } + $id = strip_tags($_REQUEST['catalog_id']); + $name = strip_tags($_REQUEST['name']); + $id3cmd = strip_tags($_REQUEST['id3_set_command']); + $rename = strip_tags($_REQUEST['rename_pattern']); + $sort = strip_tags($_REQUEST['sort_pattern']); + /* Setup SQL */ + $sql = "UPDATE catalog SET " . + " name = '$name'," . + " id3_set_command = '$id3cmd'," . + " rename_pattern = '$rename'," . + " sort_pattern = '$sort'" . + " WHERE id = '$id'"; + $result = mysql_query($sql, dbh()); + include(conf('prefix') . '/templates/catalog.inc'); + break; + + case _("Clean All Catalogs"): + if (conf('demo_mode')) { break; } + $catalogs = $catalog->get_catalogs(); + $dead_files = array(); + + foreach ($catalogs as $catalog) { + $catalog->clean_catalog(0,$_REQUEST['update_type']); + } + + include(conf('prefix') . '/templates/catalog.inc'); + break; + case 'add_catalog': + if (conf('demo_mode')) { break; } + if ($_REQUEST['path'] AND $_REQUEST['name']) { + /* Throw all of the album art types into an array */ + $art = array('id3'=>$_REQUEST['art_id3v2'],'amazon'=>$_REQUEST['art_amazon'],'folder'=>$_REQUEST['art_folder']); + /* Create the Catalog */ + $catalog->new_catalog($_REQUEST['path'], + $_REQUEST['name'], + $_REQUEST['id3set_command'], + $_REQUEST['rename_pattern'], + $_REQUEST['sort_pattern'], + $_REQUEST['type'], + $_REQUEST['gather_art'], + $_REQUEST['parse_m3u'], + $art); + include(conf('prefix') . '/templates/catalog.inc'); + } + else { + $error = "Please complete the form."; + include(conf('prefix') . '/templates/add_catalog.inc'); + } + break; + + case 'really_clear_stats': + if (conf('demo_mode')) { break; } + if ($_REQUEST['confrim'] == 'Yes') { + clear_catalog_stats(); + } + include(conf('prefix') . '/templates/catalog.inc'); + break; + + case 'show_add_catalog': + include(conf('prefix') . '/templates/add_catalog.inc'); + break; + + case 'clear_now_playing': + if (conf('demo_mode')) { break; } + clear_now_playing(); + show_confirmation(_("Now Playing Cleared"),_("All now playing data has been cleared"),"/admin/catalog.php"); + + break; + case 'Clear Catalog': + if (conf('demo_mode')) { break; } + show_confirm_action(_("Do you really want to clear your catalog?"), + "/admin/catalog.php", "action=really_clear_catalog"); + print("
\n"); + break; + + case 'clear_stats': + if (conf('demo_mode')) { break; } + show_confirm_action(_("Do you really want to clear the statistics for this catalog?"), + "/admin/catalog.php", "action=really_clear_stats"); + print("
\n"); + break; + + case 'show_disabled': + if (conf('demo_mode')) { break; } + $songs = $catalog->get_disabled(); + if (count($songs)) { + require (conf('prefix') . '/templates/show_disabled_songs.inc'); + } + else { + echo "

No Disabled songs found

"; + } + break; + + case 'show_delete_catalog': + if (conf('demo_mode')) { break; } + show_confirm_action(_("Do you really want to delete this catalog?"), + "admin/catalog.php", + "catalog_id=" . $_REQUEST['catalog_id'] . "&action=delete_catalog"); + break; + + case 'show_flagged_songs': + if (conf('demo_mode')) { break; } + $type = $_REQUEST['action']; + include (conf('prefix') . '/templates/flag.inc'); + break; + + case 'Update Flags': + if (conf('demo_mode')) { break; } + echo "
";
+	print_r($_REQUEST);
+	echo "
"; + break; + + case 'show_customize_catalog': + include(conf('prefix') . '/templates/customize_catalog.inc'); + break; + case 'gather_album_art': + + echo "" . _("Starting Album Art Search") . ". . .

\n"; + flush(); + + $catalogs = $catalog->get_catalogs(); + foreach ($catalogs as $data) { + $data->get_album_art(); + } + + echo "" . _("Album Art Search Finished") . ". . .
\n"; + + break; + // (Added by Cucumber 20050216) + case 'dump_album_art': + $catalogs = $catalog->get_catalogs(); + + foreach ($catalogs as $data) { + $data->dump_album_art(); + } + break; + + default: + include(conf('prefix') . '/templates/catalog.inc'); + +} // end switch +echo "

"; +show_admin_menu('Catalog'); +show_menu_items('Admin'); + +?> + + + diff --git a/admin/duplicates.php b/admin/duplicates.php new file mode 100644 index 00000000..739472c8 --- /dev/null +++ b/admin/duplicates.php @@ -0,0 +1,59 @@ +has_access(100)) { + header ("Location: " . conf('web_path') . "/index.php?access=denied"); + exit(); +} + +$action = scrub_in($_REQUEST['action']); +$search_type = scrub_in($_REQUEST['search_type']); + +show_template('header'); + +show_menu_items('Admin'); +show_admin_menu('Users'); + + +switch ($action) +{ + case 'search': + $flags = get_duplicate_songs($search_type); + show_duplicate_songs($flags,$search_type); + break; + default: + show_duplicate_searchbox($search_type); +} + +show_footer(); +?> + + + diff --git a/admin/flags.php b/admin/flags.php new file mode 100644 index 00000000..f7965d03 --- /dev/null +++ b/admin/flags.php @@ -0,0 +1,91 @@ +has_access(100)) { + header ("Location: " . conf('web_path') . "/index.php?access=denied"); + exit(); +} + + +$action = scrub_in($_REQUEST['action']); +show_template('header'); + +show_menu_items('Admin'); +show_admin_menu('Users'); + +switch ($action) +{ + case 'show': + $flags = get_flagged_songs(); + show_flagged_songs($flags); + break; + case 'Set Flags': + case 'Update Flags': + $flags = scrub_in($_REQUEST['song']); + update_flags($flags); + $newflags = get_flagged_songs(); + show_flagged_songs($newflags); + break; + case 'Edit Selected': + $flags = scrub_in($_REQUEST['song']); + $count = add_to_edit_queue($flags); + if($count) show_edit_flagged(); + break; + case 'Next': + $song = scrub_in($_REQUEST['song']); + update_song_info($song); + show_edit_flagged(); + // Pull song ids from an edit queue in $_SESSION, + // And edit them one at a time + break; + case 'Skip': + $count = add_to_edit_queue(scrub_in($_REQUEST['song'])); + if($count) show_edit_flagged(); + case 'Flag Songs': + break; + case 'Remove Flags': + break; + case 'Clear Edit List': + unset($_SESSION['edit_queue']); + + case 'Done': + $song = scrub_in($_REQUEST['song']); + update_song_info($song); + default: + $flags = get_flagged_songs(); + show_flagged_songs($flags); + +} + +show_footer(); +?> + + + diff --git a/admin/index.php b/admin/index.php new file mode 100644 index 00000000..a830897a --- /dev/null +++ b/admin/index.php @@ -0,0 +1,96 @@ +has_access(100)) { + header ("Location: " . conf('web_path') . "/index.php?access=denied"); + exit(); +} + + +// let's set the preferences here so that they take affect on the fly +if ( $action == 'Update Preferences' ) { + update_site_preferences($preferences_id, 'true', $new_m_host, $new_w_host, + $new_site_title, $new_login_message, $new_session_lifetime, $new_font, + $new_background_color, $new_primary_color, $new_secondary_color, + $new_primary_font_color, $new_secondary_font_color, + $new_error_color, $new_popular_threshold); + // reload the preferences now + set_preferences(); +} + +show_template('header'); +show_menu_items('Admin'); + +if ( $action == 'show_site_preferences' ) { + show_admin_menu('Site Preferences'); +} +elseif ( ($action == 'show_users') || ($action == 'show_new_user')) { + show_admin_menu('Users'); +} +elseif ( $action == 'show_update_catalog' ) { + show_admin_menu('Catalog'); +} +else { + show_admin_menu('...'); +} + +if ( $action == 'Update Preferences' ) { + $action = 'show_preferences'; +} +elseif ( $action == 'show_update_catalog' ) { + show_update_catalog(); +} +elseif ( $action == 'show_file_manager' ) { + show_file_manager(); +} +elseif ( $action == 'show_site_preferences' ) { + $user = new User(0); + require (conf('prefix') . "/templates/show_preferences.inc"); +} +elseif ( $action == 'show_preferences' ) { + $user = new User($_REQUEST['user_id']); + require (conf('prefix') . "/templates/show_preferences.inc"); +} +elseif ( $action == 'show_orphaned_files' ) { + show_orphaned_files(); +} +else { + require (conf('prefix') . "/templates/show_admin_index.inc"); +} // if they didn't pick anything + +echo "

"; +show_admin_menu(''); +show_menu_items('Admin'); +?> + + + diff --git a/admin/mail.php b/admin/mail.php new file mode 100644 index 00000000..d5aef413 --- /dev/null +++ b/admin/mail.php @@ -0,0 +1,139 @@ +has_access(100)) { + access_denied(); +} + + +$action = scrub_in($_POST['action']); +$to = scrub_in($_REQUEST['to']); +$subject = stripslashes(scrub_in($_POST['subject'])); +$message = stripslashes(scrub_in($_POST['message'])); + +if ( $action == 'send_mail' && !conf('demo_mode')) { + $user = new User(0,$_SESSION['userdata']['id']); + // do the mail mojo here + if ( $to == 'all' ) { + $sql = "SELECT * FROM user WHERE email IS NOT NULL"; + } + elseif ( $to == 'users' ) { + $sql = "SELECT * FROM user WHERE access='users' AND email IS NOT NULL"; + } + elseif ( $to == 'admins' ) { + $sql = "SELECT * FROM user WHERE access='admin' AND email IS NOT NULL"; + } + + $db_result = mysql_query($sql, dbh()); + + $recipient = ''; + + while ( $u = mysql_fetch_object($db_result) ) { + $recipient .= "$u->fullname <$u->email>, "; + } + + // Remove the last , from the recipient + $recipient = rtrim($recipient,","); + + $from = $user->fullname."<".$user->email.">"; + + // woohoo!! + mail ($from, $subject, $message, + "From: $from\r\n". + "Bcc: $recipient\r\n"); + + // tell them that it was sent + $complete_text = "Your message was successfully sent."; +} + +if ( empty($to) ) { + $to = 'all'; +} + +if ( empty($subject) ) { + $site_title = conf('site_title'); + $subject = "[$site_title] "; +} + +show_template('header'); + +show_menu_items('Admin'); +show_admin_menu('Mail Users'); +show_clear(); +?> + +
+ +

+ + + + + + + + + + + + + + + + + + + + + +
: + +
: + +
: + +
  + + " /> +
+ +
+

+ + + + diff --git a/admin/orphan.php b/admin/orphan.php new file mode 100644 index 00000000..dfeee13b --- /dev/null +++ b/admin/orphan.php @@ -0,0 +1,71 @@ +has_access(100)) { + header("Location: " . conf('web_path') . "/index.php?access=denied"); + exit(); +} + + +if ( $type and $action == 'show_songs' ) { + print("

Orphaned Songs with missing $type information

"); + + $song_ids = get_orphan_songs($type); + show_songs($song_ids); +} + +show_template('header'); + +show_menu_items('Admin'); +show_admin_menu('Catalog'); + +if ( $action == 'show_orphan_songs' ) { + print("

Orphaned songs with no artist

"); + + $song_ids = get_orphan_songs(); + show_songs($song_ids); +} +elseif ( $action == 'show_orphan_albums' ) { + print("

Orphaned albums with no name

"); + + $song_ids = get_orphan_albums(); + show_songs($song_ids); +} + +?> + + +
+ + + diff --git a/admin/preferences.php b/admin/preferences.php new file mode 100644 index 00000000..2fa729eb --- /dev/null +++ b/admin/preferences.php @@ -0,0 +1,92 @@ +has_access(100)) { + access_denied(); +} + +$user_id = intval(scrub_in($_REQUEST['user_id'])); + + +switch(scrub_in($_REQUEST['action'])) { + + case 'user': + $temp_user = new User(0,$user_id); + $user_id = $temp_user->id; + $fullname = "ADMIN - " . $temp_user->fullname; + $preferences = $temp_user->get_preferences(); + break; + case 'update_preferences': + if (conf('demo_mode')) { break; } + update_preferences($user_id); + if ($user_id != '0') { + $temp_user = new User(0,$user_id); + $fullname = "ADMIN - " . $temp_user->fullname; + $preferences = $temp_user->get_preferences(); + } + else { + $preferences = get_site_preferences(); + } + break; + case 'fix_preferences': + $temp_user = new User(0,$user_id); + $temp_user->fix_preferences(); + $preferences = $temp_user->get_preferences(); + break; + default: + $user_id = 0; + $preferences = get_site_preferences(); + $fullname = "Site"; + break; + +} // End Switch Action + + +// HEADER +show_template('header'); +show_menu_items('Admin'); +show_admin_menu('Admin Preferences'); +show_clear(); +// HEADER + +// Set Target +$target = "/admin/preferences.php"; + +// Show the default preferences page +require (conf('prefix') . "/templates/show_preferences.inc"); + + +// FOOTER +show_admin_menu('Admin Preferences'); +show_menu_items('Admin'); + +?> diff --git a/admin/song.php b/admin/song.php new file mode 100644 index 00000000..cf38a14f --- /dev/null +++ b/admin/song.php @@ -0,0 +1,182 @@ +has_access('100')) { + access_denied(); +} + + +$action = scrub_in($_REQUEST['action']); +$song = scrub_in($_REQUEST['song']); + + +show_template('header'); + +show_menu_items('Admin'); +show_admin_menu('Catalog'); + +$song_obj = new Song($_REQUEST['song_id']); + +switch($action) +{ + case "Update": + case "update"; + update_song_info($song); + edit_song_info($song); + break; + case "Edit": + case "edit": + edit_song_info($song); + break; + case "disable": + + // If we pass just one, make it still work + if (!is_array($_REQUEST['song_ids'])) { $song_obj->update_enabled('disabled',$_REQUEST['song_ids']); } + else { + foreach ($_REQUEST['song_ids'] as $song_id) { + $song_obj->update_enabled('disabled',$song_id); + } // end foreach + } // end else + show_confirmation(_("Songs Disabled"),_("The requested song(s) have been disabled"),return_referer()); + break; + case "enabled": + // If we pass just one, make it still work + if (!is_array($_REQUEST['song_ids'])) { $song_obj->update_enabled('enabled',$_REQUEST['song_ids']); } + else { + foreach ($_REQUEST['song_ids'] as $song_id) { + $song_obj->update_enabled('enabled',$song_id); + } // end foreach + } // end else + show_confirmation(_("Songs Enabled"),_("The requested song(s) have been enabled"),return_referer()); + break; + + default: + echo "Don't know what to do yet."; +} + + +/* + @function edit_song_info + @discussion yea this is just wrong +*/ +function edit_song_info($song) { + $info = new Song($song); + preg_match("/^.*\/(.*?)$/",$info->file, $short); + $filename = htmlspecialchars($short[1]); + if(preg_match('/\.ogg$/',$short[1])) + { + $ogg = TRUE; + $oggwarn = "

This file is an OGG file, which Ampache only has limited support for.
"; + $oggwarn .= "You can make changes to the database here, but Ampache will not change the actual file's information.


"; + } + +echo <<Editing $info->title

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +EDIT_SONG_4; +if(!$ogg) +{ + echo << + + + + +EDIT_SONG_5; +} +echo << + + + +
Editing $info->title
File:$filename $oggwarn
Title:
Artist: +EDIT_SONG_1; + show_artist_pulldown($info->artist); +echo << + or
Album: +EDIT_SONG_2; + show_album_pulldown($info->album); +echo << + or
Track:
Genre: +EDIT_SONG_3; + show_genre_pulldown($info->genre, 1); +echo << + Year
  Update id3 tags 
  + + + +
+ +
+EDIT_SONG_6; +} + +?> +
+ + + diff --git a/admin/users.php b/admin/users.php new file mode 100644 index 00000000..350d1289 --- /dev/null +++ b/admin/users.php @@ -0,0 +1,181 @@ +has_access(100)) { + access_denied(); +} + + +$action = scrub_in($_REQUEST['action']); + + +show_template('header'); + +show_menu_items('Admin'); +show_admin_menu('Users'); +show_clear(); + +$user_id = scrub_in($_REQUEST['user']); +$temp_user = new User($user_id); + +switch ($action) { + case 'edit': + if (conf('demo_mode')) { break; } + show_user_form($temp_user->id, + $temp_user->username, + $temp_user->fullname, + $temp_user->email, + $temp_user->access, + 'edit_user', + ''); + break; + + case 'update_user': + if (conf('demo_mode')) { break; } + + /* Clean up the variables */ + $username = scrub_in($_REQUEST['new_username']); + $fullname = scrub_in($_REQUEST['new_fullname']); + $email = scrub_in($_REQUEST['new_email']); + $access = scrub_in($_REQUEST['user_access']); + $pass1 = scrub_in($_REQUEST['new_password_1']); + $pass2 = scrub_in($_REQUEST['new_password_2']); + + /* Setup the temp user */ + $thisuser = new User($username); + + /* Verify Input */ + if (empty($username)) { + $GLOBALS['error']->add_error('username',_("Error Username Required")); + } + if ($pass1 !== $pass2 AND !empty($pass1)) { + $GLOBALS['error']->add_error('password',_("Error Passwords don't match")); + } + + /* If we've got an error then break! */ + if ($GLOBALS['error']->error_state) { + show_user_form($temp_user->id, + $thisuser->username, + $thisuser->fullname, + $thisuser->email, + $thisuser->access, + 'edit_user', + ''); + break; + } // if we've had an oops! + + if ($access != $thisuser->access) { + $thisuser->update_access($access); + } + if ($email != $thisuser->email) { + $thisuser->update_email($email); + } + if ($username != $thisuser->username) { + $thisuser->update_username($username); + } + if ($fullname != $user->fullname) { + $thisuser->update_fullname($fullname); + } + if ($pass1 == $pass2 && strlen($pass1)) { + $thisuser->update_password($pass1); + } + show_confirmation("User Updated", $thisuser->username . "'s information has been updated","admin/users.php"); + break; + case 'add_user': + if (conf('demo_mode')) { break; } + $username = scrub_in($_REQUEST['new_username']); + $fullname = scrub_in($_REQUEST['new_fullname']); + $email = scrub_in($_REQUEST['new_email']); + $access = scrub_in($_REQUEST['user_access']); + $pass1 = scrub_in($_REQUEST['new_password_1']); + $pass2 = scrub_in($_REQUEST['new_password_2']); + if (($pass1 !== $pass2)) { + $GLOBALS['error']->add_error('password',_("Error Passwords don't match")); + } + if (empty($username)) { + $GLOBALS['error']->add_error('username',_("Error Username Required")); + } + if (!$user->create($username, $fullname, $email, $pass1, $access)) { + $GLOBALS['error']->add_error('general',"Error: Insert Failed"); + } + /* If we end up with an error */ + if ($GLOBALS['error']->error_state) { + show_user_form('','$username','$fullname','$email','$access','new_user',''); + break; + } + show_confirmation("New User Added",$username . " has been created with an access level of " . $access,"admin/users.php"); + break; + case 'delete': + if (conf('demo_mode')) { break; } + show_confirm_action(_("Are you sure you want to permanently delete") . " $temp_user->fullname ($temp_user->username) ?", + "admin/users.php", + "action=confirm_delete&user=$temp_user->username"); + break; + + case 'confirm_delete': + if (conf('demo_mode')) { break; } + if ($_REQUEST['confirm'] == _("No")) { show_manage_users(); break; } + if ($temp_user->delete()) { + show_confirmation(_("User Deleted"), "$temp_user->username has been Deleted","admin/users.php"); + } + else { + show_confirmation(_("Delete Error"), _("Unable to delete last Admin User"),"admin/users.php"); + } + break; + case 'show_add_user': + if (conf('demo_mode')) { break; } + show_user_form('','','','','','new_user',''); + break; + + case 'update': + case 'disabled': + if (conf('demo_mode')) { break; } + $level = scrub_in($_REQUEST['level']); + $thisuser = new User($_REQUEST['user']); + if ($_SESSION['userdata']['access'] == 'admin') { + $thisuser->update_access($level); + } + show_manage_users(); + break; + + default: + show_manage_users(); + +} + +echo "

"; +show_admin_menu('Users'); +show_menu_items('Admin'); + +?> + + + diff --git a/albumart.php b/albumart.php new file mode 100644 index 00000000..69fcd122 --- /dev/null +++ b/albumart.php @@ -0,0 +1,59 @@ +get_art($_REQUEST['fast']); + +if (isset($r->art)) { + $art = $r->art; + $mime = $r->art_mime; + $found = 1; +} + +if (!$found) { + // Print a transparent gif instead +// header('Content-type: image/jpg'); +// readfile(conf('prefix') . "/docs/images/blankalbum.jpg"); + header('Content-type: image/gif'); + readfile(conf('prefix') . conf('theme_path') . "/images/blankalbum.gif"); +} +else { + // Print the album art + $extension = substr($mime,strlen($mime)-3,3); + header("Content-type: $mime"); + header("Content-Disposition: filename=" . $album->name . "." . $extension); + echo $art; +} + +?> diff --git a/albums.php b/albums.php new file mode 100644 index 00000000..92ece304 --- /dev/null +++ b/albums.php @@ -0,0 +1,181 @@ +has_access('25')) { access_denied(); } + $album = new Album($_REQUEST['album_id']); + $album->clear_art(); + show_confirmation(_("Album Art Cleared"),_("Album Art information has been removed form the database"),"/albums.php?action=show&album=" . $album->id); + +} // clear_art +// if we have album +elseif (isset($album)) { + $album = new Album($album); + $album->format_album(); + + require (conf('prefix') . "/templates/show_album.inc"); + + if (isset($artist) && $artist != 0) { + $song_ids = get_song_ids_from_artist_and_album($artist, $album->id); + } + else { + $song_ids = get_song_ids_from_album($album->id); + } + show_songs($song_ids,0,$album); +} // isset(album) + +// Finds the Album art from amazon +elseif ($_REQUEST['action'] === 'find_art') { + + if (!$user->has_access('25')) { access_denied(); } + + /* Echo notice if no amazon token is found, but it's enabled */ + if (in_array('amazon',conf('album_art_order')) AND !conf('amazon_developer_key')) { + echo "
Error: No Amazon Developer Key set, amazon album art searching will not work
"; + } + + $album = new Album($_REQUEST['album_id']); + $result = $album->find_art($_REQUEST['cover']); + if ($result) { + show_confirmation(_("Album Art Located"),_("Album Art information has been located in Amazon. If incorrect, click \"Reset Album Art\" below to remove the artwork."),"/albums.php?action=show&album=" . $album->id); + echo " [ id . "\">Reset Album Art ]"; + echo "

"; + echo "

"; + echo "Enter URL to album art "; + echo "\n"; + echo "\n"; + echo "id\" />\n"; + echo "\n"; + echo "
"; + } + else { + show_confirmation(_("Album Art Not Located"),_("Album Art could not be located at this time. This may be due to Amazon being busy, or the album not being present in their collection."),"/albums.php?action=show&album=" . $album->id); + echo "

"; + echo "Enter URL to album art "; + echo ""; + echo ""; + echo "id\" />   "; + echo "\n"; + echo "
"; + } +} // find_art + +// Updates Album from tags +elseif ($_REQUEST['action'] === 'update_from_tags') { + + $album = new Album($_REQUEST['album_id']); + + echo "
" . _("Starting Update from Tags") . ". . .
\n"; + + $catalog = new Catalog(); + $catalog->update_single_item('album',$_REQUEST['album_id']); + + echo "
" . _("Update From Tags Complete") . "   "; + echo "[" . _("Return") . "]"; + +} // update_from_tags + +else { + + if (strlen($_REQUEST['match']) < '1') { $match = 'none'; } + + // Setup the View Ojbect + $view = new View(); + $view->import_session_view(); + + switch($match) { + case 'Show_all': + show_alphabet_list('albums','albums.php','show_all'); + echo "
\n"; + $offset_limit = 99999; + $sql = "SELECT id FROM album"; + break; + case 'Show_missing_art': + show_alphabet_list('albums','albums.php','show_missing_art'); + echo "
\n"; + $offset_limit = 99999; + $sql = "SELECT id FROM album where art is null"; + break; + case 'Browse': + case 'show_albums': + show_alphabet_list('albums','albums.php','browse'); + echo "
\n"; + $sql = "SELECT id FROM album"; + break; + case 'none': + show_alphabet_list('albums','albums.php','a'); + echo "

". + _("Select a starting letter or Show all") . "

"; + echo "
\n"; + $sql = "SELECT id FROM album WHERE name LIKE 'a%'"; + break; + default: + show_alphabet_list('albums','albums.php',$match); + echo "