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

    +136

    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
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    type
        Potok = class(TThread)
      private
        FAcc : string;
        FPas : string;
        Ip   : string;
        Port : string;
        Rez  : Integer;
      protected
        procedure Execute; override;
      public
        procedure Sync;
        constructor Create(CreateSuspended: Boolean);
      end;
    
    var
      Form2: TForm2;
      Accounts, Proxy:Tstringlist;
      Thread, Acc:integer;
      Work:boolean;
      CS:TcriticalSection;
      GoodFile, BadFile: textfile;
      tp:integer;
      Balance, Login, Email:string;
      UserAg: array [0..20] of string=(
        'Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1',
        'Mozilla/5.0 (Windows; U; Win9x; en; Stable) Gecko/20020911 Beonex/0.8.1-stable',
        'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.2.153.1 Safari/525.19',
        'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.4/Megaupload 3.0',
        'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.452) Gecko/20041027 Mnenhy/0.6.0.104',
        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iRider 2.21.1108; FDM)',
        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MathPlayer2.0)',
        'Mozilla/5.0 (Windows; U;XMPP Tiscali Communicator v.10.0.1; Windows NT 5.1; it; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3',
        'Mozilla/5.0 (X11; U; Linux 2.4.2-2 i586; en-US; m18) Gecko/20010131 Netscape6/6.01',
        'Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.7.6) Gecko/20050405 Epiphany/1.6.1 (Ubuntu) (Ubuntu package 1.0.2)',
        'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.3) Gecko/20010801',
        'Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',
        'Mozilla/5.0 (Linux; U; Android 2.2; en-us; DROID2 GLOBAL Build/S273) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',
        'Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; E10i Build/2.0.2.A.0.24) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17',
        'Mozilla/5.0 (Linux; U; Android 2.2; nl-nl; Desire_A8181 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',
        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Google Wireless Transcoder;)',
        'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Xbox)',
        'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)',
        'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; InfoPath.2; InfoPath.3)',
        'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; winfx; .NET CLR 1.1.4322; .NET CLR 2.0.50727; Zune 2.0)',
        'Mozilla/4.0 (compatible; MSIE 5.01; Windows 95; MSIECrawler)'
      );
    
    implementation
    
    {$R *.dfm}

    Бля, говорят же, что нельзя пить и курить марихуану перед зачатием детей, иначе родятся наркоманами.

    Запостил: Stertor, 28 Августа 2013

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

    • procedure Potok.Execute;
      var
       CurAcc:integer;
       data:Tstringlist;
       HTTP: TIdHTTP;
       SSL : TIdSSLIOHandlerSocketOpenSSL;
       SOCKS: TIdSocksInfo;                         
       HTML:string;
       cook:TIdCookieManager;
      
        begin
        while Work do
        begin
         CS.Enter;
         Inc(Acc);
          if Acc<Accounts.Count then CurAcc:=Acc else Work:=false;
         inc(tp);
          if tp=Proxy.Count-1 then tp:=0;
         CS.Leave;
         if Work then
          begin
           HTTP := TIdHTTP.Create;
           http.HandleRedirects:=false;
           http.AllowCookies:=true;
           SSL:=TIdSSLIOHandlerSocketOpenSSL.Create;
           ssl.Port:=433;
           http.ReadTimeout:=Form2.sSpinEdit2.Value*1000;


      О существовании ThreadVar автор видимо не знал.
      Ответить
    • В чем говно то?
      Ответить
      • показать все, что скрытоОчки протри, солдатик )
        Ответить
        • показать все, что скрытоНо если уж ты задал вопрос, то, пожалуй, я исполню роль Кэп-а.
          Начнем с самого первого, что встречается в коде - описания класса
          потока:
          Автор не указал глобальные переменные, предпочитая создавать их
          непосредственно во время исполнения:
          procedure Potok.Execute;
          var
           CurAcc:integer;
           data:Tstringlist;
           HTTP: TIdHTTP;
           SSL : TIdSSLIOHandlerSocketOpenSSL;
           SOCKS: TIdSocksInfo;                          // почти все это нужно 
          было описать в самом классе
           HTML:string;
           cook:TIdCookieManager;
          Ответить
          • показать все, что скрытоДалее, автор обращается к критической секции - лочит ее, чтобы потоки не
            набили друг другу морду, и меняет значение глобальной переменной:
            while Work do
              begin
               CS.Enter;
               Inc(Acc);
                if Acc<Accounts.Count then CurAcc:=Acc else Work:=false;
               inc(tp);
                if tp=Proxy.Count-1 then tp:=0;
               CS.Leave;

            На мой взгляд можно было бы обойтись ThreadVar; это место настолько
            коряво написано, что просто злость берет.

            Теперь прошу зажать нос:
            while Work do
              begin
               CS.Enter;
               Inc(Acc);
                if Acc<Accounts.Count then CurAcc:=Acc else Work:=false;
               inc(tp);
                if tp=Proxy.Count-1 then tp:=0;
               CS.Leave;
               if Work then
                begin
                 HTTP := TIdHTTP.Create;
                 http.HandleRedirects:=false;
                 http.AllowCookies:=true;
                 SSL:=TIdSSLIOHandlerSocketOpenSSL.Create;
                 ssl.Port:=433;
                 http.ReadTimeout:=Form2.sSpinEdit2.Value*1000;

            Тут суровое Школоло чтя традиции своего племени в предпочитает в цикле
            переписывать IDhttp и другие объекты (хотя намного разумнее было бы один
            раз создать объект и обращаться к нему многократно), причем об
            освобождении их даже и не думает: что вы, зачем?!

            Далее идут глобальные переменные:
            var
              Form2: TForm2;
              Accounts, Proxy:Tstringlist;
              Thread, Acc:integer;
              Work:boolean;
              CS:TcriticalSection;
              GoodFile, BadFile: textfile;
              tp:integer;
              Balance, Login, Email:string;
              UserAg: array [0..20] of string=(
                'Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010726 
            Netscape6/6.1',
                'Mozilla/5.0 (Windows; U; Win9x; en; Stable) Gecko/20020911 
            Beonex/0.8.1-stable',
                'Mozilla/5.0 (Windows; U; Windows NT 5....

            Школоло, резвясь, наваяло массу ненужных глобальных переменных и
            гигантский массив, кстати, никому не нужный - очевидно, пытался менять
            "железо" чтобы не забанили. Использование глобальных переменных не
            рекомендуется. Точнее, рекомендуется не пихать туда ничего лишнего.

            Суровый вывод: прогу в топку, автора на костер.
            Ответить
            • Если это утилита из одного модуля, я не вижу никакой разницы, куда пихать локальные переменные - в класс потока или в его процедуру Execute.

              Аналогично - куда еще пихать остальные переменные - заводить для них отдельный класс что ли? Не вижу ничего плохого в том, чтобы сделать их всех глобальными - потом всегда можно перенести в отдельный "синглтон", если утилита разростется.

              Огромный массив - ну, где-то же он должен быть. Или считывать из текстового файла, или объявить в коде. Городить отдельный модуль или класс чтобы вернуть одну из двадцати строк - такое же говно.

              Так что в выложенном коде особого говна не вижу. В первом комментарии - да, какой-то сомнительный код, но он все равно не полон, логика работы неизвестна, без пояснений ничего не угадать.
              Ответить
              • Ну Вы, батенька, даете!.. Я с Вами спорить не буду, но не думайте, что мне нечего сказать.
                Ответить
      • показать все, что скрытоГовно в авторе поста.
        Ответить
        • Бля, Вистефан, ты пизди, но не запиздывайся. А то ведь я и ответить могу!
          Ответить
          • минусами?
            Ответить
          • показать все, что скрытоСобака лает - ветер уносит.
            Тебя, озалупленного, сдует отсюда в день знаний ещё на год.
            Ответить
            • Пизди-пизди, золотая рыбка!
              D
              p/s/
              Я уже давно закончил школу и институт.
              Ответить
              • три, ага
                Ответить
              • > Я уже давно закончил школу и институт.
                Ты хоть осознаёшь, что если это правда, то ты ещё бОльший опущенец, чем можно подумать. Ну ладно там школота - ну бывает, ну перебесится. А так - тебя даже жалко...
                Ответить
                • Это у пчелки жалко.
                  Ответить
                  • и все? а я думал ты скажешь
                    "а у меня жалищщще до самого неба!"
                    Ответить
                    • >>"а у меня жалищщще до самого неба!"
                      к сожалению (или к счастью) нет. Но никто не жаловался, честное пионерское. Приезжай ко мне. Я тебе сказку расскажу.
                      Ответить
                      • >Но никто не жаловался

                        Девственник что ли?
                        Ответить
                        • Отнюдь.
                          Ответить
                          • Докажи
                            Ответить
                            • Ты так ничего и не понял, сынок? Читай на один, два три, четыре, пять, шесть, семь, восемь, девять топиков выше.
                              Ответить
                              • На словах ты Лев Толстой, а на деле змей морской
                                Ответить
                                • Забавно читать твои сообщения. Ты сейчас проверяешь меня на вшивость - не гандон ли я, и стоит ли со мной стоит дружить.
                                  )
                                  Ответить
                                  • Да. Хочешь быть моим другом? отправь смс со словом "друг" на номер 8888
                                    Ответить
                                    • Что-то с трудом верится, что ты зарегал четырехзначный номер за огромные деньги, всего навсего для того, что я отправил тебе смс.
                                      Ответить
                                      • проверь
                                        Ответить
                                        • Бля если я один раз не ответил, значит это СЛИШКОМ ТОЛСТЫЙ ТРОЛЛИНГ. Пробуй другие комбинации букв.
                                          Ответить

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