1. Perl / Говнокод #23788

    0

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    #!/usr/bin/env perl
    
    use strict;
    use warnings;
    use utf8;
    use diagnostics;
    
    use LWP;
    use LWP::UserAgent;
    use HTTP::Request;
    use HTTP::Response;
    use JSON;
    use HTML::TreeBuilder;
    use HTML::FormatText;
    
    my $ua = LWP::UserAgent->new();
    $ua->agent('advice/0.9');
    
    my $uri = 'http://fucking-great-advice.ru/api/random';
    
    my $request = HTTP::Request->new('GET', $uri);
    my $response = $ua->request($request);
    my $content = from_json($response->content(), {utf8 => 1});
    
    binmode(STDOUT, ':utf8');
    my $tree = HTML::TreeBuilder->new->parse_content($content->{'text'});
    
    my $formatter = HTML::FormatText->new(leftmargin => 0, rightmargin => 50);
    print $formatter->format($tree);

    Пользуйтесь на здоровье

    Запостил: Elvenfighter, 14 Февраля 2018

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

    • curl -s http://fucking-great-advice.ru/api/random | sed 's/.*\"text\":\"//; s/\".*/\n/;'
      Ответить
      • get -s http://fucking-great-advice.ru/api/random | another 's/.*\"let\":\"//; s/\".*/\n/;'
        Ответить
      • Они иногда отдают c HTML тегами, например <b>так</b>. Ну и вообще, это мой JAPH 4-5 годичной давности. Тогда еще молоко на губах не засохло.
        Ответить
      • ЕБАТЬ все сложно у вам

        У мартышки так
        [email protected]$ curl -s http://fucking-great-advice.ru/api/random | jq ".text"
        Ответить
        • Читаем документацию:
          /* Цензурная версия совета */
          http://fucking-great-advice.ru/api/random/censored/


          Делаем запрос... 404. Эти пидоры совсем охуели?

          Кстати, другие URL из документации у этих обезьян тоже не работают. Работает только /api/random.
          Ответить
          • просто у них нету для тебя цензурного совета
            Ответить
        • >> © Yii2 Default (Frontend) - 2015

          Так и думал, что пыхомакаки.
          Ответить
        • > [email protected]
          Кстати, макак в африке нема, макаки — азиаты.
          Ответить
          • А вдруг он магот?
            Ответить
            • Самый умный что ли?
              Ответить
            • Кстати, как мог магот попасть в Великий Новгород в XII веке?
              Ответить
              • Купцы могли привезти.

                Великий Новгород был крупным торговым городом же
                Ответить
              • Слушай, я так понял, ты педриш в cygwin?
                Я верно понимаю, что получаются обычные PE, которым просто нужен .dll?
                А как это потом дебагить? там же не будет символов виндовых? нужен gdb, если ясобрал с gcc?

                Блядь, верните борманда, козоебы, он стопудово знает
                Ответить
                • WinDBG может http://www.wingdb.com/docs/pages/wg_cygwin.htm
                  Ответить
                • показать все, что скрытоНашёл фотку стертора в тырнете https://cs11.pikabu.ru/images/big_size_comm/2019-10_1/1570215896131123911.jpg
                  Ответить
                  • показать все, что скрытоРоссиянам, живущим в нескольких десятках километров от «Северного потока-1», по которому топливо идет из России в Германию, приходится покупать газ в баллонах. Он обходится гораздо дороже трубопроводного и ездить за ним приходится на автобусе.
                    Ответить
                • Честно? Я редко прибегаю к отладчику. Чужие программы, чтобы понять логику, дизассемблирую с помощью IDA. В свои же пихаю прямо в исходник временные конструкции типа printf("myvar = %d\n", myvar);

                  Да, Cygwin генерирует обычные PE, ничего фантастического в них нет. К ним может быть прикреплена отладочная информация (таблица символов) в разных форматах. Формат можно выбирать ключиками при запуске gcc:
                  -gcoff                      Generate debug information in COFF format.
                  -gdwarf                     Generate debug information in default version of
                                                DWARF format.
                  -gdwarf-                    Generate debug information in DWARF v2 (or later)
                                                format.
                  -ggdb                       Generate debug information in default extended
                                                format.
                  -gstabs                     Generate debug information in STABS format.
                  -gstabs+                    Generate debug information in extended STABS
                                                format.
                  -gvms                       Generate debug information in VMS format.
                  -gxcoff                     Generate debug information in XCOFF format.
                  -gxcoff+                    Generate debug information in extended XCOFF
                                                format.

                  Ты можешь использовать любой отладчик, который понимает PE и выбранный формат отладочной таблицы.
                  Ответить
                  • показать все, что скрытоТаблица выскакивает в выбранном формате!
                    Ответить
                  • я уже разобрался


                    цигвин генерит оычные PE, но если ты собираеш их с gcc, то они будут зависеть от цигвиньей либси, и депендится на cygwin.dll

                    в той либе (как я понима) можно сдлать fopen для /cygdrive/c и получить CreateFile от c;\

                    а можно собрать в цигвине программу и обычной cl.exe, тогда зависимостей не будет

                    gcc умеет -g, соответственно cl умеет pdb.

                    Вот OpenJDK собирается под винду в цигвине, но виндовым компилятором

                    цгвин там чтобы всякие autotools работали, и пердолинга там до ушей
                    Ответить
                    • Что означает фраза «можно собрать в цигвине программу и обычной cl.exe»? Всего лишь использовать цигвинячий «баш» вместо «cmd.exe», а компилятор, линкер, хедеры библиотеки от «MSVC»? Ну тогда от «Цигвина» в программе ничего и не остаётся, остаётся только лень переводить сценарий с языка «баша» на язык bat-файлов.

                      >> цгвин там чтобы всякие autotools работали, и пердолинга там до ушей

                      По сути, чтобы запустить configure, в 100500-й раз пройти тесты, результаты которых всем известны (MSVC — не такой уж малоизвестный компилятор) и на выходе получить какой-нибудь config.h и пропатченные makefile. А в некоторых программах лежат уже готовые makefile.msvc, чтобы не пердолиться с configure.

                      >> в той либе (как я понима) можно сдлать fopen для /cygdrive/c и получить CreateFile от c;\

                      Верно.

                      А если взять gcc от MinGW с библиотекой MSYS, то можно сделать fopen для /c и получить CreateFile от c:\ (заметь, что строка стала короче на длину /cygdrive). Программа будет зависеть от msys-1.0.dll (если это оригинальный MSYS, который перестал развиваться) или от msys-2.0.dll (если это живой форк).

                      А можно взять gcc от MinGW без библиотеки MSYS, тогда можно сделать fopen для C: и получить CreateFile от c:\, а программа будет зависеть только от виндовых библиотек (некоторые программы всё же требуют libgcc*.dll).
                      Ответить
                    • Вообще «Cygwin» в такой задаче — переголова. Есть более лёгкие порты sh под «Windows», в которых можно запустить configure.
                      Ответить
                    • Смотри, что нашёл:
                      https://github.com/rainers/cv2pdb

                      converter of DMD CodeView/DWARF debug information to PDB files

                      Оказывается, «Цифровой Марс» тоже генерирует DWARF, как и цигвинячий gcc. И вот кто-то додумался конвертировать эти таблицы символов в PDB.

                      И это далеко не единственный проект. Мне попадалось несколько программ с названиями «что-то в pdb» и «pdb во что-то».
                      Ответить
        • Угу, пидорашки такие потешные.
          Ответить
        • Рекомендую пользоваться двойными кавычками.
          Ответить
    • > Пользуйтесь на здоровье
      >Perl
      Спасибо, иди нахуй.
      Ответить
    • What pains others pleasures me,
      At home am I in Lisp or C;
      There i couch in ecstasy,
      'Til debugger's poke i flee,
      Into kernel memory.
      In system space, system space, there shall i fare--
      Inside of a VAX on a silicon square.
      Ответить
    • пользуйтесь на здоровье
      #!/usr/bin/perl -w
      use strict;
      use warnings;
      use LWP;
      use JSON::Parse "parse_json";
      use utf8;
      my $resp = LWP::UserAgent->new->get('https://api.adviceslip.com/advice');
      $resp->code == 200 or die "Can't connect: " . $resp->content;
      print(JSON::Parse::json_to_perl($resp->content)->{'slip'}->{'advice'});
      Ответить
      • Как, если мы не знаем что это и зачем, макак.
        Ответить
        • А ты сам код в этом посте читал?
          Ответить
          • Как, если я не знаю языка для прыщепердоликов, макак.
            Ответить
            • какая строчка тут тебе не понятна?

              Я вообще никакова языка не знаю, это не мешает мне на них писать
              Ответить

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