DesweR777

Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Добавил для штатного ютуб парсера простенький кэш, который запоминает последнюю ссылку. Полезно, когда Ютуб вдруг затупил, ты жмешь стоп-старт, и парсер сразу начинает играть, не тратя заново время на получение прямой ссылки. Глобальные переменные вставить в самое начало перед самой первой функцией string GetTitle Код: array<dictionary> lastQualityList; dictionary lastMetaData; string lastUrl; string last_final_url; uint lastTime; | Функции сохранения и загрузки кэша можно вставить сразу после глобальных переменных. Код: void SaveCache(string url, array<dictionary> &QualityList, dictionary &MetaData, string final_url) { if (url.empty()) return; if (@QualityList is null) return; if (lastUrl == url) return; lastUrl = url; lastQualityList.resize(0); for (int i = 0; i < QualityList.size(); i++) { dictionary item = QualityList[i]; lastQualityList.insertLast(item); } if (@MetaData !is null) { lastMetaData = MetaData; } last_final_url = final_url; lastTime = HostGetTickCount(); } string LoadCache(string url, array<dictionary> &QualityList, dictionary &MetaData) { if ((HostGetTickCount() - lastTime) > 3600000) return ""; if (url.empty()) return ""; if (@QualityList is null) return ""; if (lastUrl != url) return ""; QualityList.resize(0); for (int i = 0; i < lastQualityList.size(); i++) { dictionary item = lastQualityList[i]; QualityList.insertLast(item); } if (@MetaData !is null) { MetaData = lastMetaData; } return last_final_url; } | Проверку кэша вставить в функцию string PlayitemParse в самое начало. Код: string final_url = LoadCache(path, QualityList, MetaData); if (!final_url.empty()) return final_url; | Сохранение кэша вставить почти в самый конец функции перед вызовом return final_url; Код: SaveCache(path, QualityList, MetaData, final_url); | Готовый скрипт лежит здесь (вечную актуальность не гарантирую от слова совсем)) https://disk.yandex.ru/d/oygszhQilB1ZLg https://drive.google.com/drive/folders/1oxCJWNYjUQhuwRNm9Fyery_DV2utdfVp?usp=sharing P.S. Там же лежит сборка последнего yt-dlp для Windows XP (в папке youtube-dl). | Всего записей: 225 | Зарегистр. 05-08-2015 | Отправлено: 20:49 18-10-2021 | Исправлено: DesweR777, 21:12 26-10-2021 |
|