diff --git a/data/en/game_downloads.yaml b/data/en/game_downloads.yaml index 6682fcc4..ff7eb841 100644 --- a/data/en/game_downloads.yaml +++ b/data/en/game_downloads.yaml @@ -3,308 +3,308 @@ category: games game_id: sky category_icon: sky - url: '/frs/extras/Beneath a Steel Sky/bass-cd-1.2.zip' + url: 'Beneath a Steel Sky/bass-cd-1.2.zip' name: 'Freeware CD Version' notes: '' - category: games game_id: sky category_icon: sky - url: '/frs/extras/Beneath a Steel Sky/BASS-Floppy-1.3.zip' + url: 'Beneath a Steel Sky/BASS-Floppy-1.3.zip' name: 'Freeware Floppy Version' notes: '' - category: games game_id: sword25 category_icon: sword - url: '/frs/extras/Broken Sword 2.5/sword25-v1.0.zip' + url: 'Broken Sword 2.5/sword25-v1.0.zip' name: 'Freeware Version' notes: '' - category: games game_id: drascula category_icon: drascula - url: '/frs/extras/Drascula_ The Vampire Strikes Back/drascula-1.0.zip' + url: 'Drascula_ The Vampire Strikes Back/drascula-1.0.zip' name: 'Freeware Version (English)' notes: '' - category: games game_id: drascula category_icon: mp3 - url: '/frs/extras/Drascula_ The Vampire Strikes Back/drascula-audio-mp3-2.0.zip' + url: 'Drascula_ The Vampire Strikes Back/drascula-audio-mp3-2.0.zip' name: 'Freeware Version (Music AddOn, MP3 format)' notes: '' - category: games game_id: drascula category_icon: flac - url: '/frs/extras/Drascula_ The Vampire Strikes Back/drascula-audio-flac-2.0.zip' + url: 'Drascula_ The Vampire Strikes Back/drascula-audio-flac-2.0.zip' name: 'Freeware Version (Music AddOn, FLAC format)' notes: '' - category: games game_id: drascula category_icon: ogg - url: '/frs/extras/Drascula_ The Vampire Strikes Back/drascula-audio-2.0.zip' + url: 'Drascula_ The Vampire Strikes Back/drascula-audio-2.0.zip' name: 'Freeware Version (Music AddOn, OGG format)' notes: '' - category: games game_id: drascula category_icon: drascula - url: '/frs/extras/Drascula_ The Vampire Strikes Back/drascula-int-1.0.zip' + url: 'Drascula_ The Vampire Strikes Back/drascula-int-1.0.zip' name: 'Freeware Version (Spanish, German, French and Italian AddOn)' notes: '' - category: games game_id: drascula category_icon: drascula - url: '/frs/extras/Drascula_ The Vampire Strikes Back/drascula-int-1.1.zip' + url: 'Drascula_ The Vampire Strikes Back/drascula-int-1.1.zip' name: 'Freeware Version (Updated Spanish, German, French and Italian AddOn) - requires ScummVM 1.3.0 or more' notes: '' - category: games game_id: dreamweb category_icon: dreamweb - url: /frs/extras/Dreamweb/dreamweb-uk-1.1.zip + url: Dreamweb/dreamweb-uk-1.1.zip name: 'Freeware Floppy DOS Version (English UK)' notes: '' - category: games game_id: dreamweb category_icon: dreamweb - url: /frs/extras/Dreamweb/dreamweb-cd-uk-1.1.zip + url: Dreamweb/dreamweb-cd-uk-1.1.zip name: 'Freeware CD DOS Version (English UK)' notes: '' - category: games game_id: dreamweb category_icon: dreamweb - url: /frs/extras/Dreamweb/dreamweb-cd-us-1.1.zip + url: Dreamweb/dreamweb-cd-us-1.1.zip name: 'Freeware CD DOS Version (English US)' notes: '' - category: games game_id: dreamweb category_icon: dreamweb - url: /frs/extras/Dreamweb/dreamweb-cd-fr-1.1.zip + url: Dreamweb/dreamweb-cd-fr-1.1.zip name: 'Freeware CD DOS Version (French)' notes: '' - category: games game_id: dreamweb category_icon: dreamweb - url: /frs/extras/Dreamweb/dreamweb-cd-de-1.1.zip + url: Dreamweb/dreamweb-cd-de-1.1.zip name: 'Freeware CD DOS Version (German)' notes: '' - category: games game_id: dreamweb category_icon: dreamweb - url: /frs/extras/Dreamweb/dreamweb-cd-it-1.1.zip + url: Dreamweb/dreamweb-cd-it-1.1.zip name: 'Freeware CD DOS Version (Italian)' notes: '' - category: games game_id: dreamweb category_icon: dreamweb - url: /frs/extras/Dreamweb/dreamweb-cd-es-1.1.zip + url: Dreamweb/dreamweb-cd-es-1.1.zip name: 'Freeware CD DOS Version (Spanish)' notes: '' - category: games game_id: dreamweb category_icon: dreamweb - url: /frs/extras/Dreamweb/dreamweb-manuals-en-highres.zip + url: Dreamweb/dreamweb-manuals-en-highres.zip name: 'Manuals (English High Resolution)' notes: '' - category: games game_id: dreamweb category_icon: dreamweb - url: /frs/extras/Dreamweb/dreamweb-manuals-en-lores.zip + url: Dreamweb/dreamweb-manuals-en-lores.zip name: 'Manuals (English Low Resolution)' notes: '' - category: games game_id: queen category_icon: queen - url: '/frs/extras/Flight of the Amazon Queen/FOTAQ_Talkie-original.zip' + url: 'Flight of the Amazon Queen/FOTAQ_Talkie-original.zip' name: 'Freeware CD Version (unmodified original)' notes: 'Download this version if your ScummVM doesn''t have mp3 support' - category: games game_id: queen category_icon: queen - url: '/frs/extras/Flight of the Amazon Queen/FOTAQ_Fr_Talkie_1.0.zip' + url: 'Flight of the Amazon Queen/FOTAQ_Fr_Talkie_1.0.zip' name: 'Freeware CD Version (French voices and subtitles, ogg compressed sfx/speech)' notes: '' - category: games game_id: queen category_icon: queen - url: '/frs/extras/Flight of the Amazon Queen/FOTAQ_Ger_talkie-1.0.zip' + url: 'Flight of the Amazon Queen/FOTAQ_Ger_talkie-1.0.zip' name: 'Freeware CD Version (German voices and subtitles, ogg compressed sfx/speech)' notes: '' - category: games game_id: queen category_icon: queen - url: '/frs/extras/Flight of the Amazon Queen/FOTAQ_Heb_talkie.zip' + url: 'Flight of the Amazon Queen/FOTAQ_Heb_talkie.zip' name: 'Freeware CD Version (Hebrew subtitles, English voices, ogg compressed sfx/speech)' notes: '' - category: games game_id: queen category_icon: queen - url: '/frs/extras/Flight of the Amazon Queen/FOTAQ_It_Talkie_1.0.zip' + url: 'Flight of the Amazon Queen/FOTAQ_It_Talkie_1.0.zip' name: 'Freeware CD Version (Italian subtitles, English voices, ogg compressed sfx/speech)' notes: '' - category: games game_id: queen category_icon: queen - url: '/frs/extras/Flight of the Amazon Queen/FOTAQ_Floppy.zip' + url: 'Flight of the Amazon Queen/FOTAQ_Floppy.zip' name: 'Freeware Floppy Version' notes: '' - category: games game_id: queen category_icon: queen - url: '/frs/extras/Flight of the Amazon Queen/FOTAQ_Fr_Floppy.zip' + url: 'Flight of the Amazon Queen/FOTAQ_Fr_Floppy.zip' name: 'Freeware Floppy Version (French)' notes: '' - category: games game_id: griffon category_icon: griffon - url: '/frs/extras/Griffon Legend/griffon-1.0.zip' + url: 'Griffon Legend/griffon-1.0.zip' name: 'Freeware Version' notes: '' - category: games game_id: lure category_icon: lure - url: '/frs/extras/Lure of the Temptress/lure-1.1.zip' + url: 'Lure of the Temptress/lure-1.1.zip' name: 'Freeware Version (English)' notes: '' - category: games game_id: lure category_icon: lure - url: '/frs/extras/Lure of the Temptress/lure-fr-1.1.zip' + url: 'Lure of the Temptress/lure-fr-1.1.zip' name: 'Freeware Version (French)' notes: '' - category: games game_id: lure category_icon: lure - url: '/frs/extras/Lure of the Temptress/lure-de-1.1.zip' + url: 'Lure of the Temptress/lure-de-1.1.zip' name: 'Freeware Version (German)' notes: '' - category: games game_id: lure category_icon: lure - url: '/frs/extras/Lure of the Temptress/lure-it-1.1.zip' + url: 'Lure of the Temptress/lure-it-1.1.zip' name: 'Freeware Version (Italian)' notes: '' - category: games game_id: lure category_icon: lure - url: '/frs/extras/Lure of the Temptress/lure-es-1.1.zip' + url: 'Lure of the Temptress/lure-es-1.1.zip' name: 'Freeware Version (Spanish)' notes: '' - category: games game_id: hires1 category_icon: mysthous - url: '/frs/extras/Mystery House/MYSTHOUS.zip' + url: 'Mystery House/MYSTHOUS.zip' name: 'public domain version (Apple II)' notes: '' - category: games game_id: nippon category_icon: nippon - url: '/frs/extras/Nippon Safes/nippon-1.0.zip' + url: 'Nippon Safes/nippon-1.0.zip' name: 'Freeware DOS Version (English/French/German/Italian)' notes: '' - category: games game_id: nippon category_icon: nippon - url: '/frs/extras/Nippon Safes/nippon-amiga-1.0.zip' + url: 'Nippon Safes/nippon-amiga-1.0.zip' name: 'Freeware Amiga Version (English/French/German)' notes: '' - category: games game_id: nippon category_icon: nippon - url: '/frs/extras/Nippon Safes/nippon-amiga-disks-1.0.zip' + url: 'Nippon Safes/nippon-amiga-disks-1.0.zip' name: 'Disk Images of Freeware Amiga Version (English/French/German)' notes: '' - category: games game_id: nippon category_icon: nippon - url: '/frs/extras/Nippon Safes/nippon-amiga-it-1.0.zip' + url: 'Nippon Safes/nippon-amiga-it-1.0.zip' name: 'Freeware Amiga Version (Italian)' notes: '' - category: games game_id: nippon category_icon: nippon - url: '/frs/extras/Nippon Safes/nippon-manual-addons-1.0.zip' + url: 'Nippon Safes/nippon-manual-addons-1.0.zip' name: 'Manuals (English/French/German/Italian), Box, Stickers, Disk labels' notes: '' - category: games game_id: sfinx category_icon: sfinx - url: /frs/extras/Sfinx/sfinx-en-v1.1.zip + url: Sfinx/sfinx-en-v1.1.zip name: 'Freeware Version (English, v1.1)' notes: '' - category: games game_id: sfinx category_icon: sfinx - url: /frs/extras/Sfinx/sfinx-pl-v1.1.zip + url: Sfinx/sfinx-pl-v1.1.zip name: 'Freeware Version (Polish, v1.1)' notes: '' - category: games game_id: soltys category_icon: soltys - url: /frs/extras/Soltys/soltys-en-v1.0.zip + url: Soltys/soltys-en-v1.0.zip name: 'Freeware Version (English)' notes: '' - category: games game_id: soltys category_icon: soltys - url: /frs/extras/Soltys/soltys-pl-v1.0.zip + url: Soltys/soltys-pl-v1.0.zip name: 'Freeware Version (Polish)' notes: '' - category: games game_id: soltys category_icon: soltys - url: /frs/extras/Soltys/soltys-es-v1.0.zip + url: Soltys/soltys-es-v1.0.zip name: 'Freeware Version (Spanish)' notes: '' - category: addons game_id: bladerunner category_icon: bladerunner - url: '/frs/extras/Blade Runner/Blade_Runner_Subtitles-v6.zip' + url: 'Blade Runner/Blade_Runner_Subtitles-v6.zip' name: 'Subtitles (English, French, Spanish Subtitles AddOn)' notes: 'Requires ScummVM 2.1.0' - category: addons game_id: sword1 category_icon: flac - url: '/frs/extras/Broken Sword I and II/Sword1_DXA_Cutscenes.zip' + url: 'Broken Sword I and II/Sword1_DXA_Cutscenes.zip' name: 'Cutscene Pack (English, DXA compression)' notes: 'Requires ScummVM 0.10.0' - @@ -318,132 +318,132 @@ category: addons game_id: sword1 category_icon: sword - url: '/frs/extras/Broken Sword I and II/Sword1_Cutscenes_Subtitles-1.0.zip' + url: 'Broken Sword I and II/Sword1_Cutscenes_Subtitles-1.0.zip' name: 'Cutscene Pack (all languages, Subtitles AddOn)' notes: 'Cutscene subtitles pack. All languages' - category: addons game_id: sword1 category_icon: sword - url: '/frs/extras/Broken Sword I and II/Sword1_Cutscenes_Subtitles-1.1.zip' + url: 'Broken Sword I and II/Sword1_Cutscenes_Subtitles-1.1.zip' name: 'Cutscene Pack (all languages, Updated Subtitles AddOn) - requires ScummVM 1.5.0 or more' notes: 'Cutscene subtitles pack. All languages' - category: addons game_id: sword1 category_icon: flac - url: '/frs/extras/Broken Sword I and II/Sword1_Cutscenes_DXA_FRE_AddOn.zip' + url: 'Broken Sword I and II/Sword1_Cutscenes_DXA_FRE_AddOn.zip' name: 'Cutscene Pack (French AddOn)' notes: 'Overwrite files in English Pack with files from this archive' - category: addons game_id: sword1 category_icon: flac - url: '/frs/extras/Broken Sword I and II/Sword1_Cutscenes_DXA_GER_AddOn.zip' + url: 'Broken Sword I and II/Sword1_Cutscenes_DXA_GER_AddOn.zip' name: 'Cutscene Pack (German AddOn)' notes: 'Overwrite files in English Pack with files from this archive' - category: addons game_id: sword1 category_icon: flac - url: '/frs/extras/Broken Sword I and II/Sword1_Cutscenes_DXA_ITA_AddOn.zip' + url: 'Broken Sword I and II/Sword1_Cutscenes_DXA_ITA_AddOn.zip' name: 'Cutscene Pack (Italian AddOn)' notes: 'Overwrite files in English Pack with files from this archive' - category: addons game_id: sword1 category_icon: flac - url: '/frs/extras/Broken Sword I and II/Sword1_Cutscenes_DXA_ESP_AddOn.zip' + url: 'Broken Sword I and II/Sword1_Cutscenes_DXA_ESP_AddOn.zip' name: 'Cutscene Pack (Spanish AddOn)' notes: 'Overwrite files in English Pack with files from this archive' - category: addons game_id: sword1 category_icon: flac - url: '/frs/extras/Broken Sword I and II/Sword1_Demo_Cutscenes.zip' + url: 'Broken Sword I and II/Sword1_Demo_Cutscenes.zip' name: 'Demo Cutscene Pack' notes: 'Requires ScummVM 0.10.0' - category: addons game_id: sword1 category_icon: ogg - url: '/frs/extras/Broken Sword I and II/Sword1_OGG_Cutscenes.zip' + url: 'Broken Sword I and II/Sword1_OGG_Cutscenes.zip' name: 'Cutscene Pack (English OGG AddOn)' notes: 'Alternative English audio pack, for ports without FLAC support' - category: addons game_id: sword1 category_icon: ogg - url: '/frs/extras/Broken Sword I and II/Sword1_Cutscenes_FRE_AddOn.zip' + url: 'Broken Sword I and II/Sword1_Cutscenes_FRE_AddOn.zip' name: 'Cutscene Pack (French OGG AddOn)' notes: 'Alternative French audio pack, for ports without FLAC support' - category: addons game_id: sword1 category_icon: ogg - url: '/frs/extras/Broken Sword I and II/Sword1_Cutscenes_GER_AddOn.zip' + url: 'Broken Sword I and II/Sword1_Cutscenes_GER_AddOn.zip' name: 'Cutscene Pack (German OGG AddOn)' notes: 'Alternative German audio pack, for ports without FLAC support' - category: addons game_id: sword1 category_icon: ogg - url: '/frs/extras/Broken Sword I and II/Sword1_Cutscenes_ITA_AddOn.zip' + url: 'Broken Sword I and II/Sword1_Cutscenes_ITA_AddOn.zip' name: 'Cutscene Pack (Italian OGG AddOn)' notes: 'Alternative Italian audio pack, for ports without FLAC support' - category: addons game_id: sword1 category_icon: ogg - url: '/frs/extras/Broken Sword I and II/Sword1_Cutscenes_ESP_AddOn.zip' + url: 'Broken Sword I and II/Sword1_Cutscenes_ESP_AddOn.zip' name: 'Cutscene Pack (Spanish OGG AddOn)' notes: 'Alternative Spanish audio pack, for ports without FLAC support' - category: addons game_id: sword2 category_icon: flac - url: '/frs/extras/Broken Sword I and II/Sword2_DXA_Cutscenes.zip' + url: 'Broken Sword I and II/Sword2_DXA_Cutscenes.zip' name: 'Cutscene Pack (all languages, DXA compression)' notes: 'Requires ScummVM 0.10.0' - category: addons game_id: sword2 category_icon: ogg - url: '/frs/extras/Broken Sword I and II/Sword2_OGG_Cutscenes.zip' + url: 'Broken Sword I and II/Sword2_OGG_Cutscenes.zip' name: 'Cutscene Pack (all languages, OGG AddOn)' notes: 'Alternative audio pack, for ports without FLAC support' - category: addons game_id: sword2 category_icon: flac - url: '/frs/extras/Broken Sword I and II/Sword2_Demo_Cutscenes.zip' + url: 'Broken Sword I and II/Sword2_Demo_Cutscenes.zip' name: 'Demo Cutscene Pack' notes: 'Requires ScummVM 0.10.0' - category: addons game_id: elvira2 category_icon: flac - url: '/frs/extras/Elvira 2/elvira2_pc_sfx.zip' + url: 'Elvira 2/elvira2_pc_sfx.zip' name: 'Digital samples for sound effects in the PC version' notes: 'Requires ScummVM 1.8.0' - category: addons game_id: feeble category_icon: flac - url: '/frs/extras/The Feeble Files/Feeble_OmniTV_Cutscenes.zip' + url: 'The Feeble Files/Feeble_OmniTV_Cutscenes.zip' name: 'Omni TV and epilogue cutscenes for the Amiga and Macintosh versions' notes: 'Requires ScummVM 0.10.0' - category: addons game_id: queen category_icon: mp3 - url: '/frs/extras/Flight of the Amazon Queen/FOTAQ_Talkie-1.1.zip' + url: 'Flight of the Amazon Queen/FOTAQ_Talkie-1.1.zip' name: 'Freeware CD Version (mp3 compressed sfx/speech)' notes: '' - category: addons game_id: prince category_icon: prince - url: '/frs/extras/The Prince and the Coward/prince_translation.dat' + url: 'The Prince and the Coward/prince_translation.dat' name: 'Translations data file to play with English text' notes: 'Requires ScummVM 2.2.0' diff --git a/include/Constants.php b/include/Constants.php index f99df256..6615fc72 100644 --- a/include/Constants.php +++ b/include/Constants.php @@ -50,6 +50,7 @@ class Constants define('DOWNLOADS_BASE', 'https://downloads.scummvm.org'); define('DOWNLOADS_URL', 'frs/scummvm/{$version}/'); define('DOWNLOADS_DAILY_URL', 'frs/daily/'); + define('DOWNLOADS_EXTRAS_URL', 'frs/extras/'); define('DOWNLOADS_TOOLS_URL', 'frs/scummvm-tools/{$release_tools}/'); /* Themes */ diff --git a/include/Objects/File.php b/include/Objects/File.php index a79f7c6c..6e603f6d 100644 --- a/include/Objects/File.php +++ b/include/Objects/File.php @@ -16,6 +16,7 @@ class File extends BasicObject public function __construct($data, $baseUrl = null) { parent::__construct($data); + $this->category = $data['category']; $this->category_icon = $data['category_icon']; $this->subcategory = $data['subcategory'] ?? null; $this->user_agent = isset($data["user_agent"]) ? $data["user_agent"] : ""; @@ -35,10 +36,12 @@ class File extends BasicObject $this->url = $url; } else { // Construct the URL based on its type - if ($this->version == 'daily') { + if ($this->category == 'scummvm' && $this->version == 'daily') { $fname = DOWNLOADS_DAILY_URL . $url; - } elseif ($this->subcategory == 'tools') { + } elseif ($this->category == 'scummvm' && $this->subcategory == 'tools') { $fname = DOWNLOADS_TOOLS_URL . $url; + } elseif ($this->category == 'games' || $this->category == 'addons') { + $fname = DOWNLOADS_EXTRAS_URL . $url; } elseif (str_starts_with($url, '/frs') || str_starts_with($url, 'http')) { $fname = $url; } else {