1. JavaScript / Говнокод #28182

    −10

    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
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    const puppeteer = require('puppeteer-core');
    const fs = require('fs');
    const getCurrentLine = require('get-current-line').default;
    const { execFileSync } = require('child_process');
    
    const data = fs.readFileSync('profitcentr.com.cookies.json');
    const cookies = JSON.parse(data.toString());
    
    function randomInteger(min, max) {
      let rand = min - 0.5 + Math.random() * (max - min + 1);
      return Math.round(rand);
    }
    
    function delay(time) {
       return new Promise(function(resolve) {
           setTimeout(resolve, time*1000)
       });
    }
    
    function delay2(time) {
       return new Promise(function(resolve) {
           setTimeout(resolve, time)
       });
    }
    
    (async () => {
      const browser = await puppeteer.launch({
        headless: false,
        defaultViewport: null,
        executablePath: '/usr/bin/chromium',
    devtools: false,
        args: [
    '--start-maximized',
     ]
      });
    
      const page = await browser.newPage();
      await page.setDefaultNavigationTimeout(0);
    
      let newPage;
    
      await page.setCookie(...cookies);
      await page.goto('https://profitcentr.com', {waitUntil: 'networkidle0'});
    let link = await page.$('a[href^="./work-youtube"]');
    console.log('go to youtube')
    await link.click();
    await page.waitForTimeout(1000);
    
      let c = 0;
      while(true) {
    
      if(c == 100) {
        await page.reload({ waitUntil: ["networkidle0", "domcontentloaded"] });
        c = 0;
      }
    
    let t = await page.$('[id^="ads-link-"]');
    
    if(t == null) {
    console.log('wait new tasks...');
    await delay(10);
    await page.reload({ waitUntil: ["networkidle0", "domcontentloaded"] });
    c = 0;
    continue;
    }
    
    let tt = await t.evaluate((q) => getComputedStyle(q).display);
    if(tt == 'none') {
    console.log('del inactive')
    page.evaluate(q => { document.querySelector('[id^="ads-link-"]').remove(); })
    continue;
    }
    
    let tr = await page.$('tr[class^="ads_"]');
    let span = await tr.$('[onclick^="funcjs[\'start_youtube"]');
    let title = await span.evaluate(el => el.textContent.trim());
    console.log('title: \''+title+'\'');
    let price = await tr.$('[title^="Стоимость"]');
    let prices = await price.evaluate(el => el.textContent.trim());
    console.log('price: ' + prices);
    
    let newPagePromise = new Promise(x => browser.once('targetcreated', target => x(target.page())));
    
    //await page.waitForSelector('tr[class^="ads_"] span[onclick^="funcjs[\'start_youtube"]');
    //let x = await page.$('tr[class^="ads_"] span[onclick^="funcjs[\'start_youtube"]');
    //console.log(x.click);
    await page.waitForTimeout(1000);
    try {
    await page.click('tr[class^="ads_"] span[onclick^="funcjs[\'start_youtube"]');
    }
    catch(e) {
    console.log('error! del item'); await page.evaluate(() => { document.querySelector('tr[class^="ads_"]').remove() }); continue; } await page.waitForSelector('span[onclick^="funcjs[\'open_window"]', { timeout: 60000 }); await delay2(randomInteger(700, 2000)); await page.click('span[onclick^="funcjs[\'open_window"]'); //newPage = await newPagePromise; await page.waitForTimeout(2000); let p = await browser.pages() newPage = p[2]; await newPage.bringToFront(); console.log('> '+newPage.url()); await newPage.waitForSelector('tr[id="timer-tr-block"]', { timeout: 60000 }); await delay(3); console.log('yt click'); const frame = await newPage.waitForSelector('iframe'); let rect = await newPage.evaluate(el => { let {width, height} = el.getBoundingClientRect(); return {width, height}; }, frame); await newPage.mouse.click(rect.width / 2, rect.height / 2); console.log('waiting'); await newPage.waitForSelector('[id="capcha-tr-block"][style="display: table-row;"]', { timeout: 350000 }); let btn = await newPage.$('[class="butt-nw"]'); await btn.click(); console.log('ok'); await delay2(randomInteger(900, 1500)); //console.log('> '+newPage.url()); await newPage.close(); await delay2(500); await page.bringToFront(); await page.evaluate(() => { document.querySelector('tr[class^="ads_"]').remove() }); await delay(randomInteger(1, 3)); console.log('c: '+ ++c +"\n"); } await browser.close(); })();

    тупо грабер для profitcentr! в день рубль нихуя не делая поднимаю на нем
    ее палится

    paroljanet, 23 Мая 2022

    Комментарии (1)
  2. C++ / Говнокод #28181

    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
    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
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    class Memory 
     { 
     public: 
             Memory() : hProcess{ nullptr }, pID{ 0 } {} 
             ~Memory() { SafeCloseHandle(hProcess); } 
      
             bool Attach(const char* _Process, DWORD rights) 
             { 
                     HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
      
                     if (hSnap == INVALID_HANDLE_VALUE) 
                             return false; 
      
                     PROCESSENTRY32 pe{ sizeof(PROCESSENTRY32) }; 
      
                     while (Process32Next(hSnap, &pe)) 
                             if (!strcmp(pe.szExeFile, _Process)) 
                             { 
                                     SafeCloseHandle(hSnap); 
                                     pID = pe.th32ProcessID; 
      
                                     hProcess = OpenProcess(rights, 0, pe.th32ProcessID); 
      
     #ifdef _DEBUG || DEBUG 
                                     if (hProcess) // Ok 
                                     { 
                                             std::cout << "Attaching to process: " << _Process << " -> "; 
                                             ColoredMessage("OK!", LGREEN, true); 
                                     } 
     #endif // DEBUG 
      
                                     return true; 
                             } 
      
     #ifdef _DEBUG || DEBUG 
                     std::cout << "Attaching to process: " << _Process << " -> "; 
                     ColoredMessage("FAIL!", LRED, true); 
     #endif // DEBUG 
      
                     SafeCloseHandle(hSnap); 
                     return false; 
             } 
      
             PModule GetModule(const char* _Module) 
             { 
                     HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pID); 
      
                     if (hSnap == INVALID_HANDLE_VALUE) 
                             return PModule{ 0, 0 }; 
      
                     MODULEENTRY32 mEntry{ sizeof(MODULEENTRY32) }; 
      
                     while (Module32Next(hSnap, &mEntry)) 
                             if (!strcmp(mEntry.szModule, _Module)) 
                             { 
                                     SafeCloseHandle(hSnap); 
      
                                     return PModule{ (DWORD)mEntry.hModule, mEntry.modBaseSize }; 
                             } 
      
     #ifdef _DEBUG || DEBUG 
                     std::cout << "Getting module: "; ColoredMessage("FAIL!", LRED, true); 
     #endif // DEBUG 
      
      
                     SafeCloseHandle(hSnap); 
                     return PModule{ 0, 0 }; 
             } 
      
             template <class _Ty> 
             _Ty read(DWORD _Addr) 
             { 
                     DWORD _dwRead; 
                     _Ty _Val; 
      
     #ifdef _DEBUG || DEBUG  
                     if (!ReadProcessMemory(hProcess, (LPCVOID)_Addr, &_Val, sizeof(_Ty), &_dwRead)) 
                     { 
                             std::cout << "Reading the memory: "; 
                             ColoredMessage("FAIL!", LRED, true); 
                     } 
     #else // DEBUG  
                     ReadProcessMemory(hProcess, (LPCVOID)_Addr, &_Val, sizeof(_Ty), &_dwRead) 
     #endif 
                             return _Val; 
             } 
      
             template <class _Ty> 
             void write(DWORD _Addr, _Ty _Val) 
             { 
                     DWORD _dwWrite; 
      
     #ifdef _DEBUG || DEBUG  
                     if (!WriteProcessMemory(hProcess, (LPVOID)_Addr, &_Val, sizeof(_Ty), &_dwWrite)) 
                     { 
                             std::cout << "Writing the memory: "; 
                             ColoredMessage("FAIL!", LRED, true);

    Ладно.

    Ddddddddd, 22 Мая 2022

    Комментарии (17)
  3. C# / Говнокод #28175

    −3

    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
    52. 52
    using System;
    using System.Linq;
    using System.Text;
    using AAAAA = System.Single;
    using AAAAAA = System.Boolean;
    using AAAAAAA = System.Int32;
    using AAAAAAAA = System.Char;
    using AAAAAAAAA = System.Byte;
    using AAAAAAAAAA = System.String;
    public interface IA<AAAA> where AAAA : AA<AAAA>, new()
    {
        AA<AAAA> A();
    }
    public class AAA : AA<AAA>
    {
        public AAA() { }
        public AAA(IA<AAA> AAAA) : base(AAAA) { }
    }
    public class AA<AAAAAAAAAAAAAAAAAAAA> : IA<AAAAAAAAAAAAAAAAAAAA> where AAAAAAAAAAAAAAAAAAAA : AA<AAAAAAAAAAAAAAAAAAAA>, new()
    {
        const AAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA = 0;
        const AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA = "AAAA";
        const AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA = "UTF-8";
        public AA() { }
        AA<AAAAAAAAAAAAAAAAAAAA> IA<AAAAAAAAAAAAAAAAAAAA>.A() {
            return (AA<AAAAAAAAAAAAAAAAAAAA>)A((AAAAAA)new AA<AAAAAAAAAAAAAAAAAAAA>(this));
        }
        public AA(IA<AAAAAAAAAAAAAAAAAAAA> AAAA) {
            var AAAAAAAAAAAAAAAAAAAAAAAA = (AA<AAAAAAAAAAAAAAAAAAAA>)AAAA;
            AAAAAAAAAAAAAAAAAAAAAAAA.E();
        }
        public AA<AAAAAAAAAAAAAAAAAAAA> A(AAAAAA A) {
            if (true) return this;
        }
        public static AAA AAAA(string AAAAAAAAAA) {
            var AAAAAAAAAAAAAAA = AAAAAAAAAA.ToArray<AAAAAAAA>();
            return A(Encoding.GetEncoding(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA).GetBytes(AAAAAAAAAAAAAAA));
        }
        private static AAA A(AAAAAAAAA[] AAA) {
            return A(BitConverter.ToSingle(AAA, AAAAAAAAAAAAAAAAAAAAAAAAAAAA));
        }
        private static AAA A(AAAAA A) {
            if (A == 12.078431f)
                return new AAA(new AA<AAA>());
            else
                throw new FUCKYOUException();
        }
        public static implicit operator AAAAAA(AA<AAAAAAAAAAAAAAAAAAAA> a) => true;
        private void E() => Console.WriteLine("E");
    }
    
    class FUCKYOUException : Exception { }

    kcalbCube, 19 Мая 2022

    Комментарии (13)
  4. 1C / Говнокод #28173

    −1

    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
    Функция ПолучитьСеб (Номенклатура,ДатаОстатков) Экспорт
    		
    		Запрос = Новый Запрос;
    		Запрос.Текст = 
    		"ВЫБРАТЬ ПЕРВЫЕ 1
    		|	УчетПартийОстатки.Номенклатура,
    		|	УчетПартийОстатки.Партия КАК Партия,
    		|	УчетПартийОстатки.СуммаБезНДСОстаток / УчетПартийОстатки.КоличествоОстаток КАК бухСС
    		|ИЗ
    		|	РегистрНакопления.УчетПартий.Остатки(&ДатаОстатков, Номенклатура В (&Номенклатура)) КАК УчетПартийОстатки
    		|		ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииНоменклатуры.Остатки(&ДатаОстатков, Номенклатура В (&Номенклатура)) КАК ПартииНоменклатурыОстатки
    		|		ПО УчетПартийОстатки.Характеристика = ПартииНоменклатурыОстатки.Характеристика
    		|			И УчетПартийОстатки.МестоХранения = ПартииНоменклатурыОстатки.МестоХранения
    		|			И УчетПартийОстатки.Статус = ПартииНоменклатурыОстатки.Статус
    		|			И УчетПартийОстатки.Номенклатура = ПартииНоменклатурыОстатки.Номенклатура
    		|			И УчетПартийОстатки.Партия = ПартииНоменклатурыОстатки.Партия
    		|ГДЕ
    		|	УчетПартийОстатки.КоличествоОстаток > 0
    		|
    		|УПОРЯДОЧИТЬ ПО
    		|	Партия";
    		
    		Запрос.УстановитьПараметр("ДатаОстатков", ДатаОстатков);
    		Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    		
    		РезультатЗапроса = Запрос.Выполнить();
    		
    		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    		
    		Если ВыборкаДетальныеЗаписи.Следующий() Тогда
    			Возврат ВыборкаДетальныеЗаписи.бухсс;
    		КонецЕсли;
    		
    	КонецФункции

    Нашёл сие поделие в базе одного клиента, придраться хочется ко всему, начиная с лютого нэйминга - имя функции ПолучитьСеб(), не намного лучше чем Функция1(), имя переменной в запросе бухСС тоже так себе.
    Задача функции вернуть себестоимость единицы товара, при этом число она возвращает только если в запросе что-то есть, понятно что в остальных случаях вернет Неопределено, но себестоимость это всегда число, никаких Неопределено быть не должно.
    Если посмотреть текст запроса, то видно, что поля выборки на 100% беруться из одной таблицы, зачем там ещё одну прилепили, да ещё и с полным соединением - теряюсь в догадках.
    Упорядочивание по полю Партия вообще смысла не имеет, если уж речь идёт о получении себестоимости, то скорей автор хотел получить её из первой партии, что косвенно подвтерждается выражением "ПЕРВЫЕ 1", но дело в том, что упорядочивание по ссылке (Партия - это элемент справочника Партии) не имеет никакой привязки к дате, т.е. нужно было писать так: "Упорядочить По Партия.ДатаПартии".
    Здесь не видно, но функция вызывается только в двух местах модуля и всегда с конкретным значением номенклатуры, т.е. условие виртуальной таблицы может быть оптимизировано до "Номенклатура = &Номенклатура".
    Ну и на последок - в данном случае полное соединение конечно нужно ликвидировать, но если бы оно действительно было нужно, то виртуальные таблицы не стоит связывать между собой, предварительно их нужно помещать во временные таблицы и индексировать по полям условий соединения.

    VladC, 17 Мая 2022

    Комментарии (1)
  5. Java / Говнокод #28165

    −1

    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
    package com.company;
    import java.util.Scanner;
    
    public class Main {
        public static void main (String [] args) {
             Scanner num = new Scanner(System.in);
             int first;
             System.out.print("Enter first num: ");
             first = num.nextInt();
    
             if (first==10)
                  System.out.print("Num is 10");
    }
    }

    zdavletshin, 12 Мая 2022

    Комментарии (2)
  6. Python / Говнокод #28164

    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
    import asyncio
    
    async def hello():
        return "hello"
    
    async def world():
        return "world"
    
    async def comma():
        return ","
    
    async def space():
        return " "
    
    async def excl():
        return "!"
    
    async def capitalize(coro):
        return (await coro).capitalize()
    
    async def main():
        print(''.join(await asyncio.gather(*[asyncio.create_task(task) for task in (capitalize(hello()), comma(), space(), capitalize(world()), excl())])))
    
    asyncio.run(main())

    Изучаем asyncio через говнокод

    valo94, 12 Мая 2022

    Комментарии (29)
  7. SQL / Говнокод #28161

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    -- Теперь мы можем легко получить отчёт по продажам на прошлую дату:
    
    DELIMITER ;
    BEGIN;
    CALL set_prot_snapshot_date('2018-10-09 17:23:47', NULL, -1);
    SELECT NOW() report_time, d.date, SUM(p.amount * p.price) sum
    FROM docs d
    INNER JOIN doc_pos p ON d.id = p.doc_id
    GROUP BY d.date;
    ROLLBACK;

    https://habr.com/ru/post/425769/
    Как научить MySQL заглядывать в прошлое

    ISO, 09 Мая 2022

    Комментарии (26)
  8. C++ / Говнокод #28158

    0

    1. 1
    #define $(x) [&](void)->auto{try{return (x);}catch(...){return decltype(x){};}}()

    Собачка

    kcalbCube, 09 Мая 2022

    Комментарии (9)
  9. C++ / Говнокод #28153

    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
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    #include <iostream>
    #include <vector>
    #include <string>
    
    int main()
    {
        int n = 6;
        std::vector<int> vec;
    
        for (int i = 0; i < n; i++)
        {
            if ((i % 2) == 0)
            {
                std::reverse(vec.begin(), vec.end());
            }
    
            vec.push_back(i);
    
            if ((i % 2) != 0)
            {
                std::reverse(vec.begin(), vec.end());
            }
    
            for (int j = 0; j < vec.size(); j++)
            {
                std::cout << vec[j] + 1;
                if (j != vec.size() - 1)
                {
                    std::cout << "-";
                }
            }
            std::cout << "\n";
    
        }
    }

    Цель напечатать на экране следующее:
    1
    2-1
    1-2-3
    4-3-2-1
    1-2-3-4-5
    6-5-4-3-2-1

    насколько это говнокод от 0 до 10?

    pistael, 05 Мая 2022

    Комментарии (28)
  10. Куча / Говнокод #28152

    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
    Бесконечный оффтоп имени kcalbа #2
    K C A L B K C A L B
    C C               C C
    A   +             A   +
    L     +           L     +
    B       K C A L B K C A L B
    K       C         K       C
    C       A         C       A
    A       L         A       L
    L       B         L       B
    K C A L K K C A L B       K
      C     C           C     C
        +   A             +   A
          + L               + L
            K C A L B K C A L B

    Бесконечный оффтоп имени kcalba #1 https://govnokod.ru/28122 https://govnokod.xyz/_28122/

    kcalbCube, 05 Мая 2022

    Комментарии (237)