[Approved] [Russian] kinopoisk.ru (7 Viewers)

ajs

Development Group
  • Team MediaPortal
  • February 29, 2008
    16,165
    13,760
    Kyiv
    Home Country
    Ukraine Ukraine
    С отключенным поиском по IMDB, кстати, ищет довольно шустро
    Ну да, только бестолково, он тогда не находит IMDBID который нужен для подкачки Фанарта и всяких других КлирАртов + не будет нормально работать синхронизация в Trakt.tv та же фигня с трейлерами :)
     

    ajs

    Development Group
  • Team MediaPortal
  • February 29, 2008
    16,165
    13,760
    Kyiv
    Home Country
    Ukraine Ukraine
    Сильно дольше или речь о милисекундах?
    Пробуй заменить с 219 строки (блок на):
    C#:
                // Review (Trivia)
                string rx_trivia_block       = @"Знаете.ли.вы..что...[\s\S]+?<tr(?<movieTrivias>[\s\S]+?)<\/tr>";
                string rx_triviaerror_block  = @"Ошибки.в.фильме[\s\S]+?<tr(?<movieTriviaErrors>[\s\S]+?)<\/tr>";
                string triviaBlock           = ParseSingleValue(detailsPage, rx_trivia_block, "movieTrivias", true);
                string triviaErrorBlock      = ParseSingleValue(detailsPage, rx_triviaerror_block, "movieTriviaErrors", true);
                // string rx_trivia             = @"<li.+?trivia.+?>(?<movieTrivia>.+?)</li>";
                string rx_trivia             = @"<li[^>]+?trivia.+?>(?<movieTrivia>.+?)</li>";
                // ArrayList triviaList         = Parse(detailsPage, rx_trivia);
                ArrayList triviaList         = Parse(triviaBlock, rx_trivia);
                movieDetails.UserReview      = string.Empty;
                if (triviaList != null && triviaList.Count > 0) {
                  for(int i = 0; i < triviaList.Count; i++) {
                    Hashtable trivia = (Hashtable)triviaList[i];
                    string triviaText = (string)trivia["movieTrivia"];
                    triviaText = triviaText.Trim().Replace("\n", "");
                    triviaText = Normalize(triviaText);
                    triviaText = Utils.stripHTMLtags(triviaText);
                    DebugLog(detailsConfig.Debug, "Trivia: {0}", triviaText);
                    movieDetails.UserReview += "- "+triviaText+"\n";
                  }
                }
                // Review (Trivia) Errors
                triviaList               = Parse(triviaErrorBlock, rx_trivia);
                if (triviaList != null && triviaList.Count > 0 && !string.IsNullOrEmpty(movieDetails.UserReview)) {
                    movieDetails.UserReview += "\n---------------------------------"; 
                }
                if (triviaList != null && triviaList.Count > 0) {
                  for(int i = 0; i < triviaList.Count; i++) {
                    Hashtable trivia = (Hashtable)triviaList[i];
                    string triviaText = (string)trivia["movieTrivia"];
                    triviaText = triviaText.Trim().Replace("\n", "");
                    triviaText = Normalize(triviaText);
                    triviaText = Utils.stripHTMLtags(triviaText);
                    DebugLog(detailsConfig.Debug, "Trivia: {0}", triviaText);
                    movieDetails.UserReview += "- "+triviaText+"\n";
                  }
                }
                  movieDetails.UserReview += "\n---------------------------------";
                  movieDetails.UserReview += "\nIMDB: "+imdbDetails;
                  movieDetails.UserReview += "\nKinopoisk: "+movieID+" "+movieTitle+" ("+movieDetails.Year+")";
                  movieDetails.UserReview += "\n\n";
     
    Last edited:

    RabinoVich

    Portal Pro
    December 29, 2009
    258
    36
    Khabarovsk
    Home Country
    Russian Federation Russian Federation
    Я пока другие дела делал кинопоиск от меня отдохнул, сейчас запустил с полным дэбагом... как закончит - выдам то, что не опознал
     

    ajs

    Development Group
  • Team MediaPortal
  • February 29, 2008
    16,165
    13,760
    Kyiv
    Home Country
    Ukraine Ukraine
    Я пока другие дела делал кинопоиск от меня отдохнул, сейчас запустил с полным дэбагом... как закончит - выдам то, что не опознал
    Может есть смысл тормазнуть? Заодно проверить как он разделитель сделает между ошибками и знаете ли вы что ...
     

    RabinoVich

    Portal Pro
    December 29, 2009
    258
    36
    Khabarovsk
    Home Country
    Russian Federation Russian Federation
    Тормознул. Разделители есть, но на примере перед ним есть лишний перенос строки, а после него как раз нет, т.е. по идее надо \n в другую сторону переставить. Сейчас уже кинфо перед сном смотрю - завтра с утреца полный отчёт по результатам сканирования выдам

    После
    Code:
    IMDB:
    Kinopoisk:

    В самом низу, думаю, тоже надо пропуск строки сделать - склеивается с новым циклом
     

    Attachments

    • dialog_myvideo_info_05.jpg
      dialog_myvideo_info_05.jpg
      553.8 KB

    ajs

    Development Group
  • Team MediaPortal
  • February 29, 2008
    16,165
    13,760
    Kyiv
    Home Country
    Ukraine Ukraine
    перед ним есть лишний ренесо строки, а после него как раз нет
    Ну там этот разделитель все равно не в дугу :) проще пустой строкой отделить :) заменив "\n---------------------------------" на "\n" или "\n\n"
    В самом низу, думаю, тоже надо пропуск строки сделать - склеивается с новым циклом
    Зачем если там разделитель в шкурке работает? Да и есть там пару штук переводов строки, но видно их кто то ест:
    movieDetails.UserReview += "\n\n";
     

    RabinoVich

    Portal Pro
    December 29, 2009
    258
    36
    Khabarovsk
    Home Country
    Russian Federation Russian Federation
    но видно их кто то ест
    Не иначе!
    Итак, сон пришлось ненадолго отложить, зато удалось добиться относительно красивого результата:

    C#:
            // Review (Trivia)
           string rx_trivia_block     = @"Знаете.ли.вы..что...[\s\S]+?<tr(?<movieTrivias>[\s\S]+?)<\/tr>";
           string rx_triviaerror_block   = @"Ошибки.в.фильме[\s\S]+?<tr(?<movieTriviaErrors>[\s\S]+?)<\/tr>";
           string triviaBlock       = ParseSingleValue(detailsPage, rx_trivia_block, "movieTrivias", true);
           string triviaErrorBlock   = ParseSingleValue(detailsPage, rx_triviaerror_block, "movieTriviaErrors", true);
           // string rx_trivia        = @"<li.+?trivia.+?>(?<movieTrivia>.+?)</li>";
           string rx_trivia        = @"<li[^>]+?trivia.+?>(?<movieTrivia>.+?)</li>";
           // ArrayList triviaList      = Parse(detailsPage, rx_trivia);
           ArrayList triviaList      = Parse(triviaBlock, rx_trivia);
           movieDetails.UserReview += "●●● Знаете ли вы, что... ●●●\n";
           if (triviaList != null && triviaList.Count > 0) {
            for(int i = 0; i < triviaList.Count; i++) {
             Hashtable trivia = (Hashtable)triviaList[i];
             string triviaText = (string)trivia["movieTrivia"];
             triviaText = triviaText.Trim().Replace("\n", "");
             triviaText = Normalize(triviaText);
             triviaText = Utils.stripHTMLtags(triviaText);
             DebugLog(detailsConfig.Debug, "Trivia: {0}", triviaText);
             movieDetails.UserReview += "▪ "+triviaText+"\n";
             }
           }
           // Review (Trivia) Errors
           triviaList        = Parse(triviaErrorBlock, rx_trivia);
           movieDetails.UserReview += "\n●●● Ошибки в фильме ●●●\n";
           if (triviaList != null && triviaList.Count > 0) {
            for(int i = 0; i < triviaList.Count; i++) {
             Hashtable trivia = (Hashtable)triviaList[i];
             string triviaText = (string)trivia["movieTrivia"];
             triviaText = triviaText.Trim().Replace("\n", "");
             triviaText = Normalize(triviaText);
             triviaText = Utils.stripHTMLtags(triviaText);
             DebugLog(detailsConfig.Debug, "Trivia: {0}", triviaText);
             movieDetails.UserReview += "▪ "+triviaText+"\n";
             }
           }
           movieDetails.UserReview += "";
           movieDetails.UserReview += "\nIMDB.com/title/"+imdbDetails;
           movieDetails.UserReview += "\nKinopoisk.ru/film/"+movieID+" - "+movieTitle+" ["+movieDetails.Year+"]";
           movieDetails.UserReview += "\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -";
    Строку 197 тоже подправил:
    XML:
              imdbDetails = movieDetails.IMDBNumber+" - "+omdbTitle+" ["+omdbYear+"]";
    Завтра надо будет ещё подобрать число дефисов.

    dialog_myvideo_info_06.jpg dialog_myvideo_info_07.jpg

    P.S. Я не сильно борзею, если попрошу ещё отдельным блоком запиливать "ошибки в фильме", помеченные как спойлеры? :) У некоторых фильмов такие есть, например Марсианин
     
    Last edited by a moderator:

    ajs

    Development Group
  • Team MediaPortal
  • February 29, 2008
    16,165
    13,760
    Kyiv
    Home Country
    Ukraine Ukraine
    Строку 197 тоже подправил:
    Квадратные скобки на любителя :)
    • movieDetails.UserReview += "\nIMDB.com/title/"+imdbDetails;
    • movieDetails.UserReview += "\nKinopoisk.ru/film/"+movieID+" - "+movieTitle+" ["+movieDetails.Year+"]";
    Нет смысла туда подставлять УРЛ, толку 0, читаемость ухудшилась. Мусора в БД добавилось.
    P.S. Я не сильно борзею, если попрошу ещё отдельным блоком запиливать "ошибки в фильме", помеченные как спойлеры? :) У некоторых фильмов такие есть, например Марсианин
    Не увидел :) У меня нет признака спойлера ... Но Кинопоиск опять что то поменял, список ошибок похоже весь не отдает, если брать еще раз страничку с ошибками будет дольше и раньше банить станет ...
    Завтра надо будет ещё подобрать число дефисов.
    Они там не нужны, один раз исправить шкурку (DialogVideoInfo.xml) и там добавить эти дефисы и будет все без подбора сделано самим движком :) И меньше мусора в БД
     

    RabinoVich

    Portal Pro
    December 29, 2009
    258
    36
    Khabarovsk
    Home Country
    Russian Federation Russian Federation
    е увидел :) У меня нет признака спойлера ... Но Кинопоиск опять что то поменял
    Не, это я перепутал с Интерстелларом :) Но он тоже неудачный пример, лучше глянуть "Пленницы" - фактов и ошибок мало и среди них есть "спойлеры"
    Только перед чтивом этих спойлеров фильм рекомендую посмотреть - он интересный!

    Квадратные скобки на любителя
    Нет смысла туда подставлять УРЛ, толку 0, читаемость ухудшилась
    Тут можно выйти тогда вынесением этого дела в конфиг, чтобы каждый делал как ему нравится. Лично мне номера в отрыве от ссылок смотреть не очень удобно
    Я себе в окончательной версии оставил просто ссылки, т.к. названия и год и так указаны
    Code:
          movieDetails.UserReview += "\nIMDB.com/title/"+movieDetails.IMDBNumber;
           movieDetails.UserReview += "\nKinopoisk.ru/film/"+movieID+"";
           movieDetails.UserReview += "\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -";


    Рейтинг текстовый все-таки в описании основном через конфиг можно полностью выключить или я что-то делаю не так? :whistle:
    Пока что отключил его, закомментировал
    Code:
      //  movieDetails.Plot += "\n\n"+FullMPARating;

    [DOUBLEPOST=1452039006][/DOUBLEPOST]
    Это не имеет смысла
    Ага, оставил "мусор", когда тестил :)
    Вроде как ещё в строке 197 забыта (не мной) кавычка в начале перед
    Странно, но елси её поставить, то скрипт перестаёт работать :cool:
    Code:
    movieDetails.IMDBNumber+"
    [DOUBLEPOST=1452039195][/DOUBLEPOST]@ajs Где можно скачать последнюю версию InternalMovieImagesGrabber ? У меня, походу, на оригинальный заменилось, качает на английском
    Может размещать обновлённые файлы на первой странице? Ваши посты там есть :)
     
    Last edited:

    Users who are viewing this thread

    Top Bottom