1. Python / Говнокод #26374

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    _RE_DESCRIPTION_TAG_OPEN = re.compile(r'<p\s+class="description">'.encode('utf-8'))
    _RE_DESCRIPTION_TAG_CLOSE = re.compile(r'</p>\s*<p\s+class="author">'.encode('utf-8'))
    def replace_description_tag(content, new_tag):
        content = _RE_DESCRIPTION_TAG_OPEN .sub(f'<{new_tag} class="description">'.encode('utf-8'), content)
        return    _RE_DESCRIPTION_TAG_CLOSE.sub(f'</{new_tag}><p class="author">'.encode('utf-8'), content)

    Парсить HTML регулярками — нельзя. Но если HTML невалидный — то можно!

    А дело в том, что ГК генерирует говно, которое пришлось фиксить таким вот диким образом, см. https://govnokod.ru/26373#comment522056.

    gost, 21 Января 2020

    Комментарии (163)
  2. Куча / Говнокод #26373

    0

    1. 1
    Тестовый код для тестирования парсера.

    Не обращайте внимания.

    int i = 5;
    i += ++i + ++i;

    Именно поэтому я против «C++».
    def f():
    try:
    f()
    finally:
    f()
    f()

    Fatal Python error: Cannot recover from stack overflow.
    Current thread 0x00002288 (most recent call first):
    mov     bp, 0cf8h
    lea esi, [email protected][esi]
    mov edi, 8000384ch
    mov dx, 0cfeh
    cli
    call esi
    mov di, 0058h
    dec edx ; and al,0fh
    mov word ptr ([email protected])[esi], 0f24h
    call esi
    lea ebx, [email protected][esi]
    mov eax, 0e5555h
    mov ecx, 0e2aaah
    call ebx
    mov byte ptr [eax], 60h
    push ecx
    loop $

    Какой скилл )))

    gost, 21 Января 2020

    Комментарии (71)
  3. Куча / Говнокод #26372

    0

    1. 1
    IT Оффтоп #28

    #1: https://govnokod.ru/18142 https://govnokod.xyz/_18142
    #2: https://govnokod.ru/18378 https://govnokod.xyz/_18378
    #3: https://govnokod.ru/19667 https://govnokod.xyz/_19667
    #4: https://govnokod.ru/21160 https://govnokod.xyz/_21160
    #5: https://govnokod.ru/21772 https://govnokod.xyz/_21772
    #6: https://govnokod.ru/24063 (потёр пидор сракер) https://govnokod.xyz/_24063
    #7: https://govnokod.ru/24538 https://govnokod.xyz/_24538
    #8: https://govnokod.ru/24815 (потёр пидор сракер) https://govnokod.xyz/_24815
    #9: https://govnokod.ru/24867 https://govnokod.xyz/_24867
    #10: https://govnokod.ru/25328 https://govnokod.xyz/_25328
    #11: https://govnokod.xyz/_25436 https://govnokod.ru/25436 (потёр пидор сракер)
    #12: https://govnokod.xyz/_25471
    #13: https://govnokod.xyz/_25590 (потёр пидор сракер)
    #14: https://govnokod.xyz/_25684
    #15: https://govnokod.xyz/_25694
    #16: https://govnokod.xyz/_25725
    #17: https://govnokod.xyz/_25731
    #18: https://govnokod.xyz/_25762
    #19: https://govnokod.xyz/_25767
    #20: https://govnokod.xyz/_25776
    #21: https://govnokod.xyz/_25798
    #22: https://govnokod.xyz/_25811
    #23: https://govnokod.xyz/_25863
    #24: https://govnokod.xyz/_25941
    #25: https://govnokod.xyz/_26026
    #26: https://govnokod.xyz/_26050
    #27: https://govnokod.xyz/_26340

    syoma, 21 Января 2020

    Комментарии (751)
  4. Куча / Говнокод #26371

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Неблагодарный opensource: разработчик самого быстрого веб сервера удалил его репозиторий
    
    Краткая суть ситуации: наш соотечественник fafhrd91 на протяжении 3 лет
    практически самостоятельно (см. кдпв) писал actix-web — один из популярнейших
    крейтов в инфраструктуре раста, лидер в большинстве различных бенчмарков,
    и за это время подвергался как минимум трём волнам гонений за "неправильное
    использование раста". После последнего раза автор психанул, и перенес репозиторий
    к себе в аккаунт с пометкой "Планирую скрыть репозиторий".

    Именно поэтому я против «пидарастов». Да и остальных хипстеров-говноедов.

    https://habr.com/ru/post/484436/

    gost, 21 Января 2020

    Комментарии (12)
  5. PHP / Говнокод #26370

    +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
    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
    public function cutPoly($business_id)
        {
            $done = [];
            $red = Isochrone::where('business_id', $business_id)->where('color', 'red')->selectRaw('id, color, ST_AsText(path) as p_path')->get()->first();
            $blue = Isochrone::where('business_id', $business_id)->where('color', 'blue')->selectRaw('id, color, ST_AsText(path) as p_path')->get()->first();
            $green = Isochrone::where('business_id', $business_id)->where('color', 'green')->selectRaw('id, color, ST_AsText(path) as p_path')->get()->first();
            if ($red && $blue) {
                if (!$red['p_path'] || !$blue['p_path']) {
                    $done['red'] = 'already';
                } else {
                    $isoString = 'POLYGON((';
                    $blue_path = $blue['p_path'];
                    $red_path = $red['p_path'];
                    if (!array_key_exists('lat', $blue['p_path'][0])) {
                        $blue_path = $blue['p_path'][0];
                    }
                    if (!array_key_exists('lat', $red['p_path'][0])) {
                        $red_path = $red['p_path'][0];
                    }
                    $isoString .= implode(',', array_map(function ($entry) {
                            return $entry['lat'] . ' ' . $entry['lng'];
                        }, $red_path))
                    . '),('.
                        implode(',', array_map(function ($entry) {
                            return $entry['lat'] . ' ' . $entry['lng'];
                        }, $blue_path))
                        .'))';
                    Isochrone::where('business_id', $business_id)->where('color', 'red')->update(['path' => \DB::raw("ST_GeomFromText('$isoString')")]);
                    $done['red'] = 'ok';
                }
            } else if ($red && $green) {
                if (!$red['p_path'] || !$green['p_path']) {
                    $done['red'] = 'already';
                } else {
                    $isoString = 'POLYGON((';
                    $green_path = $green['p_path'];
                    $red_path = $red['p_path'];
                    if (!array_key_exists('lat', $green['p_path'][0])) {
                        $green_path = $green['p_path'][0];
                    }
                    if (!array_key_exists('lat', $red['p_path'][0])) {
                        $red_path = $red['p_path'][0];
                    }
                    $isoString .= implode(',', array_map(function ($entry) {
                            return $entry['lat'] . ' ' . $entry['lng'];
                        }, $red_path))
                    . '),('.
                        implode(',', array_map(function ($entry) {
                            return $entry['lat'] . ' ' . $entry['lng'];
                        }, $green_path))
                        .'))';
                    Isochrone::where('business_id', $business_id)->where('color', 'red')->update(['path' => \DB::raw("ST_GeomFromText('$isoString')")]);
                    $done['red'] = 'ok green';
                }
            }
            if ($blue && $green) {
                if (!$blue['p_path'] || !$green['p_path']) {
                    $done['blue'] = 'already';
                } else {
                    $isoString = 'POLYGON((';
                    $green_path = $green['p_path'];
                    $blue_path = $blue['p_path'];
                    if (!array_key_exists('lat', $green['p_path'][0])) {
                        $green_path = $green['p_path'][0];
                    }
                    if (!array_key_exists('lat', $blue['p_path'][0])) {
                        $blue_path = $blue['p_path'][0];
                    }
                    $isoString .= implode(',', array_map(function ($entry) {
                            return $entry['lat'] . ' ' . $entry['lng'];
                        }, $blue_path))
                    . '),('.
                        implode(',', array_map(function ($entry) {
                            return $entry['lat'] . ' ' . $entry['lng'];
                        }, $green_path))
                        .'))';
                    Isochrone::where('business_id', $business_id)->where('color', 'blue')->update(['path' => \DB::raw("ST_GeomFromText('$isoString')")]);
                    $done['blue'] = 'ok';
                }
            }
            return $done;
        }

    Он же через час - три дня будет разбиратся что написал

    websbkinfo, 21 Января 2020

    Комментарии (4)
  6. JavaScript / Говнокод #26369

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    var param1 = { name: product.prod_option, values: product.prod_variants};
        var param2 = { name: product.prod_option2, values: product.prod_variants2};
        var param3 = { name: product.prod_option3, values: product.prod_variants3};
        var param4 = { name: product.prod_option4, values: product.prod_variants4};
        var param5 = { name: product.prod_option5, values: product.prod_variants5};
        t_store_product_addOneOptionsControl('modificator', param1 , optionsWrapper, options);
        t_store_product_addOneOptionsControl('modificator', param2, optionsWrapper, options);
        t_store_product_addOneOptionsControl('modificator', param3, optionsWrapper, options);
        t_store_product_addOneOptionsControl('modificator', param4, optionsWrapper, options);
        t_store_product_addOneOptionsControl('modificator', param5, optionsWrapper, options);

    javascriptist, 21 Января 2020

    Комментарии (14)
  7. Куча / Говнокод #26368

    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
    ебучая ссала
    
            case AccountStatuses.Blocked if acc.properties.get(GamStopService.GamStopVerification)
              .map(_.extract[String](DefaultFormats, implicitly[Manifest[String]]))
              .contains(GamStopStatus.NotPassed.toString) =>
              \/.left(AuthenticationError(ErrorCodes.GamStopUnauthorized, s"GamStop validation failed"))
    
    почему ты сука молдавская не можешь добавить метод блять а аккаунт сук ачтобы было 
    
            case AccountStatuses.Blocked if acc.contains(GamStopStatus.NotPassed) =>
              \/.left(AuthenticationError(ErrorCodes.GamStopUnauthorized, s"GamStop validation failed"))
    
    почему хуиа?

    говно блять

    levxxx, 21 Января 2020

    Комментарии (1)
  8. Куча / Говнокод #26367

    −2

    1. 1
    2. 2
    Граждане!
    Пишите код на высокоуровневых языках!

    Например, на паскале.
    Программы на пасцале удобочитаемы, даже можно чуть вникнуть в задачу кода.
    А то - хуй пойми, что означает например вот это:

    byte_t vector_mult(const std::array<byte_t, 4>& v1, std::array<byte_t, 4>&& v2) {
    std::transform(begin(v1), end(v1), begin(v2), begin(v2),
    [](byte_t x, byte_t y) { return mapper.at(y)(x); });
    return std::accumulate(begin(v2), end(v2), byte_t(0), std::bit_xor<byte_t>());



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

    AnalBoy, 20 Января 2020

    Комментарии (14)
  9. PHP / Говнокод #26366

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (!$resp || !is_array($resp) || array_key_exists('error', $resp)) {
                    // TODO: what to do?
                } else {
                    Log::channel('caridis')->info("***********************NEW_DELIVERY");
                    Log::channel('caridis')->info([$order]);
                    $order->caridis_id = $resp['data']['id'];
                }

    // TODO: what to do?
    сука????

    websbkinfo, 20 Января 2020

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

    +1

    1. 1
    https://www.linux.org.ru/forum/development/15475716?cid=15478711

    > Система типов в С++ куда мощнее любой скриптухи, особенно хаскеля. Там уже есть завтипы. А значит какая угодно суперкомпиляция. Да и сам С++ состоит из суперкомпиляции на 99%.
    Царь

    j123123, 20 Января 2020

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