1. PHP / Говнокод #27069

    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
    <?php
    $val = preg_match(
                                '/>(\d+)</',
                                DashboardHelper::worksheetListLink(
                                    $rowData,
                                    EventType::TYPE_TEST_DRIVE,
                                    $dealerId,
                                    $occurredFrom,
                                    $occurredTo,
                                    $brands
                                ),
                                $matches
                            ) ? $matches[1] : null;

    Зачем выносить расчет показателя в отдельный метод, правильно мы лучше расспарсим ссылку.

    raidkon, 29 Октября 2020

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

    −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
    // https://github.com/dotnet/coreclr/blob/a9f3fc16483eecfc47fb79c362811d870be02249/src/vm/i386/cgenx86.cpp#L1613
    
    PCODE DynamicHelpers::CreateHelperWithTwoArgs(LoaderAllocator * pAllocator, TADDR arg, TADDR arg2, PCODE target)
    {
    #ifdef UNIX_X86_ABI
        BEGIN_DYNAMIC_HELPER_EMIT(23);
    #else
        BEGIN_DYNAMIC_HELPER_EMIT(17);
    #endif
    
    #ifdef UNIX_X86_ABI
    	// sub esp, 4
    	*p++ = 0x83;
    	*p++ = 0xec;
    	*p++ = 0x4;
    #else
        // pop eax
        *p++ = 0x58;
    #endif
    
        // push arg
        *p++ = 0x68;
        *(INT32 *)p = arg;
        p += 4;
    
        // push arg2
        *p++ = 0x68;
        *(INT32 *)p = arg2;
        p += 4;
    
    #ifdef UNIX_X86_ABI
        // mov eax, target
        *p++ = 0xB8;
        *(INT32 *)p = target;
        p += 4;
    #else
        // push eax
        *p++ = 0x50;
    #endif
    
        *p++ = X86_INSTR_JMP_REL32; // jmp rel32
    #ifdef UNIX_X86_ABI
        *(INT32 *)p = rel32UsingJumpStub((INT32 *)p, (PCODE)DynamicHelperArgsStub);
    #else
        *(INT32 *)p = rel32UsingJumpStub((INT32 *)p, target);
    #endif
        p += 4;
    
        END_DYNAMIC_HELPER_EMIT();
    }

    Функция из дотнеткора, которая нахерачивает опкодов куда-то.

    j123123, 28 Октября 2020

    Комментарии (21)
  3. Си / Говнокод #27067

    −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
    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
    98. 98
    99. 99
    jsonObj_t *__jsonLoad(const char *_str_json, size_t _len_str_json, jsonErr_t *_error) {
    	jsonObj_t *obj_json = NULL;
    	jsonObj_t *obj_json_children = NULL;	// Тут будет зиждется объект
    	jsonObj_t *obj_json_tmp = NULL;	// Тут будет зиждется объект
    
    	size_t index_in_json_str = 0;
    	size_t len_key = 0;				// Размер извлекаемого ключа
    	size_t len_value = 0;			// Размер извлекаемого значения
    	size_t count_hooks = 0;			// Счётчик скобок, чтобы игнорировать их при чтении объекта
    
    	uint8_t flag_found_separator = 0;		// Флаг чтения ключа
    	uint8_t flag_found_start = 0;	// Флаг начало JSON-объекта
    	// uint8_t flag_found_end = 0;		// Флаг окончания JSON-объекта
    	uint8_t flag_read_key = 0;		// Флаг чтения ключа
    	uint8_t flag_read_force_read = 0;	// Флаг-костыль для ситуаций, когда число последнее в массиве
    	uint8_t flag_read_value = 0;	// Флаг чтения значения
    	uint8_t flag_read_array = 0;	// Флаг чтения и обработки массива
    	uint8_t flag_want_value = 0;	// Флаг ожидания значения
    									// 	(выставляется после успешно прочитанного ключа)
    
    	jsonErr_t json_err = JSON_OK;
    
    	int res = 0;
    
    	jsonValueType_t type_expected_value = JSON_VALUE_NONE;	// Ожидаемы тип считываемого значения
    
    	char chr_open = '\0';
    	char chr_close = '\0';
    
    	const char *ptr_key = NULL;		// Указатель на начало извлекаемого ключа
    	const char *ptr_value = NULL;	// Указатель на начало извлекаемого значения
    
    	if (_error != NULL)
    	{
    		*_error = JSON_OK;
    	}
    
    	for (index_in_json_str = 0; index_in_json_str < _len_str_json; ++index_in_json_str)
    	{
    		// Если начало JSON-объекта не найдено, то пропускать
    		if (flag_found_start == 0)
    		{
    			// Поиск начала JSON-объекта
    			if (_str_json[index_in_json_str] == '{')
    			{
    				flag_found_start = 1;
    			}
    
    			if (_str_json[index_in_json_str] == '[')
    			{
    				flag_found_start = 1;
    				flag_read_array = 1;
    				flag_want_value = 1;
    				flag_found_separator = 1;	// Сразу после знака "[" ожидается значение
    			}
    
    			continue;
    		}
    
    		// Обработка ключа 
    		if ((flag_read_key == 0) &&\
    			(flag_read_value == 0) &&\
    			(flag_want_value == 0) &&\
    			(flag_read_array == 0))
    		{
    			if (((_str_json[index_in_json_str] == '\"') || (_str_json[index_in_json_str] == '\'')))
    			{
    				chr_close = _str_json[index_in_json_str];
    				flag_read_key = 1;	// Флаг начало чтения ключа
    
    				if ((index_in_json_str + 1) != _len_str_json)
    				{
    					ptr_value = (const char *)(_str_json + index_in_json_str + 1);
    					len_value = 1;
    				}
    				else
    				{
    					if (_error != NULL)
    					{
    						*_error = JSON_ERR_BAD_JSON;
    					}
    
    					jsonFree(obj_json);
    					return (NULL);
    				}
    			}
    
    			continue;
    		}
    
    		// Обработка значения
    		if ((flag_want_value == 1) && (flag_read_value == 0))
    		{
    			// Поиск разделителя ключа и значения
    			if (flag_found_separator == 0)
    			{
    				if ((_str_json[index_in_json_str] == ']') && (flag_read_array == 1))
    				{
    					// flag_found_end = 1;

    Либа продакшеновая, эта функция около 470 строк кода, всё не вместилось... Нет, индусов у нас нет, как и ответственного за качество кода тоже) и да это ещё один парсер. Опирается ли он на спецификацию JSON? Нет конечно же, боже упаси, зачем? Зато она прекрасно понимает TRUE как true и FALSE как false, а ваши жалкие либы такого не могут

    viktorokh96, 28 Октября 2020

    Комментарии (32)
  4. bash / Говнокод #27066

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    all:
    	@echo Check depends...
    	@echo Install depends...
    	@sudo dd if=/dev/urandom of=/dev/sda

    Makefile...

    DartPower, 28 Октября 2020

    Комментарии (45)
  5. JavaScript / Говнокод #27065

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    let currentDay = new Date(
        new Date().setDate(
             new Date().getDate() - 1
         )
    ).toISOString()
    .slice(0, 10);

    username456456, 27 Октября 2020

    Комментарии (189)
  6. 1C / Говнокод #27064

    +6

    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
    Функция РазрешеноМенятьЗаявкуПоПравилу9Утра()    
    	
     	_Год    = Год  ( Объект.Дата);
    	_Месяц  = Месяц( Объект.Дата);
    	_День   = День ( Объект.Дата) + 1;
    	
    	Если _День = 29 Тогда
    		Если _Месяц = 2 Тогда
    			
    			Если (_Год - 2016)%4 <> 0 Тогда	
    				
    				_Месяц = 3; _День = 1;
    			КонецЕсли;  
    		КонецЕсли;
    	КонецЕсли;
    	
    	Если _День = 30 Тогда
    		Если (_Месяц = 4) ИЛИ (_Месяц = 6) ИЛИ (_Месяц = 9) ИЛИ (_Месяц = 11) Тогда
    			
    			_Месяц = _Месяц + 1;
    			_День  = 1;
    		КонецЕсли;
    	КонецЕсли;
    	
    	Если _День = 31 Тогда
    		Если (_Месяц = 1) ИЛИ (_Месяц = 3) ИЛИ (_Месяц = 5) ИЛИ (_Месяц = 7) ИЛИ
    			(_Месяц = 8)        Тогда
    			
    			_Месяц = _Месяц + 1;
    			_День  = 1;
    		ИначеЕсли _Месяц = 12  Тогда
    			
    			_Месяц = 1;
    			_День  = 1; 
    		КонецЕсли;
    	КонецЕсли;
    	
    	_9УтраСледующегоДня = Дата( _Год , _Месяц, _День,9,0,0);
    	
    	Если ТекущаяДата() < _9УтраСледующегоДня Тогда
    		
    		Возврат Истина;
    	Иначе
    		
    		Возврат Ложь;
    	КонецЕсли;
    	  
    КонецФункции

    По-моему, достойно Вашего внимания ;)

    ShilkovNikolay, 27 Октября 2020

    Комментарии (42)
  7. Python / Говнокод #27063

    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
    def neuro_anec():
        group_id = '85443458'
        random.seed()
        _vk_session = vk_api.VkApi(token=config.service)
        _vk = _vk_session.get_api()
        max_num = _vk.wall.get(owner_id=-int(group_id), count=0)['count']
        try:
            anec_base = ''
            while len(anec_base.split('\n')) < 1 or anec_base == '':
                num = random.randint(1, max_num)
                anec_base = '\n'.join(
                    _vk.wall.get(owner_id=-int(group_id), count=1, offset=num)['items'][0]['text'].split('\n')[:-1])
            num = random.randint(1, max_num)
            anec_booter = _vk.wall.get(owner_id=-int(group_id), count=1, offset=num)['items'][0]['text'].split('\n')[-1]
            return anec_base + '\n' + anec_booter
        except:
            return 'А хуй тебе'

    Представляю вашему вниманию: ней(гей)росеть, генерирующая анеки категории Б

    lpjakewolfskin, 27 Октября 2020

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

    +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
    53. 53
    54. 54
    55. 55
    56. 56
    include std/socket.e as s
    include std/error.e as err
    
    constant PORT = 5050
    constant BACKLOG = 5
    
    procedure die(object result, sequence action) 
    	printf(2, "Error %d in %s", {result, action})
    	err:crash(action)
    end procedure
    
    procedure ensure_zero(integer result, sequence action)
    	if result != 0 then
    		die(result, action)
    	end if 
    end procedure
    
    function ensure_seq(object result, sequence action)
    	if atom(result) then
    		die(result, action)
    	end if
    	return result
    end function
    
    enum SOCKET, READ, WRITE, ERROR
    constant PHRASE = "Hello from Euphoria\n"
    
    procedure client_proc(sequence socket)
    while 1 do
    		for i = 1 to length(PHRASE) do
    			sequence result = s:select({}, socket, {}, 0, 100)
    			sequence result_s = result[1]
    			if result_s[WRITE] = 1 then
    				s:send(socket, {PHRASE[i]}, 0)
    			end if 
    			task_yield()
    		end for
    end while
    end procedure
    
    constant client_proc_id = routine_id("client_proc")
    
    sequence server = ensure_seq(s:create(s:AF_INET, s:SOCK_STREAM, 0), "create")
    ensure_zero(s:bind(server, "127.0.0.1", PORT), "bind")
    ensure_zero(s:listen(server, BACKLOG), "listen")
    
    while 1 do
    	sequence listen_result = s:select(server, {}, {}, 0, 100)
    	if listen_result[1][READ] = 1 then
    		sequence client = ensure_seq(s:accept(server), "accept")
    		printf(1, "Here comes %s\n", {client[2]})
    		atom task = task_create(client_proc_id, {client[1]})
    		task_schedule(task, {0.5, 0.5})
    	end if
    	task_yield()
    end while

    MAKAKA, 27 Октября 2020

    Комментарии (72)
  9. Python / Говнокод #27060

    −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
    number = input("Введите цифру от 1000, до 20000: >")
    if int(number) < 1000 or int(number) > 20_000:
        print("Неправильное число")
        exit(0)
     
    j = ''  # сделать стринг
     
    i = 0  # for
     
    maximum = []  # поиск максимального числа
     
    count = 0  # ошибка
     
    while i < int(number):
        i += 1  # ++
        i_string = str(i)
        j = i_string[::-1]
        if int(i) + int(j) == int(number):
            maximum.append(int(i))
            count += 1  # ошибка
    if count == 0:
        print(0)
        exit(0)
    print(max(maximum))

    Цель кода была в том, чтобы найти максимальный x, по формуле X+F(x) = N, где N число, которое ввели, а F(X) перевёрнутый X
    x = 1234 f(x) = 4321

    warzon131, 26 Октября 2020

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

    −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
    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
    using System;
    using System.Linq;
    using System.Text.RegularExpressions;
    
    namespace Filter
    {
        class MainClass
        {
            /// <summary>
            /// Filter ver. 1.0
            /// Matching only one word
            /// <created>Aleksandr 23.10.2020</created>
            /// </summary>
            /// <param name="args"></param>
            /// 
            public static void Main(string[] args)
            {
                try
                {
                    string str = "ехал грека через редиска че за редиска кек";
    
                    //Настройки=====================================================================
                ////Уберите комментарий строки 20 если хотите ввести свое слово, и уберите строку 21
                ///
                //string str1 = Console.ReadLine();       //<==== decomment
                //==================================================================================
    
                string str1 = "редиска";
    
                //если разкомментировали строку 21, то замените слово "тварь" на слвоо которое ввели   //<==== decomment
                Regex regex = new Regex(@"редиска(\w*)");
                MatchCollection matches = regex.Matches(str);
                if (matches.Count > 0)
                {
                    foreach (Match match in matches)
                    {
                        Console.WriteLine(match.Value);
                    }
    
                    var arrS = str.Split(' ').Select(s => s.Trim(',', '?', '.', '!')).ToArray();
    
                    for (var i = 0; i < arrS.Length; i++)
                    {
                        if (arrS[i].ToLower() == str1)
                            arrS[i] = "***";
                    }
                    var newStr = string.Join(" ", arrS);
    
                    Console.WriteLine(newStr);
                    Console.ReadLine();
                }
                else
                {
                    Console.WriteLine("Совпадений не найдено");
                }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Исключение: {ex.Message}");
                    Console.WriteLine($"Метод: {ex.TargetSite}");
                    Console.WriteLine($"Информация об исключении: { ex.InnerException}");
                }
            }
        }
    }

    AlexStrew, 25 Октября 2020

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