=()= / Говнокод #23788 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 Elvenfighter, (Updated )

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

    • Они иногда отдают c HTML тегами, например <b>так</b>. Ну и вообще, это мой JAPH 4-5 годичной давности. Тогда еще молоко на губах не засохло.
      Ответить
      • Читаем документацию:
        /* Цензурная версия совета */
        http://fucking-great-advice.ru/api/random/censored/


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

        Кстати, другие URL из документации у этих обезьян тоже не работают. Работает только /api/random.
        Ответить
        • просто у них нету для тебя цензурного совета
          Ответить
          • Кстати, как мог магот попасть в Великий Новгород в XII веке?
            Ответить
            • Купцы могли привезти.

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

              Блядь, верните борманда, козоебы, он стопудово знает
              Ответить
                • Россиянам, живущим в нескольких десятках километров от «Северного потока-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&#039;);
    $resp->code == 200 or die "Can't connect: " . $resp->content;
    print(JSON::Parse::json_to_perl($resp->content)->{'slip'}->{'advice'});
    Ответить
    • Как, если мы не знаем что это и зачем, макак.
      Ответить
        • Как, если я не знаю языка для прыщепердоликов, макак.
          Ответить
          • какая строчка тут тебе не понятна?

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

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8