1. Лучший говнокод

    В номинации:
    За время:
  2. JavaScript / Говнокод #7622

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function addNewUpload()
            {
                $('#button_'+i).remove();
                i++;
                $('<div id="field_'+i+'"><input id="file_'+i+'" name="file_'+i+'" type="file"><input type="button" value="+" id="button_'+i+'" onClick="addNewUpload()"></div>').appendTo("#loadmore_files");
                $('#hidden_count').attr('value', i);
            }

    Учись, студент.

    varg242, 23 Августа 2011

    Комментарии (3)
  3. Python / Говнокод #7564

    −92

    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
    def clean_node(node, debug=False):
        """
            Этот пример скопипащен из книги
            "Как не должен выглядеть код"
        """
        if node['sub']:
            sub = []
            num = 1
            for item in node['sub']:
                i = clean_node(item, debug)
                if i:
                    sub.append(i)
                    num += i['num']
            node['sub'] = sub
            node['num'] = num
        else:
            node['num'] = 1
        if node['deleted']:
            if node['sub']:
                return node
        else:
            return node
    
        return None

    Мне достался в наследство большой проект, в котором порой встречается вот такое. Единственное, что радует это подобные комментарии )

    kvex, 17 Августа 2011

    Комментарии (3)
  4. Python / Говнокод #7541

    −175

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if request.path == '/':
            thread_list = ThreadBlock.objects.all()
        else:
            thread_nomer = re.search( r'/\d*/', request.path ).group()[1:-1]
            thread_list = ThreadBlock.objects.filter(id=int(thread_nomer))

    Бидон, джанга, уеб.

    хуита, 14 Августа 2011

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

    +147

    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
    $offset = intval($_POST['offset']);  
            $sql    = mysql_query("SELECT * FROM `test` ORDER BY id DESC LIMIT $offset, 5");  
            if(mysql_num_rows($sql)>0) { 
            while($post = mysql_fetch_assoc($sql)){  
                foreach($post AS $n=>$m){  
                    $post[$n] = utf8_encode($m); 
                }  
                $json['more'][] = $post; # чтобы было легче до 
            }   
             if(count($json['more']))  { 
                 $json['ok'] = '1';  
             } else {  
                 $json['ok'] = '0'; 
             }      
            } else { 
               $json['ok']='3'; 
            }     
            mysql_close($db);  
        
    echo json_encode($json);

    Индусский метод выборки записей из таблицы.

    fqnm, 11 Августа 2011

    Комментарии (3)
  6. PHP / Говнокод #7476

    +161

    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
    class Session {
    	function sess_write() {
    		/*запись данных сессии в бд ($this->userdata)*/
    	}
    
    	function set_userdata($newdata = array(), $newval = '') {
    		if (count($newdata) > 0) {
    			foreach ($newdata as $key => $val) {
    				$this->userdata[$key] = $val;
    			}
    		}
    		$this->sess_write();
    	}
    
    	function unset_userdata($newdata = array()) {
    		if (count($newdata) > 0) {
    			foreach ($newdata as $key => $val) {
    				unset($this->userdata[$key]);
    			}
    		}
    		$this->sess_write();
    	}
    
    	function userdata($item) {
    		return (!isset($this->userdata[$item])) ? false : $this->userdata[$item];
    	}
    }

    говнокод изысканный.
    ЗЫДН: в таком случае $this->sess_write() правильней делать в деструкторе

    DrFreez, 06 Августа 2011

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

    +125

    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
    for(int i = 0; i<et.Days.Count; i++)
                {
                if (et.Days[i].WorkDay.Day == colno - 1)
                    {
                    EmplTabelDays etd = et.Days[i];
    
                    switch (colno)
                        {
                        case 0:
                            break;
                        case 1:
                            break;
                        default:
                                {
                                //pinc.TypeIncome = (IncomeItem)
                                //((TreeNodeHelper)(income_grid.Rows[e.RowIndex].Cells[e.ColumnIndex]).Value).Value;
    
                                //etd.WorkStatus = (WorkStatus)((DataGridViewCell)(WorkDaysGrid.Rows[recno].Cells[colno]).Value).Value;
    
                                DataGridViewCell cell = WorkDaysGrid.Rows[recno].Cells[colno];
                                if (SpecialButton.Checked == false)
                                    {
                                    etd.TypeWorkHours = 8;
    //еще 100500 строк гавнокода...
    
                                    if (cell.Value == "8")
                                        etd.WorkStatus.Id = 1;
                                    if (cell.Value == "-")
                                        etd.WorkStatus.Id = 2;
                                    if (cell.Value == "О")
                                        etd.WorkStatus.Id = 3;
                                    if (cell.Value == "Б")
                                        etd.WorkStatus.Id = 4;
                                    if (cell.Value == "Р")
                                        etd.WorkStatus.Id = 5;
                                    if (cell.Value == "П")
                                        etd.WorkStatus.Id = 6;
                                    if (cell.Value == "А")
                                        etd.WorkStatus.Id = 7;
                                    if (cell.Value == "Г")
                                        etd.WorkStatus.Id = 8;
                                    if (cell.Value == "С")
                                        etd.WorkStatus.Id = 9;
    
                                    }

    Найдено в коде программы табель для бухгалтерии.
    Заполнение справочника с типами дней на основе ячеек грида.
    KeyboardInheritance в чистом виде.

    etcshadow, 05 Августа 2011

    Комментарии (3)
  8. Pascal / Говнокод #7431

    +120

    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
    // Check if You need Administrator-level access to create a folder
    try
      mkdir(SDirectory + '\~TEST');
    except
      on E: exception do
      begin
        if E.message = 'File access denied' then
        begin
          MessageBox(self.Handle,
            'You need Administrator-level access to create this folder', '', MB_ICONERROR);
          exit;
        end;
      end;
    end;
    RmDir(SDirectory + '\~TEST');

    Мартышки плакали, кололись, но продолжали ронять UAC себе на лапки.

    bugmenot, 03 Августа 2011

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

    +168

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $type = '';
    if ($info[5]=='') $type.='0'; else $type.='1';
    if ($info[6]=='') $type.='0'; else $type.='1';
    if ($info[7]=='') $type.='0'; else $type.='1';
    if ($type=='000') $type = '100';

    Честно говоря я смотрел и пытался понять чего же человек этим добиться хотел... Это полный п%здец.

    invision70, 31 Июля 2011

    Комментарии (3)
  10. PHP / Говнокод #7386

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    if($response == false)
     	$response = true;
    else 
            $response = false;

    вот такая говно-конструкция изменяющая false на true и наоборот

    kellydpx, 29 Июля 2011

    Комментарии (3)
  11. bash / Говнокод #7385

    −116

    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
    #!/bin/sh
    #
    # $1 is the mail account
    
    [ -n "$1" ] && {
    	
    	MAIL_PATH="/Mail/$1/mbox"
    	OUTPUT_MAIL_PATH="/mnt/flash/save/email/inbox/"
    	mkdir -p $OUTPUT_MAIL_PATH	
    	mv /var/spool/mail/root/* $MAIL_PATH
    
    	for j in `find $MAIL_PATH -name "msg.*"`
    	do
    	  MAIL_NAME=`basename $j`.eml
    	  NEW_MAIL="$OUTPUT_MAIL_PATH/$MAIL_NAME"
    	  mkdir -p "$OUTPUT_MAIL_PATH"
    	  
    	  [ ! -f "$NEW_MAIL" ] && {
    		  grep "^From:" $j | head -n 1 > $NEW_MAIL
    		  if grep "^Cc:" $j ; then
    		  	grep "^Cc:" $j | head -n 1 >> $NEW_MAIL
    		  fi
    		  grep "^To:" $j | head -n 1 >> $NEW_MAIL
    		  grep "^Subject:" $j | head -n 1 >> $NEW_MAIL
    		  grep "^Date:" $j | head -n 1 >> $NEW_MAIL
    		
    			if grep "^Content-Type: text/plain;" $j ; then
    				
    				LINE_NUM=`grep -n "^Content-Type: text/plain;" $j | cut -d: -f1`
    				
    				if grep "^Content-Type: text/plain;" $j | grep "charset=" ; then
    					TYPE=`grep  "Content-Type: text/plain;" $j | cut -d";" -f1`
    					echo "$TYPE" >> $NEW_MAIL
    					CHAR="charset="`grep  "Content-Type: text/plain;" $j | cut -d= -f2`
    					echo "$CHAR" >> $NEW_MAIL
    				else
    					grep "^Content-Type: text/plain;" $j >> $NEW_MAIL
    					x=$(($LINE_NUM+1))
    					sed -n "$x"p $j >> $NEW_MAIL
    				fi
    		
    				
    				x=$(($LINE_NUM-1))
    				BOUNDARY=`sed -n "$x"p $j`
    				
    				for i in `sed "/$BOUNDARY/s/.*/ffffuuuucccckkkk/" $j | grep -n "ffffuuuucccckkkk" | cut -d: -f1`
    				do
    					if [ "$i" -gt "$LINE_NUM" ] ; then
    						i=$(($i-1))
    						y=$(($LINE_NUM+3))
    						echo "Mail content start:" >> $NEW_MAIL
    						sed -n "$y,$i"p $j >> $NEW_MAIL			
    						break
    					fi
    				done
    				
    				if ! grep "Mail content start:" $NEW_MAIL ; then
    					echo "Mail content start:" >> $NEW_MAIL
    					y=$(($LINE_NUM+3))
    					x=`grep -c "^" $j`
    					sed -n "$y,$x"p $j >> $NEW_MAIL
    				fi
    				
    			else
    				echo "Fuck....."	
    			fi
    		}
    	done
    }

    /bin/mail.sh из прошивки букридера GreenBook

    wat3rs, 29 Июля 2011

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