commit 26e9d8d3d0ec8f16585a0626888f36d39429c6ef Author: linguini Date: Mon Jul 13 10:34:54 2026 +0200 init commit diff --git a/dataset/!UNKNOWN AUTHOR/KRIM_6.GIF b/dataset/!UNKNOWN AUTHOR/KRIM_6.GIF new file mode 100755 index 0000000..1cf2ee2 Binary files /dev/null and b/dataset/!UNKNOWN AUTHOR/KRIM_6.GIF differ diff --git a/dataset/!UNKNOWN AUTHOR/KRIM_7.GIF b/dataset/!UNKNOWN AUTHOR/KRIM_7.GIF new file mode 100755 index 0000000..f3c9c23 Binary files /dev/null and b/dataset/!UNKNOWN AUTHOR/KRIM_7.GIF differ diff --git a/dataset/!UNKNOWN AUTHOR/xyz37245.jpg b/dataset/!UNKNOWN AUTHOR/xyz37245.jpg new file mode 100755 index 0000000..5212029 Binary files /dev/null and b/dataset/!UNKNOWN AUTHOR/xyz37245.jpg differ diff --git a/dataset/!UNKNOWN AUTHOR/xyz37250.jpg b/dataset/!UNKNOWN AUTHOR/xyz37250.jpg new file mode 100755 index 0000000..b796cc2 Binary files /dev/null and b/dataset/!UNKNOWN AUTHOR/xyz37250.jpg differ diff --git a/dataset/!UNKNOWN AUTHOR/xyz37251.jpg b/dataset/!UNKNOWN AUTHOR/xyz37251.jpg new file mode 100755 index 0000000..e04d341 Binary files /dev/null and b/dataset/!UNKNOWN AUTHOR/xyz37251.jpg differ diff --git a/dataset/.DS_Store b/dataset/.DS_Store new file mode 100755 index 0000000..c303141 Binary files /dev/null and b/dataset/.DS_Store differ diff --git a/dataset/A/AlcornStephen-Porcupine-sj.jpg b/dataset/A/AlcornStephen-Porcupine-sj.jpg new file mode 100755 index 0000000..57ab150 Binary files /dev/null and b/dataset/A/AlcornStephen-Porcupine-sj.jpg differ diff --git a/dataset/A/AlcornStephen-SheLikesToHide-sj.jpg b/dataset/A/AlcornStephen-SheLikesToHide-sj.jpg new file mode 100755 index 0000000..944fe9c Binary files /dev/null and b/dataset/A/AlcornStephen-SheLikesToHide-sj.jpg differ diff --git a/dataset/A/lrsSPEC11-197-AebischerSilvio-TheOutlaws.jpg b/dataset/A/lrsSPEC11-197-AebischerSilvio-TheOutlaws.jpg new file mode 100755 index 0000000..d82ff93 Binary files /dev/null and b/dataset/A/lrsSPEC11-197-AebischerSilvio-TheOutlaws.jpg differ diff --git a/dataset/A/lrsSPEC11-205-AebischerSilvio-CorporateBlimp.jpg b/dataset/A/lrsSPEC11-205-AebischerSilvio-CorporateBlimp.jpg new file mode 100755 index 0000000..db9c862 Binary files /dev/null and b/dataset/A/lrsSPEC11-205-AebischerSilvio-CorporateBlimp.jpg differ diff --git a/dataset/A/lrsSPM10-161-AebischerSilvio-GlockStatandSligValet.jpg b/dataset/A/lrsSPM10-161-AebischerSilvio-GlockStatandSligValet.jpg new file mode 100755 index 0000000..5f191f0 Binary files /dev/null and b/dataset/A/lrsSPM10-161-AebischerSilvio-GlockStatandSligValet.jpg differ diff --git a/dataset/B/Boilly_Louis_Leopold_The_Amateur_Print_Collectors.jpg b/dataset/B/Boilly_Louis_Leopold_The_Amateur_Print_Collectors.jpg new file mode 100755 index 0000000..3a7ab3f Binary files /dev/null and b/dataset/B/Boilly_Louis_Leopold_The_Amateur_Print_Collectors.jpg differ diff --git a/dataset/B/boilly1.jpg b/dataset/B/boilly1.jpg new file mode 100755 index 0000000..a7d69a2 Binary files /dev/null and b/dataset/B/boilly1.jpg differ diff --git a/dataset/B/boilly2.jpg b/dataset/B/boilly2.jpg new file mode 100755 index 0000000..6fed826 Binary files /dev/null and b/dataset/B/boilly2.jpg differ diff --git a/dataset/B/brodsky_a_dnepstroi_shockworker_1932.jpg b/dataset/B/brodsky_a_dnepstroi_shockworker_1932.jpg new file mode 100755 index 0000000..6deda48 Binary files /dev/null and b/dataset/B/brodsky_a_dnepstroi_shockworker_1932.jpg differ diff --git a/dataset/B/brodsky_lenin_in_smolny_1930.jpg b/dataset/B/brodsky_lenin_in_smolny_1930.jpg new file mode 100755 index 0000000..21f8677 Binary files /dev/null and b/dataset/B/brodsky_lenin_in_smolny_1930.jpg differ diff --git a/dataset/C/Cassidy-ShepherdessOfTheHills-sj.jpg b/dataset/C/Cassidy-ShepherdessOfTheHills-sj.jpg new file mode 100755 index 0000000..862c074 Binary files /dev/null and b/dataset/C/Cassidy-ShepherdessOfTheHills-sj.jpg differ diff --git a/dataset/C/Cassidy-ThePotteryMaker-sj.jpg b/dataset/C/Cassidy-ThePotteryMaker-sj.jpg new file mode 100755 index 0000000..941b19e Binary files /dev/null and b/dataset/C/Cassidy-ThePotteryMaker-sj.jpg differ diff --git a/dataset/C/Col David The wine tasters Sun.jpg b/dataset/C/Col David The wine tasters Sun.jpg new file mode 100755 index 0000000..d6b2ce3 Binary files /dev/null and b/dataset/C/Col David The wine tasters Sun.jpg differ diff --git a/dataset/C/Col David View on Antwerpen Sun.jpg b/dataset/C/Col David View on Antwerpen Sun.jpg new file mode 100755 index 0000000..9588b2f Binary files /dev/null and b/dataset/C/Col David View on Antwerpen Sun.jpg differ diff --git a/dataset/C/Col_Jan_David_Retour_De_Chasse.jpg b/dataset/C/Col_Jan_David_Retour_De_Chasse.jpg new file mode 100755 index 0000000..2acfcb3 Binary files /dev/null and b/dataset/C/Col_Jan_David_Retour_De_Chasse.jpg differ diff --git a/dataset/D/Dooney, Michael TS01 unpublished Gizmo cover (end.jpg b/dataset/D/Dooney, Michael TS01 unpublished Gizmo cover (end.jpg new file mode 100755 index 0000000..937ac96 Binary files /dev/null and b/dataset/D/Dooney, Michael TS01 unpublished Gizmo cover (end.jpg differ diff --git a/dataset/D/Dooney, Michael TS02 poster Electronic Games Mag (end.jpg b/dataset/D/Dooney, Michael TS02 poster Electronic Games Mag (end.jpg new file mode 100755 index 0000000..39d4a9a Binary files /dev/null and b/dataset/D/Dooney, Michael TS02 poster Electronic Games Mag (end.jpg differ diff --git a/dataset/D/Dooney, Michael TS03 unpublished (end.jpg b/dataset/D/Dooney, Michael TS03 unpublished (end.jpg new file mode 100755 index 0000000..86176d0 Binary files /dev/null and b/dataset/D/Dooney, Michael TS03 unpublished (end.jpg differ diff --git a/dataset/D/Dooney, Michael TS05 unpublished (end.jpg b/dataset/D/Dooney, Michael TS05 unpublished (end.jpg new file mode 100755 index 0000000..b002628 Binary files /dev/null and b/dataset/D/Dooney, Michael TS05 unpublished (end.jpg differ diff --git a/dataset/D/Dooney, Michael TS06 cover The Collected Gizmo (end.jpg b/dataset/D/Dooney, Michael TS06 cover The Collected Gizmo (end.jpg new file mode 100755 index 0000000..917b42d Binary files /dev/null and b/dataset/D/Dooney, Michael TS06 cover The Collected Gizmo (end.jpg differ diff --git a/dataset/E/EllisFremont_SongoftheSilentLand-We.jpg b/dataset/E/EllisFremont_SongoftheSilentLand-We.jpg new file mode 100755 index 0000000..a2cb539 Binary files /dev/null and b/dataset/E/EllisFremont_SongoftheSilentLand-We.jpg differ diff --git a/dataset/E/Erdmann_Otto_The_Bridegrooms_Health-The_Bethrothal.jpg b/dataset/E/Erdmann_Otto_The_Bridegrooms_Health-The_Bethrothal.jpg new file mode 100755 index 0000000..4902c99 Binary files /dev/null and b/dataset/E/Erdmann_Otto_The_Bridegrooms_Health-The_Bethrothal.jpg differ diff --git a/dataset/E/Otto_Erdmann_Das_Rezitativ_(The_Recitation)_1888.jpg b/dataset/E/Otto_Erdmann_Das_Rezitativ_(The_Recitation)_1888.jpg new file mode 100755 index 0000000..de915c2 Binary files /dev/null and b/dataset/E/Otto_Erdmann_Das_Rezitativ_(The_Recitation)_1888.jpg differ diff --git a/dataset/E/lrsEmbreeAnne-Patience.jpg b/dataset/E/lrsEmbreeAnne-Patience.jpg new file mode 100755 index 0000000..d63725f Binary files /dev/null and b/dataset/E/lrsEmbreeAnne-Patience.jpg differ diff --git a/dataset/F/FUSELI_John_Henry_Ezzelin_And_Meduna.jpg b/dataset/F/FUSELI_John_Henry_Ezzelin_And_Meduna.jpg new file mode 100755 index 0000000..36e149f Binary files /dev/null and b/dataset/F/FUSELI_John_Henry_Ezzelin_And_Meduna.jpg differ diff --git a/dataset/F/FUSELI_John_Henry_Lady_Macbeth.jpg b/dataset/F/FUSELI_John_Henry_Lady_Macbeth.jpg new file mode 100755 index 0000000..22ca03b Binary files /dev/null and b/dataset/F/FUSELI_John_Henry_Lady_Macbeth.jpg differ diff --git a/dataset/F/FUSELI_John_Henry_Silence.jpg b/dataset/F/FUSELI_John_Henry_Silence.jpg new file mode 100755 index 0000000..216ffe9 Binary files /dev/null and b/dataset/F/FUSELI_John_Henry_Silence.jpg differ diff --git a/dataset/F/Fuseli_Henry_The_Nightmare.jpg b/dataset/F/Fuseli_Henry_The_Nightmare.jpg new file mode 100755 index 0000000..e0f4ede Binary files /dev/null and b/dataset/F/Fuseli_Henry_The_Nightmare.jpg differ diff --git a/dataset/F/Fussli The Night-Hag Visiting the Lapland Witches c. 1796 Oi.jpg b/dataset/F/Fussli The Night-Hag Visiting the Lapland Witches c. 1796 Oi.jpg new file mode 100755 index 0000000..251c2b8 Binary files /dev/null and b/dataset/F/Fussli The Night-Hag Visiting the Lapland Witches c. 1796 Oi.jpg differ diff --git a/dataset/G/Gnoli, Domenico - Armchair (end.jpg b/dataset/G/Gnoli, Domenico - Armchair (end.jpg new file mode 100755 index 0000000..cd83a27 Binary files /dev/null and b/dataset/G/Gnoli, Domenico - Armchair (end.jpg differ diff --git a/dataset/G/bs-ahp- Teresa Grimes( Grand Cayman)- East End Roadside.jpg b/dataset/G/bs-ahp- Teresa Grimes( Grand Cayman)- East End Roadside.jpg new file mode 100755 index 0000000..0dbddf9 Binary files /dev/null and b/dataset/G/bs-ahp- Teresa Grimes( Grand Cayman)- East End Roadside.jpg differ diff --git a/dataset/G/xyz24198.jpg b/dataset/G/xyz24198.jpg new file mode 100755 index 0000000..4e5ba0a Binary files /dev/null and b/dataset/G/xyz24198.jpg differ diff --git a/dataset/G/xyz24199.jpg b/dataset/G/xyz24199.jpg new file mode 100755 index 0000000..b4cc58e Binary files /dev/null and b/dataset/G/xyz24199.jpg differ diff --git a/dataset/G/xyz24203.jpg b/dataset/G/xyz24203.jpg new file mode 100755 index 0000000..2bff940 Binary files /dev/null and b/dataset/G/xyz24203.jpg differ diff --git a/dataset/H/Harris-Jim_fromTuesday-in-Arizona-sj.jpg b/dataset/H/Harris-Jim_fromTuesday-in-Arizona-sj.jpg new file mode 100755 index 0000000..94903f9 Binary files /dev/null and b/dataset/H/Harris-Jim_fromTuesday-in-Arizona-sj.jpg differ diff --git a/dataset/H/HunnThomas_LadyWeston'sWalk_SuttonPlace-We (f131).jpg b/dataset/H/HunnThomas_LadyWeston'sWalk_SuttonPlace-We (f131).jpg new file mode 100755 index 0000000..8ae2788 Binary files /dev/null and b/dataset/H/HunnThomas_LadyWeston'sWalk_SuttonPlace-We (f131).jpg differ diff --git a/dataset/H/HunnThomas_StCatherine'sCourt-We (f108).jpg b/dataset/H/HunnThomas_StCatherine'sCourt-We (f108).jpg new file mode 100755 index 0000000..a612eab Binary files /dev/null and b/dataset/H/HunnThomas_StCatherine'sCourt-We (f108).jpg differ diff --git a/dataset/H/bs-oc- Jimmy Harris- Unknown Title-01.jpg b/dataset/H/bs-oc- Jimmy Harris- Unknown Title-01.jpg new file mode 100755 index 0000000..f400f99 Binary files /dev/null and b/dataset/H/bs-oc- Jimmy Harris- Unknown Title-01.jpg differ diff --git a/dataset/H/lrs Hill Leslie Sibyl.jpg b/dataset/H/lrs Hill Leslie Sibyl.jpg new file mode 100755 index 0000000..6920f23 Binary files /dev/null and b/dataset/H/lrs Hill Leslie Sibyl.jpg differ diff --git a/dataset/I/0uro3_1115__mutsumi_inomata.jpg b/dataset/I/0uro3_1115__mutsumi_inomata.jpg new file mode 100755 index 0000000..4cf44a7 Binary files /dev/null and b/dataset/I/0uro3_1115__mutsumi_inomata.jpg differ diff --git a/dataset/I/AUTUMN.JPG b/dataset/I/AUTUMN.JPG new file mode 100755 index 0000000..0f657b8 Binary files /dev/null and b/dataset/I/AUTUMN.JPG differ diff --git a/dataset/I/Landscape_with_Pond.jpg b/dataset/I/Landscape_with_Pond.jpg new file mode 100755 index 0000000..e9d9bd8 Binary files /dev/null and b/dataset/I/Landscape_with_Pond.jpg differ diff --git a/dataset/I/The_Coming_Storm_1878.jpg b/dataset/I/The_Coming_Storm_1878.jpg new file mode 100755 index 0000000..3db1c10 Binary files /dev/null and b/dataset/I/The_Coming_Storm_1878.jpg differ diff --git a/dataset/I/biopic.jpg b/dataset/I/biopic.jpg new file mode 100755 index 0000000..c4ef712 Binary files /dev/null and b/dataset/I/biopic.jpg differ diff --git a/dataset/J/16.Johns.bmp b/dataset/J/16.Johns.bmp new file mode 100755 index 0000000..f21d76b Binary files /dev/null and b/dataset/J/16.Johns.bmp differ diff --git a/dataset/J/DeniseJigarjian-AnHonestDaysWork_cr.jpg b/dataset/J/DeniseJigarjian-AnHonestDaysWork_cr.jpg new file mode 100755 index 0000000..e337ad0 Binary files /dev/null and b/dataset/J/DeniseJigarjian-AnHonestDaysWork_cr.jpg differ diff --git a/dataset/J/JanvierCatherineDrinker_OldFashionedMusic-We.jpg b/dataset/J/JanvierCatherineDrinker_OldFashionedMusic-We.jpg new file mode 100755 index 0000000..11ff116 Binary files /dev/null and b/dataset/J/JanvierCatherineDrinker_OldFashionedMusic-We.jpg differ diff --git a/dataset/J/Jourdain_Roger_Joseph_Di_Manchea_La_Grande_Jatteis_lan_Donthesei.jpg b/dataset/J/Jourdain_Roger_Joseph_Di_Manchea_La_Grande_Jatteis_lan_Donthesei.jpg new file mode 100755 index 0000000..652ffb6 Binary files /dev/null and b/dataset/J/Jourdain_Roger_Joseph_Di_Manchea_La_Grande_Jatteis_lan_Donthesei.jpg differ diff --git a/dataset/K/IS2_008_Alfons_Kieffer_04.jpg b/dataset/K/IS2_008_Alfons_Kieffer_04.jpg new file mode 100755 index 0000000..43d5edc Binary files /dev/null and b/dataset/K/IS2_008_Alfons_Kieffer_04.jpg differ diff --git a/dataset/K/Kelli_Carlo_Paul_And_Virginie.jpg b/dataset/K/Kelli_Carlo_Paul_And_Virginie.jpg new file mode 100755 index 0000000..d3ee90d Binary files /dev/null and b/dataset/K/Kelli_Carlo_Paul_And_Virginie.jpg differ diff --git a/dataset/K/Klauba_Buck (Ma_Sp8).jpg b/dataset/K/Klauba_Buck (Ma_Sp8).jpg new file mode 100755 index 0000000..ca36aa8 Binary files /dev/null and b/dataset/K/Klauba_Buck (Ma_Sp8).jpg differ diff --git a/dataset/K/Robert Katz - Tete de danseuse, De.jpg b/dataset/K/Robert Katz - Tete de danseuse, De.jpg new file mode 100755 index 0000000..9bfd03f Binary files /dev/null and b/dataset/K/Robert Katz - Tete de danseuse, De.jpg differ diff --git a/dataset/K/Robert Katz - The Riders, De.jpg b/dataset/K/Robert Katz - The Riders, De.jpg new file mode 100755 index 0000000..0218c4a Binary files /dev/null and b/dataset/K/Robert Katz - The Riders, De.jpg differ diff --git a/dataset/L/Lindneux_Sand-Creek-Battle-sj.jpg b/dataset/L/Lindneux_Sand-Creek-Battle-sj.jpg new file mode 100755 index 0000000..d5d799a Binary files /dev/null and b/dataset/L/Lindneux_Sand-Creek-Battle-sj.jpg differ diff --git a/dataset/L/MPA_John William Lewin_Fish Catch and Dawes Point, Sidney Harbour, 1813_sqs.jpg b/dataset/L/MPA_John William Lewin_Fish Catch and Dawes Point, Sidney Harbour, 1813_sqs.jpg new file mode 100755 index 0000000..1e3b274 Binary files /dev/null and b/dataset/L/MPA_John William Lewin_Fish Catch and Dawes Point, Sidney Harbour, 1813_sqs.jpg differ diff --git a/dataset/L/lrsDeVaryDavid-ContemporaryCowgirl.jpg b/dataset/L/lrsDeVaryDavid-ContemporaryCowgirl.jpg new file mode 100755 index 0000000..93a39d2 Binary files /dev/null and b/dataset/L/lrsDeVaryDavid-ContemporaryCowgirl.jpg differ diff --git a/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-04-sj.jpg b/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-04-sj.jpg new file mode 100755 index 0000000..70938ad Binary files /dev/null and b/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-04-sj.jpg differ diff --git a/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-08-sj.jpg b/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-08-sj.jpg new file mode 100755 index 0000000..5e5b59f Binary files /dev/null and b/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-08-sj.jpg differ diff --git a/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-16-sj.jpg b/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-16-sj.jpg new file mode 100755 index 0000000..95c3050 Binary files /dev/null and b/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-16-sj.jpg differ diff --git a/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-20-sj.jpg b/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-20-sj.jpg new file mode 100755 index 0000000..fec39e1 Binary files /dev/null and b/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-20-sj.jpg differ diff --git a/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-22-sj.jpg b/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-22-sj.jpg new file mode 100755 index 0000000..c851dd8 Binary files /dev/null and b/dataset/M/MayerMercer-There'sAnAlligatorUnderMyBed-22-sj.jpg differ diff --git a/dataset/N/Nelson-Reed, Helen - Esther (end.jpg b/dataset/N/Nelson-Reed, Helen - Esther (end.jpg new file mode 100755 index 0000000..2b407a7 Binary files /dev/null and b/dataset/N/Nelson-Reed, Helen - Esther (end.jpg differ diff --git a/dataset/N/Sandy Nightingale Books Of Magic - Xxx 1763 .jpg b/dataset/N/Sandy Nightingale Books Of Magic - Xxx 1763 .jpg new file mode 100755 index 0000000..59c6a9b Binary files /dev/null and b/dataset/N/Sandy Nightingale Books Of Magic - Xxx 1763 .jpg differ diff --git a/dataset/N/Sandy Nightingale The Witches - Xxx 1762 .jpg b/dataset/N/Sandy Nightingale The Witches - Xxx 1762 .jpg new file mode 100755 index 0000000..43efe89 Binary files /dev/null and b/dataset/N/Sandy Nightingale The Witches - Xxx 1762 .jpg differ diff --git a/dataset/N/bs-na-de Nose- Eagle.jpg b/dataset/N/bs-na-de Nose- Eagle.jpg new file mode 100755 index 0000000..f13fe17 Binary files /dev/null and b/dataset/N/bs-na-de Nose- Eagle.jpg differ diff --git a/dataset/N/lemuel_newton-illustrated_landscapes_csg019.jpg b/dataset/N/lemuel_newton-illustrated_landscapes_csg019.jpg new file mode 100755 index 0000000..eb1325c Binary files /dev/null and b/dataset/N/lemuel_newton-illustrated_landscapes_csg019.jpg differ diff --git a/dataset/O/O'TooleMichael_Bruges-We.jpg b/dataset/O/O'TooleMichael_Bruges-We.jpg new file mode 100755 index 0000000..07caddc Binary files /dev/null and b/dataset/O/O'TooleMichael_Bruges-We.jpg differ diff --git a/dataset/O/Omar_Rayyan_Pear_Meditations_1 (Ma_Sp7).jpg b/dataset/O/Omar_Rayyan_Pear_Meditations_1 (Ma_Sp7).jpg new file mode 100755 index 0000000..0fc851f Binary files /dev/null and b/dataset/O/Omar_Rayyan_Pear_Meditations_1 (Ma_Sp7).jpg differ diff --git a/dataset/O/Omar_Rayyan_The_Berry_Market (Ma_Sp7).jpg b/dataset/O/Omar_Rayyan_The_Berry_Market (Ma_Sp7).jpg new file mode 100755 index 0000000..889b841 Binary files /dev/null and b/dataset/O/Omar_Rayyan_The_Berry_Market (Ma_Sp7).jpg differ diff --git a/dataset/O/Serge Ouimet - Interieures, De.jpg b/dataset/O/Serge Ouimet - Interieures, De.jpg new file mode 100755 index 0000000..9b59be6 Binary files /dev/null and b/dataset/O/Serge Ouimet - Interieures, De.jpg differ diff --git a/dataset/P/J.K.Potter - Midian (Abraxsis).jpg b/dataset/P/J.K.Potter - Midian (Abraxsis).jpg new file mode 100755 index 0000000..57756ec Binary files /dev/null and b/dataset/P/J.K.Potter - Midian (Abraxsis).jpg differ diff --git a/dataset/P/Philippeau Karel Frans Italian folk scиne Sun.jpg b/dataset/P/Philippeau Karel Frans Italian folk scиne Sun.jpg new file mode 100755 index 0000000..d821f2a Binary files /dev/null and b/dataset/P/Philippeau Karel Frans Italian folk scиne Sun.jpg differ diff --git a/dataset/P/Pratella_Attilio_A_Rocky_Coast.jpg b/dataset/P/Pratella_Attilio_A_Rocky_Coast.jpg new file mode 100755 index 0000000..e8392c6 Binary files /dev/null and b/dataset/P/Pratella_Attilio_A_Rocky_Coast.jpg differ diff --git a/dataset/P/lrsMFA76PotterBiography.jpg b/dataset/P/lrsMFA76PotterBiography.jpg new file mode 100755 index 0000000..79286d7 Binary files /dev/null and b/dataset/P/lrsMFA76PotterBiography.jpg differ diff --git a/dataset/P/lrsMFA80PotterJK-FacesUnderWater.jpg b/dataset/P/lrsMFA80PotterJK-FacesUnderWater.jpg new file mode 100755 index 0000000..a1707e2 Binary files /dev/null and b/dataset/P/lrsMFA80PotterJK-FacesUnderWater.jpg differ diff --git a/dataset/Q/Pierre Quevillon - Pommes de Terre et Ceramique, De.jpg b/dataset/Q/Pierre Quevillon - Pommes de Terre et Ceramique, De.jpg new file mode 100755 index 0000000..66f8920 Binary files /dev/null and b/dataset/Q/Pierre Quevillon - Pommes de Terre et Ceramique, De.jpg differ diff --git a/dataset/Q/Quinsac_Paul_Francois_Moulin_De_La_Galette.jpg b/dataset/Q/Quinsac_Paul_Francois_Moulin_De_La_Galette.jpg new file mode 100755 index 0000000..adcab5d Binary files /dev/null and b/dataset/Q/Quinsac_Paul_Francois_Moulin_De_La_Galette.jpg differ diff --git a/dataset/Q/am-Gerard_Quinn_01.jpg b/dataset/Q/am-Gerard_Quinn_01.jpg new file mode 100755 index 0000000..e94f7cb Binary files /dev/null and b/dataset/Q/am-Gerard_Quinn_01.jpg differ diff --git a/dataset/Q/am-Gerard_Quinn_03.jpg b/dataset/Q/am-Gerard_Quinn_03.jpg new file mode 100755 index 0000000..485a8e0 Binary files /dev/null and b/dataset/Q/am-Gerard_Quinn_03.jpg differ diff --git a/dataset/Q/lrs Quinn Thomas Silver Fountain.jpg b/dataset/Q/lrs Quinn Thomas Silver Fountain.jpg new file mode 100755 index 0000000..d43fe72 Binary files /dev/null and b/dataset/Q/lrs Quinn Thomas Silver Fountain.jpg differ diff --git a/dataset/R/xyz15609.jpg b/dataset/R/xyz15609.jpg new file mode 100755 index 0000000..36e6c30 Binary files /dev/null and b/dataset/R/xyz15609.jpg differ diff --git a/dataset/R/xyz15620.jpg b/dataset/R/xyz15620.jpg new file mode 100755 index 0000000..8c6d88d Binary files /dev/null and b/dataset/R/xyz15620.jpg differ diff --git a/dataset/R/xyz15621.jpg b/dataset/R/xyz15621.jpg new file mode 100755 index 0000000..fed8293 Binary files /dev/null and b/dataset/R/xyz15621.jpg differ diff --git a/dataset/R/xyz15634.jpg b/dataset/R/xyz15634.jpg new file mode 100755 index 0000000..8bdbb00 Binary files /dev/null and b/dataset/R/xyz15634.jpg differ diff --git a/dataset/R/xyz15635.jpg b/dataset/R/xyz15635.jpg new file mode 100755 index 0000000..2ff6499 Binary files /dev/null and b/dataset/R/xyz15635.jpg differ diff --git a/dataset/S/ScharfMaxR-MuseeDePleinAir-sj.jpg b/dataset/S/ScharfMaxR-MuseeDePleinAir-sj.jpg new file mode 100755 index 0000000..464e30c Binary files /dev/null and b/dataset/S/ScharfMaxR-MuseeDePleinAir-sj.jpg differ diff --git a/dataset/S/Schlesinger_Henri_Guillaume_Blowing_Bubbles.jpg b/dataset/S/Schlesinger_Henri_Guillaume_Blowing_Bubbles.jpg new file mode 100755 index 0000000..5279f7b Binary files /dev/null and b/dataset/S/Schlesinger_Henri_Guillaume_Blowing_Bubbles.jpg differ diff --git a/dataset/S/lrsMFA88SpalenkaGreg-Mind2000.jpg b/dataset/S/lrsMFA88SpalenkaGreg-Mind2000.jpg new file mode 100755 index 0000000..e6ac575 Binary files /dev/null and b/dataset/S/lrsMFA88SpalenkaGreg-Mind2000.jpg differ diff --git a/dataset/S/lrsMFA89SpalenkaGreg-Knightengale.jpg b/dataset/S/lrsMFA89SpalenkaGreg-Knightengale.jpg new file mode 100755 index 0000000..d744406 Binary files /dev/null and b/dataset/S/lrsMFA89SpalenkaGreg-Knightengale.jpg differ diff --git a/dataset/S/lrsSPEC11-253-SpalenkaGreg-LotusFairies.jpg b/dataset/S/lrsSPEC11-253-SpalenkaGreg-LotusFairies.jpg new file mode 100755 index 0000000..2247adc Binary files /dev/null and b/dataset/S/lrsSPEC11-253-SpalenkaGreg-LotusFairies.jpg differ diff --git a/dataset/T/Julie Taylor - Illumination, De.jpg b/dataset/T/Julie Taylor - Illumination, De.jpg new file mode 100755 index 0000000..3a13c73 Binary files /dev/null and b/dataset/T/Julie Taylor - Illumination, De.jpg differ diff --git a/dataset/T/Tudgay_Frederick_Southern_Rights.jpg b/dataset/T/Tudgay_Frederick_Southern_Rights.jpg new file mode 100755 index 0000000..f7b8238 Binary files /dev/null and b/dataset/T/Tudgay_Frederick_Southern_Rights.jpg differ diff --git a/dataset/T/lrs Ter Bush Dale The Soul's Wind.jpg b/dataset/T/lrs Ter Bush Dale The Soul's Wind.jpg new file mode 100755 index 0000000..9adb98b Binary files /dev/null and b/dataset/T/lrs Ter Bush Dale The Soul's Wind.jpg differ diff --git a/dataset/T/lrs Ter Bush Return to the Enchantment.jpg b/dataset/T/lrs Ter Bush Return to the Enchantment.jpg new file mode 100755 index 0000000..e25c41a Binary files /dev/null and b/dataset/T/lrs Ter Bush Return to the Enchantment.jpg differ diff --git a/dataset/T/lrs Ter Bush To All Things Under Heaven.jpg b/dataset/T/lrs Ter Bush To All Things Under Heaven.jpg new file mode 100755 index 0000000..e6eac77 Binary files /dev/null and b/dataset/T/lrs Ter Bush To All Things Under Heaven.jpg differ diff --git a/dataset/U/1battle1.jpg b/dataset/U/1battle1.jpg new file mode 100755 index 0000000..7d4c532 Binary files /dev/null and b/dataset/U/1battle1.jpg differ diff --git a/dataset/U/UCCELLO FUNERARY MONUMENT FOR GIOVANNI ACUTO,1436, DUOMO,FIR.JPG b/dataset/U/UCCELLO FUNERARY MONUMENT FOR GIOVANNI ACUTO,1436, DUOMO,FIR.JPG new file mode 100755 index 0000000..371dd02 Binary files /dev/null and b/dataset/U/UCCELLO FUNERARY MONUMENT FOR GIOVANNI ACUTO,1436, DUOMO,FIR.JPG differ diff --git a/dataset/U/UCCELLO THE HUNT IN THE FOREST (LEFT),1468, ASHMOLEAN MUSEUM.JPG b/dataset/U/UCCELLO THE HUNT IN THE FOREST (LEFT),1468, ASHMOLEAN MUSEUM.JPG new file mode 100755 index 0000000..20ace49 Binary files /dev/null and b/dataset/U/UCCELLO THE HUNT IN THE FOREST (LEFT),1468, ASHMOLEAN MUSEUM.JPG differ diff --git a/dataset/U/UCCELLO_Paolo_Micheletto_da_Cotignaola_Engages_In_Battle.jpg b/dataset/U/UCCELLO_Paolo_Micheletto_da_Cotignaola_Engages_In_Battle.jpg new file mode 100755 index 0000000..060e324 Binary files /dev/null and b/dataset/U/UCCELLO_Paolo_Micheletto_da_Cotignaola_Engages_In_Battle.jpg differ diff --git a/dataset/U/UCCELLO_Paolo_Portrait_Of_A_Young_Man.jpg b/dataset/U/UCCELLO_Paolo_Portrait_Of_A_Young_Man.jpg new file mode 100755 index 0000000..132a75a Binary files /dev/null and b/dataset/U/UCCELLO_Paolo_Portrait_Of_A_Young_Man.jpg differ diff --git a/dataset/V/.DS_Store b/dataset/V/.DS_Store new file mode 100755 index 0000000..5008ddf Binary files /dev/null and b/dataset/V/.DS_Store differ diff --git a/dataset/V/lrsSPEC11-207-VarahramyanFarzad-Nightmare.jpg b/dataset/V/lrsSPEC11-207-VarahramyanFarzad-Nightmare.jpg new file mode 100755 index 0000000..319e409 Binary files /dev/null and b/dataset/V/lrsSPEC11-207-VarahramyanFarzad-Nightmare.jpg differ diff --git a/dataset/W/Waquant, Michele - Le colloque (end.jpg b/dataset/W/Waquant, Michele - Le colloque (end.jpg new file mode 100755 index 0000000..f4e9534 Binary files /dev/null and b/dataset/W/Waquant, Michele - Le colloque (end.jpg differ diff --git a/dataset/W/Witz Konrad Joachim and Anna at the golden gate .jpg b/dataset/W/Witz Konrad Joachim and Anna at the golden gate .jpg new file mode 100755 index 0000000..7abda48 Binary files /dev/null and b/dataset/W/Witz Konrad Joachim and Anna at the golden gate .jpg differ diff --git a/dataset/W/Witz, Conrad (German, active in Switzerland, approx. 1400-1446).jpg b/dataset/W/Witz, Conrad (German, active in Switzerland, approx. 1400-1446).jpg new file mode 100755 index 0000000..73a081b Binary files /dev/null and b/dataset/W/Witz, Conrad (German, active in Switzerland, approx. 1400-1446).jpg differ diff --git a/dataset/W/Witz, Conrad- The Altarpiece of Saint Peter, (German, active in Switzerland, approx. 1400-1446)1.jpg b/dataset/W/Witz, Conrad- The Altarpiece of Saint Peter, (German, active in Switzerland, approx. 1400-1446)1.jpg new file mode 100755 index 0000000..fdda3ce Binary files /dev/null and b/dataset/W/Witz, Conrad- The Altarpiece of Saint Peter, (German, active in Switzerland, approx. 1400-1446)1.jpg differ diff --git a/dataset/W/Witz_Konrad_St_Catherine_Of_Alexandria.jpg b/dataset/W/Witz_Konrad_St_Catherine_Of_Alexandria.jpg new file mode 100755 index 0000000..7d8f189 Binary files /dev/null and b/dataset/W/Witz_Konrad_St_Catherine_Of_Alexandria.jpg differ diff --git a/dataset/X/.DS_Store b/dataset/X/.DS_Store new file mode 100755 index 0000000..5008ddf Binary files /dev/null and b/dataset/X/.DS_Store differ diff --git a/dataset/X/Frozen Throne.jpg b/dataset/X/Frozen Throne.jpg new file mode 100755 index 0000000..34178d2 Binary files /dev/null and b/dataset/X/Frozen Throne.jpg differ diff --git a/dataset/X/Professor_CSA_Print_Li_Si_Xun_010.jpg b/dataset/X/Professor_CSA_Print_Li_Si_Xun_010.jpg new file mode 100755 index 0000000..26b3611 Binary files /dev/null and b/dataset/X/Professor_CSA_Print_Li_Si_Xun_010.jpg differ diff --git a/dataset/X/xyz29278.jpg b/dataset/X/xyz29278.jpg new file mode 100755 index 0000000..2ebf4fb Binary files /dev/null and b/dataset/X/xyz29278.jpg differ diff --git a/dataset/X/xyz29286.jpg b/dataset/X/xyz29286.jpg new file mode 100755 index 0000000..d2cc5a5 Binary files /dev/null and b/dataset/X/xyz29286.jpg differ diff --git a/dataset/Y/Professor_CSA_Print2_028_Zhang_Fu_Yang.jpg b/dataset/Y/Professor_CSA_Print2_028_Zhang_Fu_Yang.jpg new file mode 100755 index 0000000..f44a61c Binary files /dev/null and b/dataset/Y/Professor_CSA_Print2_028_Zhang_Fu_Yang.jpg differ diff --git a/dataset/Y/Professor_CSA_Print_Dong_Yuan_157.jpg b/dataset/Y/Professor_CSA_Print_Dong_Yuan_157.jpg new file mode 100755 index 0000000..f442783 Binary files /dev/null and b/dataset/Y/Professor_CSA_Print_Dong_Yuan_157.jpg differ diff --git a/dataset/Y/Professor_CSA_Print_Dong_Yuan_158.jpg b/dataset/Y/Professor_CSA_Print_Dong_Yuan_158.jpg new file mode 100755 index 0000000..9b96257 Binary files /dev/null and b/dataset/Y/Professor_CSA_Print_Dong_Yuan_158.jpg differ diff --git a/dataset/Y/lrs Yessieva Deli Yelo Orchid& A Z Hills.jpg b/dataset/Y/lrs Yessieva Deli Yelo Orchid& A Z Hills.jpg new file mode 100755 index 0000000..5bb86b3 Binary files /dev/null and b/dataset/Y/lrs Yessieva Deli Yelo Orchid& A Z Hills.jpg differ diff --git a/dataset/Z/.DS_Store b/dataset/Z/.DS_Store new file mode 100755 index 0000000..5008ddf Binary files /dev/null and b/dataset/Z/.DS_Store differ diff --git a/dataset/Z/Zubiaurre_Ramon_De_Caballeros.jpg b/dataset/Z/Zubiaurre_Ramon_De_Caballeros.jpg new file mode 100755 index 0000000..c52f433 Binary files /dev/null and b/dataset/Z/Zubiaurre_Ramon_De_Caballeros.jpg differ diff --git a/dataset/Z/Zubiaurre_Ramon_De_Hombre_De_Fuensaldana.jpg b/dataset/Z/Zubiaurre_Ramon_De_Hombre_De_Fuensaldana.jpg new file mode 100755 index 0000000..be96380 Binary files /dev/null and b/dataset/Z/Zubiaurre_Ramon_De_Hombre_De_Fuensaldana.jpg differ diff --git a/dataset/Z/Zubiaurre_Ramon_Mother_And_Daughter.jpg b/dataset/Z/Zubiaurre_Ramon_Mother_And_Daughter.jpg new file mode 100755 index 0000000..64fad4d Binary files /dev/null and b/dataset/Z/Zubiaurre_Ramon_Mother_And_Daughter.jpg differ diff --git a/dataset/Z/zoffany1.jpg b/dataset/Z/zoffany1.jpg new file mode 100755 index 0000000..2feda83 Binary files /dev/null and b/dataset/Z/zoffany1.jpg differ diff --git a/dataset/РУС/adlivankin_clearing_up_a_crisis_at_the_collective_farm_1931.jpg b/dataset/РУС/adlivankin_clearing_up_a_crisis_at_the_collective_farm_1931.jpg new file mode 100755 index 0000000..cc316a7 Binary files /dev/null and b/dataset/РУС/adlivankin_clearing_up_a_crisis_at_the_collective_farm_1931.jpg differ diff --git a/dataset/РУС/adlivankin_still_life_(non-objective_composition)_1920.jpg b/dataset/РУС/adlivankin_still_life_(non-objective_composition)_1920.jpg new file mode 100755 index 0000000..c72fcd7 Binary files /dev/null and b/dataset/РУС/adlivankin_still_life_(non-objective_composition)_1920.jpg differ diff --git a/dataset/РУС/baksheyev_blue_spring_1930.jpg b/dataset/РУС/baksheyev_blue_spring_1930.jpg new file mode 100755 index 0000000..dba179c Binary files /dev/null and b/dataset/РУС/baksheyev_blue_spring_1930.jpg differ diff --git a/dataset/РУС/pasternak_l_n_tolstoy.jpg b/dataset/РУС/pasternak_l_n_tolstoy.jpg new file mode 100755 index 0000000..19b7ca4 Binary files /dev/null and b/dataset/РУС/pasternak_l_n_tolstoy.jpg differ diff --git a/dataset/РУС/pasternak_leo_tolstoy_with_his_family_at_yasnaya_polyana_1902.jpg b/dataset/РУС/pasternak_leo_tolstoy_with_his_family_at_yasnaya_polyana_1902.jpg new file mode 100755 index 0000000..4766600 Binary files /dev/null and b/dataset/РУС/pasternak_leo_tolstoy_with_his_family_at_yasnaya_polyana_1902.jpg differ diff --git a/development-stepz.html b/development-stepz.html new file mode 100644 index 0000000..dbd22a6 --- /dev/null +++ b/development-stepz.html @@ -0,0 +1,181 @@ +

Backroundo — Architecture Roadmap

Project Philosophy

Backroundo is a multi-stage engineering project.

The goal is not to build every component immediately, but to gradually evolve a simple artwork viewer into a distributed digital museum platform.

Each phase should produce a working system before moving forward.

The core principle:

Build the museum room by room. Do not construct the entire building before hanging the first painting.


Phase 0 — Foundation & Architecture Decisions

Goal

Create the project structure and establish architectural rules.

Tasks

Suggested structure:

backroundo/
+
+├── services/
+│   ├── web-go/
+│   ├── artwork-service-cpp/
+│   ├── metadata-worker-cpp/
+│   └── image-worker-cpp/
+│
+├── proto/
+│   └── artwork.proto
+│
+├── infrastructure/
+│   ├── docker/
+│   └── kubernetes/
+│
+├── storage/
+│
+└── docs/
+

Deliverable

A clean project skeleton where every service can be started independently.


Phase 1 — The First Artwork

Goal

Build the smallest working version.

The first milestone:

One artwork exists in the system and can be viewed in the browser.

Architecture

Browser
+
+↓
+
+Go Web Server
+
+↓
+
+Sqlite
+
+↓
+
+Image File
+

Build

Database:

Artwork
+
+id
+title
+artist
+file_path
+created_at
+

Features:

Ignore For Now

Do not add:

Deliverable

A working artwork page:

localhost/artwork/1
+

showing an image and metadata.


Phase 2 — Introduce Object Storage

Goal

Stop treating images as ordinary files.

Move artwork assets into S3-compatible storage.

Possible solutions:

New Architecture

Image
+
+↓
+
+Object Storage
+
+↓
+
+Database stores reference
+
+↓
+
+Browser loads image
+

Database Change

Before:

file_path
+

After:

storage_key
+

Example:

originals/a8f92.jpg
+

Deliverable

Artwork images are managed through object storage.


Phase 3 — Split the Backend

Goal

Introduce service separation.

Architecture

Browser
+
+↓
+
+Go Web Server
+
+↓
+
+gRPC
+
+↓
+
+C++ Artwork Service
+

Responsibilities

Go Service

Handles:

C++ Service

Handles:

Deliverable

The browser communicates with Go, and Go communicates with C++ through gRPC.


Phase 4 — Introduce RabbitMQ

Goal

Move heavy operations into background workers.

Architecture

Artwork Event
+
+↓
+
+RabbitMQ
+
+↓
+
+Worker
+

First Worker

Create Metadata Worker.

Responsibilities:

Deliverable

Background processing works asynchronously.


Phase 5 — Image Processing Pipeline

Goal

Optimize image delivery.

Create Image Processing Worker.

Responsibilities:

Example:

Original Image
+
+↓
+
+Image Worker
+
+↓
+
+thumbnail.webp
+preview.webp
+

Deliverable

The application serves optimized images instead of huge originals.


Phase 6 — Build the Museum Interface

Goal

Create the actual browsing experience.

Frontend Stack

Features

Gallery Design

Use infinite scrolling.

The user sees:

24 artworks
+
+↓
+
+Scroll
+
+↓
+
+Load next 24 artworks
+
+↓
+
+Continue
+

Implementation:

Deliverable

The application feels like a digital museum.


Phase 7 — Search System

Goal

Make the archive discoverable.

Step 1

Use Sqlite search.

Support:

Step 2

Add Elasticsearch.

Architecture:

Sqlite
+
+↓
+
+Search Indexer Worker
+
+↓
+
+Elasticsearch
+

Features:

Deliverable

Users can quickly find artwork in the archive.


Phase 8 — Visual Intelligence

Goal

Add advanced discovery features.

This phase is optional.


Embedding Service

Purpose:

Understand visual similarity.

Pipeline:

Artwork Image
+
+↓
+
+Embedding Model
+
+↓
+
+Vector Representation
+
+↓
+
+Vector Database
+

Possible features:


AI Classification

Optional fallback.

Example:

Reverse Search Failed
+
+↓
+
+AI Classifier
+
+↓
+
+Estimated Style
+

AI should enhance the system, not become a requirement.


Phase 9 — Production Hardening

Goal

Turn the project into a reliable system.

Add:

Reliability

Security

Observability

Deployment

Prepare:


Final Architecture

Long-term vision:

                         Browser
+
+                            |
+
+                       Go Web Server
+
+                            |
+
+                           gRPC
+
+                            |
+
+                    Artwork Service
+
+              +-------------+-------------+
+              |                           |
+              v                           v
+
+        Sqlite                Object Storage
+
+              |
+
+          RabbitMQ
+
+              |
+
+      +-------+---------+
+      |                 |
+      v                 v
+
+Metadata Worker   Image Worker
+
+
+              |
+
+        Search Indexer
+
+              |
+
+        Elasticsearch
+
+
+              |
+
+       Embedding Pipeline
+
+              |
+
+        Vector Database
+

Milestone Philosophy

Do not measure progress by services created.

Measure progress by capabilities unlocked.

The milestones:

  1. One artwork displayed.

  2. Artwork stored correctly.

  3. Backend separated.

  4. Background processing works.

  5. Images optimized.

  6. Museum interface exists.

  7. Search works.

  8. Intelligent discovery added.

  9. Production quality achieved.


Final Goal

Backroundo becomes a private digital museum:

A system designed not just to display images, but to preserve, organize, and explore a growing digital archive.

diff --git a/docs/docsss b/docs/docsss new file mode 100644 index 0000000..e69de29 diff --git a/infrastructure/docker/docker b/infrastructure/docker/docker new file mode 100644 index 0000000..e69de29 diff --git a/infrastructure/kubernetes/kubez b/infrastructure/kubernetes/kubez new file mode 100644 index 0000000..e69de29 diff --git a/proto/artwork.proto b/proto/artwork.proto new file mode 100644 index 0000000..e69de29 diff --git a/services/image-worker-cpp/.gitignore b/services/image-worker-cpp/.gitignore new file mode 100644 index 0000000..9f11b75 --- /dev/null +++ b/services/image-worker-cpp/.gitignore @@ -0,0 +1 @@ +.idea/ diff --git a/services/image-worker-cpp/.gitmodules b/services/image-worker-cpp/.gitmodules new file mode 100644 index 0000000..78cb365 --- /dev/null +++ b/services/image-worker-cpp/.gitmodules @@ -0,0 +1,3 @@ +[submodule "libs/rmqcpp"] + path = libs/rmqcpp + url = https://github.com/bloomberg/rmqcpp.git diff --git a/services/image-worker-cpp/CMakeLists.txt b/services/image-worker-cpp/CMakeLists.txt new file mode 100644 index 0000000..37e7d56 --- /dev/null +++ b/services/image-worker-cpp/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.20) + +project(image-worker-cpp) + +set(CMAKE_CXX_STANDARD 20) + +add_executable(image-worker-cpp + main.cpp + src/rmq/ConnectionHandler.cpp +) + +target_include_directories(image-worker-cpp PRIVATE + /usr/include +) + +target_link_directories(image-worker-cpp PRIVATE + /usr/lib +) + +target_link_libraries(image-worker-cpp PRIVATE + amqpcpp + pthread + dl + uv + ssl +) \ No newline at end of file diff --git a/services/image-worker-cpp/main.cpp b/services/image-worker-cpp/main.cpp new file mode 100644 index 0000000..bf118f2 --- /dev/null +++ b/services/image-worker-cpp/main.cpp @@ -0,0 +1,33 @@ +#include "src/rmq/ConnectionHandler.hpp" +#include +#include +#include + +int main() +{ + // access to the event loop + auto *loop = uv_default_loop(); + + // handler for libev + ConnectionHandler handler(loop); + + // make a connection + + AMQP::TcpConnection connection(&handler, AMQP::Address("amqps://proxmox:proxmox@mq.pseudot.org:5671/")); + + // we need a channel too + AMQP::TcpChannel channel(&connection); + + // create a temporary queue + channel.declareQueue("ciao-bella-cpp",AMQP::durable).onSuccess([&connection](const std::string &name, uint32_t messagecount, uint32_t consumercount) { + + // report the name of the temporary queue + std::cout << "declared queue " << name << std::endl; + }); + + // run the loop + uv_run(loop, UV_RUN_DEFAULT); + + // done + return 0; +} diff --git a/services/image-worker-cpp/src/rmq/ConnectionHandler.cpp b/services/image-worker-cpp/src/rmq/ConnectionHandler.cpp new file mode 100644 index 0000000..d292adf --- /dev/null +++ b/services/image-worker-cpp/src/rmq/ConnectionHandler.cpp @@ -0,0 +1,18 @@ +#include "ConnectionHandler.hpp" +#include + + void ConnectionHandler::onConnected(AMQP::TcpConnection *connection) + { + std::cout << "TCP CONNECTED\n"; + } + + + void ConnectionHandler::onReady(AMQP::TcpConnection *connection) + { + std::cout << "AMQP READY\n"; + } + +void ConnectionHandler::onError(AMQP::TcpConnection *connection, const char *message) + { + std::cerr << "AMQP error: " << message << std::endl; + } \ No newline at end of file diff --git a/services/image-worker-cpp/src/rmq/ConnectionHandler.hpp b/services/image-worker-cpp/src/rmq/ConnectionHandler.hpp new file mode 100644 index 0000000..7dc2964 --- /dev/null +++ b/services/image-worker-cpp/src/rmq/ConnectionHandler.hpp @@ -0,0 +1,19 @@ +#pragma once +#include +#include +#include + +class ConnectionHandler : public AMQP::LibUvHandler { +public: + ConnectionHandler(uv_loop_t *loop) + : AMQP::LibUvHandler(loop) + {} + + void onConnected(AMQP::TcpConnection *connection) override; + + void onReady(AMQP::TcpConnection *connection) override; + + void onError(AMQP::TcpConnection *connection, const char *message) override; + + ~ConnectionHandler() override = default; +}; diff --git a/services/metadata-worker-cpp/.gitignore b/services/metadata-worker-cpp/.gitignore new file mode 100644 index 0000000..9f11b75 --- /dev/null +++ b/services/metadata-worker-cpp/.gitignore @@ -0,0 +1 @@ +.idea/ diff --git a/services/metadata-worker-cpp/.gitmodules b/services/metadata-worker-cpp/.gitmodules new file mode 100644 index 0000000..78cb365 --- /dev/null +++ b/services/metadata-worker-cpp/.gitmodules @@ -0,0 +1,3 @@ +[submodule "libs/rmqcpp"] + path = libs/rmqcpp + url = https://github.com/bloomberg/rmqcpp.git diff --git a/services/metadata-worker-cpp/CMakeLists.txt b/services/metadata-worker-cpp/CMakeLists.txt new file mode 100644 index 0000000..391a3c3 --- /dev/null +++ b/services/metadata-worker-cpp/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.20) + +project(metadata-worker-cpp) + +set(CMAKE_CXX_STANDARD 20) + +add_executable(metadata-worker-cpp + main.cpp + src/rmq/ConnectionHandler.cpp +) + +target_include_directories(metadata-worker-cpp PRIVATE + /usr/include +) + +target_link_directories(metadata-worker-cpp PRIVATE + /usr/lib +) + +target_link_libraries(metadata-worker-cpp PRIVATE + amqpcpp + pthread + dl + uv + ssl +) \ No newline at end of file diff --git a/services/metadata-worker-cpp/main.cpp b/services/metadata-worker-cpp/main.cpp new file mode 100644 index 0000000..bf118f2 --- /dev/null +++ b/services/metadata-worker-cpp/main.cpp @@ -0,0 +1,33 @@ +#include "src/rmq/ConnectionHandler.hpp" +#include +#include +#include + +int main() +{ + // access to the event loop + auto *loop = uv_default_loop(); + + // handler for libev + ConnectionHandler handler(loop); + + // make a connection + + AMQP::TcpConnection connection(&handler, AMQP::Address("amqps://proxmox:proxmox@mq.pseudot.org:5671/")); + + // we need a channel too + AMQP::TcpChannel channel(&connection); + + // create a temporary queue + channel.declareQueue("ciao-bella-cpp",AMQP::durable).onSuccess([&connection](const std::string &name, uint32_t messagecount, uint32_t consumercount) { + + // report the name of the temporary queue + std::cout << "declared queue " << name << std::endl; + }); + + // run the loop + uv_run(loop, UV_RUN_DEFAULT); + + // done + return 0; +} diff --git a/services/metadata-worker-cpp/src/rmq/ConnectionHandler.cpp b/services/metadata-worker-cpp/src/rmq/ConnectionHandler.cpp new file mode 100644 index 0000000..d292adf --- /dev/null +++ b/services/metadata-worker-cpp/src/rmq/ConnectionHandler.cpp @@ -0,0 +1,18 @@ +#include "ConnectionHandler.hpp" +#include + + void ConnectionHandler::onConnected(AMQP::TcpConnection *connection) + { + std::cout << "TCP CONNECTED\n"; + } + + + void ConnectionHandler::onReady(AMQP::TcpConnection *connection) + { + std::cout << "AMQP READY\n"; + } + +void ConnectionHandler::onError(AMQP::TcpConnection *connection, const char *message) + { + std::cerr << "AMQP error: " << message << std::endl; + } \ No newline at end of file diff --git a/services/metadata-worker-cpp/src/rmq/ConnectionHandler.hpp b/services/metadata-worker-cpp/src/rmq/ConnectionHandler.hpp new file mode 100644 index 0000000..7dc2964 --- /dev/null +++ b/services/metadata-worker-cpp/src/rmq/ConnectionHandler.hpp @@ -0,0 +1,19 @@ +#pragma once +#include +#include +#include + +class ConnectionHandler : public AMQP::LibUvHandler { +public: + ConnectionHandler(uv_loop_t *loop) + : AMQP::LibUvHandler(loop) + {} + + void onConnected(AMQP::TcpConnection *connection) override; + + void onReady(AMQP::TcpConnection *connection) override; + + void onError(AMQP::TcpConnection *connection, const char *message) override; + + ~ConnectionHandler() override = default; +}; diff --git a/services/web-go/empty b/services/web-go/empty new file mode 100644 index 0000000..e69de29 diff --git a/storage/storage b/storage/storage new file mode 100644 index 0000000..e69de29