1. Pascal / Говнокод #14491

    +122

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    Попробуйте новый минусатор http://rghost.ru/52192415
    
    * Добавлена возможность анонимной работы (в программу зашит долгоиграющий анонимный прокси);
    * Добавлена "защита от идиотов";
    * Подключен скин
    * Теперь текст комментария выбранного участника отображается в виде всплывающей подсказки;
    * !(БОНУС) добавлена возможность МИНУСОВАНИЯ ВСЕХ ПОСТОВ ОППОНЕНТА! Сровняйте врага с землей!
    
    -Теперь бот не проигрывает мелодию при запуске.
    -Удален логотип сайта
    
    
    
    
    Меня вдохновил на дальнейшую работу над ботом вот этот человек, точнее, его комментарий:
    http://govnokod.ru/14476#comment215002

    Новый бот-минусатор для ололо (может использоваться как парсер)

    Запостил: Stertor, 04 Февраля 2014

    Комментарии (76) RSS

    • http://rghost.ru/52192415
      Ответить
    • показать все, что скрытоНа хуй?
      Ответить
      • На хуй!
        Ответить
      • Какое жёсткое обломинго... На аве петушок. Так вот, кто спамил с Хорсе!..
        Ну ка, кто у нас главный петух?
        Ответить
        • Дык он признавался. С моей подачи этот чел проебал одну из основных учёток.
          Ответить
    • показать все, что скрытоСкачал. Работает на "ура". Теперь я сживу "bormand`a" с этого сайта.
      Ответить
      • Пасаны, я за попкорном
        Ответить
        • Почему так много лошадей? Прям зоопарк какой-то.
          Ответить
          • Ты не можешь отличить лошадь от пони?
            Ответить
            • особой разницы не вижу.
              Иго-го!
              Ответить
              • http://cs312831.vk.me/v312831858/6474/gZVSSbMV60k.jpg
                Ответить
                • Ссылки на какого-либо рода картинки дают только тогда, когда нечего сказать умного.
                  Ответить
                  • хочешь что то умное услышать?
                    Ответить
                    • От тебя - не надеюсь.
                      Ответить
                      • Хорошо, только сегодня и только для тебя - вопрошай!

                        Любой вопрос на любую тему, включая мироздание, вселенную и твою никчемную жизнь.

                        не прогадай
                        Ответить
                        • Первый вопрос: как ты относишься к пассивному с твоей стороны анальному сексу по три-четыре часа ежедневно без смазки и с песком на моём пенисе - хорошо или плохо?
                          Ответить
                          • У тебя был целый вопрос. Ты мог спросить в чем смысл жизни, есть ли бог или если жизнь после смерти.

                            Но ты спросил чушь, которая не имеет смысла.

                            Хорошо, я дам еще один шанс
                            Ответить
                            • Комментарий удалён модератором.
                              Ответить
                              • Если вопрос не имеет смысла - ответ тоже не будет.

                                Тебе хочется, что бы тебя любили
                                Ответить
                                • Комментарий удалён за пропаганду гомосексуализма.
                                  Ответить
                                  • Я - психолог? боже меня упаси.

                                    Ладно, я потешу тебя и отвечу - хорошо
                                    Ответить
          • Не зоопарк, а ипподром.
            Ответить
      • А какой в этом смысл? Чем тебе помешал Борманд?
        Ни хуя ты не скачал, не выдумывай.
        Ответить
      • > Теперь я сживу "bormand`a" с этого сайта.
        Жду с нетерпением, а то сам не могу уйти, зависимость однако. Хоть высплюсь ;)
        Ответить
        • Пользуйся LeechBlock.
          Ответить
        • >> а то сам не могу уйти, зависимость однако. Хоть высплюсь ;)
          Установи лимит сидения на гавнокодах. Полчаса или час.
          Концентрируйся только на нескольких обсуждениях, остальные скипай, или ридонли.
          Не пиши больше 10 комментов за день. Постепенно снижай их количество до 3-х.
          Как с курением. Начинают с пачки в день и спускаются до 3-4.

          Иногда нарушай правила, чтобы модератор банил на недельку-другую
          Ответить
          • Я вот могу уйти. Но беда в том, что когда возвращаюсь, прибавилась пара тысяч новых комментариев, а их все прочесть надо.
            Ответить
    • Как прихуели майкрософтовцы, рекламируют свою вонючую Windows 8 по телику (
      На мой взгляд, реклить софт по телевизору уныло да и вообще дурной тон.
      Ответить
      • Тебе показалось. Винду уже рекламируют много лет.
        Ответить
      • >>майкрософтовцы, рекламируют свою вонючую Windows 8 по телику (
        Школота?
        Лучше этой рекламы нет ничего.
        http://www.youtube.com/watch?v=sforhbLiwLA
        Ответить
    • Стоило пропасть на неделю, а тут снова содомия, новые боты, короче, ничего не меняется.
      Ответить
      • >>Стоило пропасть на неделю
        Пропадал бы и дальше. Чего же ты вернулся? Тебя кто-то звал?
        Ответить
    • Бывает...
      Ответить
    • procedure parseall(steg,temp,eteg:string; list:tstringlist; capture:boolean=false; trimstr:boolean=false);
      var
        parsed:string;
        st,ed:integer;
        lst,led:integer;
      begin
        st:=0;
        ed:=0;
        lst:=length(steg);
        led:=length(eteg);
        if (lst=0) or (led=0) then exit; // если нет разделителей - выход из процедуры
        while (true) do                  // Крутим цикл, пока имеются вхождения тега с заданной позиции
        begin
          st:=posex(steg,temp,st+1);  // первое вхождение начального тега в строке
          if st <1 then break;        // Не найден тег? Выход из процедуры.
      
          st:=st+lst;                 // к позиции начального тега прибавляется его длина
      
          ed:=posex(eteg,temp,st);    // 1 вхождение завершающего тега
          if ed <1 then break;        // Не найден тег? Выход.
      
          if not capture then         // Захватывать вместе с тегами?
          parsed:=copy(temp,st,ed-st)
          else
          parsed:=copy(temp,st-led,(ed+led)-(st-lst));
      
          if trimstr then          // Удалить пробелы в начале и с конца?
          parsed:=trim(parsed);
      
          list.Add(parsed);
          if (steg=eteg) then // чтобы не хватать лишнее, если начальный тег равен завершающему, например, "
          st:=ed;
        end;
      end;


      Не быдлокод ли это? Претензий к скорости нет.
      Ответить
      • Что за теги? Xhtml?
        Ответить
        • Любые символы.
          Ответить
          • Моя не понимать, что значит "тег", в контексте открывающий-закрывающий.
            Ответить
            • Допустим, есть текст типа какое-то слово между "кавычками" или любое другое слово, также между "кавычками" Нужно извлечь слова, заключенные между кавычками, не трогая другие слова.
              Ответить
              • Ага, понятно. Регулярные выражения в ваш колхоз не завезли.

                Оно ещё и не жадное. Охрененно полезная штука.
                Ответить
                • >>Оно ещё и не жадное
                  fixed
                  procedure parseall(steg,temp,eteg:string; list:tstringlist; capture:boolean=false; trimstr:boolean=false);
                  var
                    parsed:string;
                    st,ed,sm,em:integer;
                    lst,led:integer;
                  begin
                    st:=0;
                    ed:=0;
                    sm:=0;
                    em:=0;
                    lst:=length(steg);
                    led:=length(eteg);
                    if (lst=0) or (led=0) then exit;
                    while (true) do
                    begin
                      st:=posex(steg,temp,st+1);
                      if st <1 then break;
                      sm:=st+lst;
                      while copy(temp,sm,length(steg))=steg do
                      sm:=sm+lst;
                      ed:=posex(eteg,temp,sm);
                      if ed <1 then break;
                      em:=ed;
                      while copy(temp,em,length(eteg))=eteg do
                      em:=em+led;
                      if not capture then
                      parsed:=copy(temp,sm,ed-sm)
                      else
                      parsed:=copy(temp,st,em-st);
                      if trimstr then
                      parsed:=trim(parsed);
                      list.Add(parsed);
                      st:=em;
                    end;
                  end;

                  >>в ваш колхоз
                  я промолчу, но не думай, что мне нечего сказать.
                  Ответить
                  • В алгоритм вникать лень. Жадность должна быть настраиваемой.
                    Ну, ответь, например. Я понимаю, что для школьника полезно в алгоритмы и структуры данных, но если надо дело делать, а не письку теребить, берёшь нормальный движок для регулярок/xpath и используешь.
                    Ответить
                    • >>Жадность должна быть настраиваемой.
                      procedure parseall(steg,temp,eteg:string; list:tstringlist; capture:boolean=false; trimstr:boolean=false);
                      var
                        parsed:string;
                        st,ed,sm,em:integer;
                        lst,led:integer;
                      begin
                        st:=0;
                        ed:=0;
                        sm:=0;
                        em:=0;
                        lst:=length(steg);
                        led:=length(eteg);
                        if (lst=0) or (led=0) then exit;
                        while (true) do
                        begin
                          st:=posex(steg,temp,st+1);
                          if st <1 then break;
                          sm:=st+lst;
                          if (steg=eteg) and (lst=1) then
                          while copy(temp,sm,length(steg))=steg do
                          sm:=sm+lst;
                          ed:=posex(eteg,temp,sm);
                          if ed <1 then break;
                          em:=ed;
                          if (steg=eteg) and (lst=1) then
                          while copy(temp,em,length(eteg))=eteg do
                          em:=em+led;
                          if not capture then
                          parsed:=copy(temp,sm,ed-sm)
                          else
                          parsed:=copy(temp,st,(ed-st)+led);
                          if trimstr then
                          parsed:=trim(parsed);
                          list.Add(parsed);
                          st:=em;
                        end;
                      end;

                      Корректно парсит, за исключением вложенных конструкций, вроде
                      (вложенная конструкция(здесь тоже какой то текст))

                      >>Я понимаю, что для школьника
                      и причем тут школьники?
                      Ответить
                      • Других причин для изобретения технологий быть не должно.

                        > за исключением вложенных конструкций
                        Вот и я о чём.
                        Ответить
                        • >>Других причин для изобретения технологий быть не должно

                          Причина есть - движок, которым я пользуюсь, НЕ ПОДДЕРЖИВАЮТ юникод.

                          [\b]{0,1}["]+(.*?)["]

                          Жадность хз как настроить. Не нужно хватать сами кавычки, только то, что между ними. Кто может помочь?
                          Ответить
                          • Вместо точки, означающей любой символ, нужно использовать [^"]
                            Тогда кавычки точно захватываться не будут.
                            Ответить
                            • Спасибо, но в каком месте ко-ко-конкретно?
                              Stertor.
                              Ответить
                              • Inkanus, раз уж ты взялся мне помогать, доведи дело до конца! )
                                Я жду твоего примера с регуляркой.
                                Ответить
                                • Начнём с того, что нужна постановка задачи.

                                  Могут ли кавычки вкладываться друг в друга?

                                  В кавычках одно слово или может быть целое предложение?

                                  Как отличить фразу в кавычках от фразы между закрывающей и открывающей кавычкой?

                                  Вообще как отличить открывающую кавычку от закрывающей? По чётности её номера в тексте или есть другие признаки?

                                  Если получится всё это развёрнуто описать естественным языком, то и регулярку можно будет написать.
                                  Ответить
                                  • показать все, что скрыто>>Могут ли кавычки вкладываться друг в друга?
                                    Нет, не могут.

                                    >>В кавычках одно слово или может быть целое предложение?
                                    Это не известно заранее.

                                    >>Как отличить фразу в кавычках от фразы между закрывающей и открывающей кавычкой?
                                    это одно и то же.

                                    Вообще как отличить открывающую кавычку от закрывающей? По чётности её номера в тексте или есть другие признаки?
                                    Просто брать кусок строки от 1 попавшейся кавычки до второй, затем искать новое аналогичное вхождение, не учитывая позиции второй(закрывающей) кавычки, в уже найденном.
                                    зеленым показано то, что должно захватывать регулярка, красным - то, что не должна:


                                    какой-то "текст в кавычках" или любой другой "текст"

                                    какой-то """""текст в кавычках" или любой другой "текст""""""""""
                                    Ответить
                                    • показать все, что скрытоКстати, моя процедура на copy/pos вполне успешно парсит вышеупомянутые примеры, несмотря на то, что один упырь забраковал мой код, "поленившись объяснить причину".
                                      Ответить
                                      • показать все, что скрытоМожет, стоит написать библиотеку, которая будет работать с регулярками с учётом юникода, если сейчас такой нет? Тогда будет универсальность, которую опровергнут только любители спирита и большая польза человечеству.
                                        Ответить
                                    • показать все, что скрыто> какой-то """""текст в кавычках" или любой другой "текст""""""""""

                                      Вот, наконец-то тест для алгоритма. Здесь и регулярка не нужна, вполне хватит обычного прохода.

                                      > это одно и то же.

                                      У нас один символ используется и в качестве открывающего, и в качестве закрывающего, поэтому нужно уметь отличать любой другой текст от текста в кавычках.

                                      Если есть желание сделать именно регулярками, то данный тест проходит (по крайней мере в функции php preg_match_all) регулярка:
                                      "+([^"]+)"+


                                      Плюсик означает {1,}, т. е. что символ обязательно должен присутствовать, а [^"] запрещает захватывать кавычки, поэтому даже настраивать жадность не нужно. Любой другой текст не захватывается, потому что мы съели все кавычки (плюсик по умолчанию жаден), а строка без кавычек не соответствует шаблону.
                                      Ответить
                                    • показать все, что скрытоhttp://ideone.com/7BX36g

                                      так тебе хочется?
                                      Ответить
                          • показать все, что скрытоПАСКАЛЕПРОБЛЕМЫ ОЛОЛО
                            Ответить
    • показать все, что скрытоПиши бота для датамайнинга интернетов.
      Ответить
      • показать все, что скрытоА это как?
        Ответить
        • показать все, что скрытоТвой бот майнит интернеты круглые сутки. Затем он знает всё и может отвечать на любые вопросы. Например он даже будет иметь предположения кто станет следующим президентом или кто убил кенеди. Дальше у него проснется искусственный интеллект и он поработит человечество. А ведь всё начиналось так банально с минусатора говнокодика...
          Ответить

    Добавить комментарий