[моё] И всё-таки, первично - в игры играть
Синхронизация библиотеки игр - это тоже двужопый тяни-толкай.
С раноправными задницами.
Казалось бы, "таска на полсторипойнта, закодить и затрекать".
Собираем список игр, проверяем и выставляем статусы.
Но нифига.
"Каким бы ни был мультипотоковым микросервисно-распределённым КОД и его исполнение,
АЛГОРИТМ и его запись вне кода всегда однопоточен (в том смысле, что даже полностью синхронные параллельные вычисления производятся строго по одному за раз в определённой последовательности в изложении "на бумаге")."
Если никто не застолбил эту умную фразу, пусть это будет Парадокс Дикмана.
Вот у нас есть два множества - игры доступные [из библиотек лаунчеров], и игры установленные.
И по итогу вычислений должно получиться два множества - игры доступные, и игры установленные, оба с более актуальными статусами готовности.
Но есть нюанс.
Мы не можем проверять оба множества одновременно потому, что игры при проверке иногда переходят из статуса в статус.
А подкидывание элемента в уже проверяемый список чревато пропуском либо запуском проверки сначала.
Мы не можем проверять тупо все доступные игры огулом потому, что не все установленные игры бывают доступными.
Даже в отрыве от GOG DRM-free.
Ну и на больших библиотеках (и с кривым API) это кондец какая долгая операция.
Можно ограничиться беглым опросом и актуализацией списка установленных игр при запуске омнилаунчера, забив при этом на источник.
А актуализацию доступных игр оставить опцией... поиска по доступным играм. "Искать" и "Актуализировать, потом искать".
Но чойто чуйка говорит, что и это не оптимально...
Шли третьи сутки обдумывания урывками...
Отношение пожительных и отрицательных голосов: 0/0