1. Perl / Говнокод #2666

    −251.4

    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
    my $sec;
    my $min;
    my $hour;
    my $mday;
    my $mon;
    my $year;
    my $wday;
    my $yday;
    my $isdst;
    
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);
    $year=$year+1900;
    $mon=$mon+1;
    if ($mon<10)
    {
    $mon='0'.$mon;
    }
    if ($sec<10)
    {
    $sec='0'.$sec;
    }
    if ($min<10)
    {
    $min='0'.$min;
    }
    if ($hour<10)
    {
    $hour='0'.$hour;
    }
    if ($mday<10)
    {
    $mday='0'.$mday;
    }

    двузначные цифры в дате

    Bracus, 25 Февраля 2010

    Комментарии (8)
  2. Perl / Говнокод #2562

    −111.2

    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
    # куски кода выдернуты
    #  смотрите внимательно на SQL
    #--- INSERT ------
    
    my $comment_id = $ej->{dbh}->insert('blog.comments', (
    	'id::primary'          => '',
    	'post_id::numeric'     => $param_id,
    	'user_id::numeric'     => $ej->{user}{id},
    	'text'                 => $newmess,
    	'time::numeric'        => $ej->{time},
    	'rating_ball::numeric' => $rating_ball
    ));
    my $_rating_ball = 0 + $ej->Query ('SELECT SUM(rating_ball) FROM blog.comments WHERE post_id = '.$param_id)->FetchRow;
    
    $ej->Query(
    	'UPDATE blog.posts SET update_time = '.$ej->{time}.', rating_ball = '.$_rating_ball.', '.
    	'comments_ptr = CONCAT('.Q(pack('L', $comment_id)).', comments_ptr)  WHERE id = '.$param_id
    );
    
    #--- DELETE ---
    
    $ej->Query('DELETE FROM blog.comments WHERE id = '.$comment_id);
    
    my $comments_ptr = pack('L*', $ej->Query('SELECT id FROM blog.comments WHERE post_id = '.$post_id.' ORDER BY time DESC')->FetchCol);
    my $_rating_ball = 0 + $ej->Query ('SELECT SUM(rating_ball) FROM blog.comments WHERE post_id = '.$post_id)->FetchRow;
    
    $ej->Query('UPDATE blog.posts SET comments_ptr = '.Q($comments_ptr).', rating_ball = '.$_rating_ball.' WHERE id = '.$post_id);
    
    
    #--- SELECT ----
    
    my %q = $ej->Query('SELECT user_id, topic_id, name, text, SUBSTRING(comments_ptr, '.(1+($page-1)*40).',40) AS ptr, round(length(comments_ptr) / 4) AS cnt, create_time, pics_ptr, rating_ball FROM blog.posts WHERE id = '.$param_id)->FetchHash;
    
    my @id = (); my @user_id = (); my @text = (); my @time = ();
    
    if ($q{ptr} ne '') {
    	my $r = $ej->Query('SELECT id, user_id, text, time FROM blog.comments WHERE id IN ('.join(',',unpack('L*', $q{ptr})).') ORDER BY time DESC');
    	@id      = $r->FetchCol;
    	@user_id = $r->FetchCol(1);
    	@text    = $r->FetchCol(2);
    	@time    = $r->FetchCol(3);
    }
    
    # потом еще вывод через Ж

    это работает на mySQL/PERL.
    да зачем нам реляционная база, мы сами можем манипулировать отношениями.
    comments_ptr это BLOB, c упакованным в него массивом int32 id'шников из comments.id
    хотя и есть comments.post_id <=> posts.id

    просто праздник какой-то!

    bmp20, 07 Февраля 2010

    Комментарии (1)
  3. Perl / Говнокод #2476

    −257.7

    1. 1
    sub count {scalar(@{[@_]})}

    Из себя выдавил)

    RolCom, 23 Января 2010

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

    −113.6

    1. 1
    2. 2
    3. 3
    4. 4
    sub append {
        my $appendstring = @_[0];
        $returnstring = "$returnstring$appendstring";
    }

    Из плагина к nagios'у, который проверяет состояние интерфейсов на cisco-девайсах. http://svn.opsview.org/opsview/trunk/opsview-core/nagios-plugins/check_snmp_cisco_ifstatus .

    aag, 20 Января 2010

    Комментарии (16)
  5. Perl / Говнокод #2418

    −109.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    sub title {
        my ($str, $len) = @_;
    
        while (1) {
            last if substr($str, $len, 1) eq ' ';
            ++$len;
        }
    
        return substr($str, 0, $len) . "...";
    }

    аналог Index.

    klem4, 15 Января 2010

    Комментарии (5)
  6. Perl / Говнокод #2334

    −352.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
    #!/usr/bin/perl
    while ($colresults = $rez->fetchrow_hashref()) {
    		$hour = $colresults->{'TIME'};
    		if ($hour == '00') {$value0 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '01') {$value1 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '02') {$value2 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '03') {$value3 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '04') {$value4 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '05') {$value5 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '06') {$value6 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '07') {$value7 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '08') {$value8 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '09') {$value9 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '10') {$value10 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '11') {$value11 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '12') {$value12 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '13') {$value13 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '14') {$value14 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '15') {$value15 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '16') {$value16 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '17') {$value17 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '18') {$value18 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '19') {$value19 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '20') {$value20 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '21') {$value21 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '22') {$value22 = $colresults->{'VALUE_NUM'}};
    		if ($hour == '23') {$value23 = $colresults->{'VALUE_NUM'}};
    	if ($d_name ne $colresults->{'DNAME'}) {
    		unless ($first) {
    			push @result, {
    				N => $n_name,
    				C => $c_name,
    				D => $d_name,
    				TIME0 => get_temp($value0),
    				TIME1 => get_temp($value1),
    				TIME2 => get_temp($value2),
    				TIME3 => get_temp($value3),
    				TIME4 => get_temp($value4),
    				TIME5 => get_temp($value5),
    				TIME6 => get_temp($value6),
    				TIME7 => get_temp($value7),
    				TIME8 => get_temp($value8),
    				TIME9 => get_temp($value9),
    				TIME10 => get_temp($value10),
    				TIME11 => get_temp($value11),
    				TIME12 => get_temp($value12),
    				TIME13 => get_temp($value13),
    				TIME14 => get_temp($value14),
    				TIME15 => get_temp($value15),
    				TIME16 => get_temp($value16),
    				TIME17 => get_temp($value17),
    				TIME18 => get_temp($value18),
    				TIME19 => get_temp($value19),
    				TIME20 => get_temp($value20),
    				TIME21 => get_temp($value21),
    				TIME22 => get_temp($value22),
    				TIME23 => get_temp($value23),
    			};
    			$value0 = undef;
    			$value1 = undef;
    			$value2 = undef;
    			$value3 = undef;
    			$value4 = undef;
    			$value5 = undef;
    			$value6 = undef;
    			$value7 = undef;
    			$value8 = undef;
    			$value9 = undef;
    			$value10 = undef;
    			$value11 = undef;
    			$value12 = undef;
    			$value13 = undef;
    			$value14 = undef;
    			$value15 = undef;
    			$value16 = undef;
    			$value17 = undef;
    			$value18 = undef;
    			$value19 = undef;
    			$value20 = undef;
    			$value21 = undef;
    			$value22 = undef;
    			$value23 = undef;
    		}
    		
    		...
    	}
    
    }
    .... # продолжение не менее захватывающее

    Феерический код из одной не малоизвестной организации :)

    SoulSeeker, 25 Декабря 2009

    Комментарии (6)
  7. Perl / Говнокод #2309

    −106.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
    $str=~/(.+?)<\/h2><p>(.+)/;
    ($d2,$str)=($1,$2);
    ($d2,undef)=split (/\,/,$d2);
    ($aday,$amn)=split (/ /,$d2);
    if ($amn=~/^я/i) {$amon='01'}
    elsif ($amn=~/^ф/i) {$amon='02'}
    elsif ($amn=~/^мар/i) {$amon='03'}
    elsif ($amn=~/^ап/i) {$amon='04'}
    elsif ($amn=~/^мая/i) {$amon='05'}
    elsif ($amn=~/^июн/i) {$amon='06'}
    elsif ($amn=~/^июл/i) {$amon='07'}
    elsif ($amn=~/^ав/i) {$amon='08'}
    elsif ($amn=~/^с/i) {$amon='09'}
    elsif ($amn=~/^о/i) {$amon='10'}
    elsif ($amn=~/^н/i) {$amon='11'}
    elsif ($amn=~/^д/i) {$amon='12'}

    Ещё один фрагмент граббера. Славное определение месяца :)

    Suor, 22 Декабря 2009

    Комментарии (6)
  8. Perl / Говнокод #2307

    −106.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
    # ВЫШЕ БУДЕТ МАСИВ С 1 до 7 за семь дней дабы делать выборку
    for ($indx=0; $indx<7; $indx++) {	## каждый раз работаем с датой
    @sql=();
    
    my $bindings = 0;
    
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time+$indx*86400); # а тут надо будет написать что умножить эл. масива на чтото
    $date=($year+1900).'-'.($mon<9?'0':'').($mon+1).'-'.($mday<10?'0':'').$mday;
    $url2=$url.$date;
    #####$url2=$url;
    
    $cinema=&get($url2);
    
    ...
    
    } # это скобка массива

    Вот такой фрагмент парсера. Комменты читать по 3-4 раза для полного впечатления

    Suor, 22 Декабря 2009

    Комментарии (4)
  9. Perl / Говнокод #2287

    −110.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
    my $style_doc = $parser->parse_string(q~
       ... Здесь идёт нормальный такой шаблон xslt
    ~);
    my $stylesheet = $xslt->parse_stylesheet($style_doc);
    
    my $results = $stylesheet->transform( $source );
    my $shit = $stylesheet->output_string($results);
    
    $shit =~ s%(<table.*?<table.*?</table>.*?</table>)\s*(<table.*?<table.*?</table>.*?</table>)\s*(<table.*?<table.*?</table>.*?</table>)%<tr><td valign="top">$1</td><td valign="top">$2</td><td valign="top">$3</td></tr>%gs;
    
    $shit = qq{<table cellpadding="0" cellspacing="8" border="0">${shit}</table>};
    print 'document.write('.JsUtils::js_object($shit).');';

    В xslt, очевидно, всё не осилили - добъём регуляркой :)

    Suor, 16 Декабря 2009

    Комментарии (2)
  10. Perl / Говнокод #2227

    −113.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
    while (@PASSWORDS){
    my $idx=0;
    my @trl;
    while (@PASSWORDS && ($idx <= $threads)){
    my $pass = shift (@PASSWORDS);
    chomp($pass);
    my $len = length($pass);
    if ($len > 5){
    foreach my $user (@USERS){
    chomp($user);
    foreach my $url (@URLS){
    chomp($url);
    $trl[$idx]=threads->create(\&brut, $idx, \$url, \$user, \$pass);
    $idx++;
    }
    }
    }
    undef($pass);
    }
    for(@trl){
    my $url = $_->join;
    if ($url){
    @URLS = grep(!$$url, @URLS);
    undef($$url);
    }
    }
    undef(@trl);
    }

    фегня.

    xlt, 04 Декабря 2009

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