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

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
    Может лучше бакап?
    Это само собой, файлик рядом положит и переименовать)
    Можете считать, что я упоролс0, но вот немного подшаманил. Должно работать хорошо, если правила обрабатываются по порядку:

    Code:
      <strips>
         <strip>\s?(\(|\[)[\w'+-. ]{2,14}(\)|\])</strip>
         <strip>(bd|blue|hdtv|hd|web|dvd|cam|ts|br|vod|dvd|sat|dvb|dub|tele|xvcd|vcd)(-|\.)?(ray|rip|rp|dl|scr|ts|tc|tv|r5|wp|cine|sync)</strip>
         <strip>(240|360|480|540|720|1080|2160|4k|x263|x264|h263|h264|xvid|divx|xvid|-?ac3|-?acc|-?avc|vc-?1|rus|ukr|eng)(p|i)?</strip>
         <strip>(HD|iron|nnm-?)(club|tracker|torrent)(\.ru|\.org|\.com|\.su|\.net|\.tv)?</strip>
         <strip>\[?rutracker\.org\]?</strip>
         <strip>HELLYWOOD</strip>
         <strip>(\.\d{3,4}MB)</strip>
         <strip>[_.]\d\.\d{2}([^\d\.]|$)</strip>
         <strip>[._]by[._][^._]+?$</strip>
         <strip>(\.|_| ){2,5}</strip>
       </strips>
    Если где косяк - критикуйте. Пока прогоняю с этим списком скрипт
    Основной принцип в том, чтобы сначала удалялись любые (все) теги в скобках, независимо от того, что в них написано.
    Затем удаляются теги, если они между точками, пробелами и нижними подчеркиваниями
    После этого выносятся названия трекеров/релизиров, некоторые тэги размеров (позаимствовал у @ajs)
    Вконце удаляются образовавшиеся последовательности из точек? подчеркиваний и пробелов
     
    Last edited:

    RabinoVich

    Portal Pro
    December 29, 2009
    258
    36
    Khabarovsk
    Home Country
    Russian Federation Russian Federation
    Просто если делать по порядку, то оно будет более правильно убирать, нежели мы выполним второе правило перед первым - тогда останется куча квадратных скобок, на приме. А если на один и тот же текст будет претендовать 2 и более правила и как-то же выполнится одно вместо другого раньше?[DOUBLEPOST=1451986253][/DOUBLEPOST]
    на этот блок:
    Там точно всё правильно? У меня на каждый фильм при поиске в лог вываливает ошибку, ругается как раз на [\.\s\_]+
     
    Last edited:

    ajs

    Development Group
  • Team MediaPortal
  • February 29, 2008
    16,165
    13,760
    Kyiv
    Home Country
    Ukraine Ukraine
    Если где косяк - критикуйте.
    Вторая строка забыт открывающий символ < перед strip :)

    Итоговый регексп который будет обрабатывать названия выходит такой:
    Code:
    [\+\s]*\s?(\(|\[)[\w'+-. ]{2,14}(\)|\])|[\+\s]*(bd|blue|hdtv|hd|web|dvd|cam|ts|br|vod|dvd|sat|dvb|dub|tele|xvcd|vcd)(-|\.)?(ray|rip|rp|dl|scr|ts|tc|tv|r5|wp|cine|sync)|[\+\s]*(240|360|480|540|720|1080|2160|4k|x263|x264|h263|h264|xvid|divx|xvid|-?ac3|-?acc|-?avc|vc-?1|rus|ukr|eng)(p|i)?|[\+\s]*(HD|iron|nnm-?)(club|tracker|torrent)(\.ru|\.org|\.com|\.su|\.net|\.tv)?|[\+\s]*\[?rutracker\.org\]?|[\+\s]*HELLYWOOD|[\+\s]*(\.\d{3,4}MB)|[\+\s]*[_.]\d\.\d{2}([^\d\.]|$)|[\+\s]*[._]by[._][^._]+?$|[\+\s]*(\.|_| ){2,5}

    Не отработает на:
    DVD5, DVD9, DVD-Screener, DVDScreener, PDTV-Rip, TV-Rip, DSRip, IPTV-Rip, DVB-T Rip, HD-DVD, HD-DVD-Rip, HDDVDRip, HDDVD-Rip, HDDVD, HDDVD-Remux, BluRay-Remux, Laserdisc-RIP, VHS-Rip, DTheater-Rip, SuperTS, Super-TS, TC :)

    Основной принцип в том, чтобы сначала удалялись любые (все) теги в скобках, независимо от того, что в них написано.
    Год на многих фильмах уйдет (если он указан в скобках) ... это не есть хорошо т.к. есть фильмы с одинаковым названием но разных годов.
     

    ajs

    Development Group
  • Team MediaPortal
  • February 29, 2008
    16,165
    13,760
    Kyiv
    Home Country
    Ukraine Ukraine
    Там точно всё правильно? У меня на каждый фильм при поиске в лог вываливает ошибку, ругается как раз на [\.\s\_]+
    Вроде да, собачка не пропала?
    C#:
    rx_strip = @"[\.\s\_]+";
    Как ругается? Можно попробовать убрать собачку.
     

    ajs

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

    RabinoVich

    Portal Pro
    December 29, 2009
    258
    36
    Khabarovsk
    Home Country
    Russian Federation Russian Federation
    Как ругается?
    Точный лог уже показать не могу, удалил, пока поставил так:
    C#:
    if (!string.IsNullOrEmpty(rx_strip)) {
                searchString = Regex.Replace(searchString, rx_strip, string.Empty, RegexOptions.IgnoreCase);
            }
    и свои правила удаления с этой страницы, сейчас шпарит, по итогу скажу результат[DOUBLEPOST=1451989572][/DOUBLEPOST]В общем ещё до запуска сбора данных в логе МП появляется ошибка, ругается на строку
    Code:
    rx_strip = "[\.\s\_]+";
    Конкретно на 27 символ, вроде это нижнее подчёркивание у меня, его вроде экранировать не надо, оно мета-символом не является[DOUBLEPOST=1451990075][/DOUBLEPOST]
    Хлопцы, а может ну его на и подождем апи?
    Свежо придание..
     
    Last edited:

    ajs

    Development Group
  • Team MediaPortal
  • February 29, 2008
    16,165
    13,760
    Kyiv
    Home Country
    Ukraine Ukraine
    Вот, чуть оптимизировал, и читать удобно и более менее понятно что каждая строка делает:
    XML:
       <strips>
           <strip>[\(\[]?(240|360|480|720|1080|1280|2160)(p|i)?[\(\]]?</strip>
           <strip>([\.\_\s\(\[]|^)(rus|ukr|eng|(hard|soft)?sub)([\.\_\s\)\]]|$)</strip>
           <strip>(h|x)26(3|4|5)</strip>
           <strip>VC-?1</strip>
           <strip>-?AVC</strip>
           <strip>-?AC(3|C)</strip>
           <strip>(Xvid|DivX)</strip>
           <strip>X?VCD</strip>
           <strip>Tele(cine|sync)</strip>
           <strip>BluRay</strip>
           <strip>HD(TS|TV)</strip>
           <strip>(DVD|VHS)Scr(eener)?</strip>
           <strip>DVD(-?(5|9))</strip>
           <strip>(Super|HQ[\.\s\_]?)DVD</strip>
           <strip>(((i|n)?VOD|CAM|SAT|DS|VHS|(PD)?TV|IPTV|DVB(-T[\s\.\_]?)?|DT(heater)?|L(aser)?D(isc)?|WEB|BD|B(lu)?R(ay)?|HD(TV)?|(HD-?)?DVD)-?((DL-?)?Rip|DL|Remux))</strip>
           <strip>([\.\_\s\(\[]|^)(S?CAM|(Super-?)?TS|TC|SCR|R5|WP)([\.\_\s\)\]]|$)</strip>
           <strip>([\.\_\s\(\[]|^)(((A|S|1|2|D|M)VO)|((D|S)UB))([\.\_\s\)\]]|$)</strip>
           <strip>(\.\d{3,4}MB)</strip>
           <strip>[_.]\d\.\d{2}([^\d\.]|$)</strip>
           <strip>[\.\(\[](Extended|Director's.cut|Unrated)[\)\]]?</strip>
           <strip>[\[\(]?(((ru-?)?(t(racke|o)r(rent)?)\.([a-z]{2,3})(?![a-z]))|((HD|nnm|IRON)-?Club|HELLYWOOD|iTunes))[\]\)]?</strip>
           <strip>[._]by[._][^._]+?$</strip>
         </strips>
     
    Last edited:

    ajs

    Development Group
  • Team MediaPortal
  • February 29, 2008
    16,165
    13,760
    Kyiv
    Home Country
    Ukraine Ukraine
    Конкретно на 27 символ, вроде это нижнее подчёркивание у меня, его вроде экранировать не надо, оно мета-символом не является
    Ну тогда можно попробовать:
    C#:
            rx_strip = "[\.\s\_]+";
    или
    C#:
            rx_strip = @"[\.\s_]+";
    или
    C#:
            rx_strip = "[\.\s_]+";
    :)
     

    Users who are viewing this thread

    Top Bottom