diff --git a/lib/logic/data/artifact_data.dart b/lib/logic/data/artifact_data.dart index 1a7bc95e..68217714 100644 --- a/lib/logic/data/artifact_data.dart +++ b/lib/logic/data/artifact_data.dart @@ -14,6 +14,8 @@ class ArtifactData { required this.objectBeginYear, required this.objectEndYear, }); + static const String baseSelfHostedImagePath = 'https://www.wonderous.info/met/'; + final String objectId; // Artifact ID, used to identify through MET server calls. final String title; // Artifact title / name final String image; // Artifact primary image URL (can have multiple) @@ -28,4 +30,12 @@ class ArtifactData { final String dimension; // Width and height of physical artifact final String classification; // Type of artifact final String culture; // Culture of artifact + + String get selfHostedImageUrl => getSelfHostedImageUrl(objectId); + String get selfHostedImageUrlSmall => getSelfHostedImageUrlSmall(objectId); + String get selfHostedImageUrlMedium => getSelfHostedImageUrlMedium(objectId); + + static String getSelfHostedImageUrl(String id) => '$baseSelfHostedImagePath$id.jpg'; + static String getSelfHostedImageUrlSmall(String id) => '$baseSelfHostedImagePath${id}_600.jpg'; + static String getSelfHostedImageUrlMedium(String id) => '$baseSelfHostedImagePath${id}_2000.jpg'; } diff --git a/lib/logic/data/highlight_data.dart b/lib/logic/data/highlight_data.dart index aa8b2463..1b4d7e72 100644 --- a/lib/logic/data/highlight_data.dart +++ b/lib/logic/data/highlight_data.dart @@ -1,10 +1,9 @@ import 'package:wonders/common_libs.dart'; +import 'package:wonders/logic/data/artifact_data.dart'; class HighlightData { HighlightData({ required this.title, - required this.imageUrl, - required this.imageUrlSmall, required this.culture, required this.artifactId, required this.wonder, @@ -17,8 +16,6 @@ class HighlightData { static List get all => _highlights; final String title; - final String imageUrl; - final String imageUrlSmall; final String culture; final String date; @@ -29,6 +26,9 @@ class HighlightData { String get id => artifactId; String get subtitle => wondersLogic.getData(wonder).artifactCulture; + + String get imageUrl => ArtifactData.getSelfHostedImageUrl(artifactId); + String get imageUrlSmall => ArtifactData.getSelfHostedImageUrlSmall(artifactId); } // Note: look up a human readable page with: @@ -41,8 +41,6 @@ List _highlights = [ wonder: WonderType.chichenItza, artifactId: '503940', culture: 'Mayan', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/mi/web-large/DT4624a.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/mi/original/DT4624a.jpg', date: '7th–9th century', ), HighlightData( @@ -50,8 +48,6 @@ List _highlights = [ wonder: WonderType.chichenItza, artifactId: '312595', culture: 'Maya', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ao/web-large/DP-12659-001.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ao/original/DP-12659-001.jpg', date: '6th–9th century', ), HighlightData( @@ -59,8 +55,6 @@ List _highlights = [ wonder: WonderType.chichenItza, artifactId: '310551', culture: 'Maya', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ao/web-large/DP102949.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ao/original/DP102949.jpg', date: 'mid-7th–9th century', ), HighlightData( @@ -68,8 +62,6 @@ List _highlights = [ wonder: WonderType.chichenItza, artifactId: '316304', culture: 'Maya', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ao/web-large/DP219258.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ao/original/DP219258.jpg', date: '9th–10th century', ), HighlightData( @@ -77,8 +69,6 @@ List _highlights = [ wonder: WonderType.chichenItza, artifactId: '313151', culture: 'Maya', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ao/web-large/1979.206.953_a.JPG', - imageUrl: 'https://images.metmuseum.org/CRDImages/ao/original/1979.206.953_a.JPG', date: '7th–8th century', ), HighlightData( @@ -86,8 +76,6 @@ List _highlights = [ wonder: WonderType.chichenItza, artifactId: '310480', culture: 'Maya', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ao/web-large/DP102948.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ao/original/DP102948.jpg', date: '10th–11th century', ), @@ -97,8 +85,6 @@ List _highlights = [ wonder: WonderType.christRedeemer, artifactId: '764815', culture: '', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ph/web-large/DP-15801-131.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ph/original/DP-15801-131.jpg', date: '1864–66', ), HighlightData( @@ -106,8 +92,6 @@ List _highlights = [ wonder: WonderType.christRedeemer, artifactId: '502019', culture: 'Native American (Brazilian)', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/mi/web-large/midp89.4.1453.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/mi/original/midp89.4.1453.jpg', date: '19th century', ), HighlightData( @@ -115,8 +99,6 @@ List _highlights = [ wonder: WonderType.christRedeemer, artifactId: '764814', culture: '', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ph/web-large/DP-15801-129.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ph/original/DP-15801-129.jpg', date: '1864–66', ), HighlightData( @@ -124,8 +106,6 @@ List _highlights = [ wonder: WonderType.christRedeemer, artifactId: '764816', culture: '', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ph/web-large/DP-15801-133.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ph/original/DP-15801-133.jpg', date: '1864–66', ), HighlightData( @@ -133,8 +113,6 @@ List _highlights = [ wonder: WonderType.christRedeemer, artifactId: '501319', culture: 'African American (Brazil - Afro-Brazilian?)', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/mi/web-large/midp89.4.703.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/mi/original/midp89.4.703.jpg', date: 'late 19th century', ), @@ -144,8 +122,6 @@ List _highlights = [ wonder: WonderType.colosseum, artifactId: '251350', culture: 'Roman', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/gr/web-large/DP331280.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/gr/original/DP331280.jpg', date: 'A.D. 150–175', ), HighlightData( @@ -153,8 +129,6 @@ List _highlights = [ wonder: WonderType.colosseum, artifactId: '255960', culture: 'Roman', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/gr/web-large/DP145605.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/gr/original/DP145605.jpg', date: '4th century A.D.', ), HighlightData( @@ -162,8 +136,6 @@ List _highlights = [ wonder: WonderType.colosseum, artifactId: '247993', culture: 'Roman', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/gr/web-large/DP337220.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/gr/original/DP337220.jpg', date: 'ca. A.D. 14–37', ), HighlightData( @@ -171,8 +143,6 @@ List _highlights = [ wonder: WonderType.colosseum, artifactId: '250464', culture: 'Roman', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/gr/web-large/DP105842.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/gr/original/DP105842.jpg', date: 'late 2nd–early 3rd century A.D.', ), HighlightData( @@ -180,8 +150,6 @@ List _highlights = [ wonder: WonderType.colosseum, artifactId: '251476', culture: 'Roman', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/gr/web-large/DP357289.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/gr/original/DP357289.jpg', date: '1st–2nd century A.D.', ), HighlightData( @@ -189,8 +157,6 @@ List _highlights = [ wonder: WonderType.colosseum, artifactId: '255960', culture: 'Roman', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/gr/web-large/DP145605.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/gr/original/DP145605.jpg', date: '4th century A.D.', ), @@ -200,8 +166,6 @@ List _highlights = [ wonder: WonderType.greatWall, artifactId: '79091', culture: 'French', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ci/web-large/DT2183.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ci/original/DT2183.jpg', date: 'second half 16th century', ), HighlightData( @@ -209,8 +173,6 @@ List _highlights = [ wonder: WonderType.greatWall, artifactId: '781812', culture: 'China', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/as/web-large/DP-17100-001.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/as/original/DP-17100-001.jpg', date: 'early 17th century', ), HighlightData( @@ -218,8 +180,6 @@ List _highlights = [ wonder: WonderType.greatWall, artifactId: '40213', culture: 'China', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/as/web-large/DP704217.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/as/original/DP704217.jpg', date: 'early 15th century', ), HighlightData( @@ -227,8 +187,6 @@ List _highlights = [ wonder: WonderType.greatWall, artifactId: '40765', culture: 'China', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/as/web-large/DP229015.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/as/original/DP229015.jpg', date: '15th century', ), HighlightData( @@ -236,8 +194,6 @@ List _highlights = [ wonder: WonderType.greatWall, artifactId: '57612', culture: 'China', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/as/web-large/DP164061.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/as/original/DP164061.jpg', date: '', ), HighlightData( @@ -245,8 +201,6 @@ List _highlights = [ wonder: WonderType.greatWall, artifactId: '666573', culture: 'China', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/as/web-large/DP356342.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/as/original/DP356342.jpg', date: 'early 15th century', ), @@ -256,8 +210,6 @@ List _highlights = [ wonder: WonderType.machuPicchu, artifactId: '313295', culture: 'Inca', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ao/web-large/DP-27120-001.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ao/original/DP-27120-001.jpg', date: '14th–early 16th century', ), HighlightData( @@ -265,8 +217,6 @@ List _highlights = [ wonder: WonderType.machuPicchu, artifactId: '316926', culture: 'Inca', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ao/web-large/DP158704.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ao/original/DP158704.jpg', date: '15th–early 16th century', ), HighlightData( @@ -274,8 +224,6 @@ List _highlights = [ wonder: WonderType.machuPicchu, artifactId: '309944', culture: 'Inca', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ao/web-large/DP-13440-023.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ao/original/DP-13440-023.jpg', date: '1400–1533', ), HighlightData( @@ -283,8 +231,6 @@ List _highlights = [ wonder: WonderType.machuPicchu, artifactId: '309436', culture: 'Moche', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ao/web-large/67.92.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ao/original/67.92.jpg', date: '4th–7th century', ), HighlightData( @@ -292,8 +238,6 @@ List _highlights = [ wonder: WonderType.machuPicchu, artifactId: '309960', culture: 'Inca', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ao/web-large/DP-13440-031.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ao/original/DP-13440-031.jpg', date: '1400–1533', ), HighlightData( @@ -301,8 +245,6 @@ List _highlights = [ wonder: WonderType.machuPicchu, artifactId: '316873', culture: 'Aztec', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/ao/web-large/DP341942.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/ao/original/DP341942.jpg', date: '1400–1521', ), @@ -312,8 +254,6 @@ List _highlights = [ wonder: WonderType.petra, artifactId: '325900', culture: 'Nabataean', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/an/web-large/ME67_246_19.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/an/original/ME67_246_19.jpg', date: 'ca. 1st century A.D.', ), HighlightData( @@ -321,8 +261,6 @@ List _highlights = [ wonder: WonderType.petra, artifactId: '325902', culture: 'Nabataean', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/an/web-large/ME67_246_21.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/an/original/ME67_246_21.jpg', date: 'ca. 1st century A.D.', ), HighlightData( @@ -330,8 +268,6 @@ List _highlights = [ wonder: WonderType.petra, artifactId: '325919', culture: 'Nabataean', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/an/web-large/ME67_246_38.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/an/original/ME67_246_38.jpg', date: 'ca. 1st century A.D.', ), HighlightData( @@ -339,8 +275,6 @@ List _highlights = [ wonder: WonderType.petra, artifactId: '325884', culture: 'Nabataean', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/an/web-large/ME67_246_3.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/an/original/ME67_246_3.jpg', date: 'ca. 1st century A.D.', ), HighlightData( @@ -348,8 +282,6 @@ List _highlights = [ wonder: WonderType.petra, artifactId: '325887', culture: 'Nabataean', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/an/web-large/ME67_246_6.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/an/original/ME67_246_6.jpg', date: 'ca. 1st century A.D.', ), HighlightData( @@ -357,8 +289,6 @@ List _highlights = [ wonder: WonderType.petra, artifactId: '325891', culture: 'Nabataean', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/an/web-large/ME67_246_10.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/an/original/ME67_246_10.jpg', date: 'ca. 1st century A.D.', ), @@ -368,8 +298,6 @@ List _highlights = [ wonder: WonderType.pyramidsGiza, artifactId: '543864', culture: '', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/eg/web-large/DP330260.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/eg/original/DP330260.jpg', date: 'ca. 1919–1885 B.C.', ), HighlightData( @@ -377,8 +305,6 @@ List _highlights = [ wonder: WonderType.pyramidsGiza, artifactId: '546488', culture: '', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/eg/web-large/LC-34_1_183_EGDP033257.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/eg/original/LC-34_1_183_EGDP033257.jpg', date: 'ca. 1981–1640 B.C.', ), HighlightData( @@ -386,8 +312,6 @@ List _highlights = [ wonder: WonderType.pyramidsGiza, artifactId: '557137', culture: '', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/eg/web-large/15.3.205_EGDP015425.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/eg/original/15.3.205_EGDP015425.jpg', date: 'ca. 1850–1640 B.C.', ), HighlightData( @@ -395,8 +319,6 @@ List _highlights = [ wonder: WonderType.pyramidsGiza, artifactId: '543900', culture: '', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/eg/web-large/DP240451.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/eg/original/DP240451.jpg', date: 'ca. 2420–2389 B.C. or later', ), HighlightData( @@ -404,8 +326,6 @@ List _highlights = [ wonder: WonderType.pyramidsGiza, artifactId: '543935', culture: '', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/eg/web-large/DP109397.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/eg/original/DP109397.jpg', date: 'ca. 2490–2472 B.C.', ), HighlightData( @@ -413,8 +333,6 @@ List _highlights = [ wonder: WonderType.pyramidsGiza, artifactId: '544782', culture: '', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/eg/web-large/DP225343.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/eg/original/DP225343.jpg', date: 'ca. 1336–1327 B.C.', ), @@ -424,8 +342,6 @@ List _highlights = [ wonder: WonderType.tajMahal, artifactId: '453341', culture: '', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/is/web-large/DP240307.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/is/original/DP240307.jpg', date: 'mid-17th century', ), HighlightData( @@ -433,8 +349,6 @@ List _highlights = [ wonder: WonderType.tajMahal, artifactId: '453243', culture: '', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/is/web-large/DP214317.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/is/original/DP214317.jpg', date: 'late 17th century', ), HighlightData( @@ -442,8 +356,6 @@ List _highlights = [ wonder: WonderType.tajMahal, artifactId: '73309', culture: 'India (Gujarat)', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/as/web-large/DP138506.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/as/original/DP138506.jpg', date: 'mid-16th–17th century', ), HighlightData( @@ -451,8 +363,6 @@ List _highlights = [ wonder: WonderType.tajMahal, artifactId: '24932', culture: 'Indian, Mughal', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/aa/web-large/1988.147_007mar2015.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/aa/original/1988.147_007mar2015.jpg', date: '18th century', ), HighlightData( @@ -460,8 +370,6 @@ List _highlights = [ wonder: WonderType.tajMahal, artifactId: '56230', culture: 'India', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/as/web-large/DP-14153-029.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/as/original/DP-14153-029.jpg', date: '18th–19th century', ), HighlightData( @@ -469,8 +377,6 @@ List _highlights = [ wonder: WonderType.tajMahal, artifactId: '35633', culture: 'Indian', - imageUrlSmall: 'https://images.metmuseum.org/CRDImages/aa/web-large/DP219616.jpg', - imageUrl: 'https://images.metmuseum.org/CRDImages/aa/original/DP219616.jpg', date: 'dated A.H. 1042/A.D. 1632–33', ), ]; diff --git a/lib/logic/data/wonders_data/search/search_data.dart b/lib/logic/data/wonders_data/search/search_data.dart index dd13fd9d..e62dcd62 100644 --- a/lib/logic/data/wonders_data/search/search_data.dart +++ b/lib/logic/data/wonders_data/search/search_data.dart @@ -1,17 +1,17 @@ +import 'package:wonders/logic/data/artifact_data.dart'; + class SearchData { - static const String baseImagePath = 'https://images.metmuseum.org/CRDImages/'; - static const missingIds = [313256, 327544, 327596, 545776, 38549, 38578, 38473, 38598, 38153, 38203, 64486, 64487]; - const SearchData(this.year, this.id, this.title, this.keywords, this.imagePath, [this.aspectRatio = 0]); + const SearchData(this.year, this.id, this.title, this.keywords, [this.aspectRatio = 0]); + final int year; final int id; - final String imagePath; final String keywords; final String title; final double aspectRatio; - String get imageUrl => baseImagePath + imagePath; + String get imageUrl => ArtifactData.getSelfHostedImageUrl('$id'); + String get imageUrlSmall => ArtifactData.getSelfHostedImageUrlSmall('$id'); // used by the search helper tool: - String write() => - "SearchData($year, $id, '$title', '$keywords', '$imagePath'${aspectRatio == 0 ? '' : ', ${aspectRatio.toStringAsFixed(2)}'})"; + String write() => "SearchData($year, $id, '$title', '$keywords')"; }